【二开案例】【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.K3.MFG.App")
clr.AddReference("Kingdee.K3.Core")
clr.AddReference("Kingdee.K3.MFG.Contracts")
clr.AddReference("Kingdee.BOS.ServiceHelper")
clr.AddReference("Kingdee.BOS.Workflow.Models")
clr.AddReference("Kingdee.BOS.OrmEngine")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Newtonsoft.Json")
from System import *
from System.Data import *
from System.Collections.Generic import List as GList
from System.ComponentModel import *
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Newtonsoft.Json import *
from Kingdee.BOS.Core.Bill.PlugIn import *
from Kingdee.BOS.Core.Bill.PlugIn.Args import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Core.Msg import *
from Kingdee.BOS.Orm.Drivers import *
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Workflow.Models.WindowRemind import *
from Kingdee.BOS.Resource import *
def OnPreparePropertys(e):
e.FieldKeys.Add("FCreatorID")
def EndOperationTransaction(e):
receiverIds = GList[object]() # 接受人ID集合
for dataEntitys in e.DataEntitys:
creatorId = dataEntitys["CreatorId"] # 单据创建人
if len(receiverIds) > 0:
formId = "PLN_FORECAST" # 关联单据的FormID
billId = 125385 # 需要打开的单据内码
title = "新消息通知" # 消息标题
message = "你有信息消息,请查收!" # 消息内容
senderId = 16394 # 消息发送人ID
# 发送广播信息
SendBroadCastMessage(this.Context, message, receiverIds )
# 发送普通消息
SendMessage(this.Context, formId, billId, title, message, senderId , receiverIds )
### 发送广播消息
def SendBroadCastMessage(ctx, message, receiverIds):
businessInfo = FormMetaDataCache.GetCachedFormMetaData(ctx, "BAS_BROADCASTMSG").BusinessInfo
dataType = businessInfo.GetDynamicObjectType()
receiverField = businessInfo.GetField("FReceiver")
dataObject = DynamicObject(dataType)
dataObject["FCREATEDATE"] = DateTime.Now # 创建时间
dataObject["FTITLE"] = LocaleValue("你有新的消息") # 广播标题
dataObject["FCONTENT"] = str.Format("{0}(可在普通消息列表查看详情)", message) # 广播内容
dataObject["FCreatorId_Id"] = 16394 # 广播发布者
dataObject["FSendType"] = 1 # 发送类型 1 - 单发 2 - 多发
dataObject["FIsSendBroadcast"] = True # 是否内部消息
dataObject["FFailureTime"] = DateTime.Now.AddHours(1) # 失效时间
FieldSetValue(ctx, receiverField, dataObject, receiverIds) # 接受人设置
BusinessDataServiceHelper【二开案例】【Python】操作服务插件发送系统广播消息和普通消息
Python实现通过插件的方式给指定用户发送广播消息和普通消息: 代码示例如下:import clrclr.AddReference("mscorlib")clr.AddReference...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



