NC客户化开发全书(第三版)-nc56

更新时间:2024-06-22 19:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

用友集团ERP客户化开发系列丛书

目录

第一篇 入门篇 ................................................................................................................................. 7 1. 搭建NC环境 ........................................................................................................................... 7

1.1. 内容概述 ................................................................................................................... 7 1.2. 详细介绍 ................................................................................................................... 8

1.2.1. 建立数据库 ....................................................................................................... 8 1.2.2. 安装NC ............................................................................................................ 8 1.2.3. 配置启动NC .................................................................................................. 12 1.2.4. Eclipse中建立NC开发环境......................................................................... 16 1.2.5. 产品参数,档案初始化 ................................................................................. 22 1.2.6. 权限管理 ......................................................................................................... 25 1.2.7. 产品主要目录结构介绍 ................................................................................. 27

2. NC基础技术 .......................................................................................................................... 28

2.1. 内容概述 ................................................................................................................. 28 2.2. 详细介绍 ................................................................................................................. 28

2.2.1. NC开发基本概念 .......................................................................................... 28 2.2.2. NC UAP 总体介绍 ........................................................................................ 30 2.2.3. NC的开发模型 .............................................................................................. 35 2.2.4. 开发远程接口 ................................................................................................. 37

2.2.4.1. 定义接口 ......................................................................................... 37 2.2.4.2. 实现该接口 ..................................................................................... 37 2.2.4.3. 部署组件 ......................................................................................... 37 2.2.4.4. 客户端调用 ..................................................................................... 38 2.2.4.5. 事务型组件发布 ............................................................................. 38 2.2.4.6. 客户端代码 ..................................................................................... 40

3. NC数据库持久化技术 .......................................................................................................... 41

3.1. 内容概述 ................................................................................................................. 41 3.2. 详细介绍 ................................................................................................................. 42

3.2.1. 核心类介绍 ..................................................................................................... 42 3.2.2. 通过JDBC FrameWork访问数据库 ............................................................. 42 3.2.3. 通过BaseDao进行对象的持久化 ................................................................ 44 3.2.4. 结果集合操作 ................................................................................................. 45 3.2.5. 结果集控制 ..................................................................................................... 46

第二篇 中级篇 ............................................................................................................................... 48 4. 元数据建模 ............................................................................................................................. 48

4.1. 内容概述 ................................................................................................................. 48 4.2. 详细介绍 ................................................................................................................. 48

4.2.1. 新建元数据模型 ............................................................................................. 48 4.2.2. 建立模型文件 ................................................................................................. 49 4.2.3. 建立数据实体 ................................................................................................. 49 4.2.4. 发布元数据 ..................................................................................................... 59 4.2.5. 导出JAVA源代码 .......................................................................................... 60 4.2.6. 生成SQL脚本并执行 ................................................................................... 60

4.2.7. 最终成果 ......................................................................................................... 61

5. 功能建模 ................................................................................................................................. 62

5.1. 内容概述 ................................................................................................................. 62 5.2. 详细介绍 ................................................................................................................. 62

5.2.1. 进入Workshop ............................................................................................... 62 5.2.2. 表单开发流程导航工具 ................................................................................. 65

5.2.2.1. 新建业务组件 ................................................................................. 65 5.2.2.2. 公共信息设置 ................................................................................. 66 5.2.2.3. 单据模板设置 ................................................................................. 66 5.2.2.4. 查询模板设置 ................................................................................. 69 5.2.2.5. 配置打印模板 ................................................................................. 70 5.2.2.6. 建立单据类型 ................................................................................. 71 5.2.2.7. 单据动作编辑 ................................................................................. 71 5.2.2.8. 单据动作脚本设置 ......................................................................... 73 5.2.2.9. 单据VO交换 ................................................................................. 73 5.2.2.10. 单据号设置 ..................................................................................... 74 5.2.2.11. 自定义按钮设置 ............................................................................. 75 5.2.2.12. UI组装 ............................................................................................ 75 5.2.2.13. 发布UI ............................................................................................ 76 5.2.2.14. 生成代码到本地 ............................................................................. 76 5.2.3. 权限分配 ......................................................................................................... 78

6. 单据开发技术 ......................................................................................................................... 78

6.1. 内容概述 ................................................................................................................. 78 6.2. 详细介绍 ................................................................................................................. 78

6.2.1. UI工厂 ........................................................................................................... 78

6.2.1.1. UI工厂结构图 ................................................................................ 79 6.2.1.2. UI工厂最基础类说明 .................................................................... 79 6.2.1.3. 单据模型介绍 ................................................................................. 81 6.2.1.4. 界面加载 ......................................................................................... 81 6.2.1.5. 事件处理 ......................................................................................... 82 6.2.2. 参照开发 ......................................................................................................... 83

