文章目录
- OA流程-表单内嵌第三方系统页面
- 一、主干字段
- 1 url:申请节点-节点后操作赋值:
- 2 申请人、部门、工号等流程自带字段(此处省去讲解);
- 3 接口中包含的字段
- 二、配置表单-跳转
- 方式1 iframe内嵌
- 方式2 js跳转
- 三、续
OA流程-表单内嵌第三方系统页面
场景:第三方系统(如iwork平台)对接OA,在OA搭建流程,OA只提供流程图,通过内嵌iwork的表单页面,也在iwork平台审批流程,不过OA可以监控流程走向,记录申请人、审批人等主干信息。
优势:已有OA系统,避免在自研平台再次开发OA流程。
一、主干字段
既然OA需内嵌第三方系统页面,得需记录目的页面url,因此,OA主要表单字段可有如下:
1 url:申请节点-节点后操作赋值:
2 申请人、部门、工号等流程自带字段(此处省去讲解);
3 接口中包含的字段
如需有接口对接,则需新建接口中使用的字段,如id等,具体根据实际情况新增。
二、配置表单-跳转
方式1 iframe内嵌
需清空默认表单样式,在空白表单里选择指定区域-插入-Iframe区域。
行宽:100%
行高:自定义
插入过后,点击Iframe区域,指定src:
方式2 js跳转
此处直接贴出样例:
<script>jQuery().ready(function(){ sendCreateRequest();}); // 发送同步请求 function sendCreateRequest(){let path = window.location.href;let regex = /ismonitor=1/; if (regex.test(path)){console.log("该页面为流程监控")return;}let dqczzId = WfForm.convertFieldNameToId("dqczz"); // 当前操作者let czztokenId = WfForm.convertFieldNameToId("czztoken"); // 操作者tokenlet operatorid = wfform.getGlobalStore().commonParam.currentUserid; // 系统获取当前操作者idlet {requestid,workflowid} = WfForm.getBaseInfo(); // 解构,取对象的requestid、workflowid字段let contractid = WfForm.convertFieldNameToId("contractId");let templateid = WfForm.convertFieldNameToId("templateId");WfForm.changeFieldValue(dqczzId, {value:operatorid}); // 每次打开都赋值当前操作者const page="/api/comen/iWorkAction/getToken";console.log("operatorid:" + operatorid)console.log("lastId:" + WfForm.getFieldValue(dqczzId))let env = "cs";let host = "http://192.168.8.32:8082";let businessAddr = `${host}/dms/mobile/protocol/approval/cancelDetail`;let templateidValue = WfForm.getFieldValue(templateid);let contractidValue = WfForm.getFieldValue(contractid);fetch(page, {method: 'POST', headers: {'Content-Type': 'application/json'},body: JSON.stringify({"operatorid": operatorid,"env": env})}).then(function(response) {return response.json();}).then(function(data) {let token = data.data.data.token;console.log("token:" + token);if(token == ''){alert("未查询到操作者信息")} else {// WfForm.changeFieldValue(czztokenId, {value:data.data.data.token});let Url = `${businessAddr}/${contractidValue}/${templateidValue}/${requestid}?env=iframe&token=${token}`;window.em.openLink({url: Url,openType: 2});}});}
</script>
配置完成。
三、续
第三方对接的流程,大概率有接口,需自行配置。