第三方app集成移动BOS应用

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

第三方app集成移动BOS应用

前言:

        第三方app集成移动BOS应用需要向总部申请专项服务,走完专项服务后总部会提供一个企业号(eid),作为客户在移动BOS平台的唯一标识,对应客户唯一的eas服务;

 

        移动BOS是公网应用,要求客户的EAS服务器有公网可访问的地址。



概述:

        第三方app打开移动BOS应用的主页,移动BOS调用到EAS接口,EAS那边需要做的首先是做身份验证(即会访问app做身份验证),登录EAS后返回数据到移动BOS应用展示。

        

        身份验证逻辑:token做单点登录参数,使用这个参数可以解析到EAS用户信息,token可以第三方app生成,也可以自行开发加密生成,访问移动BOS应用链接时带上token,EAS服务端会请求解密接口tokenurl(需要开发)获取EAS用户信息,接口返回正确的EAS用户信息后,移动BOS完成身份验证并登陆EAS,第三方app的集成登陆完成。

        

        应用的集成架构如下简图:

        

        移动BOS应用包括总部开发的标准轻应用,如流程助手、shr员工自助、shr天天勤等,也包括客户在移动BOS上自己开发的轻应用。

 

        本文档会打开多份说明链接,请先认真研读集成过程步骤再实施!



一、  注册开通移动BOS平台服务

  • 注册过程移动bos平台会访问eas的接口,需要eas开放外网地址


  • 如果现场网络要求严格,可以仅代理出EAS服务的mbos工程的接口即可,例如http://ip:端口/mbos(集群请用集群端口,非集群用实例端口)


  • 如果EAS有防火墙拦截规则,请给移动BOS平台加上访问白名单,IP: 121.37.207.73


1、更新移动BOS补丁

        请按照说明完成补丁更新:点击这里查看更新说明


2、配置数据中心

        配置文件:{EASHOME}/eas/server/properties/XTServiceConfig.xml

        在DBInfo配置中添加一个数据中心配置项,如图(箭头指向的配置项都需要修改):


        配置项可从本文末尾提供的"XTServiceConfig.配置示例.xml"中对应部分截取,也可以在这份文件的基础上修改,然后替换EAS里面的。

        修改完成后用浏览器打开检查文件格式是否有问题。

        如果EAS是多机集群,需要修改所有机器的配置文件,修改完成后重启eas服务。


3、注册开通移动BOS平台

        

        注册前请确认DBInfo已经配置,并且已经重启服务!注册过程移动BOS会请求到EAS服务器!

        使用总部提供的企业号(eid)注册,注册界面的说明可忽略,按照本文指引注册,点击以下链接前往注册:

https://mbos.kdeascloud.com/mbos/auth/loginForm?type=group_register

 

        1) 、拷贝eid到输入框,点击下一步;

        2) 、拉到最后,填写EAS服务器地址,点击下一步;

        3)  、后继步骤按指引操作完成企业开通。


小结:

  • 通过以上步骤,客户已经可以在移动BOS平台登录,从主页点击企业登录



  • 使用administrator登录可管理应用的许可,给EAS账号赋予开发权限


  • 使用EAS开发者账号登录可管理平台上的轻应用




二、移动端集成应用开发配置

        开发说明:要将移动BOS应用集成到第三方app,还需要现场进行接口开发,开发工作可以是第三方app提供商,也可以是我方或客户方开发和实施人员,具体开发工作请现场去协商。


        如果是第三方app提供商进行开发,请参考概述部分的应用架构简略图;


        如果是我方或客户方进行开发,请参考如下应用架构简略图,图中现场搭建的云服务也可以部署在EAS服务器上。

        