6.2.2.1. 参照的类结构图 ............................................................................. 83 6.2.2.2. 自定义参照开发规范 ..................................................................... 83 6.2.2.3. UIRefPane 和refModle设置 ........................................................ 86 6.2.3. 单据号 ............................................................................................................. 87

6.2.3.1. 单据号规则 ..................................................................................... 87 6.2.3.2. 接口方法 ......................................................................................... 89 6.2.4. 公式 ................................................................................................................. 91

6.2.4.1. 常用公式 ......................................................................................... 91 6.2.4.2. 创建公式执行器 ............................................................................. 92 6.2.4.3. 设置公式执行器环境 ..................................................................... 93 6.2.4.4. 设置公式的值 ................................................................................. 93 6.2.4.5. 对公式进行语法检查 ..................................................................... 94 6.2.4.6. 提取公式变量 ................................................................................. 95

6.2.4.7. 给公式变量赋值 ............................................................................. 95 6.2.4.8. 取公式的值 ..................................................................................... 96 6.2.5. 锁 ..................................................................................................................... 96 6.2.6. 日志 ................................................................................................................. 98

6.2.6.1. 日志API的选择 ............................................................................ 99 6.2.6.2. 日志级别的选择 ........................................................................... 100 6.2.7. 异常 ............................................................................................................... 100

第三篇 高级篇 ............................................................................................................................. 101 7. 流程平台 ............................................................................................................................... 102

7.1. 内容概述 ............................................................................................................... 102 7.2. 详细介绍 ............................................................................................................... 102

7.2.1. 流程平台介绍 ............................................................................................... 102 7.2.2. 业务流程 ....................................................................................................... 104

7.2.2.1. 建立数据交换 ............................................................................... 104 7.2.2.2. 建立业务类型 ............................................................................... 109 7.2.2.3. 单据动作配置(推式流程配置) ............................................... 109 7.2.2.4. 流程配置 ....................................................................................... 110 7.2.2.5. 单据来源配置(拉式流程配置) ............................................... 110 7.2.2.6. 动作约束配置 ............................................................................... 112 7.2.2.7. 动作事件控制配置 ....................................................................... 113 7.2.2.8. 动作驱动配置(推式流程配置) ............................................... 114 7.2.2.9. 其他工作 ....................................................................................... 115 7.2.2.10. 推式流程过程 ............................................................................... 116 7.2.2.11. 拉式单据过程(单据的上下游参照) ....................................... 116 7.2.3. 审批流 ........................................................................................................... 118

7.2.3.1. 审批流定义 ................................................................................... 118 7.2.3.2. 流程模型 ....................................................................................... 120 7.2.3.3. 消息配置(Message Config) ..................................................... 121 7.2.3.4. 工作项的审批结果 ....................................................................... 122 7.2.3.5. 相关平台类介绍 ........................................................................... 123 7.2.3.6. 动作处理时序图 ........................................................................... 124 7.2.3.7. UI端调用-PfUtilClient ................................................................. 124

1. 判断是否进行动作前提示 ........................................................................................... 125

7.2.3.8. BS端调用 ..................................................................................... 125

1. 单据动作处理 ............................................................................................................... 125

7.2.4. 消息中心 ....................................................................................................... 130

7.2.4.1. 展现样式 ....................................................................................... 131 7.2.4.2. 消息类型 ....................................................................................... 133

8. 查询引擎 ............................................................................................................................... 134

8.1. 内容概述 ............................................................................................................... 134 8.2. 详细介绍 ............................................................................................................... 134

8.2.1. 进入查询引擎管理页面 ............................................................................... 134 8.2.2. 创建查询对象 ............................................................................................... 134 8.2.3. 设置报表参数 ............................................................................................... 135

8.2.4. 制作查询定义 ............................................................................................... 136 8.2.5. 查询格式设计 ............................................................................................... 138

9. 预警平台 ............................................................................................................................... 141

9.1. 内容概述 ............................................................................................................... 141 9.2. 详细介绍 ............................................................................................................... 141

9.2.1. 预警类型注册 ............................................................................................... 141 9.2.2. 预警条目注册 ............................................................................................... 143

10. 交换平台 ....................................................................................................................... 148

10.1. 内容概述 ............................................................................................................... 148 10.2. 详细介绍 ............................................................................................................... 148

10.2.1. 交换平台使用 ............................................................................................... 148

10.2.1.1. 注册外部系统 ............................................................................... 149 10.2.1.2. 准备外系统数据 ........................................................................... 150 10.2.1.3. 配置辅助信息(可选) ............................................................... 151 10.2.1.4. 设置基础数据对照(可选) ....................................................... 151 10.2.1.5. 配置Servlet的URL地址 ............................................................ 152 10.2.1.6. 利用客户端发送数据 ................................................................... 152

11. 会计平台 ....................................................................................................................... 154

11.1. 内容概述 ............................................................................................................... 154 11.2. 详细介绍 ............................................................................................................... 155

