The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension SAPRfc.

0.01  Sat May 29 17:47:22 1999
	- original version; created by h2xs 1.19

0.02  Fri Jul 16 19:27:22 1999
   Documentation for modules added
   Examples added to SAPRfc POD
   Numerous bugs fixed in interface discover
   Structure discovery added
   Exceptions added to interface definition

0.03  Mon Jul 19 05:30:00 1999
   Change SAPInterface Exports(), Imports(), Tables methods to return 
     a list of objects insteadof names
   Change SAPRfc connect() method to accept login parameters
   Fix bug in SAPStructure for updating structure with NULL records
   Fix bug with interface discovery for default values - SPACE word
     means put space in field( doh!), literals are single quoted eg.
     'X'.

0.04  Wed Jul 21 17:00:00 1999
  Completely renamed all modules to SAP::xxx standard - sorry guys
    but it is better to bite this one now than later!
  Fixed bug in structure discovery for interface discovery - it was not 
    always picking that a table had a structure.
  Fixed nasty bug in returning import parameter values.
  Created sample IDOC posting program for Purchase Orders

0.05  Sat Sep 04 10:00:00 1999
  Thanks to Frederic Huet who highlighted some bugs:
  Fixed - bad C code for import parameters
  Fixed discovery problem for Date and Time data types - these get a basic
    default value of zeros.

0.10  Sat Sep 11 22:00:00 1999
  Changed the structure routine to not pack and unpack the "whole" value
  all the time - now it keeps track of when component or overall value 
  changes in order to decide when to pack/unpack.

0.11  Sat Oct 04 19:00:00 1999
  Fixed a bug in date checking for Export parameter - did not allow 10 for
  month.
  Changed Structure.pm to default 0's for date and time data types if they are
  null.
  Cleaned up Rfc.xs to remove unused functions, and declarations.

0.12 Sometime on Monday Oct 25th 1999
  Johan Schon pointed out a problem with the t/test.t script $^W = 0 not undef.
  Fixed a problem with the discovery routines where the structures for the standard RFCs
    change between releases 3.x and 4.x+ ( RFC_GET* ).
  Used #defines to remove declarations from Rfc.xs that have caused problems with 
    compilation under Win32 - Fred.
 
0.15 Tuesday 16th  Nov 1999
  DJ sent in problems with warns coming up when using -W and use strict - a lot of these
    warnings have been fixed, but some may still exist?
  Major new release with the xml based rfc message passing ( perl <-> xs ), which also
    includes dynamic memory allocation for working storage - the method xmlrfc in Rfc.pm
    replaces callrfc if you choose to use this functionality.  callrfc remains untouched.
  dumpdef() Methods added to Interface.pm, Table.pm, Export.pm, and Import.pm to allow
    easy printing out of the object definitions - this is essentially a debugging tool.
 
 
0.16 Monday 22th  Nov 1999
  Sorry! - an annoying change has been made so that a $rfc->callrfc or a $rfc->xmlrfc now requires an arguement of an SAP::Interface object instead of the name of the interface.  This change is necessary to allow more than one instance of the same RFC call to be made within a threaded perl application.  This will eventually make the $rfc->addInterface, and $rfc->deleteInterface methods redundant, as the Interface object becomes divorced from the connectin object ( SAP::Rfc ).
  Introduced a new method in SAP::Interface to generate a code stub for a given interface - the method is $iface->Gencode($file);  It take a target source code file as an arguement.  The file is filled with a single method that returns a complete SAP::Interface object for the specified RFC Interface.  This is a time saver for complex interface definitions where you can't afford to have the overhead of using the $rfc->discover routine.
  The same method has been added to the SAP::Structure object so that structure definition code stubs can be automatically generated.  This is particularly useful for IDOC related programs that often will use many different and complex structures.  The examples program idoc.pl in the examples directory of the distribution generates a complete program stub for a given IDOC ( well worth a look ! ).

0.91 Tuesday 20th March, 2001

Completely rewritten the interface to use Inline::C


0.93 Tuesday 29th May, 2001

Added in a module SAP::SOAP that uses SOAP::Lite to support SOAP requests
Fixed INT1 and INT2 support in Structures


0.94 Wednesday 30th May, 2001

Fixed a sort order problem in SAP::Struc using cmp instead of <=> - Thank you Ivo Clarysse.
Tidied up the documentation a bit as it is way out of date.

0.96 Fri Dec 28 13:35:17 GMT 2001 

Fixed a problem with sub nextRow in SAP::Iface, which was due to earlier changes in SAP::Struc.

0.97 Fri Feb 22 09:19:00 GMT 2002 

