工作流待办消息同步第三方系统

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

工作流待办消息同步第三方系统

一,应用场景,需要把金蝶待办任务数据同步至第三方系统集成,在第三方界面显示数据,点击审批,驳回等对应调用金蝶流程审批接口处理审批数据

 二、实现方式如下

1、业务单据上面添加一个口操作服务,开发服务插件处理自己需要处理的业务

image.webp


2,流程设计中心,使用服务控件,绑定表单上面添加的空操作服务,审批走到对应节点执行服务插件代码获取数据进行推送

image.webp


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);
                    }

                }
            }
        }
    }
}



工作流待办消息同步第三方系统

一,应用场景,需要把金蝶待办任务数据同步至第三方系统集成,在第三方界面显示数据,点击审批,驳回等对应调用金蝶流程审批接口处理审批数...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息