1、生成token参数

        1)、如果第三方app打开链接会加上token参数,则接口1可以不用开发,移动端直接访问到移动BOS云服务。

        2)、如果第三方app打开链接不会加上token,则提供接口1给到第三方app,接口生成一个token,再跳转到移动BOS云服务。


        以下是常用应用的链接地址,token请换成实际可用的参数:

        流程助手(红色的是需要修改的参数):

        https://mbos.kdeascloud.com/mbos/page/loadPage?appid=10036&storeEid=21231&path=lczs2&name=lczslist.custom&eid=K172K145K106K1&token=cb45988cms


        shr轻应用,如员工自主、经理人自主、天天勤等,请在专项服务中咨询相关人员    


        现场在移动BOS上的开发的应用,可在预览页面获取到应用的链接,在链接后面加上token参数即可


2、开发接口tokenurl

        此接口提供给EAS服务端调用,接口的逻辑为根据这个token解析出usernumber,返回JSON的格式数据,如下:

{
    "status":"0",       --0 就是成功
    "message":"lwb001"  --成功的时候传递usernumber (也就是eas登录的账号),失败的时候传递失败信息
}

        这个接口确保能在EAS服务器上访问即可,不要求公网访问,在网页访问测试:http://ip:port/a.action?token=XXXXXXX,看返回的数据是否正确!


3、修改EAS服务端配置文件

        配置文件:{EASHOME}/eas/server/properties/XTServiceConfig.xml

        修改说明:

        1)、在XTServiceConfig.xml 的 config节点下增加一个OtherApp配置项;

        2)、 tokenurl为接口改为正确的地址,EAS端会发起GET请求;

        3)、appid跟secret可根据业务场景配置,业务场景用不到使用默认的配置即可。



        配置项可从本文末尾提供的"XTServiceConfig.配置示例.xml"中对应部分截取,也可以在这份文件的基础上修改,然后替换EAS里面的。

4、重启EAS,进行测试

        注意:如果EAS是多机集群,另外机子上的配置文件要同步修改!




三、集成常见问题

1、应用打开报错排查步骤:

        1)、确保移动bos平台可以登录,否则需要排查EAS外网地址是否正确,是否可通过公网访问,以及服务状态是否正常!

        2)、确保移动端访问移动BOS应用时加上了token参数!

        3)、确保tokenurl在eas服务器上能访问,并且能通过token解析到用户信息,具体可看EAS的apusic日志的输出!





四、工作流待办消息集成(参考流程助手)

        如果第三方app支持推送待办消息,客户也需求将EAS工作流的待办任务往第三方app推送,实现点开待办消息进入到流程助手应用中进行审批,可借鉴流程助手推送云之家消息实现方式开发:


        注意:此集成方法只适用EAS8.5(包含)以上版本,否则咨询总部相关支持人员提供开发文档。


1、 推送审批、决策节点的待办任务消息

        使用此功能需要实现一个接口ITaskHandler

        接口全路径:com.kingdee.eas.base.message.app.ITaskHandler

        接口类所在包名:bs_message-server.jar

        实现方法:public void execute(AssignmentCreationEvent ed);


        流程走到对应的任务节点,或转交、加签、重新指定执行人等,在任务产生时会调用该方法。其中参数ed包含一些任务信,具体包含的信息可通过调试查看,在该方法内实现向第三方app推送待办消息的逻辑。

        如果token不是第三方app提供,那就将自己开发的接口1作为待办消息的链接,待办消息的链接,最终访问到移动BOS的待办链接如下(红色字体都是需要实际修改的参数):

        https://mbos.kdeascloud.com/mbos/page/loadPage?path=lczs2&storeEid=21231&name=approveui.navui&eid=K172K145K106K1&assignId=03d8ddbd-c1b1-4327-93cc-10b678736953WFWKITEM&token=cb45988cms

        

        如果当前的任务节点绑定有绑定移动BOS开发的界面,需要去查询数据库表的绑定情况,sql如下,查询参数请调试获取。

    SELECT url FROM T_WFR_MBOS_WORKFLOW  WHERE actDefId in (?) and procdefid in (?)

        将查询到的URL做一下replace

    url.replace("page/loadPage", "mbosw/getWorkflowUrl");

        

        最终访问到移动BOS的待办链接如下,链接中的billID需要做一下URLEncod,

        https://mbos.kdeascloud.com/mbos/mbosw/getWorkflowUrl?eid=K172K145K106K1&path=mcpbc/bizAccount&name=bizAccountEdit.editui&assignId=03d8ddbd-c1b1-4327-93cc-10b678736953WFWKITEM&billID=bnwt202103vj&token=cb45988cms


        消息链接的处理逻辑可反编译查看流程助手的相关实现:

        实现类:com.kingdee.bos.workflow.lightapp.message.WFMessageAdapter

        方法:getContent

        所在包名:bs_message-server.jar


        修改配置:{EASHOME}/eas/server/profiles/serverN/config/handlersconfig.properties

        将流程助手处理类更换为自己开发的处理类,每个server下的配置都要修改,

        如果EAS是多机集群,配置文件需要同步修改


