日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

泛微oa java .net_第三方系统向泛微OA系统推送消息

發布時間:2023/12/10 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 泛微oa java .net_第三方系统向泛微OA系统推送消息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文將要為您介紹的是第三方系統向泛微OA系統推送消息,具體完成步驟:向泛微OA系統推送消息

以下操作案例中關于第三方系統向泛微OA系統的移動端和電腦端版本推送消息說明:

? 移動端使用的是泛微系統登錄賬號(工號)來最終實現消息的推送

?電腦端使用的是泛微系統用戶表中的id字段來最終實現消息的推送

一、移動端消息推送

1、超級管理員賬號,登錄移動端門戶管理平臺

2、消息中心--消息類型創建

配置完成后,會自動生成消息標識Id;然后根據外部系統推送示例,實現移動端消息推送。

實現移動端消息推送,必須要消息標識Id和e-mobile消息推送密鑰

消息標識Id:新建消息類型成功后,會自動生成消息標識Id

消息推送密鑰:“服務器管理”—“系統狀態”—服務器屬性:e-mobile消息推送密鑰

請勿必保證license值是有效可用的,否則會導致調用接口失敗

以上都配置完成后,修改調用程序中對應的相關參數,可能首次調用接口無法接收到消息,請先多次調用后。

二、電腦端消息推送

1、超級管理員賬號,登錄協同辦公平臺

2、后端應用中心

頁面右上角

更多,點擊 后端應用中心

3、配置允許調用工作流程WebService服務權限的IP地址

頁面地址為:/workflow/UserList.jsp

4、配置允許調用人力資源WebService服務權限的IP地址

需要在OA的/Ecology/WEB-INF/prop/HrmWebserviceIP.properties配置文件中配置調用接口客戶端的IP,調用接口時傳入的參數ip包涵在此配置文件才能調用人力資源WebService服務的所有接口。

5、流程引擎--表單管理--表單管理,創建自定義表單

點擊“新建”按紐,彈出新建表單模態窗,填寫“表單名稱”,最后點擊“保存”按紐。

“批量刪除”按紐旁邊文本框中輸入填寫的表單名稱,點擊搜索,查詢添加的表單,然后編輯該表單

維護表單相關字段信息

6、流程引擎—路徑管理—路徑設置,創建流程

選擇流程放在哪個路徑目錄下,然后點擊目錄文件夾,再點擊“添加”按紐,填寫路徑流程信息

基礎設置--基本信息,只需要填寫“路徑名稱”、“對應表單”2個字段,其它可以不添加或修改

流轉設置--節點信息,--編輯,添加流程節點,只需要添加“創建“、“歸檔“ 2 個節點

給節點,添加操作者,如下圖所示

給節點,設置表單內容,如下圖所示

流轉設置--出口信息,添加出口信息即流程結束節點,如下圖所示

7、查看流程Id(非常重要)

調用創建流程接口時,需要使用流程Id(workflowId)

調用創建流程接口時,需要創建人Id(creatorId),該值對應的是泛微OA系統用戶表中的用戶Id

8、門戶--個人辦公,配置消息顯示

附.net代碼

///

/// 調用泛微OA系統接口

///

public class EcologyManager

