如何从Node.js应用程序在SAP中调用BAPI

2020-07-30 22:34发布


          点击此处--->   EasySAP.com 群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)

最近,我使用了SAP提供的nodejs RFC连接器名为node-rfc的模块为SAP NetWeawer RFC库提供绑定。通过该库,可以利用SAP远程功能调用(RFC)协议从nodejs调用基于SAP NetWeaver的ABAP系统中的RFC启用功能模块。有关将模块安装到nodejs框架中的信息,请参见此处下面,我提供了两个示例nodejs应用程序,展示了将值传递给BAPI参数(如单个值,结构和表)的可能性。我认为,node-rfc模块是一个很好的选择,它可以像使用基于Web的应用程序一样从频繁使用的nodejs应用程序与SAP系统进行交互。您可以在我的github上找到两个示例:

demo_BAPI_params1.js      


demo_BAPI_params1.js usage of table and variable parameter


//demo prg to showcase usage of table and variable parameters of SAP's BAPI while called from nodejs app via SAP/node-rfc nodule

    "use strict";

var rfc = require('node-rfc');

var abapSystem = {

    user: 'sap_user',

    passwd: 'sap_user_pwd',

    ashost: 'sap.nodomain',

    sysnr: '01',

    client: '800'

};

var client = new rfc.Client(abapSystem);

var MAX_ROWS = 3;

var SELECTION_RANGE_str = {

    PARAMETER: "USERNAME",

    SIGN: "I",

    OPTION: "CP",

    LOW: "A*"

};

var SELECTION_RANGE_tab = [SELECTION_RANGE_str];


client.connect(function (err) {

    if (err) {

        return console.error('could not connect to server', err);

    }

    client.invoke('BAPI_USER_GETLIST', {

            MAX_ROWS: MAX_ROWS,

            SELECTION_RANGE: SELECTION_RANGE_tab

        },

        function (err, res) {

            if (err) {

                return console.error('Error invoking BAPI_USER_GETLIST:', err);

            }

            console.log('Result BAPI_USER_GETLIST:', res);

        });

});


demo_BAPI_params2.js usage of structure parameter of SAP 's BAPI


//demo prg to showcase usage of structure parameter of SAP'

s BAPI

while called from nodejs app via SAP / node - rfc nodule "use strict";

var rfc = require('node-rfc');

var abapSystem = {

    user: 'sap_user',

    passwd: 'sap_user_pwd',

    ashost: 'sap.nodomain',

    sysnr: '01',

    client: '800'

};

var client = new rfc.Client(abapSystem);


client.connect(function (err) {

    if (err) {

        return console.error('could not connect to server', err);

    }

    var IMPORTSTRUCT = {

        RFCDATA1: 'some value of structure field RFCDATA1',

        RFCDATA2: 'some value of structure field RFCDATA2'

    };

    client.invoke('STFC_STRUCTURE', {

            IMPORTSTRUCT: IMPORTSTRUCT

        },

        function (err, res) {

            if (err) {

                return console.error('Error invoking STFC_STRUCTURE:', err);

            }

            console.log('Result STFC_STRUCTURE:', res);

        });

});



转载地址:http://blog.maruskin.eu/2018/04/how-to-call-bapi-in-sap-from-nodejs-app.html 

赞赏支持