金蝶云星空python调用空操作下推单据
#一、审核部分代码
##****************************服务插件*******************
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Newtonsoft.Json')
#clr.AddReference('Kingdee.BOS.Orm')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
from Newtonsoft.Json import JsonConvert
from Newtonsoft.Json.Linq import *
from Kingdee.BOS.Orm import *
from Kingdee.BOS.DataEntity import *
def OnPreparePropertys(e):
e.FieldKeys.Add("FBillTypeId"); #单据单据类型,标识 667e76c006c8a9
def AfterExecuteOperationTransaction(e):
#这里获取单据数据包方式和前面一样
billIdlist=List[object]();
SrcBillNolist=[];
PkIds=List[object]();#执行空操作的单据内码集合
optCode="DoNothing-AutoPush";#自定义空操作代码
for billObj in e.DataEntitys: #获取单据整体数据(可能是多个单据)
billId=billObj["Id"];#单据ID 113907
billNo=billObj["BillNo"];#单据编号 WLYS2406290004
BillTypeId=billObj["BillTypeId"] #获取单据类型
typeID=BillTypeId["ID"] #获取源单类型ID
typeNumber=BillTypeId["Number"]
billIdlist.Add(billId)
#raise Exception(str(typeID))
#追加自定义提示信息,参考如下
# result=OperateResult();
# result.SuccessStatus=True;
entity=billObj["FSrcEntity"]#进一步解析单据体,出库明细
if typeNumber=="VSO_WLYSD02": #typeID=="667e76c006c8a9":
for rObj in entity:#在单据体中开始取值,判断,赋值
SrcBillNo=rObj["SrcBillNo"] #获取源单编号
if SrcBillNo not in SrcBillNolist:
SrcBillNolist.append(SrcBillNo)
#sqlid="select fid from T_STK_STKTRANSFERAPP where fbillno in({0})".format(SrcBillNolist) #查询调拨申请单fid
sqlid = "select fid from T_STK_STKTRANSFERAPP where fbillno in (" + ",".join("'"+item+"'" for item in SrcBillNolist) + ")"
ds = DBUtils.ExecuteDataSet(this.Context,sqlid);
tab = ds.Tables[0];
for dr in tab.Rows:
srcfid=dr["fid"]; #获取源单fid
if srcfid not in PkIds:
PkIds.Add(srcfid)
#raise Exception(str(PkIds))
formID="STK_TRANSFERAPPLY";#调拨申请单单据FormId
meta = MetaDataServiceHelper.Load(this.Context, formID);#读取单据的元数据
#QTWLMeta=MetaDataServiceHelper.GetFormMetaData(this.Context, formID);#读取单据元数据
try:
tab=BusinessDataServiceHelper.DoNothing(this.Context, meta.BusinessInfo, PkIds.ToArray(), optCode, None);
except:
unformID=this.BusinessInfo.GetForm().Id;#执行当前操作的单据FormId
unmeta = MetaDataServiceHelper.Load(this.Context, unformID);#读取单据的元数据
BusinessDataServiceHelper.UnAudit(this.Context,unmeta.BusinessInfo,billIdlist.ToArray(),None);
raise Exception("调拨申请单无法正常下推直接调拨单,请手动下推")
# 二、反审核部分代码
##****************************服务插件*******************
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Newtonsoft.Json')
#clr.AddReference('Kingdee.BOS.Orm')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
from Newtonsoft.Json import JsonConvert
from Newtonsoft.Json.Linq import *
from Kingdee.BOS.Orm import *
from Kingdee.BOS.DataEntity import *
def OnPreparePropertys(e):
e.FieldKeys.Add("FBillTypeId"); #单据单据类型,标识 667e76c006c8a9
#def EndOperationTransaction(e):
def AfterExecuteOperationTransaction(e):
#这里获取单据数据包方式和前面一样
SrcBillNolist=[];
PkIds=List[object]();#执行空操作的单据内码集合
optCode="DoNothing-AutoPush";#自定义空操作代码
for billObj in e.DataEntitys: #获取单据整体数据(可能是多个单据)
billId=billObj["Id"];#单据ID 113907
billNo=billObj["BillNo"];#单据编号 WLYS2406290004
BillTypeId=billObj["BillTypeId"] #获取单据类型
typeID=BillTypeId["ID"] #获取源单类型ID
#raise Exception(str(typeID))
#追加自定义提示信息,参考如下
# result=OperateResult();
# result.SuccessStatus=True;
entity=billObj["FSrcEntity"]#进一步解析单据体,出库明细
if typeID=="667e76c006c8a9":
for rObj in entity:#在单据体中开始取值,判断,赋值
SrcBillNo=rObj["SrcBillNo"] #获取源单编号
F_TXBE_ActualShipmentId=rObj["Id"] #获取单据体主键
# if SrcBillNo not in SrcBillNolist:
# SrcBillNolist.append(SrcBillNo)
#sqlid="select fid from T_STK_STKTRANSFERAPP where fbillno in({0})".format(SrcBillNolist) #查询调拨申请单fid
sqlwuliu="select * from T_STK_STKTRANSFERINENTRY where F_TXBE_ACTUALSHIPMENTID={0}".format(F_TXBE_ActualShipmentId)
#sqlid = "select fid from T_STK_STKTRANSFERAPP where fbillno in (" + ",".join("'"+item+"'" for item in SrcBillNolist) + ")"
#ds = DBUtils.Execute(this.Context,sqlwuliu);#DBUtils.ExecuteDataSet(this.Context,sqlid);
ds=DBUtils.ExecuteScalar(this.Context,sqlwuliu,0)
#raise Exception("反审核")
if(ds>0):
raise Exception("已经下推直接调拨单,不允许反审核")
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('Newtonsoft.Json')
#clr.AddReference('Kingdee.BOS.Orm')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
from Newtonsoft.Json import JsonConvert
from Newtonsoft.Json.Linq import *
from Kingdee.BOS.Orm import *
from Kingdee.BOS.DataEntity import *
def OnPreparePropertys(e):
e.FieldKeys.Add("FBillTypeId"); #单据单据类型,标识 667e76c006c8a9
#def EndOperationTransaction(e):
def AfterExecuteOperationTransaction(e):
#这里获取单据数据包方式和前面一样
SrcBillNolist=[];
PkIds=List[object]();#执行空操作的单据内码集合
optCode="DoNothing-AutoPush";#自定义空操作代码
for billObj in e.DataEntitys: #获取单据整体数据(可能是多个单据)
billId=billObj["Id"];#单据ID 113907
billNo=billObj["BillNo"];#单据编号 WLYS2406290004
BillTypeId=billObj["BillTypeId"] #获取单据类型
typeID=BillTypeId["ID"] #获取源单类型ID
#raise Exception(str(typeID))
#追加自定义提示信息,参考如下
# result=OperateResult();
# result.SuccessStatus=True;
entity=billObj["FSrcEntity"]#进一步解析单据体,出库明细
if typeID=="667e76c006c8a9":
for rObj in entity:#在单据体中开始取值,判断,赋值
SrcBillNo=rObj["SrcBillNo"] #获取源单编号
F_TXBE_ActualShipmentId=rObj["Id"] #获取单据体主键
# if SrcBillNo not in SrcBillNolist:
# SrcBillNolist.append(SrcBillNo)
#sqlid="select fid from T_STK_STKTRANSFERAPP where fbillno in({0})".format(SrcBillNolist) #查询调拨申请单fid
sqlwuliu="select * from T_STK_STKTRANSFERINENTRY where F_TXBE_ACTUALSHIPMENTID={0}".format(F_TXBE_ActualShipmentId)
#sqlid = "select fid from T_STK_STKTRANSFERAPP where fbillno in (" + ",".join("'"+item+"'" for item in SrcBillNolist) + ")"
#ds = DBUtils.Execute(this.Context,sqlwuliu);#DBUtils.ExecuteDataSet(this.Context,sqlid);
ds=DBUtils.ExecuteScalar(this.Context,sqlwuliu,0)
#raise Exception("反审核")
if(ds>0):
raise Exception("已经下推直接调拨单,不允许反审核")
# #billId=r["PrimaryKeyValue"];#单据ID
# billryId=r["EntryPrimaryKeyValue"];
# #billId.append[billryId]
分类:
金蝶云星空k3 cloud
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通