泛微前端调用ERP接口实践

  • 2021-12-13
  • Admin

创作背景

泛微更新class文件需要重启服务器才能生效,遇到erp接口调试时需要频繁改动更新代码,调试起来非常麻烦,所以我想到把后端代码固定,采用前端调整代码的方式更新erp接口交互操作。

实现步骤

1、编写后台ERP交互代码

此部分需要适应erp调用各种参数输入情况,做到不需要频繁改动。
代码地址

2、前端调用

2.1、erp交互接口地址:

http://ip:port/api/dcdev/sap/callSap

2.2、输入对象属性说明:

datas:json对象,各属性为erp接口交互时参数内容。
2.2.1、datas.method:必填,SAP接口名称;
2.2.2、datas.sourceId:必填,泛微集成中心-产品集成-SAP集成中配置的数据源的id;
2.2.3、datas.params:可选,参数对象,属性名为输入参数的名称,属性值为输入参数的值;
2.2.4、datas.structures:可选,参数结构对象,属性名为输入结构的名称,属性值为输入结构的键值对;
2.2.5、datas.tables:可选,参数表对象,属性名为输入表的名称,属性值为数组(数组中的每个对象代表输入表的一行)
2.2.6、datas.result:必填,请求需要返回的对象。
params、structures、tables非必选,但是不能全部为空。

2.3、输出对象属性说明:

2.3.1、code:调用结果状态码,200代表成功,其他代表异常。
2.3.2、message:调用结果信息,失败时告知失败原因。
2.3.3、data:调用结果数据,根据2.2输入对象的result参数生成。

3、调用案例

3.1ajax调用

$.ajax({
    type: "post",
    async : false,
    dataType:"json",
    url: "/api/dcdev/sap/callSap",
    data:{
        datas: JSON.stringify(paramObj)
    },
    success: function(obj){
        if(obj.code === "200"){
            result = obj.data;
        }else{
            alert(obj.message);
        }
    },
    error: function(e){
        alert("sap交互失败,请联系管理员:" + e.message);
    }
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3.2输入案例:
案例说明:
调用的服务器为:SAP集成中心中配置的数据源id为1501的服务器;
调动的接口方法为:Z_PS_WBS_STATUS;
传入的参数为:表格LIST的POSID属性,值为RAJCGZS091-1-1-32;
请求的结果为:表格LISTOUT的STAT和TXT04值。

{"method":"Z_PS_WBS_STATUS","sourceId":"1501","tables":{"LIST":[{"POSID":"RAJCGZS091-1-1-32"}]},"result":{"tables":{"LISTOUT":["STAT","TXT04"]}}}
  • 1

3.3输出结果:
案例说明:
code为200,代表调用成功;
message返回的是交互结果信息;
data返回的是请求结果数据,依据上述输入的result;

{"code":"200","data":{"tables":{"LISTOUT":[{"STAT":"I0002","TXT04":"REL"}]}},"message":"调用成功。"}
  • 1

原文:https://blog.csdn.net/qqchens/article/details/121901048

联系站长

QQ:769220720