2、 推送通知消息

        使用此功能需要实现一个接口MessageListener

        接口全路径:com.kingdee.bos.service.message.MessageListener

        接口类所在包名:message.jar

        实现方法:public abstract int onMessage(Message paramMessage); 


        这个方法在消息中心获得新的消息的时候会主动调用,如消息节点消息、预警消息、传阅消息、催办消息、最后期限消息等等,其中参数message包含消息,具体包含的信息可通过调试查看,在该方法内实现向第三方app推送消息的逻辑,消息推送成功返回1即可。

        最终访问到移动BOS的消息链接如下,可打开消息对应的单据界面(红色字体都是需要实际修改的参数):


        https://mbos.kdeascloud.com/mbos/page/loadPage?path=lczs2&viewtype=message&type=message&eid=K172K145K106K1&fpersonuserid=dfvgs3380n&fprocinstid=sa859209dfjk890inst&token=cb45988cms


        如果当前的节点绑定有绑定移动BOS开发的界面,同样需要查询绑定表T_WFR_MBOS_WORKFLOW,最终访问到移动BOS的待办链接如下:

        https://mbos.kdeascloud.com/mbos/page/loadPage?eid=K172K145K106K1&path=mcpbc/bizAccount&name=bizAccountEdit.editui&billID=bnwt202103vj&storeEid=21231&name=approveui.navui&viewtype=message&type=message&fpersonuserid=dfvgs3380n&fprocinstid=sa859209dfjk890inst&token=cb45988cms


         消息链接的处理逻辑可反编译查看流程助手的相关实现:

        实现类:com.kingdee.bos.workflow.lightapp.message.WFMessageAdapter

        方法:getContent

        所在包名:bs_message-server.jar


        修改配置:eas/server/profiles/serverN/config/bosconfig.xml

        将listener3类更换为自己开发的处理类,每个server下的配置都要修改,其他不相干配置不要乱改,避免出现问题,请做好备份工作

        如果EAS是多机集群,配置文件需要同步修改


3 、清理第三方app待办任务

        使用此功能需要继承一个抽象类:AbstractAssignmentEventHandler

        类全路径:com.kingdee.bos.workflow.enactment.handler.AbstractAssignmentEventHandler

        类所在包名:workflowcommon.jar

        实现方法:public abstract void execute(AssignmentEvent assignmentEvent, IWfAssignment assignment);


        这个方法在任务完成或取消后调用,如审批、跳转、转交、挂起、重新指定执行人等操作,在此方法内实现清理已推送第三方app待办任务消息的逻辑。


        修改配置:eas/server/properties/wf_events.xml

        将com.kingdee.bos.workflow.handler.AssignmentHandler换成自己的实现类

        如果EAS是多机集群,配置文件需要同步修改


结语:

        第三方app集成移动bos应用并不复杂,对于遇到的问题现场应该多调试测试,多多思考。





第三方APP集成移动BOS附件.rar

第三方app集成移动BOS应用

前言: 第三方app集成移动BOS应用需要向总部申请专项服务,走完专项服务后总部会提供一个企业号(eid),作为客户在移动BOS平台的唯...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息