webapi实现销售出库单下推销售退货单
import clr
clr.AddReference('System')
#clr.AddReference('System.Collections.Generic')
clr.AddReference('System.Linq')
#clr.AddReference('System.Text')
clr.AddReference('System.ComponentModel')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Kingdee.BOS.WebApi.Client')
clr.AddReference('Newtonsoft.Json')
from Kingdee.BOS.WebApi.Client import *
from System import *
from System.Collections.Generic import *
#from System.Linq import *
from System.Text import *
from System.ComponentModel import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Orm import *
from Kingdee.BOS.Core.Const import *
from Kingdee.BOS.Core.List import *
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs import *
from Kingdee.BOS.Core.Metadata.ConvertElement import *
from Kingdee.BOS.Core.DynamicForm.Operation import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Core.Interaction import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.Metadata.EntityElement import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Newtonsoft.Json import *
from Newtonsoft.Json.Linq import *
def BarItemClick(e):
key=e.BarItemKey.ToUpperInvariant();#菜单标识大写
if(key=="FBTNCUSTOMPUSH".ToUpperInvariant()):
# pushOption = OperateOption.Create();#构建空的操作选项
# pushArgs = CreatePushArgs(pushOption); #构建下推参数
# convertResult = ConvertServiceHelper.Push(this.Context, pushArgs, pushOption);#调用下推接口
# #targetObjs = (from p in convertResult.TargetDataEntities select p.DataEntity).ToArray();#得到目标单据数据包
# targetBInfo = this.GetBusinessInfo(pushArgs.ConvertRule.TargetFormId, pushArgs.ConvertRule.TargetFormMetadata);
# #对转换结果进行处理
# #1. 直接调用保存接口,对数据进行保存
# this.SaveTargetBill(targetBInfo, targetObjs);
# #2. 或者展示目标单据
# this.ShowTargetForm(targetBInfo, targetObjs);
client = K3CloudApiClient("https://suninfinit1.test.ik3cloud.com/K3Cloud/");
loginResult = client.ValidateLogin("1639759376577227776","王传志","1qaz@WSX3edc",2052);
resultType = JObject.Parse(loginResult)["LoginResultType"] #.Value<int>();
# 一、请求参数说明:
# 1.formid:业务对象表单Id,字符串类型(必录)
# 2.data:JSON格式数据(详情参考JSON格式数据)(必录)
# 2.1.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
# 2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
# 2.3.EntryIds:分录内码集合,逗号分隔(分录下推时必录) 注(按分录下推时,单据内码和编码必须要填,否则按整单下推)
# 2.4.RuleId:转换规则内码,字符串类型(未启用默认转换规则时,则必录)
# 2.5.TargetBillTypeId:目标单据类型内码,字符串类型(非必录)
# 2.6.TargetOrgId:目标组织内码,整型(非必录)
# 2.7.TargetFormId:目标单据FormId,字符串类型,(启用默认转换规则时,则必录)
# 2.8.IsEnableDefaultRule:是否启用默认转换规则,布尔类型,默认false(非必录)
# 2.9.IsDraftWhenSaveFail:保存失败时是否暂存,布尔类型,默认false(非必录) 注(暂存的单据是没有编码的)
# 2.10.CustomParams:自定义参数,字典类型,格式:"{key1:value1,key2:value2,...}"(非必录) 注(传到转换插件的操作选项中,平台不会解析里面的值)
para= {
"Ids": "",
"Numbers": [],
"EntryIds": "773219,773220,773221", #销售出库单分录内码
"RuleId": "OutStock-SalReturnStock", #OutStock-SalReturnStock
"TargetBillTypeId": "",
"TargetOrgId": 0,
"TargetFormId": "",
"IsEnableDefaultRule": "false",
"IsDraftWhenSaveFail": "false",
"CustomParams": {}
}
jsonString = JsonConvert.SerializeObject(para); #将json格式的对象转换为json字符串
#登录结果类型等于1,代表登录成功
if resultType == 1:
json= client.Push("SAL_OUTSTOCK",jsonString);
this.View.ShowMessage("{0}".format(json))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通