U9-UBF应用开发手册2011
- 格式:doc
- 大小:11.43 MB
- 文档页数:390
U9-V2.1产品上市说明U9-V2.1在U9-V2.0版本的基础上,结合几十家原型客户的交付,在产品核心应用组件完善,以及产品的稳定性、效率、易用性等方面都有了极大的改进。
此外,还新增了资金计息、综合授信、看板管理、以及人力资源管理领域的组织机构、人员管理、人员合同、薪资管理、福利管理。
U9-V2.1的上市,为2011年U9在中端市场的规模化奠定了坚实的基础,并且做为承前启后(U9-V3.0)的一个版本,支持U9继续高速发展。
一、产品形态和产品标识产品名称:UFIDA U9企业管理软件版本号:V2.1产品发布形态及配套资料说明:升级版产品加密方式:软加密。
加密控制策略:1)针对客户,允许在2台机器上注册,每台机器不限制注册次数。
2)提供专门的顾问版本。
二、产品目标客户客户群及市场定位:定位中端(产品),回归中端(营销)、聚焦中端(规模化)组织模式:多组织的国内/国际经营环境(包含单组织全面深入应用)行业:聚焦离散制造业,重点是机械、电子、汽配、家具等行业应用范围:财务、供应链、制造、人力资源、OA等三、产品销售方式销售范围:国内市场和海外市场销售渠道:直销为主四、产品价格政策U9-V2.1的定价策略与U9-V2.0是一致的,新增了新增模块的报价。
具体内容见《报价生成器_U9V2.1.xls》,相关说明见《报价说明_U9V2.1.ppt》。
五、产品升级、升迁政策:提供对U9-V2.0版本的数据升级。
U9-V2.1的原有许可,全部免费升级到对应的U9-V2.1的许可中。
如下情况,请走商务流程:1)新增加的模块/组件。
2)新增加的并发数。
注:原有U9-V1.5的老客户,在升级时,需要先升级到U9-V2.0,许可的升级政策也参加U9-V1.5到U9-V2.0的升级政策。
(见《上市说明_U9V2.0》)六、2011年U9研发支持策略1.支持样板客户建设2.重点行业孵化3.成立项目推进部,支持客户交付4.重点(原型)项目研发绿色通道支持七、2011年U9实施策略1.UFIDA U9作为中端的旗舰产品,在2011年度,实施策略的核心是:聚焦中端-规模化交付、指定行业-行业化实施。
U9条码管理操作手册本文档主要描述条码应用的设置、使用方法及注意事项,应用前提是启用条码平台模块(应用编码=BC)1.条码平台1.1条码规则1.功能介绍条码规则是条码主档的创建规则,通过条码规则设置条码的段值及创建条件等信息,该节点内容不区分组织,所有组织均通用。
2.画面说明及产品截图1)在“条码管理”模块,通过“条码规则”节点进入“条码规则”维护画面。
2)字段说明:条码类别:支持新增料品条码、容器条码类别的条码规则;数量类型:支持固定数量、单据数量、指定数量三种数量类型;●固定数量:适用于该条码规则生成的条码个数有数量限制时可选择该数量类型;如数量类型=固定数量,则条码个数字段必输,录入可创建条码主档的个数。
●指定数量:适用于手工指定创建条码个数的场景;系统不自动创建条码,需在条码生成节点录入本次生成条码的个数;●来源单据:按单据上的数量创建条码主档时使用该数量类型,此时数量来源、料品数量字段必输。
如:实体=收货行,数量类型=来源单据,数量来源=收货行.实收数量(交易单位),料品数量=1,则代表按交易单位的实收数量创建条码主档,每个实收数量对应一个条码主档。
匹配规则:设置引用当前条码规则创建条码主档的条件。
如:供应商不同,则料品的条码规则不同,则匹配规则可指定供应商。
字段值:设置条码规则的段类型,如果是外部导入条码,则条码规则行必须包含段值=外部导入且生成段=true的段;生成段:条码的标识信息段;显示段:不是条码的标识段,但在打印标签时可以作为显示项打印出来供用户查看。
维度类型:当条码类别=料品条码时有效。
设置段值与“条码维度映射关系”表的关系,便于扫码生单功能使用。
具体参见2.5扫码生单。
3.业务规则1)系统预制单据条码的条码规则,不支持手工新增,如需增加预制内容,需向总部申请。
2)预制单据条码范围:杂收单、杂发单、盘点单、调入单、调出单、生产订单、生产领料、完工报告、完工申报、成品入库、标准采购、标准收货、委外采购、非成套领料、成套领料、委外收货、标准销售、出货计划、标准出货、供应链备料;3)档案敏感性:修改:一旦引用则条码类别、数量类型、数量来源、匹配规则、段值均不可修改,唯有段长度可改,影响未来;当条码类别=料品条码,且数量类型=固定数量时,条码个数可改,但不能小于该条码规则已创建的条码个数。
U9 数据库访问API参考手册适用版本:U9 V1.5 UBF2.0修改状态:编写人:叶琳审核人:此部分要记录该文档形成过程中的历次版本变更过程及变更的内容版本修改与参与人修改时间修改原因修改内容审批人1.0 叶琳2008-7-8 原始文档建立叶琳2008-7-9 加上类的名空间概述U9数据库访问的API集中在UFSoft.UBF.Util.DataAccess.dll中,主要是封装直接执行sql和存储过程DataAccessorUFSoft.UBF.Util.DataAccess.dll下的DataAccessor主要对外提供直接执行sql和存储过程的方法,名空间为UFSoft.UBF.Util.DataAccess方法:public static IDbConnection GetConn()取当前的连接注意:这个连接是通过DatabaseManager.GetCurrentConnection()取得,是取当前环境下的连接static public int RunSP(string sprocName, DataParamList dataParams)用当前连接执行存储过程参数:sprocName 存储过程名dataParams 参数列表static public int RunSP(string sprocName, DataParamList dataParams, outDataSet ds)用当前连接执行存储过程参数:sprocName 存储过程名dataParams 参数列表ds 输出结果static public int RunSP(string sprocName, DataParamList dataParams, out IDataReader dr)用当前连接执行存储过程参数:sprocName 存储过程名dataParams 参数列表dr 输出结果static public int RunSP(string sprocName, DataParamList dataParams, out object obj)用当前连接执行存储过程参数:sprocName 存储过程名dataParams 参数列表obj输出结果static public int RunSP(IDbConnection conn, string sprocName, DataParamList dataParams)执行存储过程参数:c onn 数据库连接sprocName 存储过程名dataParams 参数列表static public int RunSP(IDbConnection conn, string sprocName, DataParamList dataParams, out DataSet ds)执行存储过程参数:c onn 数据库连接sprocName 存储过程名dataParams 参数列表ds 输出结果static public int RunSP(IDbConnection conn, string sprocName, DataParamList dataParams, out IDataReader dr)执行存储过程参数:c onn 数据库连接sprocName 存储过程名dataParams 参数列表dr输出结果static public int RunSP(IDbConnection conn, string sprocName, DataParamList dataParams, out object obj)执行存储过程参数:c onn 数据库连接sprocName 存储过程名dataParams 参数列表obj输出结果static public int RunSQL(IDbConnection con, string commandText, DataParamList dataParams)执行sql参数c on 数据库连接commandText sql语句dataParams 参数static public int RunSQL(IDbConnection con, string commandText, DataParamList dataParams, bool needCloseConn)执行sql参数c on 数据库连接commandText sql语句dataParams 参数needCloseConn 执行完后是否需要平台自动关闭连接static public int RunSQL(IDbConnection con, string commandText, DataParamList dataParams,bool needCloseConn, out IDataReader dr)执行sql参数c on 数据库连接commandText sql语句dataParams 参数needCloseConn 执行完后是否需要平台自动关闭连接dr 输出结果static public int RunSQL(IDbConnection con, string commandText, DataParamList dataParams, out DataSet ds)执行sql参数c on 数据库连接commandText sql语句dataParams 参数ds 输出结果static public int RunSQL(IDbConnection con, string commandText, DataParamList dataParams, out IDataReader dr)执行sql参数c on 数据库连接commandText sql语句dataParams 参数dr 输出结果static public int RunSQL(IDbConnection con, string commandText,DataParamList dataParams, out object obj)执行sql参数c on 数据库连接commandText sql语句dataParams 参数obj 输出结果public static IDataReader GetDataReaderByPage(string tableName, intpageSize,Int64pageIndex, string selectSql,string whereSql, stringorderbySql, string optimizesql, string aliasFileds, DataParamList dataParams)分页查询,返回IDataReader参数:tableName 主table名pageSize 页面大小pageIndex 页面索引selectSql 查询子句whereSql 条件子句orderbySql 排序子句optimizesql 优化子句aliasFileds 别名列,一般可以用*dataParams 参数列表注意,这个方法这个方法的参数很多,较复杂,一般平台用,开发尽量避免直接使用public static DataSet GetObjectsByPage(string tableName, int pageSize,Int64 pageIndex, string selectSql, string whereSql, string orderbySql,string optimizesql, string aliasFileds, DataParamList dataParams)分页查询,返回DataSet参数:tableName 主table名pageSize 页面大小pageIndex 页面索引selectSql 查询子句whereSql 条件子句orderbySql 排序子句optimizesql 优化子句aliasFileds 别名列,一般可以用*dataParams 参数列表注意,这个方法这个方法的参数很多,较复杂,一般平台用,开发尽量避免直接使用KeyGeneratorU9实体的ID是通过存储过程产生,UFSoft.UBF.Util.DataAccess.dll下的KeyGenerator 提供一个辅助的方式提供一个新的ID,以避免直接访问产生ID的存储过程,名空间为UFSoft.UBF.Util.DataAccess方法:static public Int64 NewValue()取一个新的ID值。
用友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开发环境手册文件编号:U9-SE-××-SPEC-××版本号:修改状态:0编写人:张璋审核人:适用对象该手册适用于U9本部开发人员、客户化开发人员。
版本记录【此部分要记录该文档形成过程中的历次版本变更过程及变更的内容】版本修改与参与人修改时间修改原因修改概述审批人1.0 张璋 2008/07/10 原始文档建立1.1 张璋 2008/08/12 按照本部级评审意见修改相关文档名词解释z U9AppCode(U9业务逻辑视图目录z U9Data(U9数据视图目录z U9Product(U9开发环境目录z U9UICode(U9UI逻辑视图目录手册正文1.U9基础开发环境1.1 OS环境推荐使用“Windows Server 2003(企业版,SP2”,U9本部人员可以在如下地址访问获取:\\u9domain\data\Download\0C - 操作系统1.2 IIS6.0推荐安装OS后,立即安装IIS,以保证在安装 2.0之前IIS已经安装完毕。
IIS6.0的安装位置在:添加或删除程序->添加删除Windows组件->应用程序服务器->详细信息->Internet信息服务(IIS。
按照下图红色数字顺序,安装IIS6.0。
点击【确定】、【下一步】后,系统提示插入操作系统光盘,可以插入系统光盘,如果没有系统光盘,可以定位到操作系统文件夹的i386文件夹。
1.3 Framework V3.0U9本部人员可以在如下地址访问获取:\\u9domain\data\Download\0C - Visual Studio系列1.4 浏览器推荐使用“IE7”,U9本部人员可以在如下地址访问获取:\\u9domain\data\Download\0C - Office系列1.5 数据库开发环境推荐先安装SQL Server 2005,再安装Visual Studio 2005。
U9研发体系(UIACTION使用手册)此部分要记录该文档形成过程中的历次版本变更过程及变更的内容版本修改与参与人熊悦阅修改时间修改原因修改内容审批人1.02022-7-8原始文档建立刘小东1.概述UFIDAUIAction是表示层MVC框架中Controller一部分,它与CodeBehind构成完整的UIController,CodeBehind完成Web响应的流转控制,UIAction完成一个独立的行为,如保存、加载、翻页等等。
2.构架原理2.1UIAction在表示层构架中的位置和作用2.2UIAction的主要内容3.1.1Load方法Load方法完成加载数据到IUIModel的过程,包含以下多种声明:声明IUIModelLoad()IUIModelLoad(IUIModel)IUIModelLoad(IUIModel,bool)说明加载当前IUIModel加载指定的IUIModel加载指定的IUIModel第二个参数控制是否清空IUIModel的数据IUIModelLoad(IUIView,bool)IUIModelLoad(paramIUIView[])IUIModelLo ad(paramIUIViewBindingControl[])加载一个视图,是否根据父视图进行过滤加载指定的多个视图加载指定的多个UI绑定控件对应的视图3.1.2LoadChildView方法LoadChildView方法加载指定视图的下级视图数据:声明VoidLoadChildView(IUIView)说明加载的数据存放在视图的ContainerModel中3.1.3Save方法Save方法将IUIModel的变化更新到后台持久层声明IUIModelSave()IUIModelSave(IUIModel)保存后会回刷IUIModel的数据到前台。
说明加载的数据存放在视图的ContainerModel 中3.2NavigationAction部分声明voidFirtPage(IUIViewBindingControl)voidLatPage(IUIViewBindingControl)voidNe某tPage(IUIViewBindingControl)说明加载的数据存放在视图的ContainerModel中加载最后一页的数据加载下一页的数据。
U9升级工具使用手册文件编号:U9-SE-××-SPEC-××版本号: 1.0修改状态:0编写人:李靖和审核人:目录1. 适用对象 (3)2. 版本记录 (3)3. 使用说明 (3)3.1 数据库升级 (3)3.2 报表升级 (5)4. 常见问题 (6)4.1 为什么元数据升级不能指定连接串 (6)4.2 当DBServer和WebServer部署在不同服务器时如何升级报表元数据 (6)4.3 能否只针对更新的报表元数据进行升级 (6)1.适用对象该规范适用于系统实施、测试人员以及其它和系统升级相关的操作人员。
2.版本记录版本修改与参与人修改时间修改原因修改概述审批人1.0 李靖和 2008-6-30 原始文档建立3.使用说明3.1 数据库升级执行UFIDA.UBF.Build.Install.exe,操作用户必须具有windows管理员权限,在数据库服务器本机执行,如图:点击“获取”按钮,工具将获取本地SQL服务器默认实例下的所有数据库,选择要升级的数据库。
点击打开文件按钮,选择补丁包文件,如下图:选择好文件,后点击“数据升级”按钮。
升级完成后,系统弹出如下窗口:标识该补丁包已经升级完毕。
日志文件参考执行目录下的xxxxinstall.log(xxxx为补丁包文件名)3.2 报表升级选择报表路径:报表路径一般为${protal}\ApplicationServer\Libs\SqlScript\ReportMetaData,“${protal}”为IIS中U9portal对应的目录。
选择报表工具路径,一般为${U9}\ReportServer\Tool\import”,${U9}为Portal的上层目录。
选择完之后点击“报表升级”,稍候即可。
如果数据库不在本地,请指定连接串。
4.常见问题4.1 为什么元数据升级不能指定连接串为了提高数据更新效率,元数据升级采用SQLServer的Bulk Insert方式导入,所以升级程序必须在数据库本地执行。
U9研发体系自定义报表开发手册(DOC 109页)U9研发体系(自定义报表开发手册)文件U9-SE-UBF-SPEC-RE PORT编号:版本号:修改状态:编郭玉平(二开总部)写人:刘小东审核人:手册前3章介绍报表开发准备工作。
从第4章到第10章介绍了报表《XX月生产计划与实绩统计》实际开发流程,在流程中的每个步骤中介绍了使用UBF平台开发报表所涉及到的知识点。
第11章是一些知识点的详细介绍。
目录第1章开发基础篇--U9系统的环境配置 (14)1.1系统环境 (14)1.1.1Window 2003 标准版、企业版141.1.2Microsoft .net Framework V3.0141.1.3 ............................................................ I IS6.0141.1.4 ............................................................. I E7.0151.1.5MS SQL Server 2005151.2开发环境 (18)1.3运行时环境 (20)1.3.1需要运行两个服务201.3.2设置IIS中的站点201.3.3配置U9站点、企业221.4数据库的导出、导入 (26)1.4.1数据库导出261.4.2数据导入311.4.2.1.使用“用友__数据管理工具”还原311.4.2.2.使用“用友__系统管理工具”还原361.5模板的导入、导出 (40)1.5.1配置IDEConfig401.5.2新建解决方案411.5.3建分析项目421.5.4打开模型元数据管理421.5.5连接报表元数据库431.5.6模板导入、导出441.6报表服务器的配置 (46)1.6.1安装运行Sql Server Reporting Services461.6.2配置报表服务站点ReportServer461.6.3部署自定义报表的DataCommand46第2章报表开发环境 (49)2.1UBF介绍 (49)2.2报表开发环境 (50)2.3报表开发环境参数配置 (52)2.3.1UBF环境设置522.3.2UBF连接到数据库522.3.3启动两个服务542.3.4运行UBFdevenv.exe552.3.5登录数据库服务器562.3.6连接报表元数据库58第3章报表开发基础 (60)3.1.1实体603.1.2 .............................................................. OQL603.1.3报表制作流程的简单介绍623.1.3.1.DataCommand设计623.1.3.2.报表模板设计633.1.3.3.报表模板发布633.1.3.4.部署DataCommand的dll,策略的dll63第4章命名规范 (63)4.1概论 (63)4.2ReportTemplate(报表模版) (63)4.3解决方案命名规则 (64)4.4DataCommand(报表数据) (65)第5章需求、设计 (65)5.1需求 (66)5.1.1样表665.1.2表头685.1.3表体685.2设计 (69)5.2.1查找条件695.2.2栏目说明715.2.3算法说明72第6章新建报表模板 (75)6.1第一步:新建报表目录 (76)6.2第二步:新建报表容器 (76)6.3第三步:新建报表页面 (77)第7章新建DadaCommand (78)7.1打开DadaCommand工具集 (79)7.2建立DadaCommand目录 (79)7.3选择字段 (80)7.3.1查询实体807.3.2选择属性(字段)807.4配置字段信息 (83)7.5数据源命名 (84)7.6信息确认 (84)第8章编写DadaCommand业务逻辑 (85)8.1主要编程界面简介 (86)8.1.1 ........................................................... M oDs.cs868.1.2 ..................................................... MODsExtend.cs878.1.3 .................................................... MOCmdExtend.cs888.1.4 .................................................... PubFunction.cs898.2DataCommand 主要属性、方法 (89)8.2.1ShowMode 参数908.2.2EntityViewQuery :viewQuery908.2.3报表相关集合918.2.4 ............................................... ExecuteDataReader()928.2.5其它集合958.3编写实例业务逻辑 (95)8.3.1第一步:选取生产订单字段968.3.2第二步:选取完工报告字段1008.3.3第三步:连接临时表1028.3.4第四步:定义临时表1038.3.5第五步:生成解决方案104第9章报表模板设计 (105)9.1导入DataCommand (106)9.2模板布局设计 (107)9.2.1删除系统预定义布局1079.2.2设计表头1079.2.3设计表体1099.3报表参数设计 (111)9.3.1基本属性1129.3.2参照1139.3.3操作符列表1149.4字段的扩展属性 (114)第10章报表处理策略 (115)10.1策略概念 (115)10.2编写策略方法 (116)10.3配置策略文件 (117)第11章发布浏览 (118)11.1发布报表模板 (118)11.1.1打开报表发布向导11811.1.2报表发布向导第一步:选择报表类型11911.1.3报表发布向导第二步:程序集部署12011.1.4报表发布向导第三步:发布菜单12111.1.5报表发布向导第四步:报表部署12211.1.6报表发布向导第五步:完成12311.2部署DataCommand (124)11.3菜单授权 (126)11.3.1进入U9页面12611.3.2分配权限12611.3.2.1.进入路径12611.3.2.2.执行操作12711.4效果预览 (128)11.4.1查询界面12811.4.2效果界面128第12章高级话题 (129)12.1报表中嵌入代码 (129)12.2弹性域 (132)12.2.1弹性域概念13212.2.2在模板中使用弹性域13312.3存储过程的调用 (137)12.4任意条件的撷取 (137)12.5Oql 的使用方法 (139)12.5.1基本功能13912.5.2优势与比较14012.5.3安装14012.5.4语言指南14212.5.4.1.对象查询语言OQL有两种风格14212.5.4.2.简单条件过滤14212.5.4.2.1.简单条件: (143)12.5.4.2.2.多Entity Join条件: (143)12.5.4.2.3.OPath风格指定条件: (143)12.5.4.2.4.Between and (144)12.5.4.2.5.逻辑或条件+ 参数 (144)12.5.4.2.6. ........................................ in (144)12.5.4.2.7.like & not like (144)12.5.4.3.复杂报表查询14512.5.4.3.1.兼容性注意问题 (146)12.5.4.3.2.基本语法 (146)12.5.4.3.3.使用实体类 (146)12.5.4.3.4.from子句 (147)12.5.4.3.5.left join (147)12.5.4.3.6.inner join (148)12.5.4.3.7.Cross join (149)12.5.4.3.8.Distinct关键字 (149)12.5.4.3.9.数据库函数 (149)12.5.4.3.10. ..................................... C ount (149)12.5.4.3.11.Min,Max (150)12.5.4.3.12.Group by (150)12.5.4.3.13.子查询 (150)12.5.4.3.14.子查询 (150)12.5.4.3.15.对dateadd/datediff/datepart/datename中关键字的支持 (152)12.5.4.3.16.对cast类型转换函数的支持 (154)12.5.4.3.17.left right字符串函数 (154)12.5.4.3.18.对Update & Delete语句的支持 (154)12.5.4.4.OQL风格指南15512.5.4.4.1.别名形式 (156)12.5.4.4.2.主实体+ 相对于主实体开始的导航表达式 (158)12.5.4.5.用户自定义函数与SQL标准函数16012.5.4.6.临时表16112.5.4.7.全景体验16412.5.5API 编程接口 16512.5.5.1............................................ QueryParser16512.5.5.2.QueryCompiler、CompiledQuery实例16612.5.5.3.QueryBuilder、CompiledQuery实例168第1章开发基础篇--U9系统的环境配置1.1 系统环境1.1.1Window 2003 标准版、企业版操作系统安装过程。
U9 操作指引销售管理部份料品:50-0000-0001 指定存储地点及业务员客户:指定交易币种,价目表,出货原则,退货条件,出货条件,收款币种,收款条件,立账条件,其中立账条件及收款币种要与交易币种保持一致(重要)1.下达销售合同(注意起交日期在生效日期与失效日期之间)—提交—审核—客户确认(注意指定合同类型及流程)2.操作—批量生单(注意收款条件币种与单据币种一致)--提交—审核3.标准收货—批量生单—提交—审核4.退回流程:退货申请—批量生单(注意退货处理的单据类型)--受理—提交—审核5.采购管理—收货—销售退回收货—批量生单—进入检验流程6.采购管理—销售退回单—操作—检验—确定—提交—审核采购管理部份:料品:10-0000-0001 ,收货程序,勾选请购及询价属性1.查看是否点收及检验,操作—点收—提交—审核为可改,收货原则要填供应商:付款条件,付款币种,收货原则,立账条件2.下达采购合同(注意起交日期在生效日期与失效日期之间)--提交—审核—供应商确认3.采购申请—合同请购—批量生单(参照采购合同)提交—审核4.采购管理—料品询价范围—询价—批量生单(参照请购单)-比价—接受比价—提交—审核—转PO5.采购订单—提交—审核6.标准收货—批量生单—进入检验流程。
7.采购收货单—操作—检验—确定最终接受数量—提交—审核生产管理部份:料品:50-0000-0001 料品档生产页签可设超领百分比;物料清单中控制页也可以设,优先取物料清单的设置1、生产订单下达新增——单据类型——生产部门——生产数量——完工存储地点——计划开工时间——计划完工时间2、齐套分析指定存储地点——选取成套策略(生产数量、指定数量、可成套数)——选取生产订单——齐套分析3、生产订单开工开工:开工——开工数量——开工反开工:开工——开工历史——反开工4、生产订单领料与退料领料:后续处理——非成套领料——存储地点——实发数量——保存——审核——发料确认退料:生产退料——单据类型——选取生产订单——选取备料单——实退数量——退料理由——保存——审核——退料确认生产订单查询领退料明细、生产订单查询备料5、生产订单完工后续处理——完工——完工数量、报废数量、返工数量——质检页签(没有质检流程时:检验结果、不合格处理方式、数量)——保存——审核——进入质检流程---入库(打开生产订单、取消入库)6、返工生产订单生产管理参数:是否即时产生返工生产订单。
U9 BP服务开发指南文件编号:版本号: 1.0修改状态:0编写人:祁宏伟审核人:适用对象该规范适用于U9所有BP和服务的开发人员版本记录【此部分要记录该文档形成过程中的历次版本变更过程及变更的内容】版本修改与参与人修改时间修改原因修改概述审批人1.0 祁宏伟 2008-7-10 原始版本创建1.1 祁宏伟 2008-7-30 增加模型设计,调整格式相关文档名词解释BP: business operation 业务操作,指一个业务操作单元.可以理解成一个有平台元数据和框架引擎支撑的业务方法.主要用于对于UI调用后台的业务数据操作和后台业务操作的逻辑封装. SV:服务,和BP一样同样也是业务操作单元, 但服务从设计上是用于为外部服务组外部应用提供的业务接口,可以进行webService发布.U9中使用BP和服务的主要场景:对于支持IIS和应用服务可分布的场景,UI在IIS服务器,调用应用服务器的处理必须要走BP,来支持跨进程,机器调用.此时该BP主要用于对UI的数据请求作处理和返回.对于应用服务间业务逻辑的处理过程中,常常有需要对业务逻辑进行一定的封装,此时用BP封装业务逻辑,主要是包装多个业务操作,提供功能接口.对于服务,只用于跨服务组,跨组织,跨Site情况下的业务功能接口访问.手册正文1BP,SV模型设计:BP与SV的模型设计是一样的,下面用BP的模型来演示.1.1创建BP项目打开UBF,解决方案中右键 “Solution’demo’”弹出菜单选择新建弹出创建对话框1.选择区域1操作项目 BP2.项目名称 SubmitSOBP3.点击确定保存退出这时解决方案中就多了一个项目” SubmitSOBP.ubfb”1.2 设计BP第一步: 双击SubmitSOBP进入BP设计区第二步: 拖入操作BP从工具箱中选择‘操作’拖入工作区中如图区域2所示修改操作属性名称为SumitSO显示名称为审核第三步新增BP传入参数在模型图中选中BP,在详细信息视图中添加传入参数类型的设置,同实体的设置方法一样第四步 设置BP属性选中BP, 点属性窗口1.修改名称2.修改显示名称3.修改返回类型,在这里默认为空类型,也就是V oid型4.是否是实体的主键5.事务类型选择6.是否需要权限的控制。
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就不可用。
用友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软件的特点,提供了一套适用的类库、框架以及具有扩展性的通用解决方案。
有效地降低了开发工作的难度和工作量。
在系统交付、安装和部署后,支撑业务系统的解析和执行;提高应用软件的可定制性与可集成性。
提供对OFFCIE、移动商务、第三方软件系统等企业级的集成与应用协同。
➢UBF Studio提供了统一的集成开发环境,其中包括模型设计、UI设计、报表设计、规则设计、数据库设计、BI设计等各方面的设计器,通过可视化的界面和友好的交互自动产生需要的各种软件工件,极大地提高了软件开发的效率和质量。
提供对完整产业链的全角色开发的支撑环境。
➢组件化发布平台提供软件产品的组件规划工具,以定义软件产品的工艺图。
自动化构造工具将依据该工艺图,自动地构造组件并存入组件库中。
安装系统生成工具将按照用户的意图从组件库中提取适当的组件产生安装包。
在本手册中我们将详细介绍怎样使用UAP中的UBF和UBF Studio开发应用。
UBF概述UAP平台与应用系统间的整体逻辑架构UAP平台是在国际上主流和公认的技术标准与规范的基础上建立的一个开放的企业级开发工具平台。
它采用了元数据驱动的、面向服务的体系架构,并提供了统一的编程抽象模型,是一个适合应用软件开发及部署的全角色平台。
UAP平台与应用系统之间的逻辑关系与整体架构如下图所示。
其中,UAP平台提供了模型定义、服务组装、应用开发集成环境(UBF Studio)、应用平台以及应用工具等五个核心的工具集。
并通过这五大工具集为应用系统以及第三方的其它应用提供统一的模型定义、功能开发与应用集成的环境。
UAP平台的技术体系架构UBF的技术体系结构采用分层的架构模式,主要可以分为数据层、业务层、表示层,并且通过抽象的控件模型提供对多种客户端的应用支持。
整个架构如下图所示:其中,在数据层中,持久化服务引擎主要负责访问和查询存储在数据库中的各种业务数据,在隔离业务层和数据存储管理的同时,实现与业务层的实时交互。
持久化服务的这种隔离有以下好处:——减少数据库提供者变更带来的影响;——减少因数据对象变更带来的影响(如变更数据库的schema);——封装数据的处理操作,这将在很大程度上减少测试和维护工作;——通过O/R映射机制,以维护对象和持久存储之间的一致性,减少因面向对象和非面向对象这两种技术存在着阻抗不匹配。
在业务层中,业务实体对象封装了一个业务中的元数据、存储过程和触发器以及该业务的规则、过程或事件。
业务实体对象是业务中实际存在的事物或概念,是对“ER”模型中概念的面向对象的扩展。
业务实体对象负责执行包括强制的业务规则、应用规则、数据有效性、并发和存储等所有方面的内容。
且多个独立的但有关联关系的业务实体对象可以一起协作来完成一个应用,完成不同的任务需执行很多具有不同特点的业务实体对象。
而业务服务则可以定义为一段独立的逻辑程序,当多个服务组合在一起时可完成不同类型的业务需求。
服务描述了贯穿业务的工作流程和信息,同时对业务逻辑进行了封装,实现了对业务实体对象的操作,并驱动业务实体完成业务功能。
服务可以由工作流系统、业务实体对象管理器、面向对象语言或交互过程定义系统实现。
通过UDDI服务网关来查询、绑定内部或外部相应的服务或应用,并调度相应的一个或多个业务实体对象来实现业务处理。
而业务流程对象封装了业务处理与业务策略过程。
例如,一个定单处理工作流组件可能结合客户、定单等业务实体对象完成定单处理的工作流程。
在表示层中,通过MVC的模式建立业务模型、视图以及控制器之间的业务连接,并实现对各种客户端界面(包括基于浏览器的WEB应用方式、用户交互的窗体以及Smart Client等应用方式)的支持。
每个窗体用来显示系统提供的信息以及传递用户的输入信息。
这种基于窗体的用户界面包括两种类型的组件:——用户界面组件:基于.NET Framework的组件,包括Smart Client组件和Web Form组件,还支持用户基于.NET Framework定制的组件。
——用户界面处理组件:复杂的用户界面通常需要很多非常复杂的窗体。
为了提高其可复用性、可维护性和可扩展性,需要创建分离用户界面处理的组件,以封装窗体和界面导航之间的相关逻辑。
可以对一个窗体中组件之间的依赖、确认和导航应用相同的概念。
这些UIP 组件通常是一些基于诸如:Front Controller, Application Controller等设计模式的定制组件。
UI和UIP组件之间的交互通常采用MVC模式。
另外,UBF技术体系架构中还包含基础服务层:即提供其它所有层都能使用的一系列基础服务。
这些服务分成三类:——安全:提供与应用和系统安全相关的服务集合;——执行控制管理:这些服务负责管理组件或服务以及相关的资源,还负责处理容错和可扩展性等操作和控制的需求;——通信:提供组件或服务之间的通信,包括.NET Remoting、SOAP、同步或异步消息等服务。
UBF领域模型语言(DSL)为了提供对模型驱动的软件开发技术的有效支持,UBF台提供了一种领域特定语言(DSL),其中包括了业务领域语言、表单领域语言、流程领域语言以及报表领域语言等。
并针对不同的领域语言采用不同的模型化以及组件化的生成方式,例如通过业务领域语言,可以有效地建立实体模型、数据模型以及服务模型,并且根据模型的关键属性与特征生成相应的软件组件。
通过多种模型生成的各种相关的软件组件在应用组装语言的支持下实现动态组装,从而快速形成一个完整的应用系统。
其中:➢版型是扩展业务实体定义的描述方法,是对业务对象进行分类识别的工具,主要用来对业务模型进行抽象,找出实体间的公共属性;每个版型可附带一个代码片段作为模版,根据业务需要由设计人员动态创建,在实体定义阶段进行引用。
通过设置版型,对实体进行标识,从而易于识别,并可基于版型进行分类。
比如:帐表类实体等树形实体,可通过建立版型进行识别。
➢特性可在不同实体间复用的属性集和版型集;可复用的属性集和版型集通过实体转存为特性,在维护实体属性和方法的时候通过引用特性引入已保存的特性。
➢模式:可在不同组件间复用的实体集,以及实体间的关系。
实体模型实体模型用于描述业务数据的结构和关系。
实体模型族中包括实体组件、实体、属性类型、数据传输对象、动态枚举、异常、实体校验器、事件和关系。
其中关系分为继承、组合和关联。
实体组件实体组件与软件行业通常所说的组件的概念并不相同,实际是用于描述一组具有强依赖关系的实体的边界。
在一个实体组件内仅能有一个主要实体及其组合的实体。
UBF的持久化引擎使用实体组件的元信息以保证实体组件内主实体与其组合实体的生命周期的一致性。
实体实体模型用于开发者定义应用的数据模型。
实体模型中包括属性和方法。
实体分为主实体和非主实体,其中只有主实体才能组合非主实体,而不能被组合。
在实体模型上需要指定实体在数据库上存储时的数据库表的表名。
如果该实体继承于其他实体,还需要指定这种继承关系在数据库上的存储方式,目前UBF仅支持单表继承——即基类的数据也将存储在具体的实现类对应得表中。
为了优化实体数据的加载和保存效率,开发者还应当在实体上建立一个索引项,并仔细地规划索引项中应当包含的实体的属性和次序。
实体模型上还有用于通用查询服务的标志,如果开发人员设置了该标志,则通用查询服务将可以展现该实体的数据。
如果开发者设计了一个仅用于继承的抽象实体,需要设置抽象类标志。
实体的属性实体属性是关于实体中数据项的描述模型。
它的基本信息包括名称、类型、显示名和缺省值。
实体属性模型中有一组关于校验的信息用于持久化引擎对数据的合法性进行校验,如可空标志、只读标志、字符串的长度以及数值类型的值范围等。
实体属性模型中与持久化有关的信息包括业务主键、一旦使用不可修改、国际化、是否敏感日志字段。
其中如果声明为业务主键则该属性将成为该实体的唯一约束的一部分,只有当实体对象上所有业务主键属性的值组合没有重复时,该实体对象才能成功地增加。
国际化用于指定字符串类型的属性是否支持多语编辑和保存。
一旦使用不可修改标志用于类型为其他实体——引用关系,被设置后表明该实体对象所引用的其他实体对象将不能被修改。
是否敏感日志字段标志用于指定该属性的改变是否做系统得变更记录。
实体属性还可以被指定为计算列,并能定义计算表达式。
计算列不会被存储到数据表中。
关联实体可见和服务可见标志用于指定属性的可见性,只有被设置的属性才能被关联实体访问或作为服务的参数。
而查询属性标志则,表示该属性是否可以被通用查询服务所展示。
实体上可以指定任意数目的可开发者设计的校验器,以保证业务数据的合法性。
实体的方法实体方法是关于实体中行为的描述模型。
开发者除了可以指定名称、显示名称和返回值类型等基本属性外,还可以指定可见性——如public、protected等,以及静态、虚方法和重载方法。
实体的方法模型上可以声明任意数量的异常,以表明该方法将可能抛出这些业务异常。