11.2.1. 会计平台注册 ............................................................................................... 156 11.2.2. 代码调用 ....................................................................................................... 160

12. 单点登陆 ....................................................................................................................... 162

12.1. 内容概述 ............................................................................................................... 162 12.2. 详细介绍 ............................................................................................................... 163

12.2.1. 单点登陆 ....................................................................................................... 163 12.2.2. 打开代办事项 ............................................................................................... 165

13. NC开发webservice ..................................................................................................... 167

13.1. 内容概述 ............................................................................................................... 167 13.2. 详细介绍 ............................................................................................................... 167

13.2.1. 发布服务 ....................................................................................................... 167

13.2.1.1. 创建WSDL文件.......................................................................... 168 13.2.1.2. 创建XSD文件 ............................................................................. 169 13.2.1.3. 配置UPM文件 ............................................................................ 170 13.2.2. 客户端调用 ................................................................................................... 176

13.2.2.1. 创建相关JAVA类文件 ................................................................ 176 13.2.2.2. 创建JAVA接口 ............................................................................ 177 13.2.2.3. 测试用例 ....................................................................................... 178

第四篇 附录 ................................................................................................................................. 182 14. XML和EXCEL ........................................................................................................... 182

14.1. 内容概述 ............................................................................................................... 182 14.2. 详细介绍 ............................................................................................................... 182

14.2.1. 利用XmlUtils读取XML ............................................................................ 182 14.2.2. Excel文件读写 ............................................................................................. 188

15.

16.

17.

18.

19.

多语言 ........................................................................................................................... 189 15.1. 内容概述 ............................................................................................................... 189 15.2. 详细介绍 ............................................................................................................... 189

15.2.1. 生成资源文件 ............................................................................................... 190 15.2.2. 代码调用 ....................................................................................................... 190 补丁与安装盘 ............................................................................................................... 191 16.1. 内容概述 ............................................................................................................... 191 16.2. 详细介绍 ............................................................................................................... 191

16.2.1. 安装盘结构 ................................................................................................... 191 16.2.2. 产品结构 ....................................................................................................... 191 16.2.3. 模块结构 ....................................................................................................... 192 16.2.4. 制作补丁 ....................................................................................................... 194 设计开发规范 ............................................................................................................... 197 17.1. 内容概述 ............................................................................................................... 197 17.2. 详细介绍 ............................................................................................................... 197

17.2.1. SQL规范 ...................................................................................................... 197

17.2.1.1. 概述 ............................................................................................... 197 17.2.1.2. 书写风格 ....................................................................................... 197 17.2.1.3. 性能优化 ....................................................................................... 198 17.2.1.4. 四、多数据库的考虑 ................................................................... 199 17.2.2. JAVA开发规范 ............................................................................................. 201

17.2.2.1. 文件 ............................................................................................... 201 17.2.2.2. 命名规则 ....................................................................................... 202 17.2.2.3. 注释规范 ....................................................................................... 206 17.2.2.4. 编码规范 ....................................................................................... 211 开发常见问题与技巧 ................................................................................................... 215 18.1. 内容概述 ............................................................................................................... 215 18.2. 详细介绍 ............................................................................................................... 215

18.2.1. 环境变量类 nc.ui.pub.ClientEnvironment .................................................. 215 18.2.2. UAP发送待办消息方法 .............................................................................. 217 18.2.3. 模板中下拉框的值 ....................................................................................... 218 18.2.4. 数据权限过滤 ............................................................................................... 218 技术红皮书 ................................................................................................................... 221 19.1. 内容概述 ............................................................................................................... 221 19.2. 详细介绍 ............................................................................................................... 221

19.2.1. 技术红皮书目录 ........................................................................................... 221

第一篇 入门篇

欢迎您成为用友NC开发队伍中的一员!如果您从未接触过NC的开发,本篇将从NC产品使用开始,循序渐进的带您步入精彩的NC产品世界.本学时教程是在完成NC产品使用入门阅读的最佳起点。在开始学习之前,您需要掌握以下基本技能:

? Eclipse使用

? JAVA和J2EE基础知识 本学时教程中将会讲述以下内容:

NC产品入门,本章旨在为那些对NC尚不了解的新进人员就NC的大体形态做个简单的讲解,以便对NC产品有个简单的认识,并学习到与NC产品二次开发有关的产品操作技术入门知识。

开发环境的安装和搭建,本章是为第一次使用NC的人员做准备,达到迅速的安装和搭建NC环境。

NC技术框架简介,本章您将会学习NC技术框架理论概念,通过学习范例代码掌握VO\\BO\\远程接口的概念。

NC56的数据建模,介绍如何基于元数据进行业务建模,以及如何在运行时对元数据进行管理。

1. 搭建NC环境

1.1. 内容概述

