Skip to content
This repository was archived by the owner on May 28, 2026. It is now read-only.

v2.0.0

Choose a tag to compare

@bsrdjan bsrdjan released this 20 Jul 08:33

Changes

  • Connection Pool ported to C++
  • Error handling improvements: rfmPath
  • New documentation content and format ported from reStructuredText to markdown
  • environment object
  • node 6 and 8 support expired
  • Connection attribute PartnerIPv6 added
  • SAP NWRFC SDK post-installation fix for macOS removed
  • Cmake version 3.17
  • N-API version 6
  • N-API version from package.json used in CMakeLists.txt, instead of separately (double) maintained one
  • tslint replaced by eslint

Breaking changes

  1. Managed clients' can't open and close own connections any more. Instead of open() and close(),
    managed clients use pool acquire() and release() methods. Delegation of these tasks to Pool,
    ensures the connection handle stability during the Client instance lifecycle (less or not at all RFC_INVALID_HANDLE errors)
    and more intuitive error messages, like RFM call() over closed connection instead of generic RFC_INVALID_HANDLE error.

  2. After critical errors, the client connection handle is set to NULL, consequently setting the alive property to false.
    The alive property now exposes the connection handle != NULL condition, thus always in sync. The automatic re-open should
    assign the new connection handle to client, setting the alive to true: see Closing connections.

  3. Client reopen() method removed

  4. Client ping() method result returned as a second callback parameter (callback pattern), error is the first

  5. Client getters:

    • status and runningRFCCalls removed
    • isAlive replaced with alive
    • _connectionHandle replaced with connectionHandle
    • version replaced with more generic environment object, exposing:
      • os platform name, architecture, release
      • node, napi, modules etc. versions (process.versions)
      • SAPNWRFC_HOME and RFC_INI environment variables
  6. The ongoing RFC call is not any more protected from connection close() by direct client.
    The direct clients should not call the close() method before the RFM call completed and
    invoke() or call() callback invoked.

  7. Error handling improvements:

    • All error objects have now a name property, defining the error type
    • Error location path (rfm/parameter/field) attached to error objects, property rfmPath