工作流待办消息同步第三方系统
一,应用场景,需要把金蝶待办任务数据同步至第三方系统集成,在第三方界面显示数据,点击审批,驳回等对应调用金蝶流程审批接口处理审批数据
二、实现方式如下
1、业务单据上面添加一个口操作服务,开发服务插件处理自己需要处理的业务
2,流程设计中心,使用服务控件,绑定表单上面添加的空操作服务,审批走到对应节点执行服务插件代码获取数据进行推送
3,服务插件代码如下:
Task.Factory.StartNew(() =>{
Thread.Sleep(600);
//处理业务获取消息待办推送
}); 这里如果不加异步就去获取消息待办数据,这个时候是获取不到的,因为这个时候表里面还没有正真有数据,通过添加异步调用去获取数据,这个时候异步调用同时原来的服务会继续执行下去,就能获取到待办消息数据
using System; using System.Linq; using System.ComponentModel; using Kingdee.BOS.Util; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using Kingdee.YD.ServicePlugIn.Utils; using System.Threading; using System.Threading.Tasks; using Kingdee.BOS.JSON; using Newtonsoft.Json.Linq; namespace Kingdee.YD.ServicePlugIn.ServicePlugIn { [Kingdee.BOS.Util.HotUpdate] [Description("付款单空操作服务插件流程数据同步app")] public class EmptyOperationTOAPP : AbstractOperationServicePlugIn { public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) { base.AfterExecuteOperationTransaction(e); if (e.DataEntitys != null && e.DataEntitys.Count() > 0) { foreach (DynamicObject obj in e.DataEntitys) { //获取单据编号字段值 string djbh = Convert.ToString(obj["Billno"]); string formId = this.BusinessInfo.GetForm().Id; try { Task.Factory.StartNew(() => { Thread.Sleep(600); //根据单据编号字段获取整个数据包 DynamicObject fkddata = LoadDataUtil.LoadObject(this.Context, formId, djbh); DynamicObjectCollection PAYBILLENTRYs = fkddata["PAYBILLENTRY"] as DynamicObjectCollection; string sql = string.Format(@"/*dialect*/ select a.FASSIGNID,a.FRECEIVERID ApprovalID,fsr.fname FSENDERID/*发送人ID和名称*/ ,a.FCreateTime,a.FConsignNames,a.FTitle,FContent,a_L.FPreResultName,a.FPreDisposition ,a_L.FACTNAME,a.FSummary,spr.fname Approval,a.FSUBMITOPINION,a.FSTATUS from V_WF_ASSIGN a left join V_WF_ASSIGN_L a_L on a.FASSIGNID=a_L.FASSIGNID left join t_SEC_User fsr on a.FSENDERID=fsr.FUserId left join t_SEC_User lcfqr on a.FORIGINATORID=lcfqr.FUserId left join t_SEC_User spr on a.FRECEIVERID=spr.FUserId where a.FOBJECTTYPEID='{0}' and a.FKEYVALUE={1} ", formId, fkddata["ID"] + ""); DynamicObjectCollection datas = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); foreach (var data in datas) { JSONObject jsonpam = new JSONObject(); ...... JSONArray ents = new JSONArray(); foreach (var PAYBILLENTRY in PAYBILLENTRYs) { JSONObject ent = new JSONObject(); ..... jsonpam.Add("FEntity", ents); JObject rets = Config.LoadXmlConfig(); string Configurl = rets["Url"] + ""; string ret = requestUtli.Post(Configurl,jsonpam.ToString()); WriteLog.WriteLogAndTime("结果地址::"+ Configurl, jsonpam.ToString()+ ":::\n请求结果:" + ret); } }); } catch (Exception ee) { WriteLog.WriteLogAndTime("执行异常:", ee.Message); } } } } } }
工作流待办消息同步第三方系统
一,应用场景,需要把金蝶待办任务数据同步至第三方系统集成,在第三方界面显示数据,点击审批,驳回等对应调用金蝶流程审批接口处理审批数...
点击下载文档
上一篇:星空|SQL|元数据&插件|查找单据上的插件下一篇:本地开发热部署
本文2024-09-16 18:26:51发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-22200.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章