对接金蝶云星空

集成  收藏
23 / 831

image.png

这次主要是创建数据,取数据,之前发过,删了
image.png

官方集成的也能用,但是有些状态字段需要自己处理(比如审核状态,作废状态,true 和 false 等)就不适用

数据分两部分,单体与明细分开组,最后放参数的时候组装进去
单体是单个字段组进去的跟明细差别不大,明细只是多了个遍历

简单的理解:主表是单条明细是多条(注意单体传进去的数值会变文本,需要 Number 处理一下,多条就不用)
主表处理

image.png

明细处理

image.png

完整的数据处理代码。(注意不能放空值,判断也没用,a[0]是必须的)

//主表
var data = {};
var a = JSON.parse(input.a);
//明细
 var b = JSON.parse(input.b);
//财务
 var c =  JSON.parse(input.c);
//c= c.substring(0, c.length - 1); 
//c = c.substring(1); 
// 将字符串转换为对象
//var jsobja = JSON.parse(JSON.stringify(a));
 a[0].FSaleOrderEntry =  b;
 //a = JSON.parse(JSON.stringify(a));
 a[0].FSaleOrderFinance =  c;
//逐步处理最后的字符串
var dataStr = JSON.stringify(a);
//最外层方形括号
fdataStr = dataStr.substring(0, dataStr.length - 1); 
dataStr = fdataStr.substring(1); 

//去除指定数据的大括号(财务的第二个方括号)
var f1start = find(dataStr,'[',1);   
//var strttxt = data.substring(index);  //字符出现后的值
dataStr = dataStr.substring(0, f1start) + dataStr.substring(f1start + 1);
var f1end = find(dataStr,']',1);   
dataStr = dataStr.substring(0, f1end) + dataStr.substring(f1end + 1);

//字符串中第N个出现的下标
function find(str,txt,num){
    var x=str.indexOf(txt);
    for(var i=0;i<num;i++){
        x=str.indexOf(txt,x+1);
    }
    return x;
}
data.model = dataStr;
res = JSON.stringify(data);
//去转义
res = res.replace(/\\/g,"");
//去掉model值的双引号
res = res.substring(0, 9) + res.substring(9 + 1);
res = res.substring(0, res.length - 2) + res.substring(res.length - 2 + 1);
output = {data:res};

出来的内容直接扔 data(东拼西凑的,介意可以自己改哈 👀️ )

image.png