电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

价目表分发操作成功时记录日志

来源:金蝶云社区作者:金蝶2024-09-238

价目表分发操作成功时记录日志

@[TOC](目录) ### 背景 当前系统采购价目表分发和取消分发操作无法记录上机操作日志,虽然分发操作勾选了记录操作日志选项。平台默认不会自动处理该操作的日志,业务领域也未特殊处理该操作的日志,只提供了分发查询,但无法记录到每次分发的操作日志,对此有部分客户提出了该需求。在标准产品未处理之前,可通过注册python脚本二开实现。 分发操作和取消分发操作会弹出一个动态表单,客户对动态表单单选或多选分发组织进行分发,需要不仅仅是记录某价目表进行了分发操作,同样需要记录具体分发给了哪些组织。由于操作插件无法记录日志,只能在表单插件中进行记录。对此需要注册两个插件,一个表单插件的,一个列表插件的 ### python脚本 #### 表单插件 ```python import clr clr.AddReference("mscorlib") 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') from Kingdee.BOS import * from Kingdee.BOS.App.Data import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * from Kingdee.BOS.Util import * from System import * from System.Collections.Generic import * from System.Data 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.Log import * from Kingdee.BOS.Core.Bill import * from Kingdee.BOS.Core.DynamicForm import * from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel 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 * def AfterDoOperation(e): if e.Operation.Operation == "Issue": if e.OperationResult.IsSuccess == True: billNumber = this.View.Model.GetValue("FNumber",0) issueOrgList = e.OperationResult.FuncResult if issueOrgList != None and len(issueOrgList) > 0: sqlOrg = "SELECT FORGID,FNAME FROM T_ORG_ORGANIZATIONS_L WHERE FLOCALEID = 2052 AND FORGID IN ({0})".format(",".join(str(o) for o in issueOrgList)) readerOrg = DBUtils.ExecuteReader(this.Context, sqlOrg) orgName = List[String]() while readerOrg.Read(): orgName.Add(readerOrg["FNAME"].ToString()) readerOrg.Close() orgNameStr = ",".join(str(o) for o in orgName) if len(orgName)>0: log = LogObject() msg1 = "采购价目表“{0}”分发到这些组织:{1}".format(billNumber, orgNameStr) log.Description = msg1 msg2 = "分发" log.OperateName = msg2 log.ObjectTypeId = "PUR_PriceCategory" log.SubSystemId = "20" log.Environment = OperatingEnvironment.BizOperate LogServiceHelper.WriteLog(this.Context, log) if e.Operation.Operation == "CancelIssue": if e.OperationResult.IsSuccess == True: billNumber = this.View.Model.GetValue("FNumber",0) issueOrgList = e.OperationResult.FuncResult if issueOrgList != None and len(issueOrgList) > 0: sqlOrg = "SELECT FORGID,FNAME FROM T_ORG_ORGANIZATIONS_L WHERE FLOCALEID = 2052 AND FORGID IN ({0})".format(",".join(str(o) for o in issueOrgList)) readerOrg = DBUtils.ExecuteReader(this.Context, sqlOrg) orgName = List[String]() while readerOrg.Read(): orgName.Add(readerOrg["FNAME"].ToString()) readerOrg.Close() orgNameStr = ",".join(str(o) for o in orgName) if len(orgName)>0: log = LogObject() msg1 = "采购价目表“{0}”取消分发到这些组织:{1}".format(billNumber, orgNameStr) log.Description = msg1 msg2 = "取消分发" log.OperateName = msg2 log.ObjectTypeId = "PUR_PriceCategory" log.SubSystemId = "20" log.Environment = OperatingEnvironment.BizOperate LogServiceHelper.WriteLog(this.Context, log) ``` #### 列表插件 ```python import clr clr.AddReference("mscorlib") 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') from Kingdee.BOS import * from Kingdee.BOS.App.Data import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * from Kingdee.BOS.Util import * from System import * from System.Collections.Generic import * from System.Data 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.Log import * from Kingdee.BOS.Core.Bill import * from Kingdee.BOS.Core.DynamicForm import * from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel 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 * def AfterDoOperation(e): if e.Operation.Operation == "Issue": if e.OperationResult.IsSuccess == True: lstFids = this.ListView.SelectedRowsInfo.GetPrimaryKeyValues() issueOrgList = e.OperationResult.FuncResult if issueOrgList != None and len(issueOrgList) > 0:

价目表分发操作成功时记录日志

@[TOC](目录)### 背景当前系统采购价目表分发和取消分发操作无法记录上机操作日志,虽然分发操作勾选了记录操作日志选项。平台默认不会自...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信