公司由于开源节流的缘故决定导入简道云来减少购买M365 license的数量.
目前简道云提供了
公共模式:
优势:人员有邮箱并验证后,可以直接使用流程的邮件通知功能.
劣势:
1.企微要用,需要做单点登录和通讯录同步
2.无法使用企微消息通知的功能,要用的话,需要额外定制开发
企微模式:
优势:
1.无需做单点登录和通讯录同步工作,可以直接同步企微人员
2.可以直接使用企微消息通知的功能
劣势:不支持邮件通知.
在目前两种模式都需要额外开发才能支持同时企微通知和邮件通知的前提下.优势更多的企微模式,作为了开发方案.
数据流向和防火墙需求总览
flowchart TDRMC["RMC服务器 (Python应用)<br>您的服务器"]JW[企业微信]JD[简道云]DB[("东宝人事数据库<br>(内网 SQL Server)")]Mail[邮件服务器 SMTP]%% 数据准备流程 (低频)RMC -- "① GET/POST 请求<br>出站规则: 443/TCP → JD" --> JDRMC -- "② GET/POST 请求<br>出站规则: 443/TCP → JW" --> JWRMC -- "③ 内网SQL查询<br>无需防火墙规则" --> DBRMC -- "④ PUT/POST 数据<br>出站规则: 443/TCP → JD" --> JD%% 消息处理流程 (实时)JD -- "Webhook 通知<br>入站规则: 443/TCP ← JD" --> RMCRMC -- "⑤ 内网SQL查询<br>无需防火墙规则" --> DBRMC -- "⑥ 发送邮件<br>出站规则: 25/587/TCP → Mail" --> Mail%% 样式linkStyle 0,3 stroke:green,stroke-width:2px,color:green;linkStyle 1 stroke:blue,stroke-width:2px,color:blue;linkStyle 2,4 stroke:orange,stroke-width:3px,color:orange;linkStyle 5 stroke:red,stroke-width:2px,color:red;
下面为具体流程图:
flowchart LRsubgraph A [数据准备流程 低频定时任务]A1[RMC服务器: 定时任务触发] --> A2["调用简道云API<br>获取通讯录"]A2 --> A3["调用企微API<br>映射到工号"]A3 --> A4["直连内网SQL Server<br>查询人事数据"]A4 --> A5[数据存入本地数据库]A5 --> A6["回传数据至简道云API"]endsubgraph B [消息处理流程 高频实时Webhook]B1[简道云: 表单事件触发] --> B2["Webhook POST请求<br>至RMC服务器"]B2 --> B3[RMC服务器: 立即返回200]B3 --> B4[异步任务: 查询本地数据库]B4 --> B5["异步任务: 直连内网SQL Server<br>验证获取数据"]B5 --> B6[发送邮件通知]B6 --> B7[记录日志]B5 -. "若查询失败" .-> A3end%% 关联系统A2 -.-> JD_API[简道云]A3 -.-> JW_API[企业微信]A4 -.-> DB[内网东宝DB]A6 -.-> JD_API2[简道云]B2 -.-> JD_Webhook[简道云]B5 -.-> DB2[内网东宝DB]B6 -.-> Mail[邮件服务器]classDef default fill:#e6f3ff,stroke:#333,stroke-width:1px;classDef process fill:#fff9e6,stroke:#333,stroke-width:1px;classDef system fill:#e6ffe6,stroke:#333,stroke-width:1px;class A1,A2,A3,A4,A5,A6,B1,B2,B3,B4,B5,B6,B7 process;class JD_API,JW_API,DB,JD_API2,JD_Webhook,DB2,Mail system;