Release notes SAP NetWeaver RFC SDK 7.50 
========================================


Please read the license terms and release notes carefully.

--------------------------------------------------------------------------------

This product is the property of SAP SE. You are granted usage of this product in
your development environment. Deploying this product with your application in a
production environment is valid only with the sufficient amount of SAP Software
Licenses according to the terms and conditions of SAP Software.

THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
SAP SE further does not warrant the accuracy or completeness of the information,
text, graphics, links or other items contained within these materials. SAP SE
shall not be liable for any special, indirect, incidental or consequential
damages, including without limitation, lost revenues or lost profits, which may
result from the use of these materials. The information in this software is
subject to change without notice and does not represent a commitment on the
part of SAP SE in the future.

--------------------------------------------------------------------------------

Release Notes 7.50.3:

* Bugfix: metadata lookup
  TurboRepository used wrong parameter length, if Library was Non-Unicode and
  backend was Unicode.

* Bugfix: metadata lookup
  If the TurboRepository was not enabled (e.g. because RFC_METADATA_GET did not
  yet exist in the backend), but RfcMetadataBatchQuery() is used nevertheless,
  then the query result is empty instead of reporting all queries as "failed".

* Bugfix: bgRFC
  If the external RFC program was running on an EBCDIC platform, sending a
  bgRFC unit into a backend system always failed with an error message
  "Unable to convert from code page '' to code page '4103'" or similar.

* Bugfix: metadata lookup
  If during metadata lookup of a nested type1 structure DDIF_FIELDINFO_GET
  returned an empty LINES_DESC, the process crashed.

* Bugfix: table processing
  RfcAppendRow() did not move the table cursor to the appended table row.

* Bugfix: communication
  RFC connections can hang, if CPIC streaming is used with a communication partner
  that does not yet support streaming.

* Bugfix: data container APIs
  If a table parameter is defined via a DDIC table type that referes to a line type,
  the functions RfcSetStructureFromCharBuffer() and RfcGetStructureIntoCharBuffer() return
  the error message RFC_ILLEGAL_STATE, "Operation possible only for flat structures",
  even though the structure is flat and char-like.

* Bugfix: tracing
  Activating the RFC trace in mulitple threads could lead to a deadlock in certain situations.

* Bugfix: DecFloat datatype
  The previously missing functions for DecFloat processing are now exported from the sapnwrfc lib.

* Bugfix: memory leak
  If the backend system is currently not available, and an RFC server program keeps trying to
  reconnect the registered server connection over a period of time, a large amount of memory is leaked.

* Bugfix: serialization
  If the column-based serialization is used with compression type LAN (parameters SERIALIZATION_FORMAT=
  CB_SERIALIZATION and COMPRESSION_TYPE=LAN) and extremely large table parameters are transferred,
  then the program might sporadically crash.

* Enhancement: data container APIs
  The APIs RfcSet[Structure|Table|AbapObject]() and
  RfcSet[Structure|Table|AbapObject]ByIndex() now check the input handle for NULL.

* Enhancement: connection attributes
  The RFC_ATTRIBUTES structure now contains two new members: partnerIP and partnerIPv6.

* Enhancement: monitoring
  A throughput object has been introduced, with which it is possible to monitor
  the performance of a connection. Find more details in the documentation.

* Enhancement: Unicode processing
  The library libsapucum now exports a number of additional U-functions.

* Enhancement: tracing
  Tracing has been improved to contain timestamps and more exception details.

--------------------------------------------------------------------------------

Release Notes 7.50.2:

* Bugfix: Fast serialization
  When using the column-based serialization aka fast serialization, an RFC Call
  might not have worked or sent wrong data when
  ** calling against a non-unicode system and using char-like parameters.
  ** using NUMC parameters.
  ** using not up-to-date metadata of functions and parameters.

* Bugfix: saplogon.ini/SAPUILandscape.xml processing
  When using saplogon.ini based or SAPUILandscape.xml based logon parameters and
  the specified file did not exist or a referenced <Include> file did not exist,
  the application aborted with an uncaught exception.

* Bugfix: SAPUILandscape.xml processing
  When usingSAPUILandscape.xml the destinations contained in SAPUILandscape
  XML are not found, because SAPUILandscape XML parser returns an empty list, if
  the XML file does not contain an XML preamble and contains comments. The
  SAPUILandscape parser accidentally interpretes the comments section as SAP system
  information.
  Note: this is actually invalid XML format, but early versions of SAPGui 7.40 used
  to generate such XML files.
  With 7.50.2, the SAPUILandscape parser can now handle these badly formed files
  successfully, as long as the <Landscape> section is at the top of the document.