{

ILog log = log4net.LogManager.GetLogger("EcologyManager");

static String basePushUrl = ConfigurationManager.AppSettings["EcologyMobilePushUrl"];

static String key = ConfigurationManager.AppSettings["EcologyMobilePushKey"];//emobile后臺的推送秘鑰

static String messageUrl = ConfigurationManager.AppSettings["EcologyMobileMessageUrl"];

static String messageTypeId = ConfigurationManager.AppSettings["EcologyMobileMessageTypeId"];

static String workflowServiceUrl = ConfigurationManager.AppSettings["EcologyWorkflowServiceUrl"];

static String hrmServiceUrl = ConfigurationManager.AppSettings["EcologyHrmServiceUrl"];

static String workflowId = ConfigurationManager.AppSettings["EcologyWorkflowId"];

static String workflowLevel = ConfigurationManager.AppSettings["EcologyWorkflowLevel"];

static String hrmIpAddress = ConfigurationManager.AppSettings["EcologyHrmIpAddress"];

///

/// 向泛微移動端推送消息

///

/// 消息

/// 接收者的loginid,多用戶使用英文半角逗號分開

///

public void PushMobileMessage(string message, string receiverId)

{

try

{

//url = url ?? messageUrl + "?account=" + receiverId;

string badge = "1"; //消息數量+1

HttpClient httpClient = new HttpClient();

httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1");

Dictionary para = new Dictionary();

para.Add("messagetypeid", messageTypeId);//在mobile后臺注冊的消息類型id

para.Add("module", "-2"); //標示屬于自定義消息

para.Add("url", messageUrl);

string paraJson = Sheng.Kernal.JsonHelper.Serializer(para);

StringBuilder sendMsg = new StringBuilder();

if (message.Length > 100)

message = message.Substring(0, 100) + "...";

sendMsg.Append(receiverId);

sendMsg.Append(message);

sendMsg.Append(badge);

sendMsg.Append(paraJson);

sendMsg.Append(key);

string hash = Md5Hex(sendMsg.ToString());

List> paramList = new List>();

paramList.Add(new KeyValuePair("userid", receiverId));

paramList.Add(new KeyValuePair("msg", message));

paramList.Add(new KeyValuePair("badge", badge));

paramList.Add(new KeyValuePair("para", paraJson));

paramList.Add(new KeyValuePair("hash", hash));

HttpResponseMessage response = httpClient.PostAsync(new Uri(basePushUrl), new FormUrlEncodedContent(paramList)).Result;

log.Info($"Ecology移動端消息推送:{Environment.NewLine}用戶工號:{receiverId },消息內容:{message };{Environment.NewLine}接口響應結果:{Sheng.Kernal.JsonHelper.Serializer(response)}");

}

catch (Exception ex)

{

log.Error($"Ecology移動端消息推送:{Environment.NewLine}用戶工號:{receiverId },消息內容:{message };{Environment.NewLine}接口異常,異常信息:{ex.Message},異常堆棧信息:{ex.StackTrace}");

}

}

///

/// 向泛微電腦端推送消息

///

/// 消息標題

/// 消息接收人

public void PushPCMessage(string title, int ecoloryUserId)

{

try

{

//主字段

WorkflowRequestTableField[] wrti = new WorkflowRequestTableField[1]; //字段信息

wrti[0] = new WorkflowRequestTableField();

WorkflowRequestTableRecord[] wrtri = new WorkflowRequestTableRecord[1];//主字段只有一行數據

wrtri[0] = new WorkflowRequestTableRecord();

wrtri[0].workflowRequestTableFields = wrti;

WorkflowMainTableInfo wmi = new WorkflowMainTableInfo();

wmi.requestRecords = wrtri;

WorkflowBaseInfo wbi = new WorkflowBaseInfo();

wbi.workflowId = workflowId;

WorkflowRequestInfo wri = new WorkflowRequestInfo();//流程基本信息

wri.creatorId = ecoloryUserId.ToString();//接收人

wri.requestLevel = workflowLevel; //0 正常,1重要,2緊急

wri.requestName = title;//流程標題

wri.workflowMainTableInfo = wmi;//添加主字段數據

wri.workflowBaseInfo = wbi;

//執行創建流程接口

WorkflowService workflowService = new WorkflowService();

workflowService.Url = workflowServiceUrl;

String requestid = workflowService.doCreateWorkflowRequest(wri, ecoloryUserId);//接收人

log.Info($"Ecology電腦端消息推送;{Environment.NewLine}泛微USERID:{ecoloryUserId },消息內容:{title }{Environment.NewLine}接口響應結果:{requestid}");

}

catch (Exception ex)

{

log.Error($"Ecology電腦端消息推送;{Environment.NewLine}泛微USERID:{ecoloryUserId },消息內容:{title }{Environment.NewLine}接口異常,異常信息:{ex.Message},異常堆棧信息:{ex.StackTrace}");

}

}

///

/// 根據工號獲取泛微用戶信息

///

/// 工號

///

public EcologyUser GetEcologyUserByWorkCode(string workCode)

{

EcologyUser ecologyUser = new EcologyUser();

try

{

//調用泛微OA系統人力資源接口

//需要在泛微OA系統的安裝目錄 /Ecology/WEB-INF/prop/HrmWebserviceIP.properties 配置文件中配置調用接口客戶端的IP(=hrmIpAddress),否則無法調用人力資源相關接口

HrmService hrmService = new HrmService();

hrmService.Url = hrmServiceUrl;

//獲取泛微所有用戶

string resultXml = hrmService.getHrmUserInfoXML(hrmIpAddress, "", "", "", "", "");

log.Info("調用泛微OA人力資源getHrmUserInfoXML接口,接口返回數據:" + resultXml);

if (string.IsNullOrWhiteSpace(resultXml)

|| resultXml == "")

{

return ecologyUser;

}

//xml轉成List

List userBeanList = Sheng.Kernal.JsonHelper.XmlToList(resultXml, "UserBean-array");

if (userBeanList.Any() == false)

{

return ecologyUser;

}

ecologyUser = userBeanList.FirstOrDefault(x => x.WorkCode == workCode);

}

catch (Exception ex)

{

log.Error("調用泛微OA人力資源getHrmUserInfoXML接口異常,異常信息:" + ex.Message + Environment.NewLine + ex.StackTrace);

}

return ecologyUser;

}

private static string Md5Hex(string data)

{

MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

byte[] dataHash = md5.ComputeHash(Encoding.UTF8.GetBytes(data));

StringBuilder sb = new StringBuilder();

foreach (byte b in dataHash)

{

sb.Append(b.ToString("x2").ToLower());

}

return sb.ToString();

}

}

View Code

第三方系統向泛微OA系統推送消息就為您介紹到這里,感謝您關注懶咪學編程c.lanmit.com.

本文地址:https://c.lanmit.com/bianchengkaifa/net/101281.html

總結

以上是生活随笔為你收集整理的泛微oa java .net_第三方系统向泛微OA系统推送消息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。