1、OA与U9系统集成方案OA与U9系统集成方案建立日期: 2015-08-15文控编号:作者:陈建宇客户项目经理:日期:用友项目经理:日期:文档信息项目编号文档编号项目名称标题类别OA与U9系统集成方案当前阶段开发方案摘要文档拥有者优普信息科技有限公司文件OA与U9系统集成方案V1.0修改记录日期版本作者修改内容2015-08-151.0陈建宇初始版本审阅记录日期版本姓名职位备注审批记录日期版本姓名职位签名目录1.引言 41.1项目名称 41.2项目背景和内容概要 41.3相关资料、缩略语、定义 41.4目标 41.5范围 41.6假定条件与约束限制 41.7对现有系统的影响 42.功能详细需求
2、分析 52.1整体业务流程图 52.2详细功能 52.2.1单点登录 52.2.1.1 OA单点登录U9 52.2.1.1.1前提条件 52.2.1.1.2业务规则 52.2.2消息传输 62.2.2.1 U9消息记录传输到OA 62.2.2.1.1前提条件 62.2.2.1.2业务规则 63.开发平台支持 103.1硬件 103.2操作系统 103.3用友产品 103.4开发语言 103.5数据库 103.6程序架构 101. 引言项目名称OA与U9集成项目背景和内容概要客户同时使用用友U9系统和第三方OA系统软件。客户系统在OA系统中能同步登录到U9系统,并能处理OA中的处理U9系统中的部
3、分操作。相关资料、缩略语、定义无目标实现OA系统中对U9系统的单点登录。将U9中的消息同步传输到OA系统中,并由OA系统直接弹出U9界面进行相关数据处理。范围U9使用的版本:U9V3.0客开组织模式:多组织假定条件与约束限制本文档仅适用于本次调研所获取的需求信息对现有系统的影响2. 功能详细需求分析整体业务流程图详细功能2.1.1 单点登录OA单点登录U9前提条件 用户、组织、企业等相关借出数据需建立关联关系,或做数据同步。 两系统部署在相同网络条件下,能相互连接访问。业务规则在OA系统中,通过U9单点登录地址,将相关的参数传输到地址中,通过地址连接打开U9主页。跳转地址:http:/XXXX
4、XX/u9/api/v1/autologin.aspx?user_code=&user_password=&enterprie_id=&organization_id=&return_url=http:/XXXXXX/u9/:对应U9链接user_code=:U9用户编码user_password=:U9用户登录U9的密码,此处密码为明文enterprise_id=:U9企业编码,可在U9管理控制台查看organization_id=:U9组织IDreturn_url=:登录到U9主页后,需要U9系统跳转到那个页面的URI地址,如为空则跳转到U9主页拼接完该链接后,通过弹出页面的开发打开该链接
5、即可自动登录到U9系统中。2.1.2 消息传输U9消息记录传输到OA前提条件OA需要提供数据传输接口。U9增加相关BE插件。业务规则在U9系统中增加UFIDA.U9.CS.Unify.TaskBE.TaskBE 的Inserted插件,在插件中调用OA系统提供的接口,将数据写入到OA系统中。对于工作流消息,因为需要通过对应的消息去打开U9中相关的单据界面和界面数据,因此需要将工作流消息所对应的弹出界面URI同步传输过去,但U9在消息记录中并未记录相关信息,需自行拼接。所输出的URI就为对应单点登录地址中的URI参数。拼接事例:string formID = string.Empty; /FOR
6、Midstring entityID = string.Empty; /单据信息IDstring DocClass = string.Empty; /单据类全称string Instance = string.Empty; /InstanceIDstring SourceOrg = string.Empty; /来源组织string ObjectOrg = string.Empty; /目标组织if (task != null ) StringBuilder sbsql = new StringBuilder(); UFIDA.U9.CS.Workflow.WorkflowInstanceBE
7、.ProcessTrack pTrack = UFIDA.U9.CS.Workflow.WorkflowInstanceBE.ProcessTrack.Finder.FindByID(task.Source_Entity.ID);if (pTrack = null)return; DocClass = pTrack.WaitingUser.FlowState.FlowInstance.OwnerEntity.ID.ToString(); entityID = pTrack.WaitingUser.FlowState.FlowInstance.OwnerEntity.Key.EntityType
8、; Instance = pTrack.WaitingUser.FlowState.FlowInstance.Instance.ToString(); SourceOrg = task.SourceOrg.ID.ToString(); ObjectOrg = task.ObjectOrg.ID.ToString();#region通过实体ID和实体类全称获取对应FROMIDGuid FlowInstanceID = pTrack.WaitingUser.FlowState.FlowInstance.Instance; UFIDA.U9.CS.Workflow.WorkflowBP.Proxy.
9、GetRefFormInfoProxy proxy = new CS.Workflow.WorkflowBP.Proxy.GetRefFormInfoProxy(); proxy.InsID = FlowInstanceID.ToString(); CS.Workflow.WorkflowBP.RefFormDTOData refFormDto = proxy.Do(); #region不用这个取数方式了/List ParamList = new List();/ParamList.Add();/ParamList.Add(ObjectOrg);/UFIDA.U9.AAI.TransEntry
10、.PageNavigate pNavigate = new UFIDA.U9.AAI.TransEntry.PageNavigate(); #endregionstring uri = refFormDto.URI;int i = uri.IndexOf(?);string fromID=string.Empty;if (i 0) fromID = uri.Substring(0,i);else fromID = uri;#endregion/string formID = string.Empty; /FORMid/string entityID = string.Empty; /单据信息I
11、D/string DocClass = string.Empty; /单据类全称/string Instance = string.Empty; /InstanceID/string SourceOrg = string.Empty; /来源组织/string ObjectOrg = string.Empty; /目标组织StringBuilder sburi=newStringBuilder(); sburi.Append(http:/XXXX/U9/ufsoft/simple.aspx?lnk=); sburi.Append(fromID); sburi.Append(&chromeTyp
12、e=4&ShowType=ShowModal); sburi.Append(&ID=+entityID); sburi.Append(&CS_IsPopWebpart=True&InstanceID=+Instance); sburi.Append(&FlowFlag=True&CS_RefreshParent=True&EntityType=+DocClass); sburi.Append(&TargetOrganization= + SourceOrg + &_sk=_SK50604&_curOId= + SourceOrg + &RefereshThis=1&ShowAtlasModal
13、Dialog=true);OA接口调用需要根据对应OA系统做相应的调整。为了方便使用,需将对应接口的地址做成可配置的,如果还有一些需要配置的参数,都需要在参数设置中预制。例如泛微的OA系统,在调用接口时需要传输流程实例,但是实例又是会变动的,因此需要将地址和实例都增加到参数设置中,这些参数是用于整个系统间的传输,所以应该部署在基础模块中。参数设置事例:declareApplicationbigintdeclareCreatedBynvarchar(20)declareIDbigint-设置应用的IDsetApplication=3000-设置创建名称setCreatedBy=admin-预置参
14、数的初始ID(年月日时分秒+01纯数字)setID=CAST(CONVERT(varchar(100),GETDATE(), 112)+replace(CONVERT(varchar(100),GETDATE(), 108),:,)+01asbigint)-为了可重复执行,创建前先删除-删除参数值表中关于本应用的数据(此参数值表区分多组织)DELETEFROMBase_ProfileValueWHEREprofilein(SELECTIDFROMBase_ProfileWHERECodein(OAWebSerAddress,WorkFlowId)-删除参数表中关于本应用的数据(所有组织共用此参数表)DELETEFROMBase_ProfileWHERECodein(OAWebSerAddress,WorkFlowId)-删除参数(多语)表中关于本应用的数据DELETEFROMBase_Profile_TrlWHEREIDin(selectIDfromBase_ProfileWHERECodei
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1