二开案例-【Python】实现物料审核后自动分配到指定组织

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

二开案例-【Python】实现物料审核后自动分配到指定组织

一、插件配置位置


Image_20220325162013.webp

二、插件代码

import clr
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("Kingdee.K3.MFG.App")

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.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 Kingdee.BOS.Log import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Core.Metadata.Operation import AllocateParameter
from Kingdee.BOS.Core.Enums import BOSEnums
from Kingdee.K3.MFG.App import AppServiceContext
from Kingdee.BOS.Contracts import IAllocateService


def AfterExecuteOperationTransaction(e):
	Logger.Info("Kingdee001","Kingdee001");
	strSQL=" SELECT T1.FORGID,T2.FNAME AS ORGNAME FROM T_ORG_ORGANIZATIONS T1  INNER JOIN T_ORG_ORGANIZATIONS_L T2 ON T1.FORGID=T2.FORGID AND T2.FLOCALEID=2052 WHERE T1.FORGID IN (100038,100039) ";
	orgIds =DBUtils.ExecuteDynamicObject(this.Context, strSQL);
	Logger.Info("Kingdee0066","Kingdee0066");
	if(orgIds.Count <=0):
		Logger.Info("Kindgee0088","Kindgee0088");
		return;	
	mtrlIdLst=List[object]();
	for mtrlObj in e.SelectedRows:
		mtrlId=mtrlObj.DataEntity["Id"];
		Logger.Info("Kingdee002","002");
		usrOrdId=mtrlObj.DataEntity["UseOrgId_Id"];
		Logger.Info("Kingdee003","Kingdee003");
		creatOrgId=mtrlObj.DataEntity["CreateOrgId_Id"];
		Logger.Info("Kingdee004","Kingdee004");
		creatOrgIdName=mtrlObj.DataEntity["CreateOrgId"]["Name"].ToString();
		Logger.Info("Kingdee005","Kingdee005");
		if(usrOrdId==creatOrgId):
			Logger.Info("Kingdee006","Kingdee006");
			mtrlIdLst.Add(mtrlId);
			mtrlMeta=MetaDataServiceHelper.Load(this.Context,"BD_MATERIAL");
			for orgId in orgIds:
				allocateParameter=AllocateParameter(mtrlMeta.BusinessInfo,mtrlMeta.InheritPath,creatOrgId,BOSEnums.Enu_AllocateType.Allocate, "Allocate");
				Logger.Info("Kingdee007","Kingdee007");
				allocateParameter.PkId=mtrlIdLst;
				allocateParameter.DestOrgId=orgId["FORGID"];
				allocateParameter.DestOrgName=orgId["ORGNAME"];
				allocateParameter.AutoSubmitAndAudit=True;
				allocateParameter.AllocateUserId=this.Context.UserId;
				allocateService =BusinessDataServiceHelper.Allocate(this.Context,allocateParameter);
				Logger.Info("Kingdee008","Kingdee008");

三、插件说明

1、插件中Logger.Info只是为了方便调试,可删除。

2、AllocateParameter参数说明:

      PKId:物料内码集合。

      DestOrgId:分配使用组织。

      DestOrgName:分配使用组织名称。

      AutoSubmitAndAudit:分配后是否自动提交审核。

      AllocateUserId:当前操作用户。

3、只有创建组织等于使用组织的时候才允许分配。

4、复制代码时注意字符串换行导致错误。

5、插件点击确定时,下图错误无需在意,点击确定即可。

6、切记直接复制代码进行验证,示例代码组织都是写死的,具体业务场景还需根据自身组织情况调整

Snipaste_2022-03-25_16-35-47.webp



这个是完整代码嘛?注册后没生效。

二开案例-【Python】实现物料审核后自动分配到指定组织

一、插件配置位置二、插件代码import clrclr.AddReference('System')clr.AddReference('System.Data')clr.AddReference('Kingdee.BOS')clr....
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息