rfmcall

ABAP RFM invocation template

Usage no npm install needed!

<script type="module">
  import rfmcall from 'https://cdn.skypack.dev/rfmcall';
</script>

README

rfmcall

ABAP RFM calls from NodeJS even easier.

NPM

license release dt dm

RFM call templates, with pre-initialized ABAP data structures, saving the development and troubleshooting time: rfmcall @ SAP SCN

Maintained as a part of SAP Fundamental Library for ABAP, can be used also independent.

Usage

Invoke the utility with ABAP backend destination (maintained in sapnwrfc.ini) and ABAP RFM name. The RFM call template is by default echoed to console, with the source code for RFM parameters initialization and invocation.

$ npm install rfmcall

$ rfmcall MME STFC_CONNECTION
//
// STFC_CONNECTION
//

let params = {

  // IMPORT PARAMETERS

  REQUTEXT                         :   "", // CHAR (255)
};

result = await client.call("STFC_CONNECTION", params);

Using the -s option, the template is saved to local js file:

$ rfmcall MME BAPI_USER_GET_DETAIL -s

$ cat BAPI_USER_GET_DETAIL.js

RFM Template

The RFM call template starts with ABAP RFM parameters initialization, followed by RFM call.

  • Optional parameters are commented out
  • RFM elementary parameters (variables) are initialized with a NodeJS number, string of Buffer
  • RFM structure and table parameters are initialized with empty object {} or array []
  • The structure name is provided in a comment, with the detailed field level initialization following below
  • The name of conversion (ALPHA) exit, if relevant for certain parameter or field, is provided in a comment (see BAPICOMREM/LANGU below )

BAPI_USER_GET_DETAIL.js

//
// BAPI_USER_GET_DETAIL
//

let params = {
  // IMPORT PARAMETERS

  USERNAME: "", // CHAR (12) User Name
  //CACHE_RESULTS                  :   "", // CHAR (1) Temporarily buffer results in work process

  // TABLE PARAMETERS

  RETURN: [], // BAPIRET2 Return Structure
  //ACTIVITYGROUPS                 :   [], // BAPIAGR Activity Groups
  //ADDCOMREM                      :   [], // BAPICOMREM BAPI Structure Communication Comments
  //ADDFAX                         :   [], // BAPIADFAX BAPI Structure Fax Numbers
  ...
  ...
};

...
...
// ACTIVITYGROUPS BAPIAGR Activity Groups

let ACTIVITYGROUPS                    =   []; // BAPIAGR Activity Groups

let BAPIAGR = {
  AGR_NAME                         :   "", // CHAR (30) Role Name
  AGR_TEXT                         :   "", // CHAR (80) Role Description
  FROM_DAT                         :   "", // DATS (8) Date of menu generation
  ORG_FLAG                         :   "", // CHAR (1) Indicator: Indirect Assignment of the User to the Role
  TO_DAT                           :   "", // DATS (8) Date of menu generation
};

// ADDCOMREM BAPICOMREM BAPI Structure Communication Comments

let ADDCOMREM                         =   []; // BAPICOMREM BAPI Structure Communication Comments

let BAPICOMREM = {
  COMM_NOTES                       :   "", // CHAR (50) Communication link notes
  COMM_TYPE                        :   "", // CHAR (3) Communication Method (Key) (Business Address Services)
  CONSNUMBER                       :   "", // NUMC (3) Sequence Number
  ERRORFLAG                        :   "", // CHAR (1) Flag: Record not processed
  LANGU                            :   "", // LANG (1) ALPHA=ISOLA Language Key
  LANGU_ISO                        :   "", // CHAR (2) 2-Character SAP Language Code
};

Enjoy!