U9插件开发集成
- 格式:pptx
- 大小:1.24 MB
- 文档页数:18


用友U9-UBF应用开发手册V2.5前言UAP(Universal Application Platform)是用友公司为开发新一代面向服务(Service-Oriented Architecture, SOA)的世界级商业应用套件产品(U9)而精心打造出来的ERP软件生产平台。
通过UAP平台,使企业信息资源变得可重用、透明化,并且系统具有高可扩展性,让业务处理更加高效、简洁、安全。
UAP平台为用户提供了一个统一的集成开发环境,用户可以使用包括模型设计、UI设计、报表设计、规则设计、数据库设计、BI设计等各方面的设计器,并通过可视化的界面和友好的交互操作,自动生成用户所需要的各种功能控件。
使得大型的企业级商业应用软件第一次实现了技术与业务关注点的分离,并且通过快速的动态业务建模与服务组装技术,实现了企业动态业务的快速部署与应用,真正实现了“随需而变”的实时企业与全球商务的企业信息化价值理念。
UAP(Universal Application Platform)平台是用友软件经过多年的技术积累和知识沉淀,在微软.NET相关规范和标准的基础上,提供完全支持基于领域语言(DSL)的模型驱动开发(MDD)模式,为各种复杂的企业级商业应用系统提供专业、安全、高效、可靠的开发、部署和运行企业管理应用软件的开发工具平台。
它主要包括:应用运行平台(UBF)、应用开发平台(UBF Studio)和组件化发布平台。
➢UBF(UFIDA Business Framework)实现与操作系统、数据库、.Net Framework、Office、WMI、.Net Compact Framework、MSMQ 等底层核心技术的调用与协作,通过屏蔽底层的复杂实现,提高企业应用软件的灵活性、可扩展性和开放性。
针对开发ERP软件的特点,提供了一套适用的类库、框架以及具有扩展性的通用解决方案。
有效地降低了开发工作的难度和工作量。
在系统交付、安装和部署后,支撑业务系统的解析和执行;提高应用软件的可定制性与可集成性。
用友软件股份有限公司研发过程U9研发体系报表开发过程文件编号:版本号:V1.0修改状态:编写人:陈宇/吴运刚审核人:批准人:批准时间:2008.07版本记录版本修改与参与人修改时间修改原因修改概述审核人1.0 陈宇吴运刚2008/6/20 原始文档建立陈宇 2008/8/7 增加测试人员的单元测试验证1目的z定义报表的开发、单元测试、代码审查/评审等工作过程z通过执行定义的过程,能够给报表开发人员提供工作指导,并使报表的开发过程能够得到有效的控制2适用范围本过程适用于:z部门/人员:U9从事报表开发的人员、报表总体组、技术经理等。
z业务:报表应用开发、单元测试、代码审查/评审。
3角色与职责过程中涉及以下关键角色:Roles 角色Responsibilities职责Memo备注项目经理z制订报表的开发计划。
z监控工作计划的执行。
z组织和安排代码审查/技术评审,保证代码审查/技术评审能够按时、保质进行,保证项目组上下游相关成员参与。
z落实报表开发人员修改设计验证、代码审查/技术评审中发现的问题。
报表开发人员z理解需求和设计z根据需求和设计文档开发报表程序z执行本地构造、单元测试z修改代码审查/技术评审、单元测试中发现的bug报表总体组z制定报表开发规范z开发报表公共组件和样例代码z进行代码审查/技术评审业务组件开发人员z提交报表相关的业务组件,如报表调用的BP、服务等测试人员z进行单元测试验证构造员z将报表程序从开发流提交集成流z执行持续构造z执行报表组件自动化测试的任务测试中心z对报表组件自动测试结果进行监控。
z风险评估。
技术经理z负责对报表组件代码进行审查,以确保开发技术规范、标准的切实执行。
SQA z对报表组件开发过程的规范行进行审计;z对开发计划的进度执行情况进行监控。
4过程活动过程活动图示如下:流程说明:Activities 活动Description说明Roles角色制订开发计划z依据整体开发进度要求,组织制订报表的开发,明确各项任务、资源、时间要求等等。
用友U9开发模式解析第一篇:用友U9开发模式解析2009年10月,e-works Research对用友U9 2.0版进行了一次评估。
本文对U9的开发模式的评估结果进行解析。
传统的软件开发过程是首先调研客户需求,分析客户需求,包括个性化需求,再进行系统分析、系统设计和代码编程、最后形成产品功能和相应的产品模块。
这样的软件开发过程使得该软件无法复制到令一个企业中,也无法对软件进行分割和重组。
在U9的开发过程中,用友一开始并未直接陷入传统的产品开发模式,而是花了半年以上的时间,借鉴国际先进的管理理念,结合本土企业的管理实际,从以往积累的多个客户当中提炼出了不同企业的业务模式,然后以业务模式为导向,来搭建U9的整体软件架构。
图表1:U9产品开发模式在软件开发前对业务模式的归纳,好处在于开发完成的产品涵盖了多个行业、多个企业的运行模式,而不是针对某一个企业,这样可以很好的支持多个企业80%以上的ERP标准功能,剩下的20%产品功能可以通过灵活的业务组件来完善,而不是系统开发完成后,陷于无休止的开发、修改、打补丁当中。
U9将IT与业务融合,从累积到得客户业务模式中提炼出300多个模型,一一进行分析,抽象出每个服务,通过这些服务的组合,来完成最后整体的流程。
这种组件化的建模可以随需而变,能够剖析业务模式,将其分解成独立的组件。
即首先将企业业务从业务层面、流程层面、管理层面、范围层面,四个层面切割,进而又对每个层面的业务进一步细分,层层细分下来,最终形成了U9的服务组件。
因为在开发构成中,开法人员发现流程可以给客户带来价值,他们将这个价值变成模型库、组件库,然后通过角色化的交互界面来实现。
图表2:U9企业服务组件化建模图表3:组件化业务模式范例同时,由于U9是全新开始做的新一代ERP产品,所以研发人员在做U9开发之前,首先做了一个开发平台UAP。
它是在微软技术上架设的企业应用平台,是一个完全支持模型驱动的、体现SOA架构的开发平台。
U9研发体系(查询过滤条件API参考手册)文件编号:U9-SE-××-SPEC-××适用版本:U9 V1.5 UBF2.0修改状态:编写人:李东滨审核人:目 录1. 类型 (3)1.1 FilterDefine 过滤条件模型 (3)1.2 DefaultValue 默认值定义 (6)1.3 FilterValue 过滤条件值 (7)1.4 RangeEnabled 使能控制 (9)1.5 RangeEnabledExpression 使能条件 (9)1.6 Reference 条件参照定义 (10)1.7 ReferenceObject 描述参照内容的参照对象 (11)1.8 EnumeratorKeyPair 枚举键值对 (12)1.9 EnumeratorKeyPairs 枚举键值对集合 (13)1.10 RefCondition 参照条件 (14)1.11 EnumRestrict 枚举约束 (15)1.12 RefConditions 条件参照项集合 (15)1.13 FilterBuilder 查询条件构造器 (16)2. 枚举 (19)2.1 enuOperatorLogicType (19)2.2 enuOperatorType (19)2.3 enuOperatorListType (20)2.4 FilterDataType (20)2.5 enumFilterValueType (20)2.6 enuSelectOptionType (21)2.7 enuReferenceType (21)2.8 enuFilterItemType (21)2.9 enuFilterLevelType (21)2.10 enuPageOfInputFilterValueType (22)2.11 SimpleOperator (22)2.12 enuNodeExpandType (22)1. 类型概要所在程序集:UFSoft.UBF.Report.Filter.FilterModel.dll命名空间:UFSoft.UBF.Report.Filter.FilterModel1.1 FilterDefine 过滤条件模型属性1public int ID名称:ID语法:说明:过滤条件的唯一标识2public string Name名称:名称语法说明:过滤条件名称3public string FullPath名称:在树结构中的路径语法说明:记录过滤条件在过滤条件树中的全路径4public string Expression名称:条件字段表达式语法说明:最后形成where子句时候的左表达式5public string Label名称:显示标题语法说明:条件显示标题6public bool Visible名称:条件是否显示语法说明:该条件在条件树中是否显示7public FilterDataType DataType名称:条件数据类型语法说明:为FilterDataType枚举类型8public DefaultValue DefaultValue名称:条件默认值说明9public Reference Reference名称:条件参照定义语法说明:记录有关条件参照的信息,包括枚举条件和参照条件等10public List<enuOperatorListType> OperatorList名称:固定操作符列表语法说明:该条件支持的条件比较符11public FilterDefines SubFilters名称:子条件项列表语法说明:指该条件项下的子条件项,在树结构中表示一个条件项节点下的子节点12public enuFilterLevelType Level名称:条件级别属性语法说明:为enuFilterLevelType枚举类型【即是基本条件还是高级条件】13public enuFilterItemType Type名称:条件类型语法说明:为enuFilterItemType枚举类型【目录或条件项】14public bool Fixed名称:是否为必输项目语法说明15public string Tag名称:条件标记语法说明16public bool AllowBlank名称:是否允许为空语法说明17public bool IsJudgeBlank名称:是否对不可为空的条件项进行判读处理语法说明18public bool IsBuildWhereStr名称:是否参与条件构造语法说明:是否形成最后的where子句19public string ParentID名称:父条件项ID说明20public bool PopulateOnDemand名称:是否懒加载语法说明21public bool ChildIsAllLoad名称:子条件项是否加载语法说明22public RangeEnabled RangeEnabledDefine名称:使能条件定义语法说明23public bool RaiseChangeEvent名称:是否触发事件语法说明:当该条件项的值发生变化后是否触发事件24public string EntityFullName名称:实体全名语法说明25public enuNodeExpandType NodeExpandType名称:节点展开类型语法说明26public bool Auto名称:是否DataCommand自动生成语法说明27public FlexFieldValueSetDef FlexFieldValueSetDef 名称:当节点为描述性弹性域的值集定义信息语法说明28public string DescFieldContextValue名称:描述性弹性域的上下文值语法说明29public bool ViriantCtrlEnabled名称:设置值对话框中的变量控件是否可用语法说明30public string DescartesPath名称:该条件项的笛卡尔路径说明方法1public FilterDefine()名称:FilterDefine的构造函数语法:说明:2public object Clone()名称:复制对象自身语法:说明:3public void GetObjectData()名称:获取对象数据语法:说明:实现ISerializable接口成员4public override string ToString()名称:重写的基类的ToString方法语法:说明:返回字符串为FilterDefine的Name加FullPath属性1.2 DefaultValue 默认值定义属性1public bool IsContext名称:是否采用“变量”机制语法:说明:是的话这里面的Values会被解释为上下文字段2public enuOperatorListType RelationOperator名称:关系比较符语法:说明:3public List<string> Values名称:条件的默认值定义语法:说明:4public List<string> Labels名称:语法:说明:5public List<ReferenceValue> ReferenceValues名称:语法:说明:方法1public DefaultValue()名称:默认值构造函数语法:说明:1.3 FilterValue 过滤条件值属性1public int FilterItemID名称:条件项ID号语法:说明:2public bool IsClearByEnabled名称:是否根据使能清空语法:说明:3public enuOperatorListType LogicOperator名称:逻辑操作符ID语法:说明:4public string LeftBracket名称:左括号语法说明5public string Name名称:条件值名称语法:说明:6public enuReferenceType ReferenceType名称:在FilterValue中加上参照的类型语法:说明:在FilterValue中加上参照的类型,为解决条件构造中一些特殊的情况,如枚举型is null及小于操作符等的处理,要考虑-1的情况7public enuOperatorListType RelationOperator名称:关系操作符ID语法:说明:8public string RightBracket名称:右括号)语法:说明:9public enuPageOfInputFilterValueType PageType 名称:描述当前条件值是从那一页签输入语法:说明:10public ValueContext Values名称:条件值集合,只读属性语法:说明:11public enumFilterValueType ValueType名称:条件值类型语法:说明:方法1public void AddValue(string value)名称:追加条件值语法:说明:2public string GetValue()名称:取得第一个条件值语法:说明:3public string GetValue(int index)名称:取得条件值语法:说明:根据index取得相应的条件值4public List<string> GetValues()名称:取得条件值集合语法:说明:5public void SetValue(int index, string value)名称:设置具体条件值语法:说明:设置第index的条件值为value6public void SetValues(List<string> values)名称:设置条件值集合语法:说明:7public string GetSecValue()名称:取得第二个条件值语法:说明:8public int ValueCount()名称:条件值数量语法:说明:9public override string ToString()名称:输出到字符串语法:说明:10public void FromString(string value)名称:从字符串输入语法:说明:1.4 RangeEnabled 使能控制属性1public List<RangeEnabledExpression> ExpressionList 名称:使能条件表达式集合语法:说明:2public List<SimpleOperator> LogicTypeList名称:逻辑比较符集合语法:说明:1.5 RangeEnabledExpression 使能条件属性1public string DefineName名称:要定义的使能条件名称语法:说明:2public enuOperatorListType Operator名称:使能操作符语法:说明:3public List<string> ValueList名称:使能比较定义的值集语法:说明:4public bool UnDefined名称:是否未定义标识语法:说明:可以设置当条件没有设置值时,被影响的控件是否可用;默认是没值时,可用比如A受B影响,设置A:DefineName=B,UnDefined=true, 如果B没有值,A就不可用5public bool IsDefined名称:是否已定义标识语法:说明:条件项被设置值时,被影响的控件是否可用,比如A受B的影响,当B有值时,A就不可用,这时设置A:DefineName=B,IsDefined=true, 在解析使能条件时,发现B有值,A就不可用。