第一次在NC环境中做开发,需要首先建立一个数据库环境,这个数据库环境中指定了NC所要使用的表空间,并预先建立了NC的系统表、视图、索引等,并预置了大量的初始化数据。然后,在Eclipse中建立一个开发项目,引用UAP的jar包即可。经过这两步,就完成了NC开发环境的建立。NC环境安装完成后还需要对系统进行初始化,包括参数,组织结构,权限,基本档案的建立,这样一个系统才算真正可以使用。

1.2. 详细介绍

1.2.1. 建立数据库

在数据库服务器(Oracle,MS SQLServer,DB2)中新建一个空数据库,并执行数据库脚本建立NC需要的表空间,不同的数据库使用的脚本不一样(正式安装盘下有安装说明),以Oracle为例:其数据文件存放在D:\\sql\\data 下,那么数据库脚本为:

CREATE TABLESPACE NNC_DATA01 DATAFILE 'D:\\sql\\data\\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; CREATE TABLESPACE NNC_DATA02 DATAFILE 'D:\\sql\\data\\nnc_data02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; CREATE TABLESPACE NNC_DATA03 DATAFILE 'D:\\sql\\data\\nnc_data03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K ; CREATE TABLESPACE NNC_INDEX01 DATAFILE 'D:\\sql\\data\\nnc_index01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ; CREATE TABLESPACE NNC_INDEX02 DATAFILE 'D:\\sql\\data\\nnc_index02.dbf' SIZE 300M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ; CREATE TABLESPACE NNC_INDEX03 DATAFILE 'D:\\sql\\data\\nnc_index03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; CREATE USER NC50 IDENTIFIED BY NC50 DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp; GRANT connect,dba to NC50; 1.2.2. 安装NC

该步骤的目的是建立NC测试服务器,并利用它建表,并初始化数据表。运行NC56标准金盘中UAP模块下的ncsetup.bat文件,进入安装向导:

点击【下一步】按钮,进入版权申请页面:

选择同意后,点击【下一步】按钮,进入选择安装目录页面:

目录设置完成后,点击【下一步】按钮,进入选择安装产品页面:

选择客户化模块后,会将下面所有的功能都选择上,点击【下一步】按钮,进入安装页面后,点击【开始安装】按钮后进行产品的安装:

选择第三方中间件,如果没有则默认使用NC自带中间件,直接点击【下一步】按钮:

点击【完成】按钮,完成安装:

执行完此向导后,可以在你指定的NC_HOME目录中创建NC服务器端环境,如下图:

1.2.3. 配置启动NC

1)在NC_HOME\\BIN 目录下运行ncSysConfig.bat,首先需要建立数据源。

2)修改服务器端口,可以在server页签修改web服务器的端口

3) 下面启动NC自带的中间件,方法是在上面的NC_HOME目录中双击startup.bat,中间件即可启动,启动界面如下:

4)利用InternetExplore作为客户端登陆,在地址栏输入http://127.0.0.1/login.jsp,即可看到下面的界面:输入用户名root,密码为空,登陆到系统管理帐套中

5)帐套管理里面新建帐套,用户。

前面建立了NC要使用的数据库,并为数据库设置了表空间信息,但这还不够,还必须为其安装NC的系统数据表和初始化数据。方法是点击上面 帐套管理 页面的“升级帐套”按钮,开始进行数据表的建立和初始化,如下图:

然后开始初始化:

至此,NC数据环境已准备好。注销后再登陆到‖学习帐套‖,即进入了真正的NC系统,如下所示:

1.2.4. Eclipse中建立NC开发环境

在上一个步骤中,演示了怎么搭建NC的数据环境和测试环境,但作为开发人员,日常的工作都是在Eclipse开发环境中进行。在Eclipse中建立开发环境分下面几个步骤:

1.在Eclipse插件中加入NC开发所需的MDE插件(nc.uap.mde.editor_1.0.1.jar和

nc.uap.mde_1.0.2.jar),这些插件可以在 相关工具\\Eclipse_NC插件 中找到,拷贝到eclipse安装路径下的plugins目录下即可。

2.取得NC_HOME,NC_HOME包含了开发环境所需的所有jar包, NC_HONE就是安装完NC产品的主目录。通过Preferences中MDE Development 中设置NC Home。

还可以设置数据源,模块选择。

3.打开Eclipse,点击菜单“新建/项目”,弹出下面的对话框:

选择MDE Development下的Moudle Project即可。

4.点击下一步,开始创建Moudle Project,在下面的对话框中填入信息:

5.点击完成后,会创建项目,形成下图所示的目录结构:

6.至此,开发环境已建立完毕。在开发环境中调试程序,一般需要首先启动NC中间件,

然后启动UAP客户端调试器。下面我们在eclipse调试器中建立这两个程序:

建立中间件调试启动点,方法是在调试点管理界面左边列表的Module Application下新建一个调试点,MDE插件会为它设置默认参数,我们只需改变一下调试点名称,如下所示:

program arguments设置如下:

