《最新OA与U9系统集成方案.docx》由会员分享,可在线阅读,更多相关《最新OA与U9系统集成方案.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateOA与U9系统集成方案OA与U9系统集成方案OA与U9系统集成方案建立日期: 2015-08-15文控编号:作者:陈建宇客户项目经理:日期:用友项目经理:日期:文档信息项目编号文档编号项目名称标题类别OA与U9系统集成方案当前阶段开发方案摘要文档拥有者优普信息科技有限公司文件OA与U9系统集成方案V1.0修改记录日期版本作者修改内容2015-08-151.0陈建宇初始
2、版本审阅记录日期版本姓名职位备注审批记录日期版本姓名职位签名目录1.引言41.1项目名称41.2项目背景和内容概要41.3相关资料、缩略语、定义41.4目标41.5范围41.6假定条件与约束限制41.7对现有系统的影响42.功能详细需求分析52.1整体业务流程图52.2详细功能52.2.1单点登录52.2.1.1 OA单点登录U952.2.1.1.1前提条件52.2.1.1.2业务规则52.2.2消息传输62.2.2.1 U9消息记录传输到OA62.2.2.1.1前提条件62.2.2.1.2业务规则63.开发平台支持103.1硬件103.2操作系统103.3用友产品103.4开发语言103.5
3、数据库103.6程序架构10-1. 引言1.1 项目名称OA与U9集成1.2 项目背景和内容概要客户同时使用用友U9系统和第三方OA系统软件。客户系统在OA系统中能同步登录到U9系统,并能处理OA中的处理U9系统中的部分操作。1.3 相关资料、缩略语、定义无1.4 目标实现OA系统中对U9系统的单点登录。将U9中的消息同步传输到OA系统中,并由OA系统直接弹出U9界面进行相关数据处理。1.5 范围U9使用的版本:U9V3.0客开组织模式:多组织1.6 假定条件与约束限制本文档仅适用于本次调研所获取的需求信息1.7 对现有系统的影响2. 功能详细需求分析2.1 整体业务流程图2.2 详细功能2.
4、2.1 单点登录2.2.1.1 OA单点登录U92.2.1.1.1 前提条件l 用户、组织、企业等相关借出数据需建立关联关系,或做数据同步。l 两系统部署在相同网络条件下,能相互连接访问。2.2.1.1.2 业务规则在OA系统中,通过U9单点登录地址,将相关的参数传输到地址中,通过地址连接打开U9主页。跳转地址:http:/XXXXXX/u9/api/v1/autologin.aspx?user_code=&user_password=&enterprie_id=&organization_id=&return_url=http:/XXXXXX/u9/:对应U9链接user_code=:U9用
5、户编码user_password=:U9用户登录U9的密码,此处密码为明文enterprise_id=:U9企业编码,可在U9管理控制台查看organization_id=:U9组织IDreturn_url=:登录到U9主页后,需要U9系统跳转到那个页面的URI地址,如为空则跳转到U9主页拼接完该链接后,通过弹出页面的开发打开该链接即可自动登录到U9系统中。2.2.2 消息传输2.2.2.1 U9消息记录传输到OA2.2.2.1.1 前提条件OA需要提供数据传输接口。U9增加相关BE插件。2.2.2.1.2 业务规则在U9系统中增加UFIDA.U9.CS.Unify.TaskBE.TaskBE
6、 的Inserted插件,在插件中调用OA系统提供的接口,将数据写入到OA系统中。对于工作流消息,因为需要通过对应的消息去打开U9中相关的单据界面和界面数据,因此需要将工作流消息所对应的弹出界面URI同步传输过去,但U9在消息记录中并未记录相关信息,需自行拼接。所输出的URI就为对应单点登录地址中的URI参数。拼接事例:string formID = string.Empty; /FORMidstring entityID = string.Empty; /单据信息IDstring DocClass = string.Empty; /单据类全称string Instance = string.
7、Empty; /InstanceIDstring SourceOrg = string.Empty; /来源组织string ObjectOrg = string.Empty; /目标组织if (task != null ) StringBuilder sbsql = new StringBuilder(); UFIDA.U9.CS.Workflow.WorkflowInstanceBE.ProcessTrack pTrack = UFIDA.U9.CS.Workflow.WorkflowInstanceBE.ProcessTrack.Finder.FindByID(task.Source_E
8、ntity.ID);if (pTrack = null)return; DocClass = pTrack.WaitingUser.FlowState.FlowInstance.OwnerEntity.ID.ToString(); entityID = pTrack.WaitingUser.FlowState.FlowInstance.OwnerEntity.Key.EntityType; Instance = pTrack.WaitingUser.FlowState.FlowInstance.Instance.ToString(); SourceOrg = task.SourceOrg.ID
9、.ToString(); ObjectOrg = task.ObjectOrg.ID.ToString();#region通过实体ID和实体类全称获取对应FROMIDGuid FlowInstanceID = pTrack.WaitingUser.FlowState.FlowInstance.Instance; UFIDA.U9.CS.Workflow.WorkflowBP.Proxy.GetRefFormInfoProxy proxy = new CS.Workflow.WorkflowBP.Proxy.GetRefFormInfoProxy(); proxy.InsID = FlowIns
10、tanceID.ToString(); CS.Workflow.WorkflowBP.RefFormDTOData refFormDto = proxy.Do(); #region不用这个取数方式了/List ParamList = new List();/ParamList.Add();/ParamList.Add(ObjectOrg);/UFIDA.U9.AAI.TransEntry.PageNavigate pNavigate = new UFIDA.U9.AAI.TransEntry.PageNavigate(); #endregionstring uri = refFormDto.U
11、RI;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; /单据信息ID/string DocClass = string.Empty; /单据类全称/string Instance = string.Empty; /InstanceID/string SourceOrg = s
12、tring.Empty; /来源组织/string ObjectOrg = string.Empty; /目标组织StringBuilder sburi=newStringBuilder(); sburi.Append(http:/XXXX/U9/ufsoft/simple.aspx?lnk=); sburi.Append(fromID); sburi.Append(&chromeType=4&ShowType=ShowModal); sburi.Append(&ID=+entityID); sburi.Append(&CS_IsPopWebpart=True&InstanceID=+Inst
13、ance); sburi.Append(&FlowFlag=True&CS_RefreshParent=True&EntityType=+DocClass); sburi.Append(&TargetOrganization= + SourceOrg + &_sk=_SK50604&_curOId= + SourceOrg + &RefereshThis=1&ShowAtlasModalDialog=true);OA接口调用需要根据对应OA系统做相应的调整。为了方便使用,需将对应接口的地址做成可配置的,如果还有一些需要配置的参数,都需要在参数设置中预制。例如泛微的OA系统,在调用接口时需要传输
14、流程实例,但是实例又是会变动的,因此需要将地址和实例都增加到参数设置中,这些参数是用于整个系统间的传输,所以应该部署在基础模块中。参数设置事例:declareApplicationbigintdeclareCreatedBynvarchar(20)declareIDbigint-设置应用的IDsetApplication=3000-设置创建名称setCreatedBy=admin-预置参数的初始ID(年月日时分秒+01纯数字)setID=CAST(CONVERT(varchar(100),GETDATE(), 112)+replace(CONVERT(varchar(100),GETDATE(
15、), 108),:,)+01asbigint)-为了可重复执行,创建前先删除-删除参数值表中关于本应用的数据(此参数值表区分多组织)DELETEFROMBase_ProfileValueWHEREprofilein(SELECTIDFROMBase_ProfileWHERECodein(OAWebSerAddress,WorkFlowId)-删除参数表中关于本应用的数据(所有组织共用此参数表)DELETEFROMBase_ProfileWHERECodein(OAWebSerAddress,WorkFlowId)-删除参数(多语)表中关于本应用的数据DELETEFROMBase_Profile
16、_TrlWHEREIDin(selectIDfromBase_ProfileWHERECodein(OAWebSerAddress,WorkFlowId)-进行参数预置-ProfileValueType 参数值类型 (可查classview)-0string 1int 2decimal 3bool 4date 6enum 7entity-SubTypeName 子类型名称当ProfileValueType=7时,此处填入实体名称,如UFIDA.U9.Base.Organization.Organization-DefaultValue 缺省值,字串-Code 编码,字串-Application
17、,所属应用-ControlScope,作用范围(0站点1组织2角色3用户4实体角色)-SensitiveType 敏感性类型(0厂商修改1设置后不可改2使用后不可改3可追朔修改4可前向修改)-ReferenceID,参照ID,字串(未知)-ProfileGroup,参数分组,字串INSERTINTOBase_Profile(ID,CreatedOn,CreatedBy,ModifiedOn,ModifiedBy,ProfileValueType,SubTypeName,DefaultValue,Code,Application,ControlScope,SensitiveType,Refere
18、nceID)VALUES (ID,GETDATE(),CreatedBy,NULL,NULL,0,NULL,OAWebSerAddress,Application,1,4,null)INSERTINTOBase_Profile_Trl(SysMLFlag,ID,Description,Name,ProfileGroup)VALUES (zh-CN,ID,OA系统地址,OA系统地址,接口配置)-多条参数时,ID自增setID=ID+1INSERTINTOBase_Profile(ID,CreatedOn,CreatedBy,ModifiedOn,ModifiedBy,ProfileValueTy
19、pe,SubTypeName,DefaultValue,Code,Application,ControlScope,SensitiveType,ReferenceID)VALUES (ID,GETDATE(),CreatedBy,NULL,NULL,0,NULL,WorkFlowId,Application,1,4,null)INSERTINTOBase_Profile_Trl(SysMLFlag,ID,Description,Name,ProfileGroup)VALUES (zh-CN,ID,OA系统流程ID,OA系统流程ID,接口配置)GOU9中参数获取方式:#region获取OA流程I
20、DGetProfileValueProxy bpObj = newGetProfileValueProxy();bpObj.ProfileCode = WorkFlowId; /对应参数设置中的Code信息PVDTOData pVTDOData = bpObj.Do();if(string.IsNullOrEmpty( pVTDOData.ProfileValue)thrownewException(请在参数设置中定义OA流程ID);#endregion单点登录URI说明:3. 开发平台支持3.1 硬件PC机3.2 操作系统Windows 2003/2008(或以上版本),IE7.0以上。3.3 用友产品U9 平台技术;3.4 开发语言Microsoft Visual Studio 2005、Microsoft .NET Framework V3.0以上3.5 数据库Microsoft SQLServer20083.6 程序架构B/S结构。