* Bugfix: RfcServer runtime
  A race condition in RfcShutdownServer() might have lead to a crash, if the server
  was at the same time trying to restore a closed connection.

* Bugfix: Tracing
  If a multi-threaded program uses the API function RfcSetTraceDir() in different
  threads at the same time, it may abort with segementation fault/access violation.
  The call stack in the core dump contains the function RfcSetTraceDir().

* Bugfix: Data Setters
  On Windows machines with certain non-English locales the functions RfcSetString()
  or RfcSetFloat() applied to parameters of ABAP type FLOAT or DEC/BCD may crash.
  In the call stack, the function _wsetlocale() can be seen.

* Bugfix: Samples
  The trace flag ("-t") in the sample program startrfc has no effect. Starting with
  this patch level, you can now use it in the form "-t x", where x is in the 
  range 1 - 3.

* Bugfix: Samples
  If the program rfcexec is used in an ALE scenario and the exported function module
  RFC_REMOTE_EXEC is called with parameter READ not set to 'X', then the executed
  command/program may fail with the following error, if it tries to write to
  stdout:
  ** On Windows: "The process tried to write to a nonexistent pipe" (or sometimes
     "write error")
  ** On Unix/Linux: "write error: broken pipe"

* Bugfix: parameter processing
  If an IMPORTING or CHANGING parameter of a function module has a default value
  defined, and an RFC client application calls this function module without setting
  a value for this parameter, then this default value accidentally gets overwritten
  by an initial value. 
  Consequently the ABAP code, when being executed, is using the initial value
  (e.g. spaces or zeros) instead of the expected default value.

* Bugfix: Compiling & linking
  On Windows, when linking a program against the sapnwrfc.lib contained in the
  NW RFC SDK, it can happen that the resulting executable is looking for a
  sapnwrfc.dll with a wrong name and consequently fails to start up.

* Bugfix: runtime
  An RFC request that receives TABLE parameters may abort with
  RFC_MEMORY_INSUFFICIENT, even if the table data is relatively small.

* Enhancement: Fast serialization
  The overall performance of the column-based serialization was improved.

* Enhancement: Fast serialization
  The performance of the column-based serialization was improved dramatically when
  sending the same tables multiple times or sending tables which were previously
  received with the column-based serialization.

* Enhancement: Data Setters
  RfcSetString() is now more tolerant as to what kind of input it accepts: hexadecimal
  digits may now also be given in lowercase.

* Enhancement: platforms
  MacOSX is now available for download as additional platform.

--------------------------------------------------------------------------------

Release Notes 7.50.1:

* Bugfix: missing type definitions
  When compiling RFC programs that use the DecFloat library (header file
  sapdecf.h), the compiler complained about missing type definitions for
  types SAP_LLONG and SAP_ULLONG. The missing definitions have been 
  added.

* Bugfix: RFC server runtime 
  An RFC server program crashed in the following situation: 
  ** The program receives a function call from ABAP. 
  ** In the function handler, it triggers a callback to ABAP via RfcInvoke(). 
  ** During this callback, the network connection breaks down, e.g. because
     of network problems or because of an abort on ABAP side. 
  This caused the connection object to be deleted inside RfcInvoke(), but
  when processing of the original function call that came in from ABAP
  continued, the RFC library still used the deleted connection object,
  leading to a crash. 

* Bugfix: corrupt sapnwrfc.pdb
  On Microsoft Windows systems, the sapnwrfc.pdb file could not be used to see
  internal symbol information of the sapnwrfc.dll library. 

* Bugfix: crash in SAPUILandscape.xml processing 
  On Microsoft Windows systems, if the SAPGui installation has set the registry
  key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP\SAPLogon\LandscapeFormatEnabled=1
  and the SAPUILandscape.xml file contains a MessageServer entry where the
  "port" attribute is missing, and the RFC application uses one of the connection
  parameters DEST or SAPLOGON_ID, the RFC library crashed while parsing the
  SAPUILandscape.xml file.
  
* Bugfix: saplogon.ini/SAPUILandscape.xml processing
  On Microsoft Windows systems, if the RFC application used the connection 
  parameter DEST to read further parameters from the sapnwrfc.ini file, and
  SAPGui was installed on the machine, the RFC library also accidentally tried
  to open the saplogon.ini file or the SAPUILandscape.xml file, depending on
  which mechanism is used by SAPGui. 
  (See the above registry key "LandscapeFormatEnabled".)

