如何实现调用消息平台接口发送的消息支持打开单据
【核心诉求】
调用消息平台接口发送的消息如何能支持打开消息的业务对象
【场景介绍】
业务场景及原因分析:
如果不想配置消息模板、消息配置去发送消息,想通过插件去发消息,可以调用接口发送
支持版本:PT-146934 [8.1.0.20230112] 及以后的版本
【前提条件】
· 启用前准备
· 适用版本:
· 适用端:通用(客户端/H5/siverlight)
【操作指引】
一、主要步骤
示例:只需要发送的参数里面带上业务对象FormID和对应的内码:
接收消息会绑定对应的业务对象:
点击消息会直接打开单据:
二. 详细操作
1. 示例代码
using Kingdee.BOS.Core.Bill.PlugIn;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using Kingdee.BOS.MessageCenter.Model;
using Kingdee.BOS.MessageCenter.ServiceHelper;
using Kingdee.BOS.Core.MessageCenter;
using Kingdee.BOS.BusinessEntity.MessageCenter;
namespace Kingdee.BAS.Business.PlugIn
{
/// <summary>
/// 消息发送测试插件
/// </summary>
[Description("消息发送测试插件")]
public class TestSendMessagePlugIn : AbstractBillPlugIn
{
public override void BeforeSave(Kingdee.BOS.Core.Bill.PlugIn.Args.BeforeSaveEventArgs e)
{
base.BeforeSave(e);
SimpleTextMessageSendInfo simpleTextMsgSendInfo = new SimpleTextMessageSendInfo();
simpleTextMsgSendInfo.Content = "MessageContent";
simpleTextMsgSendInfo.Title = "MessageTitle";
simpleTextMsgSendInfo.MsgType = (int)MessageCenterMessageType.Bussines; //消息类别
simpleTextMsgSendInfo.Level = (int)MessageLevel.Normal; //消息等级
simpleTextMsgSendInfo.SenderId = 16394; //消息发送人UserID
List<int> channelList = new List<int>();
channelList.Add((int)MessageChannelType.MessageCenter); //消息通道
simpleTextMsgSendInfo.ReceiverIds = new long[] { 140365 }; //消息接收人UserID
simpleTextMsgSendInfo.Channels = channelList.ToArray(); //消息通道
simpleTextMsgSendInfo.SourceNumber = "XXLY000001"; //消息来源编码,单独新建一个
simpleTextMsgSendInfo.LinkPKId = "100001"; //消息业务对象内码
simpleTextMsgSendInfo.ObjectTypeId = "PUR_PurchaseOrder"; //消息业务对象FormID
MessageSendServiceHelper.AsyncSendSimpleTextMessage(this.Context, simpleTextMsgSendInfo);
}
}
}
【注意事项】
1、消息来源编码需要Administrator在消息来源中创建后获取,调用接口发送消息必须要先配一个消息来源
如何实现调用消息平台接口发送的消息支持打开单据
本文2024-09-23 03:49:04发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-161291.html