${FIELD_NC_HOME}/ierp/bin/prop.xml -Dnc.server.location=${FIELD_NC_HOME} -DEJBConfigDir=${FIELD_NC_HOME}/ejbXMLs

-DExtServiceConfigDir=${FIELD_NC_HOME}/ejbXMLs VM arguments设置如下:

-Dnc.server.location=${FIELD_NC_HOME}

-DEJBConfigDir=${FIELD_NC_HOME}/ejbXMLs

-DExtServiceConfigDir=${FIELD_NC_HOME}/ejbXMLs Working directory

选择Other 内容为 ${FIELD_NC_HOME}

启动中间件快捷方式是在工程点击右键,在run as出点击NC Milldeware就可以。

建立UAP客户端调试器启动点,该调试器的入口类是nc.starter.test.Jstarter,因此可以新建一个 Java Application类型的调试点,输入入口类,如下所示:

在设立这两个调试点之后,要注意两个问题:一是你的项目所使用的JRE的安全策略必须是:

grant {

permission java.security.AllPermission;

};

这可以通过修改 {$JRE根目录}/jre/lib下的java.policy文件来实现,否则在启动中间件时会出现java.security.AccessControlException;二是要成功运行UAP客户端调试器(JStarter),必须将jre/lib下的plugin.jar,Tools.jar也加入到项目默认的JRE的classpath中,如下所示:

此时即可先启动中间件,再启动客户端调试环境。即可进入NC登陆界面,如下所示:

至此,NC的环境完全建立起来。

1.2.5. 产品参数,档案初始化

利用NC-UAP进行开发的时候并不是做一个单据,报表就可以运行的,NC作为一个ERP软件,需要对系统进行一些初始化才可以正常运行,主要是对组织机构,人员,权限,会计期间,参数,档案的初始化。(本节只对这些设置进行简单描述,详细介绍可参考相应产品手册,比如基本档案,权限手册) ? 参数

在 NC 管理软件中,参数设置平台管理系统所有的参数,并对参数按实际需要进行逐级分配,实现既能统一控制,又能满足单位灵活运用。参数包括公共参数和业务参数,以集团进入还是以公司进入看到的参数设置界面内容是不同的。主菜单中双击【客户化】-【参数设置】:

必须设置的参数是集团本位币。 ? 币种

对于全集团用到的币种在本功能中进行设置。总公司或上级单位确定集团公司或所属下级单位使用的全部币种,包括本位币。币种设置完成后,集团公司所有内部单位还需在各自单位账中录入相应的主辅币信息及汇率信息,待这些信息录入完毕后,方能在日常业务使用的这些币种。在主菜单中双击【客户化】-【基础数据】-【币种】,系统将弹出界面。属于集团档案

? 会计期间方案和会计期间

会计期间方案用来定义账套拥有的会计期间数目,然后为每个期间方案定义一套会计期间。在主菜单中双击【客户化】-【基础设置】-【会计期间】会计期间节点用来定义账套的会计月度和会计季度。启用多账簿的情况下会计期间按照会计期间方案分别进行设置。 ? 公司目录

公司目录用于定义集团公司所有公司的基本信息、联系信息,包括公司编号、名称、联系方式等相关信息,并确定分子公司之间的关系。以公司身份登陆后,只能查询。在主菜单中双击【客户化】-【基础数据】-【公司目录】

? 建公司帐

新建公司账是为已经存在公司目录中的公司建账、增补系统模块,以便初始化业务数据及业务参数,已建账的公司才能处理有关业务。新建公司账还可为已建账公司增补功能节点。 在主菜单中双击【客户化】-【建公司账】-【新建公司账】

? 基本档案

在基本档案节点为集团和公司建立基本信息,以便于业务系统使用,包括部门、人员、库存、自定义项、组织机构、财务信息、业务信息、制造信息等等。除少数几个档案只能在集团增加外,其他档案受集团参数设置节点的【客户化】中的【基本档案】参数决定,为“是”公司和集团均可增加档案内容,为“否”则公司不能增加。

常见的档案添加比如:部门档案在公司增加,人员类别在集团,人员档案在公司。具体档案初始化参考基本档案产品手册,不一一介绍。

1.2.6. 权限管理

NCV5.0权限管理与之前版本最大的区别在于在权限管理中引入了―角色‖概念。先

规划好各种角色并分配权限,再将用户与角色关联起来,将角色作为桥梁把―用户‖和―权限‖连接起来。换句话说就是:通过规划好各种角色先将用户分类,再为各类用户分配权限。

资源权限控制界面用来为当前登录公司以及当前登录公司的下属公司启用按钮权限控制和数据权限控制。

NC系统中的权限由三个部分构成,分别为功能权限、数据权限和按钮权限。功能权限是指节点的查看和打开的权限;数据权限是指档案的参照权限,而按钮权限是只指各个界面上按钮的查看和使用权限。如果不启用权限控制,则不需要分配权限,系统默认角色具有所有权限;启用权限控制后,可以为具体的角色分配具体的权限。NCV5.0系统默认启用了功

