Legenda: + new feature added * internal change - old feature removed !! bug fix Version 1.4.1, 2005/12/19 + added support for SSO2 (SAP Single Sign On) feature - new API function saprfc_get_ticket(), see test_sso.php script for usage Version 1.4, 2005/08/23 + added support for target SAP Unicode system (SAP Basis 6.40 included) Version 1.3.3, 2005/01/25 !! added official support for installation saprfc as dynamic module (included from version 1.0.1 but didn't work well, fixed in saprfc.c). Recompilation PHP failed under new Linux distribution (for example RH AS 3.0, Fedora Core 3) because librfc.a library from RFCSDK 6.20 is not compatible with glibc 2.3. Version 1.3.2, 2004/07/19 !! fixed warning message if rfc or function resource passed to API function is not valid + added new API function saprfc_allow_start_program(), thanks to michael.doster@medizin.uni-ulm.de. His explanation: "If you have a document management system within R/3 and want to check out documents (from sap) or check in documents (to sap) with the help of the external programs sapftp/saphttp (very comfortable; ftp/http-clients that can be controlled from external here from the sap stack; can be downloaded from the SAP Service Marketplace) you need to be able to call the function RfcAllowStartProgram of the RFCSDK. This was not possible in your version 1.3, so I added it (changes/adds: see below). The call of RfcAllowStartProgram is needed for BAPIs like BAPI_DOCUMENT_CHECKOUTMODIFY2 or BAPI_DOCUMENT_CHECKIN2 and the like." Example: saprfc_allow_start_program("sapftp;saphttp"); Version 1.3.1, 2004/07/14 + added compilation and build support for PHP 5 + added support for register_globals = off in the saprfc_test.php script !! fixed a lot of E_NOTICE messages in the saprfc_test.php + update PLATFORMS file - Unicode version RFC Library and Unicode SAP is not supported * no internal change in the extension source code, so upgrade from 1.3 version is not necessary Version 1.3, 2003/01/31 !! fixed bug in the handling of optional import parameters (rfccal.c). If called function module has optional parameters and this paramaters was not set by saprfc_import() function, all other import parameters was incorrectly transfered. Upgrade from previous versions is recommeded. Version 1.2.1, 2002/09/09 !! fixed detection of function interface by saprfc_function_discover() - if target SAP release is SAP 6.10 (rfccal.c) - the structure is detected also if EXID=='u' in the RFC_GET_FUNCTION_INTERFACE_P (see to 1.0.1 changelog entry) Version 1.2, 2002/07/15 !! The API function saprfc_exeption() didn't work. - the function wasn't visible for user (saprfc.c) - the exception string wasn't propagate from rfc call (rfccal.c) Version 1.1, 2002/07/09 !! Determination of offset position for structure fields in the internal buffer was changed. Instead of computation from field data type and it position in the structure, is offset set from OFFSET value returned by RFC_GET_FUNCTION_INTERFACE_P (in the saprfc_function_discover()). This change solve data corruption problem for parameters or tables that has structure that includes other structure, e.g. like table MARA. The API for function saprfc_function_define() and saprfc_function_interface() was a little changed, but it's backward compatible. The item "offset" was added to the field definition. If this item is not set, old method for offset determination is used. Version 1.0.3, 2002/05/17 + added optional parameter not_trim for saprfc_function_discover() and saprfc_function_define(). By default, if SAP CHAR type is converted into PHP string, spaces from the end of string are stripped. For example: CHAR(10) "Hello " is returned by saprfc_export(), saprfc_read_table() as "Hello". If you don't want remove the spaces (0x20) from returned values, set not_trim parameter to true in the saprfc_function_discover() call. (Useful for example for WWW_DISPATCH_REQUEST) Version 1.0.2, 2002/04/23 !! fixed bug in the inicialization of internal buffer for RAW data type (rfccal.c) - possible memory access violation for big RAW data Version 1.0.1, 2002/03/20 + added support for build dynamic saprfc.so module under Linux (config.m4) - using option: --with-saprfc=shared + librfccm.so shared library * improved detection of function interface by saprfc_function_discover() - handle new features in the SAP 4.6 (rfccal.c) - detection structure using EXID=="" instead of FIELDNAME=="" in RFC_GET_FUNCTION_INTERFACE_P - ignore type EXID='h' - internal table as parameter type I don't know how it handle correctly with RFC API (example: DDIF_FIELDINFO_GET, LINES_DESCR(EXPORT), FIXED_VALUES(TABLE) ) Version 1.0, 2002/01/20 !! fixed broken trfcserv.php example script !! fixed memory leaks in saprfc_server_dispatch() - rfccal.c, free internal table handle in __sal_get_data() before RfcGetData() call - rfccal.c, don't allocate memory if internal table is not specified by caller (RfcGetData returns ITAB_NULL) - rfccal.c, don't send null internal tables in __sal_send_data() + added compile time macro RFC_DEBUG_MEMORY to debug memory managment of the RFC library (rfccal.c) !! saprfc.c, cleanup memory allocated for global variables (trfc_) !! saprfc_test.php, check register_globals option (default off in the PHP 4.1.0) !! saprfc.c, fixed bug in the saprfc_trfc_tid(), incorrect TID was returned because RfcCreateTransID didn't return null terminated string + added the sapclasses package Version 0.10, 2001/12/15 + 8 new SAPRFC API functions + added support for transactional RFC (tRFC) saprfc_trfc_call() - Calls a function module in R/3 indirectly (tRFC) saprfc_trfc_tid() - Gets a transaction-ID for a following call of a function module using tRFC saprfc_trfc_install() - Installs functions to control transactional behaviour (tRFC) saprfc_trfc_dispatch() - alias to saprfc_server_dispatch() + possibility activate/deactivate the RFC trace, saprfc_set_trace() + added support for registration at a SAP Gateway saprfc_server_register_check() saprfc_server_register_cancel() + saprfc_function_name() - Gets the name of the function module + new API documentation added to saprfc.html !! cleanup internal tables for called function modules in the saprfc_server_dispatch() /memory leak fixed/ * don't handle system call (RFC_PING, tRFC,...) internally in the saprfc_server_dispatch(), return immediate with SAPRFC_OK after dispatch one call + added support for PHP 4.1.0 (TSRM changes) + added INSTALL.hints, trfcserv.php Version 0.9.1, 2001/11/07 + saprfc_function_discover () was improved + added detection of version of the remote SAP system (using RFC_SYSTEM_INFO) + added support for SAP Rel. 3.1x (that has different length for TABNAME and FIELDNAME parameters in the RFC_GET_FUNCTION_INTERFACE_P and RFC_GET_STRUCTURE_DEFINITION_P) + for SAP Rel. >= 46 added detection of optional parameters (previous version must use saprfc_optional() ) !! fixed bug in an optional parameters + added information about remote SAP version and optional parameters in the saprfc_function_debug_info() Version 0.9, 2001/10/26 !! fixed alignment bugs for structure parameters (and internal tables) containing INT or FLOAT types. This types must in an internal buffer start on the position divisible by 2 (INT2), 4 (INT4), 8 (FLOAT). Determination of the size of the internal buffer for structures was fixed, reflecting alignment rules. !! fixed bug in handling export/import structure parameters with one item only. !! fixed memory leaks in the interface routines + added information about offset and allocated memory for interfaces in the saprfc_function_debug_info() + added support for upcoming PHP 4.1.0 (ZEND API change - module version) !! fixed bugs (one item structure, internal table filling) in saprfc_test.php Version 0.8.1, 2001/08/31 + added saprfc class written by lars laegner (saprfc.php) * test script saprfc.php renamed to saprfc_test.php + added example: example_userlist.php * licence changed from GPL to PHP !!saprfc.c, fix for compilation errors with RFSDK < 4.6D !!saprfc_test.php, fix for problem with CSS under Netscape (black on black...) Version 0.8, 2001/07/07 + add examples: client.php, server.php !!config.m4, rename (AC_ to PHP_) config macros for PHP >= 4.0.6 !!saprfc.php, fix API change bugs Version 0.7, 2001/07/02 * rfccal.h, macro SAL_ACCEPT use RfcAccept() instead RfcAcceptExt() + rfccal.h, added macro SAL_ACCEPT_EXT !!rfccal.c, cleanup compilation warnings !!rfccal.c, fix bug in internal table handling in __sal_get_data() Drop itab handles before call RfcGetData() and setup after it. It solve CALL_FUNCTION_OBJECT_ID dump when called PHP RFC function return internal table. + saprfc.c, extend saprfc_server_accept to accept argv array with a program arguments Version 0.6, 2001/06/30 + ADDED NEW FUNCTION: From this version is possible call PHP functions from SAP R/3. A new PHP functions that implement RFC server API were added: saprfc_server_accept(), saprfc_server_import(), saprfc_server_export(), saprfc_server_dispatch(), saprfc_attributes() * SAPRFC API CHANGE: saprfc_open() - changed keys in array $conn, now is same as ID for RfcOpenEx() Used RfcOpenEx instead RfcOpenExtV3, because RfcOpenEx support login check, codepage setting and so on... saprfc_function_define() - $rfc=0 is allowed now, for definition PHP server functions saprfc_call_and_receive() - return now int value with RFC_RC instead true/false + added doc: ChangeLog, INSTALL - rfccal.h, removed macro CAL_LOGIN_INFO (no need, new implematation saprfc_open()) * rfccal.h, change interface for macro CAL_OPEN + rfccal.h, new macros added: CAL_ATTRIBUTES, SAL_ACCEPT, SAL_WAIT_FOR_REQUEST, SAL_GET_NAME, SAL_ABORT, SAL_GET_DATA, SAL_SEND_DATA, SAL_RAISE + rfccal.c, implement new function _cal_open(), instead RfcOpenExtV3() is now used RfcOpenEx (that check user login data) with new interface * rfccal.c, return RFC_RC from __cal_fce_call() instead (0,-1), error can be better analyzed - rfccal.c droped __cal_fce_login_info() + rfccal.c implement the new internal server api functions: __sal_get_data () ~ RfcGetData(), __sal_send_data () ~ RfcSendData(), __sal_raise () ~ RfcRaise(), RfcRaiseTables() + php_saprfc.h, new PHP function added: saprfc_attributes(), saprfc_server_accept(), saprfc_server_import(), saprfc_server_export(), saprfc_server_dispatch() * php_saprfc.h, added info to rfc resource if rfc connection is opened by saprfc_open() or saprfc_server_accept() * saprfc.php, proccess API change in saprfc 0.6 (saprfc_open(),saprfc_call_and_receive()) + saprfc.c, added SAPRFC_* constants for return codes from saprfc_call_and_receive() and saprfc_server_dispatch() * saprfc.c, new implementation of saprfc_open(), keys in $conn array were changed to ID defined by RfcOpenEx(). * saprfc.c, allow 0 in $rfc parameter for saprfc_function_define() - used for definition PHP RFC server functions (in time definition rfc connection doesn't exist) !!saprfc.c, fix bug in saprfc_function_define() for internaltables with single structure (one item) * saprfc.c, return RFC_RC value instead bool from saprfc_call_and_receive() !!saprfc.c, fix proto typos for saprfc_exception(), saprfc_function_free() + saprfc.c, implement the new PHP functions Version 0.5, 2001/06/25 + the first version released as package saprfc-0.5.tar.gz on sourceforge.net * php_saprfc.h, all PHP functions were renamed from rfc_* to saprfc_* * saprfc.php, rename all saprfc functions * saprfc.c, all PHP functions were renamed from rfc_* to saprfc_* Version 0.4, 2001/06/19 + saprfc.php, added PHP script to testing a saprfc client features + config.m4, added compilation support for HP-UX + rfccal.h, added macro CAL_SET_SYSTEM_CODE_PAGE, not used because API RfcSetSystemCodePage() isnīt supported by Win32 librfc32.dll !!saprfc.c, fixed bug in rfc_set_code_page(), rfc resource was discared Version 0.3, 2001/06/17 !!saprfc.c, fix bug in rfc_read_tables, interface not found (export instead table interfaces were searched) Version 0.2, 2001/06/16 * php_saprfc.h, version information moved to saprfc.c + saprfc.dsp, added compilation support for NT/2000 (VC6) !!rfccal.c, fix compilation warning (unused variable optional) !!saprfc.c, fix compilation warnings !!saprfc.c, fix bugs in RAW type handling (rfc_import,rfc_export,rfc_read_table) !!saprfc.c, fix access to structure in rfc_import,rfc_export,rfc_read_table Version 0.1, 2001/06/15 + initial import to CVS tree on sourceforge.net + all client functions were implemented + successfully compiled on RedHat Linux 6.2 (with PHP 4.0.5 and SAP RFCSDK 4.6D) + not tested yet