金蝶EAS BOS类所在jar包(bos)
- 格式:docx
- 大小:70.80 KB
- 文档页数:89
金蝶EAS_V7.5_权限开发指南前言概述本文档概要的介绍了BOS权限系统的基本概念、基本操作及常见问题。
读者对象本文档适用于实施、二次开发人员及EAS开发人员及其他会使用BOS权限系统的人员。
约定符号约定在本文中可能出现下列标志,它们所代表的含义如下。
目录前言 (2)目录 (3)1 概述 (5)1.1 权限元数据 (5)1.1.1 权限文件 (5)1.1.2 权限项 (5)1.2 权限定义的总体流程 (5)1.2.1 定义权限文件 (5)1.2.2 定义权限项详细信息 (7)1.2.3 定义权限项扩展属性 (9)1.2.4 定义权限项的引用对象与属性 (12)1.2.5 发布权限项 (12)1.2.6 同步权限项 (13)2 功能权限的定义 (17)2.1 菜单功能权限的定义 (17)2.1.1 菜单项 (17)2.1.2 定义步骤 (18)2.2 按钮功能权限的定义 (19)2.2.1 定义步骤 (20)2.3 后台方法权限的定义 (20)2.3.1 定义步骤 (21)3 普通数据权限的定义 (21)3.1 定义步骤 (22)4 字段权限的定义 (24)4.1 定义步骤 (25)5 特殊数据权限的定义 (27)5.1 定义步骤 (27)5.1.1 集成单据实体 (27)5.1.2 权限项关联实体 (28)5.1.3 特殊数据权限设置 (28)6 特殊数据权限和普通数据权限的关系 (32)7 权限对外接口说明 (32)7.1 权限对外接口一览 (32)7.2 IPermission接口说明 (32)7.2.1 接口功能 (32)7.2.2 功能权限接口 (33)7.2.3 普通数据权限接口 (35)8 FAQ (39)8.1 权限项 (39)8.2 普通数据权限 (39)8.3 特殊数据权限 (39)8.4 字段权限 (41)1 概述BOS权限系统是基于用户、角色、组织、权限的思维权限模型,能够控制系统的功能、数据、属性各个维度,包括以下一些方面:1、权限项元数据:是所需要控制的功能的元数据模型,由开发人员在开发期间创建,元数据中可绑定界面操作功能、服务端方法、查询(query),部署时系统会将元数据信息同步到数据库中;2、功能权限;3、普通数据权限;4、字段权限;5、特殊数据权限;1.1 权限元数据1.1.1 权限文件权限文件以permission为文件名后缀,一般一个模块对应一个权限文件,权限文件是权限项的集合。
晚上睡不着,打开电脑翻到了一些当年在金蝶时写的笔记,还是让它们出来透透气吧,要不连我都忘记自己曾经写过这些东西了。
金蝶是我第一个东家,也是我技术能力提升最快的地方,真心祝福金蝶能高飞。
EAS开发环境部署一.开发环境的搭建由于现场开发环境与研发中心的差异,搭建环境会有差异,为了保证最后环境的搭建成功,我们分步骤进行搭建,以方便其中的一步如果出错,方便好定位问题1.1使用BOS启动客户端启动BOS,新建一个工程加载EAS Jar包(D:\kingdee\eas\server\lib\下的所有目录的jar包,有些麻烦,所以可以考虑把所有jar包拷贝到一个目录下)这里我把所有的jar包都拷贝到了我自己建的目录allJars然后BOS加载添加外部JAR设置JVM参数-DEAS_HOME=D:\kingdee\eas(EAS_HOME相当于JDK_HOME)-DEAS_SERVER=tcp://localhost:11034(服务端的IP)-Dlog4j.configuration=file:D:\kingdee\eas\client\deploy\client\log4j.properties( Log4j日志配置文件路径,可以没有这个参数)Ok,jar包加载了,启动参数设置了后还需要修改几个地方D:\kingdee\eas\client\deploy\client\vmoptions.properties增加客户端启动的元数据加载路径,这部非常关键OK,现在可以启动试试了OK,搞定(这只是万里长征的第一步)1.2部署自己的代码和元数据到环境中这一步也就是让你的代码和元数据要优先于EAS原有代码和元数据的加载代码优先的设置方法:虚拟W盘,命令:subst w:你要虚拟的目录(相应的去掉W盘的命令是subst w: /d)W盘建立好后,在W盘创建dev目录,并建立两个文件server-user.liblist和client-user.liblist这两个文件用于记录优先加载的目录是那些,因为我开发的代码都会编译到D:\MyCode\EAS_01\bin,所以我制定客户端优先加载这个目录,服务端是一样的道理然后我们设置元数据的优先加载方式客户端,修改D:\kingdee\eas\client\deploy\client\vmoptions.properties,修改部分见红线,因为我的元数据会发布到D:\kingdee\apusic\metas;,所以这里可以设置为优先加载服务端修改D:\kingdee\eas\server\bin\\common.pm这个文件,原理和客户端修改类似这个时候,基本都差不多了,我们尝试下看我们的单据是否能够被优先加载(这里有点文档思路写的有点跳跃,大家将就着看把,时间紧迫,顾不得字斟句酌了,J)1.3启动EAS,看我们的单据能否使用首先用administrator登陆增加到EAS菜单中去重新用用户登陆,可以看到我们的菜单项了EAS是MVC架构的么?2006年3月EAS是MVC架构的么?逐一分析,先看看EAS是否具备M、V、C这三个元素Modle--xxxControllerBean,在ControllerBean中除了定义了对实体的CRUD(addnew,getValue,update,delete)操作外,还包括实体相关的业务操作方法,如submit,audit,freeze等,应该算的上标准的Modle,下边是摘抄的一些对Model的定义模型(Model):就是业务流程/状态的处理以及业务规则的制定。
1. 发布元数据没看到代码,可能有以下原因:1。
发布方案路径(src,deploy,metadate)不对2. eas 5.4 更新数据中心报文件找不到错误:到项目目录下的runtime 下config 下的datasources.xml 删除版本检查代码---第二段代码3. 在eclipse中加入反编译插件,1。
jad.exe 加入到C:\WINDOWS\system322. jadclipse_3.1.0.jar 加入到E:\kingdeeEAS\eas\bos\BOSModular\platform\eclipse\plugins4. 继承ListUI的界面,必须有个id字段5. 加载onLoad方法出错,有可能是onLoad()方法,调用其他方法里面有错误代码6. Invalid column name : 1. rowSet.getString(“xxx”); xxx不是有效的列名2. 还有就是table的列名无效7. 应用服务配置不正确:可能是:1.启动的服务器与运行的项目方案不一致2.数据库服务没有启动3.数据中心没有设置正确8. BOS 中实体Entity 的ID 是通过oracle的Functions 功能实现ID自动变化,通过entity_pkmapping.properties 这个找到每个实体的对应BOSTYPE的值。
9. 使用BOS界面,弹出‘客户端配置错误,找不到第三方类’,可能是:1.客户端代码有错误;2.类不存在10. 在单据里,得到各分录的记录:1.通过界面得到:ProposalDefinedInfo pdInfo ; //单据InfopdInfo.ProposalDefinedEntry1Collection();//返回ProposalDefinedEntry1Collection集合pdInfo.ProposalDefinedEntry2Collection();//返回ProposalDefinedEntry2Collection集合2.通过实体关系得到:this.kdtEntry1 //得到kdtEntry1 这个表格的对象this.kdtEntry2 //得到kdtEntry2 这个表格的对象this.kdtEntry3 //得到kdtEntry3 这个表格的对象11. 你想引用某个界面上所有功能:1. 可以通过继承这个界面2. 可以通过复制这个界面,再反编译实现类12. 如果你得到一个实体的Info对象,再取到实体各字段的值1. Info.getString(“这里写字段的名称”);2. Info.get()方法——得到各属性的值13.发布BIM 或者是 BOS下的文件之前,最好是先校验下,如果校验不通过,那么发布肯定过不了。
Studio新建的UI发布只能看到抽象类的问题在导入了新的解决方案之后,在二次开发时进行新建UI,进行发布,但是在代码视图中只能看到抽象类,没有其他的代码。
对于客户二次开发中用户自定义的单据才生成实现类,但发现BOS Studio新建的ui元数据自定义标记为<userDefined>false</userDefined>,导致在发布时认为不是用户自定义的,因此没生成实现类。
需要把T oolCommon 插件下(E:\kingdee\bos\BOSModular\boscommon\eclipse\plugins\com.kingdee.bos.toolcomm on)的toolcommon.properties 这个文件中的isDevelopVersion=true 改为:isDevelopVersion=false如何修改UI的父类?如何修改EditUI绑定的实体Entity?点击UI,选择左边浏览方式“大纲”。
选择Data Objects 的editData(查询对象)设置由自己定义的一个Entity元素据。
Java源码会有这样一句话:editData = (com.kingdee.eas.fi.fi_cs.CsAccountV iewInfo)ov;其中CsAccountViewInfo是自己定义的一个Entity。
而com.kingdee.eas.fi.fi_cs则是他的路径。
如何修改ListUI绑定的查询Query?解决:点击UI,选择左边浏览方式“大纲”。
选择Data Objects 的mainQuery(查询对象)设置由自己定义的一个Query元素据。
Java源码会有这样一句话:mainQueryPK = new MetaDataPK("com.kingdee.eas.fi.fi_cs.app", "CsAccountV iewQuery");其中CsAccountViewQuery是自己定义的一个Query。
WebService使用指南1. BOS Web Service的范围BOS Web Service主要实现了将实体和Façade发布为标准的WebService提供给不同的客户端调用。
目前只支持将实体和Façade两种对象发布为WebService。
BOS Web Service的发布流程如下:2. 在BOS Studio中发布Web Service2.1. 发布WebService运行BOS Studio,打开“包分类”视图,在其中选中要发布WebService的实体或Façade对象(可同时选中多个),点击鼠标右键,在弹出菜单中选择“发布WebService”,将弹出“发布WebService”向导:选择实体或Façade对象下要发布的方法,手工输入或者点击“浏览”按钮来指定发布生成代码存放的目录,可以同时勾中“追加到配置文件”。
这样BOS Studio将会根据选中的对象和要发布的方法生成WebService代码。
2.2. 编辑WebService配置文件在“包分类”视图中,选择要编辑其配置文件的解决方案,点击工具栏上的“编辑WebService 配置文件”按钮,将会弹出配置文件编辑向导:在其间,可以增加或删除要发布的对象(方法),选择好要发布的对象(方法)后,点击“完成”按钮,即可完成对配置文件的编辑。
配置文件位于解决方案的根目录下。
3. 日构建自动发布WebService在编辑好WebServiceDeploy.xml文件的提前下,在日构建的Ant脚本中调用com.kingdee.bos.tool.Generator类的main方法即可自动发布WebService,其参数有两种:1)传入一个参数”-h”或”-help”(不区分大小写);2)传入四个参数(配置文件WebServiceDeploy.xml所在目录全路径名, 需要产生WebService的元数据目录全路径名, 放置生成的相关Java文件的目录全路径名放置生成的相关WSDL文件的目录全路径名)。
种类 名称 说明 例子CombBox addItem 将枚举的值加入下拉列表选项 dataType.removeAllItems();dataType.addItem(DataTypeEnum.SUMDATA);dataType.addItem(DataTypeEnum.ELIMDATA);dataType.setSelectedItem(DataTypeEnum.SUMDATA); txtDataType.setText(DataTypeEnum.SUMDATA.getAlias());CombBox removeAllItems 删除下拉列表的所有选项 this.listOrgBound.removeAllItems();CombBox setModel 使用值对象集合给ComboBox控件赋值DefaultComboBoxModel model = newDefaultComboBoxModel();ICsAccountTable iAccountTable =CsAccountTableFactory.getRemoteInstance();CsAccountTableCollection tableInfos =iAccountTable.getCsAccountTableCollection();Iterator ter = tableInfos.iterator();while (ter.hasNext()){CsAccountTableInfo tableInfo = (CsAccountTableInfo) ter.next();model.addElement(tableInfo);}this.cbxMain.setModel(model);CombBox setSelectedItem 动态设置下拉列表选择项的值 this.listCurrency.getModel().setSelectedItem(currency1);ComboTreeDetailListUI buildTreeFilter 构造查询子节点(右表)数据的过滤条件,默认实现为在EntityViewInfo中添加一个getQueryFieldName()=treeNodeInfo的过滤条件,即查询对象的某个属性关联到Tree节点所代表的对象。
WebService部署指南1. 前提条件本文档主要介绍如何将由BOS Studio发布的webservice部署到应用服务器上,本文档假定用户已经具备以下条件:●具有一个符合J2EE标准的应用服务器;●EAS系统的服务器端包已经部署在应用服务器中;●EAS系统的元数据已经部署在应用服务器中;●已经在BOS Studio将一批实体或Facade生成了一批webservice的java文件和部署描述,并且生成的文件已经编译成了class文件(具体的生成步骤请参考《WebService使用指南》文档)。
2. 在Apusic中部署WebService下面,将以Apusic为例,逐步说明如何将发布的webservice部署在应用服务器之中。
2.1. 已具备的条件假定开发人员在BOS Studio中,将Voucher实体发布为webservice,产生了相关的java文件和wsdd 文件,并将编译后的文件位于W:\dev\eclipse31workspace\webservicetest\cleanclasses目录:2.2. 在Apusic中建立一个Web应用(如果相关web应用已存在,则跳到2.4添加WebService的类)启动Apusic的部署管理工具选择“新建J2EE应用...”如下图所示填写WEB应用建立完成切换至“内容”页面,在列表中选择根目录,添加文件,选择BOSWebService包中的webapp目录选中“WEB-INF”目录,点击“添加”,将文件添加到WebApp中。
Webapp配置完成2.4. 添加WebService编译后的类(或jar文件)在节点中选择class目录(如果添加jar文件则选择lib目录),点击添加按钮,选择前面生成webservice类的编译后的目录(W:\dev\eclipse31workspace\webservicetest\cleanclasses)。
将选中的文件添加到webapp中添加class文件完成2.5. 将webapp部署到Apusic服务器2.6. 部署WebService(重要)确保Apusic在启动状态,如果刚部署完webapp,则需要重启Apusic。
⾦蝶EAS常见问题解答_⼯具及框架应⽤_20161 BOS⼯具1.1 bos启动测试,服务端启动就绪,但是客户端起不来问题描述拷贝过来的bos解决⽅案,启动测试⼀直停留在服务器就绪步骤。
BOS业务建模⼯具启动测试后⼀直停留在2011-03-01 11:46:08 信息[apusic.server.Main] 服务器就绪。
⽆法启动服务器。
解决⽅法拷贝过来的解决⽅案,其解决⽅案\runtime\apusic\config\server.xml中的内容为空。
拷贝⼀个能正常启动测试的该配置⽂件,替换即可。
.适⽤版本EAS703.1.2 测试启动的服务器端⾃动关闭并报错问题描述EAS7.0.3,bos6.1.0bos导⼊703的demo帐套,服务器端为703.启动测试后,测试启动的服务器端⾃动关闭并报错。
但是如果⽤控制台启动,则没有问题。
尝试过更新bos⼯具,更新解决⽅案,重新构建等均⽆法解决。
解决⽅法现场更新补丁:PT054300。
.适⽤版本EASV7.0.31.3 60⽼版本⼯作流连接,版本不匹配问题问题描述步骤 160⽼版本⼯作流连接,版本不匹配。
解决⽅法解决⽅法:步骤 1步骤1 更新BOS ⼯具,确保BOS⼯具版本和服务端的版本⼀致。
步骤 2步骤2 安装补丁PT028007。
将PT028007下载到本地,然后在bos⼯具“⼯具-更新BOS⼯具”中进⾏安装,解决插件下载不下来的问题。
步骤 3步骤3 检查服务器路径“$EAS_HOME\ eas\server\lib\sp”⽬录下⾯是否存在“sp-metadata.jar”⽂件。
如果存在,则把“$EAS_HOME\ eas\server\lib\sp”⽬录下⾯的“sp-metadata.jar”改名为“metadata.jar”并替换“$EAS_HOME\eas\server\deploy\fileserver.ear\easWebClient\BOSModular\boscommon\eclipse\plu gins\com.kingdee.bos.metadata_6.1.0”⽬录下的“metadata.jar”(替换前备份⼀下);这样建模⼯具再连接的时候就可以直接更新该⽬录下的“metadata.jar”包。