积木快速开发平台

技术团队文档示例


积木工作流

<h2>积木工作流</h2> <p>部分系统有工作流需求,之前设计过一个简单审批流程,简单的说就是利用“新增编辑按钮”,添加了一个按钮“审核”配置一个审核视图即可完成审核功能,见:综合业务=》功能演示=》通知(简单审批流程) 然而大伙有真工作流需求(也不知道是不是伪需求~_~),现集成钉钉实现积木工作流功能。 效果如下: <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/0cafdd136dcd9f3ffbf0fa98968be8ec?showdoc=.jpg" alt="制定流程" /> <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/342e5ee0ce1af220705fa47c265ba984?showdoc=.jpg" alt="发起审批" /> <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/96fdb3fe1c2e2eff793d34cf4ebfd4cf?showdoc=.jpg" alt="审批列表" /> <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/f290350cdff92511e6dc316f63ba4905?showdoc=.jpg" alt="审批1" /> <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/deee0b199525c92d5688d2d9426d9451?showdoc=.jpg" alt="审批2" /> <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/c23af82c979a8b9a265edcf9e6b27ef7?showdoc=.jpg" alt="审批查看" /> 具体见:<strong>综合业务=》功能演示=》通知(钉钉审批流程)</strong></p> <p>组成部分:</p> <ul> <li>开一个钉钉组织/公司(个人也可以申请)</li> <li>组织配置本地组织和钉钉的关联以及相关钉钉的系统参数</li> <li>开发具体业务流</li> </ul> <p>集成步骤如下:</p> <ol> <li>钉钉开户(一个组织) 企业注册地址: <a href="https://oa.dingtalk.com/register_new.htm?source=1008_OA&lwfrom=2018122711522903000&succJump=oa">https://oa.dingtalk.com/register_new.htm?source=1008_OA&lwfrom=2018122711522903000&succJump=oa</a>#/</li> <li> <p>在钉钉开放平台创建应用(企业内部开发=》小程序)</p> <blockquote> <p>1.登录开放平台:<a href="https://open-dev.dingtalk.com">https://open-dev.dingtalk.com</a></p> <ol> <li>企业内部开发=》小程序 创建应用,默认参数即可</li> <li>创建完,确认安全域为你的服务器、接口权限需要把企业通讯录权限都申请</li> <li>提取钉钉参数: corpid:开放平台首页左上角 AgentId:点击应用,应用首页=》应用信息=》查看详情,下同 AppKey: AppSecret:</li> </ol> </blockquote> </li> <li>bb_h.bb_dd_cfg 配置钉钉渠道 其中 <strong>corp_id、agent_id、app_key、app_secret</strong>依次为上面描述的钉钉参数 org_id 为机构编号,is_init设置为0(<strong>发起 钉钉数据同步 后如果成功状态将修改为1,为1则为初始化成功了</strong>),domain_url设置为:<a href="http://ip:port/oa/ddEventReceive/org_id">http://ip:port/oa/ddEventReceive/org_id</a> 如上基本已经打通钉钉和积木OA</li> <li>执行 定时调度=》钉钉数据同步 ,即可完成 用户、角色、部门的同步 以上步骤即可完成用户、角色、部门的同步,记得修改同步过来的用户的角色以及角色相关的权限,<strong>有了钉钉以后系统可以不用维护用户和角色了</strong>。</li> <li> <p>钉钉管理平台建立我们的第一个工作流如:通知审批(<strong>工作台=》审批=》创建新审批</strong>) 创建审批可以使用已有模板或者自定义模板。 我们主要介绍表单设计,其他的都是一些标准的设置(基础设置、流程设置、高级设计)。 如下: <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/f298ef035193bbf88b1f38e5de8161db?showdoc=.jpg" alt="表单设计" /> 我们钉钉表单定义了4个控件,标题依次为:<strong>标题,多行输入框,发布区域,详情</strong> 同时此流程模板号(processCode):<strong>PROC-80ADFE6C-0329-4E7E-B11E-0BE8024D1ADF</strong>,在地址栏中如上截图</p> </li> <li> <p>新建一个列表视图(<strong>目前只有列表视图支持发起钉钉审批</strong>) 我们刚才在钉钉建立的审批叫:通知审批,其实是以我们 t_notice表配套的一个审批流,所以我们现在以t_notice建立一个 列表视图:<strong>通知(钉钉审批流程)</strong></p> </li> <li>启用钉钉审批,只需做以下三步即可 <blockquote> <ol> <li>元对象 拓展配置增加配置.具体说明见附录1 <img src="https://www.showdoc.cc/server/api/common/visitfile/sign/a04e25c95bd70b261404baa658cebbdb?showdoc=.jpg" alt="" /></li> <li>按钮管理,把此菜单的“送审”按钮,由隐藏改成显示</li> <li>元对象添加 虚拟字段“流程状态”,以显示流程状态,数据类型填写-1(本条不是必须的,只是用来显示流程状态)</li> </ol> </blockquote></li> </ol> <p><br><br><br><br></p> <p>PS1:<strong>同步的手机号后2位被我调整00,为了不把测试小伙伴的手机号泄露: OaService.saveUser 方法中屏蔽相关代码即可(非生产部署都会屏蔽)</strong> PS2:<strong>钉钉中的角色建议删除一部分,否则将同步3页角色到积木会导致角色选择部分很难找到合适角色。</strong> PS3:<strong>不建议bb_dd_cfg配置多个渠道,推荐修改我的那条数据(主要原因是角色部分不支持多租户)</strong> PS4:<strong>钉钉用户才可以发起审批,比如超管用户bb不能发起审批</strong> PS5:<strong>数据库至少使用 20200517 中的脚本</strong></p> <p>附录1:</p> <pre><code>{ "bb_oa":{ --积木工作流配置字段 "process_code":"PROC-0BC478AF-63D5-4B50-ABA7-9A6CBDEEB1FA", --钉钉流程模板号 "status":"1", --1启用,0-不启用,想关闭流程,删除此bb_oa或者把 status设置为0 "field":[ --发起审批的时候字段(本地字段以及对应的钉钉的表单标题) { "title":"标题",-- 左侧为元对象字典,右侧为钉钉的表单标题(下同) "order":1 --钉钉中的序号 }, { "content":"多行输入框", "order":2 }, { "type":"发布区域", "order":3 } ], "bb_view_url":"详情", --bb_view_url 为菜单的查看详情页面(其实是是另外一个),本条以为这将把 查看详情地址 送入 详情标题中 "syn_table":"t_notice", --审批后会将审批结果同步到源表的相关字段(如果需要的话) "syn_field":{ --同步字段,左侧为支持的字段,右侧为需要同步的目标表字段 "status":"", --审批状态:0=创建,1=运行中,2=被终止,3=完成(int) "result":"status", --审批结果:1=同意,0=拒绝,2=终止,-1=审核中(int) "remark":"reason", --审批原因(varchar(256)) "last_userid":"verify_user",--最后审批人(int) "finish_time":"verify_time" --审批时间(datetime) } } }</code></pre>

页面列表

ITEM_HTML