能权限控制,且该设置不可修改;数据权限和按钮权限的权限控制默认为不启用状态,但可在本界面对设置进行修改。

在用户管理界面可以为当前登录公司以及当前登录公司的下级公司增加用户,还可以为在这些公司创建的用户委派角色。用户必须被委托角色才有相应权限

角色管理的界面如图所示。角色管理节点用来为当前登录公司以及当前登录公司的下属公司创建角色,将创建的角色分配给下属公司以及为角色关联用户。

权限分配的界面如图所示。权限分配节点用来为当前登录公司和当前登录公司下属公司的角色分配功能权限、按钮权限以及档案的数据权限。

经过以上操作可以为公司建立角色,用户,并赋予相应权限。深入的权限管理参考权限管理产品手册。

1.2.7. 产品主要目录结构介绍

ierp/bin: 与整个产品相关的配置文件都存放在该目录,如日志配置文件logger-confing.properties

modules: NC产品模块存放的目录,下面的所有模块在系统启动时得到加载

modules/<模块名>: 某个模块的目录,模块名必须是小写的英文字母,在能表达意义的基础上尽量的短

modules/<模块名>/META-INF/module.xml: 必须存在,配置模块的一些通用属性,如名称,描述,classloader等,注意名称必须与模块名称同名

modules/ <模块名>/lib: 模块公开的API类,如接口,接口相关的VO等,放JAR包

modules/ <模块名>/classes:模块公开的API类,如接口,接口相关的VO等,放带目录的.class文件等,用于补丁

modules/ <模块名>/META-INF/lib: 模块私有的代码,如DMO, 业务实现等,放JAR包 modules/ <模块名>/META-INF/classes:模块私有的代码,放带目录的.class文件等,用于补丁 modules/<模块名>/extension/lib,classes: 用于二次扩展的公开的API

modules/<模块名>/extension/META-INF/lib,classes:用于二次扩展的私有的API

modules/<模块名>/client/lib,classes: 用于从目标上来说不属于公共的API,但是客户端用到的代码

webapps/nc_web:NC产品的web应用

hotwebs: 下面放其他的web应用,如hrss, lfw等

resource: 存放与整个产品相关的资源,如产品的多与资源

lib, classes, external/lib, classes: 由平台维护和提供的类库,不允许第三方调整

2. NC基础技术

2.1. 内容概述

本章将介绍UAP-NC平台的技术结构,开发模型,并通过一个例子亲身感受远程接口开发。

2.2. 详细介绍

2.2.1. NC开发基本概念

单据:比如报销时的报销单,一般由表头和表体组成(有些时候还含有表尾)。表头中包含了单据的主信息,比如日期、部门、预算项目;表体包含了单据的明细信息,比如具体的事项和金额;

单据类型:一个业务系统为了使结构更清晰,通常也是分层的。比如,供应链系统包含了采购、库存等子系统,每个子系统都具有一个系统类型,而每个子系统都会具有很多张单据,为了区分这些单据,为每张单据命名一个单据类型,作为唯一标识;

模板:单据开发涉及到三大模板(单据模板、查询模板、打印模板)。单据模板定义了单据的显示外观和基本框架,查询模板定义了单据的查询对话框,打印模板定义了单据信息打印到打印机的样式和格式;

VO是ValueObject的简写,在NC中是一个抽象类,它实现了Cloneable和Serializable

接口。是NC业务数据的载体在系统各层之间传递业务数据。

CircularlyAccessibleValueObject是ValueObject的子类,提供了对自身的属性进行存取操作的方法。

SuperVO是CircularlyAccessibleValueObject的子类,是NC系统中最常使用的VO类型,它与一张数据库表对应,可以方便的利用NC的JDBCFramework进行持久化操作。

以上是对一个数据对象的抽象,在NC产品中,绝大部分功能是通过单据的形式提供的,而NC的单据大部分是一对多的关系,我们称之为一个主表记录对应多个子表记录。

AggregatedValueObject就是用于存储一对多关系的主子表数据。对于一主多子的情况,实现IExAggVO接口。

聚合VO:单据一般由表头和表体构成,因此单据的数据表通常设计成主表和子表。聚合VO是对单据数据的抽象,它用于装载主表VO和一组子表VO.;

UI工厂:虽然能通过三大模板定义出单据的显示,但每张单据都有一些公共的或特殊的行为。UI工厂是一种单据开发框架,它将常用单据抽象成了很多类型,因此,UI工厂相当于是单据开发的代码模板,预置了单据的各种公共行为,比如增、删、改、查,并且可以连接到NC流程平台,支持审批、单据驱动等应用。

远程接口:V5远程组件开发都是基于接口(替代原先的BO访问),访问也都是基于接口。

