集成服务调用苍穹BOTP的方法案例

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

集成服务调用苍穹BOTP的方法案例

集成服务调用BOTP的方法


限定场景:金蝶苍穹BOTP

方法一:脚本调用集成云预置的IERP_BOTP函数

// 第一个参数是源单元数据编码,第二个参数为目标单元数据编码,第三个参数为源单ID,还可以输入第四个参数,填入一个map, 可选的key有proxy_user(代理用户)、ruleId(botp规则ID)

var result = IERP_BOTP("isc_demo_basedata_1", "isc_demo_basedata_2", 1077487058685017088L);

结果返回目标对象的ID

"1313016617797456896"

注意:该函数只能生成一张单,如果生成多张目标单,会抛异常。


 

方法二:脚本调用BOTP的微服务(复杂BOTP转换推荐使用)

var obj = {
   "sourceEntityNumber": "isc_demo_basedata_1",// 必填,源单元数据编码
   "targetEntityNumber": "isc_demo_basedata_2",// 必填,目标单元数据编码
   "buildConvReport": true,// 选填,是否生成转换报告
   "ruleId": 1133313604662089728L,// 选填,botp规则ID,如果不填,将自动寻找id
   "selectedRows": [{"pkv": 1077487058685017088L}] // 必填,源单ID,注意其key为pkv,全名为primaryKeyValue,反序列化填pkv作为key。
};
var params = FastJsonFormat(obj);// 将map转为string
var result = invokeMicroService("bos", "bos", "ConvertService", "pushAndSave", params);
var res = flatObjectToMapOrList(result);// 将原始结果转为map或list格式
return res;


注:

  • 如果需要按分录下推行时,selectedRows字段写法如下,key值缩写参考Java类kd.bos.entity.datamodel.ListSelectedRow:

[
    {
        "pkv": 1596666628047645700, // 单据主键
        "eek": "billentry",      // 单据体标识
        "epkv": 1596666628047646700  // 单据体分录主键
    }, 
    {
        "pkv": 1596666628047645700, 
        "eek": "billentry", 
        "epkv": 1596666628047646700
    }
]
  • 如果调用的微服务是bos里的微服务,但是业务的botp二开插件类在业务的容器里部署(如scm),那么调用时coudid还是填写bos,appid填写scm(可以在开发平台根据元数据所在应用的标识确定)。


返回的单据转换结果如下:

 {
       "sourceEntityNumber":"isc_demo_basedata_1",
       "targetEntityNumber":"isc_demo_basedata_2",
       "targetBillFormId":"isc_demo_basedata_2",
       "targetMobFormId":"isc_demo_basedata_2_mob",
       "success":true,
       "reports":[

       ],
       "billReports":[

           {
              "billId":"1077487058685017088",
              "billNo":"unit_botp",
              "ruleId":"1133313604662089728",
               "ruleName":"转换规则",
              "failMessages":[

              ],
              "linkEntityKey":"isc_demo_basedata_1",
              "linkEntityName":"基础资料demo1",
              "rowCount":1 ,
              "failRowCount":0 ,
              "linkEntityRowReports":[

              ],
              "dependEntityRowReports":
                  {

                  },
              "success":true,
              "fullSuccess":true,
              "failMessage":"",
              "rowInfo":"单据(unit_botp)"
           }
       ],
       "cachePageIds":[

       ],
       "cacheTargetObjStr":
           {

           },
       "dataMutexSrcBillIds":[

       ],
       "targetBillIds":[
           "1313014662614258688"
       ],
       "startTime":"2021-12-17 14:45:45",
       "finishedTime":"2021-12-17 14:45:45",
       "headFields":[

       ],
       "runSecond":0
    }

   

其中success字段是成功标识,targetBillIds是生成的目标单ID列表。如果有部分失败,可以通过获取billReports中的failMessage得知具体原因。



集成服务调用苍穹BOTP的方法案例

集成服务调用BOTP的方法限定场景:金蝶苍穹BOTP方法一:脚本调用集成云预置的IERP_BOTP函数// 第一个参数是源单元数据编码,第二个参数为...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息