帖子
帖子
用户
博客
课程
显示全部楼层
143
帖子
2
勋章
4万+
Y币

后端函数扩展示例

[复制链接]
发表于 2023-6-1 17:09:25
本帖最后由 yonyouhmm 于 2024-1-4 10:59 编辑
  1. let AbstractAPIHandler = require('AbstractAPIHandler');
  2.   class MyAPIHandler extends AbstractAPIHandler {
  3.    execute(request){
  4.      //===================================================
  5.      //使用实体操作 批量查询单表数据
  6.      //===================================================
  7.      //var object = {ids:["2550335386751232","2550334829924608"]};
  8.      //var res = ObjectStore.selectBatchIds("GT64965AT75.GT64965AT75.parentTable",object);
  9.      //===================================================
  10.      //使用yonql组合查询 主子关系
  11.      //===================================================
  12.      //var combine = "select id,age,name,money,(select good,num,total from childTableList) sonlist from GT64965AT75.GT64965AT75.parentTable";
  13.      //var combineRes = ObjectStore.queryByYonQL(combine);
  14.      //没有主子关系  有关联关系
  15.      //===================================================
  16.      // var relSearch = "select id,age,name,money,orgVO,orgVO.name from GT64965AT75.GT64965AT75.parentTable";
  17.      // var res = ObjectStore.queryByYonQL(relSearch);
  18.      //===================================================
  19.      //使用yonql子查询 不需要有关系
  20.      //===================================================
  21.      //var sub = "select * from GT64965AT75.GT64965AT75.parentTable where name in (select name from GT64965AT75.GT64965AT75.downParentTable where age=12)"
  22.      //var subRes = ObjectStore.queryByYonQL(sub);
  23.      //===================================================
  24.      //使用yonql关联查询 主子关系
  25.      //===================================================
  26.      //var union = "select funcStore_id,nianling,address,funcStore_id.name as name,funcStore_id.money as money from GT79146AT92.GT79146AT92.showChild t left join funcStore_id t1 on t.funcStore_id=t1.id where dr=0 and funcStore_id.dr=0"
  27.      //var union = "select name,age,childTableList from GT64965AT75.GT64965AT75.parentTable";
  28.      //var unionRes = ObjectStore.queryByYonQL(union);
  29.      //===================================================
  30.      //获取用户信息
  31.      //===================================================
  32.      // var appContext = AppContext();
  33.      // var currentUser = JSON.parse(AppContext()).currentUser;
  34.      // var sysId="diwork";
  35.      // var tenantId = currentUser.tenantId;
  36.      // var userId = currentUser.id;
  37.      // var userids = [userId];
  38.      // var userRes = listOrgAndDeptByUserIds(sysId,tenantId,userids);
  39.      //===================================================
  40.      //新增单条主子数据 创建人和创建时间系统会自动赋值
  41.      //===================================================
  42.      // var object = {orgVO: "2362172988248320",orgVO_name: "开心",bustype_name: "测试",name:"张三",age:10,money:10,childTableList:[{good:"10",num:1,"total":1}]};
  43.      // var res = ObjectStore.insert("GT64965AT75.GT64965AT75.parentTable",object,"0a2c44bf");
  44.      //===================================================
  45.      //批量新增
  46.      //===================================================
  47.      //var object = [{orgVO: "2362172988248320",orgVO_name: "开心",bustype_name: "测试",name:"李四",age:14,money:14,childTableList:[{good:"14",num:14,"total":14}]},{orgVO: "2362172988248320",orgVO_name: "开心",bustype_name: "测试",name:"王五",age:25,money:25,childTableList:[{good:"25",num:1,"total":25}]}];
  48.      //var res = ObjectStore.insertBatch("GT64965AT75.GT64965AT75.parentTable",object,"0a2c44bf");
  49.      //===================================================
  50.      //更新实体 只更新主表
  51.      //===================================================
  52.      //var object = {id:"2568495932756224",money:8};
  53.      //var res = ObjectStore.updateById("GT64965AT75.GT64965AT75.parentTable",object,"0a2c44bf");
  54.      //===================================================
  55.      //更新实体 只更新子表
  56.      //===================================================
  57.      // var object = {id:"2568495932756225",num:8};
  58.      // var res = ObjectStore.updateById("GT64965AT75.GT64965AT75.childTable",object,"0a2c44bf");
  59.      //===================================================
  60.      //更新实体 主子同时更新
  61.      //===================================================
  62.      //var object = {id:"2568495932756224",money:9,childTableList:[{hasDefaultInit:true,num:9,id:"2568812584554752",_status:"Update"},{...}]};
  63.      //var res = ObjectStore.updateById("GT64965AT75.GT64965AT75.parentTable",object,"0a2c44bf");
  64.      //===================================================
  65.      //更新实体 更新主表 子表数据删除后新增
  66.      //===================================================
  67.      //var object = {id:"2568495932756224",money:9,childTableList:[{hasDefaultInit:true,good:"5",num:5,total:5,_status:"Insert"},{hasDefaultInit:true,good:"55",num:55,total:55,_status:"Insert"},{id:"2568856000450816",_status:"Delete"},{id:"2568855783919872",_status:"Delete"}]};
  68.      //var res = ObjectStore.updateById("GT64965AT75.GT64965AT75.parentTable",object,"0a2c44bf");
  69.      //===================================================
  70.      //更新实体 更新主表 子表数据有更新 也有删除后新增
  71.      //===================================================
  72.      //var object = {id:"2568495932756224",money:99,childTableList:[{hasDefaultInit:true,good:"9",num:9,id:"2568865476366592",_status:"Update"},{hasDefaultInit:true,good:"7",num:7,total:7,_status:"Insert"},{id:"2568865476366593",_status:"Delete"}]};
  73.      //var res = ObjectStore.updateById("GT64965AT75.GT64965AT75.parentTable",object,"0a2c44bf");
  74.      //===================================================
  75.      //批量更新实体 参照更新单个实体
  76.      //===================================================
  77.      //var object = [{id:"2568495932756224",money:88,childTableList:[{hasDefaultInit:true,good:"9",num:9,id:"2568865476366592",_status:"Update"},{hasDefaultInit:true,good:"3",num:3,total:3,_status:"Insert"},{id:"2568920963649792",_status:"Delete"}]}];
  78.      //var res = ObjectStore.updateBatch("GT64965AT75.GT64965AT75.parentTable",object,"0a2c44bf");
  79.      //===================================================
  80.      //根据wrapper条件更新实体  相对于以上按照主表id,wrapper可以按照主表自定义条件进行更新
  81.      //===================================================
  82.      // var updateWrapper = new Wrapper();
  83.      // updateWrapper.le("money",1000);
  84.      // var toUpdate = {name:"ttt",age:50,childTableList:[{hasDefaultInit:true,good:"ttt",num:50,total:50,_status:"Insert"},{id:"79072a33162b4f7ab177000977fcc8ac",_status:"Delete"}]};
  85.      // var res = ObjectStore.update("GT64965AT75.GT64965AT75.parentTable",toUpdate,updateWrapper,"0a2c44bf");
  86.      //===================================================
  87.      //删除
  88.      //===================================================
  89.      // var object = {id:"2673537454592256"};
  90.      // var delRes = ObjectStore.deleteById("GT79146AT92.GT79146AT92.funcStore",object);
  91.      
  92.    
  93.    return {res};
  94. }
  95. }
  96. exports({"entryPoint":MyAPIHandler});