Fixed a problem with the installer - the version nos were wrong
Added in the SECUDE login parameters

0.98 Fri Tue 26 09:00:00 GMT 2002 

Quote login paramters so that parameters with spaces in them can be passed.

0.99 Fri 19.04.2002
As per a bug fix from Jan Hebler - change the test for the return code for the Inline portion of the rfc call to a string compare - gets rid of yucky warning messages.
Fix problesm with running Inline based programs under Apache/mod_perl
Add in the ability to pass in table values ( rows ) as an array ref of hash refs - the hash refs contain a hash of the table structure key/value pairs.  The same has been done for parameters that have structures.
Note: the whole record/complex parameter values can still be passed in as strings.

1.00 Fri 05.11.2002
Remove dependency on Inline::C ( go back to using pure XS ), and control the exit on bad connects better

1.02 Fri Nov 29 12:27:45 GMT 2002
Rearranged the test suite, and fixed up makesoap.pl etc.
fixed a bug to do with export parameter structures.

1.03 Tue Dec 10 06:34:42 GMT 2002
Fixed a problem with export parameters where empty structures (structures where a value has never been set) are not initialised properly.

1.04 Fri Dec 20 09:42:14 GMT 2002
Fixed a problem with mis-interpreting integers courtesy of Thomas Gobel


1.05 Wed Jan 29 07:00:04 GMT 2003
Fixed a long time (annoying) problem with numeric comparison of alpha
on checking the RETURN_CODE of an RFC call.

1.06 Thu Jan 30 19:30:40 GMT 2003
Added another internal type for structures - h - see EXID/INTYPE (there maybe more in the future)
Lots of useful bits from Martin Kaemmerling, including compile fixes for Aix, and Hashes passed into Parameters for structures etc.


1.07 Mon Feb 24 13:34:09 GMT 2003
  - fixed an old bug with empty BCD field types
  - opefully suppressed a warning arroung $self->{VALUE} for parms

1.08 Wed Mar 19 10:28:19 GMT 2003
  - created a work arround for the autoload of VERSION problem

1.09 Thu Apr  3 07:46:16 BST 2003
  - added support for endianess of INT4s courtesy of Pavel Smirnov
  - Add error() message accessor from the SAP::Rfc object
    courtesy of  Dobrica Pavlinusic

1.10 Fri Apr 25 07:05:11 BST 2003
  - work on tidying up the C code in Rfc.xs

1.11 Thu May  1 11:28:28 BST 2003
  - major revision to include registered RFC with a callback framework
    to enable access from SAP to Perl code.

1.12 Wed May  7 10:04:16 BST 2003
  - fix a bug with empty tables coming in from registered RFC calls

1.13 Tue May 13 16:26:30 BST 2003
  - added patch to fix global symbol load problem on HP-UX with help from
    Gerhard

1.14 Wed May 21 18:04:47 BST 2003
  - fix compile issues under WIN32

1.15 Wed Jun  4 14:33:27 BST 2003
  - fix a bug with returning complex parameter values

1.16 Sun Jun  8 04:59:36 BST 2003
  - remove printf for registered rfcs
  - fix backward compat issue with RfcLastEx, and RfcLast and Solaris

1.17 Fri Aug 29 07:30:19 BST 2003
  - fixed errors for the initial value as found by Oliver Boudry

1.18 Mon Sep  1 10:06:06 BST 2003
  - Oliver Boudry has supplied me with PPD based install packages for Win32.


1.20 Fri Sep 19 07:04:18 NZST 2003
 - Dirk Lachowski discovered a bug in sub DESTROY {} that meant the current open RFC connection was not being automatically cleaned up.

1.21 Mon Dec 15 07:52:23 NZDT 2003
 - Tidy up some warnings
 - do some byte order checks for INT

1.22 Fri Jan  9 07:59:27 NZDT 2004
 - set the error data before die is called on $rfc->callrfc().  This means that you cal still retrieve the error message after the call has failed.
 - make cosmetic changes to Rfc.pm documentation
 - both contributions from Adam Trickett.

1.23 Sat Jan 31 06:34:05 NZDT 2004
 - changed the build process to automatically hunt for the libraries and includes
 - assistance provided by Olivier (as usual) getting the win32 part right (thanks!)

1.24 Thu Feb  5 08:40:59 NZDT 2004
 - Thanks to achim for help with the new information for the build process for Linux etc.

1.25 Wed Apr 21 20:11:29 NZST 2004
 - Added a method to the SAP::Iface object called sysinfo() that returns a hash of the
 system info vital statistics for the current RFC call.  This method only returns
 information within a registered RFC scenario.