参照:是一种辅助的数据输入方式,通常弹出界面的形式提供可以参考的数据,比如在录入省份信息时,提供一个全国省份列表以供选择。单据开发中,有很多输入字段存在类似的需求。NC系统中预置了很多种常见参照(基本覆盖了所有的基本档案,比如人员参照,存货参照),如果要自定义一种参照,则需要简单的开发工作。

ToftPanel:提供对NC产品功能节点开发的支持,统一功能节点的注册类型(ToftPanel)。提供了节点开发过程中按钮的注册机制以及按钮与界面的互动机制(通过ToftPanel的onButtonClick(bo)方法进行事件响应)。节点打开时,真正运行的是FramePanel实例,它提供了ButtonBar进行按钮展示,TitlePanel进行节点标题的显示,同时将用户开发的ToftPanel子类放置到中心位置进行展现。下图是ToftPanel区域介绍:

ButtonBar TitlePanel FramePanel ToftPanel 2.2.2. NC UAP 总体介绍

UAP-NC作为基于多组织架构的企业应用运行平台、基于模式化的开发平台、开放的系统集成平台及统一的系统管理平台,是建立在Java语言所提供的强大功能的基础上开发的。Java是一种简单的、面向对象的、分布式的、结构中立的、安全的、可移植的、性能优异的、多线程的、动态的开发语言,适合构建基于网络计算的企业应用。由于Java的平台无关性,使得UAP-NC可以运行在不同硬件平台、不同操作系统平台上。基于UAP-NC所开发的应用软件采用Browser/Server(浏览器/服务器)的方式来运行。B/S的运行方式最大限度地方便了用户部署和维护大型软件系统,保证了瘦客户机运行,从而大大降低了用户目标系统的总体拥有成本(TCO)。

系统框架层主要指基础软件,如操作系统、数据库及J2EE应用服务器。UAP-NC支持多种操作系统(Solaris、AIX、Linux、Windows等),可运行于符合J2EE规范的多种应用服务器(IBM WebSphere、BEA WebLogic、UFIDA Application Server等),支持多种数据库DBMS(DB2、Oracle、SQL Server、OSCAR等)。UAP-NC还提供Portal服务器进行内容集成以使用户对企业资源有一个统一的访问点。

技术框架层是在系统框架层(操作系统、数据库及应用服务器)和应用系统之间建立的一层技术封装层和系统资源监控和管理层。技术框架层屏蔽不同具体技术实现的细节,减少直接使用系统资源带来的复杂性、异构性、不安全性及不稳定性;技术框架层监控和管理系统资源,保证系统资源的可用性及其合理使用;技术框架层提供最佳编程模式,加快在不同技术平台上开发和部署应用的速度,保证应用的健壮性。技术框架层所屏蔽技术实现细节包括界面风格、远程接入、EJB实现/访问、多数据库适配、事务处理、并发处理、缓存处理、安全管理等等。

? 企业服务架构(Enterprise Service Architecture,ESA)

企业服务架构是一个服务集成总线,支持异构环境的服务、消息及基于事件的交互。通过ESA,可以使用与实现无关的接口来定义服务,可发现和调用所需的服务,可解决服务之间的相互依赖。

? 连接框架(Connect Framework)

连接框架连接客户端与服务器,使不同客户端(浏览器小应用程序、Java应用程序、

浏览器JSP)可通过不同访问协议(HTTP/HTTPS,RMI)使用服务器提供的服务。

? 同步(Synchronization)

同步服务实现客户端与服务器代码和数据的同步,及集群环境下服务器之间的资源同步。

? SQL翻译器(SQL Translator)

SQL翻译器将SQL翻译成适合目标数据库的SQL语句,以适配不同数据库厂商提供的产品;优化SQL,充分发挥不同数据库的最大性能。

? 元数据管理(Metadata Management)

元数据是描述系统数据(包括界面定义、规则定义、流程定义等)的数据。通过元数据管理,对系统数据统一进行维护以支持用户自定义,如改变字段的可编辑属性、字段的取值范围等。

? 工作流引擎(Workflow)

? 工作流引擎根据工作过程的描述,通过执行一系列已定义的工作项,完成此工作过程。UAP-NC的工作流引擎支持多种工作流模式,如分支、合并、并行、选择、循环、回退等;支持工作项的抢占与会签;支持可配置的动作执行脚本,等等。

? 规则引擎(Rule Engine)

? 规则引擎用来定义和执行各种规则,包括界面规则、关联关系、计算规则、条件跳转规则等。使用规则可以让应用更加富有柔性。规则需要通用的行业化语言精确表达且浅显易懂。规则引擎需要满足一定的计算速度,支持规则的批量处理及理解外部数据。

? 持久化框架(Persistence Framework)

封装不同持久化技术(如JDBC、普通文件、XML、Excel)。持久化框架可解决对象与关系之间的“阻抗失配”问题。

? 基础算法(Basic Algorithms)