* Bugfix: Tracing
  Fields and parameters of type XSTRING were not traced to the RFC trace file
  correctly.

* Bugfix: Tracing
  Scalar parameters, whose byte length is less than 8, were not traced to the
  RFC trace file correctly.

* Bugfix: automated RFC server
  It might have happened in certain situations, that an automated server which
  was currently shutting down (RfcShutdownServer() had been called), was still
  trying to register new connections at the gateway.

* Bugfix: automated RFC server 
  Due to a race condition between the thread that calls RfcShutdownServer() and
  worker threads processing incoming RFC requests, an automated RFC server
  might have crashed during shutdown.

* Bugfix: Connection leak
  If the callback function RFC_ON_PASSWORD_CHANGE returned an error code, while
  trying to change an initial or expired password, a stale connection to the
  backend remained open forever. 

* Enhancement: non-Unicode processing in RFC server
  An RFC server registered at a non-Unicode destination or against a dynamic
  destination (i.e. a destination not defined in SM59 and used via
  SYSTEM_CONNECT_TO_REG_SERVER) now automatically switches to Unicode upon
  receiving the first request, if the backend system is Unicode. 

* Enhancement: SSO ticket retrieval
  RfcGetPartnerSSOTicket() can now also be used to obtain a ticket from a client
  connection. (Prior to this, it worked only for server connections.)

* Enhancement: session handling for automated RFC server 
  Applicatons using an automated (multi-count) RFC server, can now register a
  handler to receive notifications whenever a stateful user session starts or
  ends. See callback function RFC_SERVER_SESSION_CHANGE_LISTENER and function
  RfcGetSessionEventAsString(). 

* Enhancement: Additional Setter/Getter for API
  Two new functions are now available for setting an entire structure/table-row
  from a char buffer or reading its value into a char buffer. See functions
  RfcSetStructureFromCharBuffer() and RfcGetStructureIntoCharBuffer(). For
  processing tables with many small fields and lots of rows, this can mean a
  huge performance gain.

* Enhancement: saplogon.ini/SAPUILandscape.xml processing
  Applications using saplogon.ini or SAPUILandscape.xml can now read the set of
  logon parameters for a given LOGON_ID. See new functions RfcGetSaplogonEntry()
  and RfcFreeSaplogonEntry().

* Enhancement: SAProuter usage
  A new function is available to return the SAProuter string over which the
  connection has been established, if any. See function RfcGetSapRouter().

* Enhancement: client connection management
  RFC client programs can now avoid problems with firewall/router timeouts
  during long running RFC requests by activating periodic pings on CPIC level.
  See function RfcSetCpicKeepalive(). 

* Enhancement: Traces
  The RFC trace now traces more specific details in case of codepage conversion
  errors. 

* Enhancement: platforms
  The following additional platforms are now available for download:
  ** Linux on PowerPC big-endian architecture
  ** Linux on IBM zSeries



--------------------------------------------------------------------------------

Release notes 7.50

Compared to SAP NetWeaver RFC SDK 7.20, release 7.50 is built on top of newer compilers,
C runtimes, and operating systems. The API remained backward compatible with earlier
releases. so existing programs should continue to work unchanged, when running them with
the new library. Nevertheless, it makes sense to recompile existing programs against the 
new library in order to update also the application program's compiler and C runtime versions.



With NetWeaver RFC SDK 7.50 you get the following new features:
---------------------------------------------------------------

* Support for the fast serialization format, technically a column-based serialization of 
  the data, which has been shipped initially with application server ABAP 7.51.

* When function module invocations last longer than desired, RFC client programs do now
  have the possibility to cancel the execution of the function mdoule on ABAP server
  side.

* Support for ABAP INT8 datatype.

* On Windows systems: support of saplogon.ini and SAPUILandscape.xml. This allows to establish
  connections easily by using the connection parameters already defined in your SAPGui
  installation.

* A new way of programming a registered server has been introduced that is similar to the 
  approach used by JCo and NCo. 
  ** Server takes care of connection management & automatic restart of broken registrations.
     -- No more involved dispatch-loop!
  ** Server can now be used for stateful progamming (server can keep session state across
     multiple function calls).
  ** Group registration at a system for easy support of "Rolling Kernel Switch": instead
     of registering only at one specific gateway, a server program can register at all 
     gateways belonging to one logon group. If one application server is shutdown/restarted,
     the external program can still be reached via the remaining gateways.

* Configurable authorization checks for servers based on the communication partner's
  SysID and SNC name.

--------------------------------------------------------------------------------

Copyright  2006-2018 SAP SE. All Rights Reserved.