复制代码

二、调用webservice接口

let url = 'https://xxxxxxxxx';
var xmlString = "<soapenv:Envelope xmlns:soapenv='http://schemas**.**/soap/envelope/' xmlns:ifb='http://gems**.**/IfBaseClaim_Srv'><soapenv:Header/><soapenv:Body><ifb:createMultiItemClaim><baseMultiItemClaimSaveRequest><applyDate>2023-10-17</applyDate><businessDesc>测试一下</businessDesc><businessType>001</businessType><claimDetailList><applyAmount>10</applyAmount><expenseItem>001</expenseItem></claimDetailList><companyCode>001</companyCode><currency>CNY</currency><departmentCode>001</departmentCode><originDocNo>0001</originDocNo><originSystem>ZFZX</originSystem><paybleDate>2023-10-17</paybleDate><paymentMethod>TTRT</paymentMethod><paymentType>01</paymentType><recAccount>001</recAccount><userNo>001</userNo><vendorCode>001</vendorCode></baseMultiItemClaimSaveRequest></ifb:createMultiItemClaim></soapenv:Body></soapenv:Envelope>"
let header = {
  'Content-Type': 'text/xml;charset=UTF-8',
};
let strResponse = postman('post', url,'xml', JSON.stringify(header), xmlString);
var jsonString = xml2json(strResponse)

三、yonql查询
关联查询
主元数据不允许有别名,子元数据必须有别名:
1,单表查询,元数据不允许有别名
2,多表查询,主元数据不允许有别名,子元数据必须有别名
示例:
select
upcode upcode_a,
t2.productId productId_b
from sce.expense.Expense
left join sce.expense.ExpenseDetail t2 on upcode = t2.id
limit 3
四、openLinkerPure  绑定用户身份
ObjectStore.openLinkerPure('POST',url,"AT199FA34A04580009",body);
9
帖子
1
勋章
83
Y币
后端函数可以实现调用比如外系统如NC接口查询数据嘛?
143
帖子
2
勋章
4万+
Y币
周晨晨 · 2023-7-20 17:40后端函数可以实现调用比如外系统如NC接口查询数据嘛?

可以  可以在论坛搜索ncc
30
帖子
1
勋章
266
Y币
可以,在左侧工具栏 有相应的工具
您需要登录后才可以回帖 登录

本版积分规则