提供统一的基本算法,如排序,XML文档操作,方便开发与编程,统一代码规范。 ? 登录和安全(Login/CA Security)

统一管理系统登录时的身份认证。支持多种身份认证策略,如静态密码认证、基于USB Key的CA身份认证等。支持对业务敏感数据使用证书进行签名和验证以防止数据篡改和提供抗抵赖性。

? 调度引擎(Scheduler)

? 调度引擎对服务和线程进行统一管理,以屏蔽不同应用服务器的异构性。调度引擎

调度各种服务、常驻系统服务、客户端的请求服务、以及一些服务的组合。

? 异常(Exception)

统一解释与封装异常消息,如不同厂商的数据库异常的不一致。 ? 缓存(Cache)

提供在服务器端与客户端的临时内存中进行缓存的机制,包括对象的创建、共享访问、假脱机(Spooling)、失效等,加快对用户操作的响应。

? 日志(Log)

日志机制提供对系统运行时的监控及支持对系统异常的追踪与定位。日志机制可控制日志输出的格式、日志信息的级别、日志信息输出的目的地(文件、控制台、SocketServer等)。通过配置文件进行灵活的设置,用户可以细致地控制日志的生成过程,而不需修改程序代码。

应用框架层是基于企业建模理论的、以业务导向和驱动的、可快速构建应用软件的软件平台。应用框架层的出现是一种技术创新,它使软件平台多了一个具有革命性意义的战略层次,为降低大型复杂软件系统的实现难度提供了新的途径。将应用软件的业务逻辑和开发技术相对分开,使得应用软件的开发者可以仅关注应用的业务逻辑,而不必关注其繁琐的技术实现。这使管理层与业务人员参与应用软件的开发成为可能。UAP-NC应用框架层基于业务和管理层面,以业务建模(组织、流程、功能、资源、信息)为基本手段,从而构造、开发和维护业务应用系统。使用UAP-NC提供的应用框架层,可大大缩短研发周期,提高研发效率,加快应用开发的速度;减少企业信息系统开发的风险;降低开发成本;实现最终用户的个性化的需求;支持用户在发展过程中各种各样的需求变化;提供应用的高价值。

? 国际化(I18N)

实现界面的多语化及数据和展示的本地化。界面的多语化是指根据用户登录时指定的语种显示相应的语言界面。企业用户可以修改相应的语言信息及显示的图片。数据和展示的本地化指日期、时间、数字、货币、汇率等可根据企业用户本地的习惯进行展示。

? 消息管理(Message Management)

消息管理集中显示通过ESA所传送的消息,如应用系统所产生的预警消息,通知消息,业务流程相关的消息,及企业公告和用户对发消息等。

? 移动管理(Mobile Management)

支持通过移动设备进行消息的交互及操纵业务数据等。对无线设备的广泛支持,UAP-NC带来的是企业管理的无处不在和服务的无限拓展,同时也为企业决策人员提供了高端、迅捷

的管理机制。

? 组织管理(Organization Management)

提供从不同维度管理企业,如公司、部门、主体账簿等。 ? 数据传输(Data Transfer)

数据传输负责传输以规则定义的数据集以支持数据层的应用集成。 ? 数据交换(Data Exchange)

与第三方系统进行数据交换,提供灵活的数据映射及数据绑定,支持根据业务规则的转换,同时结合工作流平台整合业务流程。

? 动态会计平台(Financial Account Platform)

通过定义会计科目类别和凭证模板,使用凭证生成器,根据业务数据生成实时凭证。在保持业务数据与财务数据相对独立的基础上保证数据的一致性和及时性。

? 预警平台(PreAlert)

? 在预警平台上可定义多种方式的预警条件以进行形式多样的预警,如时间条件、库存大小、生日等。预警还可配置在用户登录时触发。预警消息可以用HTML网页的形式发布,可以通过邮件发布,还可使用短消息发送。

? 业务流程和审批流程的编排(Business Process and Approval Flow

Orchestration)

用来定义业务流程和审批流中数据的流向,数据间的关系及以人员的关系。 ? 访问控制(Access Control)

使用基于用户角色和对象权限的权限分配方式。每一角色都包含公有权限和属于某一具体公司的私有权限。角色还提供信任功能。

? 应用模式(Application Patterns)

UAP-NC根据经验积累与用户实施,总结出一套与应用界面相关的模式(表单、报表和打印),更好地提供满足用户需求的界面展现,更快地满足用户个性化的需求。

2.2.3. NC的开发模型

系统前端为客户端UI代码,UI端代码继承ToftPanel,UI代码通过调用远程组件与服务器端进行交互,中间传递的数据模型为VO,远程组件调用底层的业务实现代码,完成整个交互逻辑。通过JDBCFramework,系统提供了一套良好的数据持续机制,解决数据库交互的复杂问题。

下图是NCV5的代码结构图

本文来源:https://www.bwwdw.com/article/i0f3.html

Top