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

【二开案例】【Python】操作服务插件发送系统广播消息和普通消息

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

【二开案例】【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格式

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

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