1.26 Thu Apr 22 11:25:53 NZST 2004
 - added correct handling of a gateway connection error, so that the accept() loop
   exits.  An error message is reported, and can be accessed via $rfc->error().

1.27 Fri Apr 23 16:38:06 NZST 2004
 - remove bad double-slash comments from C code, and extraneous
 fprintf()s

1.28 Fri May 14 12:39:38 NZST 2004
 - added in additional error checking for Gateway availability - $rfc->error now set
   if not avail.
 - added in an event loop synchronisation callback for the accept().
   accept() now takes parameters $callback, and $wait.
 - fixed problem with SM59 RFC documentation that caused a memory leak.
 - built first version of tRFC.  This allows callbacks for handling the 
   transaction control CHECK, COMMIT, CONFIRM, and ROLLBACK

1.29 Sat May 22 07:44:53 NZST 2004
 - pass the TID for tRFC as the last argument in the RFC callback handler

1.30 Sat May 22 19:43:28 NZST 2004
 - changes for Endian testing - calculated local Endian

1.31 Mon Jun  7 09:17:56 NZST 2004
 - fix a bug with the use of use Config

1.32 Sun Jun 20 20:22:16 NZST 2004
 - and in $rfc->errorKeys() for Adam Trickett so that he can get all
 the RFC error trace file values.


1.33 Fri Jun 25 10:57:04 NZST 2004
 - fix problem where structured parameter values are not recalculated 
   after they have been set via structure - just prior to the RFC call.

1.34 Fri Jul 16 01:14:17 NZST 2004
 - fix some Endian issues in structures

1.35 Thu Sep 30 17:09:55 BST 2004
 - add AllowStartProgram()
 - Paul-Joseph de Werk supplied a fix for compiler errors on HP-UX 11.00 - 64

1.36 Thu Nov  4 16:24:31 GMT 2004
 - load warnings for aix fixed
 - add structure, and interface caching to speed up startup for discover()
   of function modules etc
 - and a massive thanks goes to Hans Harder for finally making some sense of the Endian issues.

1.37 Tue Jul  5 13:58:44 BST 2005
 - fix bug with BCD value handling with no decimal places - thanks to Dirk Lachowski

1.38 Mon Aug 22 12:41:21 BST 2005
 - fixed bug to do with parameters (with structures) getting the wrong value
   Thanks to Martin Kaemmerling

1.39 Fri Oct 28 09:00:55 BST 2005
 - first release with UNICODE support - many thanks to John from IED and Bjoern Hippenstiel

1.40 Fri Mar 17 22:02:44 GMT 2006
 - Documentation tidy up courtesy of Micheal Lemke
 - Help with login fix for WebAS 7.x thanks to Paul Williams
 - Wrong determination of Endian'ness spotted by Peter Kuehn

1.41 Tue Apr  4 13:45:49 BST 2006
 - not handling BCDs with 1 decimal place properly - thanks Olivier Boudry

1.42 Thu Apr 13 06:35:40 BST 2006
 - Add SAP Logon ticket support ($rfc->getTicket())

1.43 Wed Apr 26 10:09:59 BST 2006
 - improve PPD build features in Makefile.PL (Olivier Boudry)
 - correct documentation format in Rfc.pm

1.44 Tue May 23 12:53:14 BST 2006
 - add registered RFC event loop control with register() and process()

1.45 Sun Aug  6 19:41:12 BST 2006
 - major rewrite to include RFC Unicode library support
 - includes moving to registering structures
 - using built in structure and interface lookup
 - support for either librfccm or librfcum
 - conversions built around UTF-8 -> UTF16 -> UTF-8 characterset translation
 - special thanks to Gregor Wolf, and Jouke Visser for all their help in testing

1.47 Thu Aug 17 09:41:33 BST 2006
 - include unicode support for registered RFC programs

1.48 Thu Sep  7 17:17:21 BST 2006
 - patching up unicode support in tables and structures
 
1.50 Thu Sep 21 14:44:46 BST 2006
 - do no utf8 as well as use utf8 (proper scoping).

1.51 Fri Sep 22 13:30:59 BST 2006
 - add in mkdir changes for 5.005 support

1.52 Wed Sep 27 09:13:36 BST 2006
 - sort out unicode build for win32 - thanks Olivier

1.53 Wed Oct  4 16:20:34 BST 2006
 - patch for AIX from Michael Lemke

Thu Dec  7 07:13:33 GMT 2006
 - tidy up exit(-1) statements on unfound structures and interfaces

Fri Mar  9 07:45:11 GMT 2007
 - fix bug with unicode handling of RAW data types