红皮书-1.0参数设置平台技术新一代云ERP解决方案2目录一.前言..1二.参数模板注册.22.1.参数模板管理.22.1.1.节点描述及功能..22.1.2.基本功能操作说明.22.1.3.其他功能说明..5三.参数设置.63.1.节点描述及功能.63.2.操作说明.6四.API..94.1.参数平台对外提供的需实现的接口说明.94.2.参数平台对外提供的调用接口说明.11五.附录.125.1.参数设置升级..125.2.可能遇到的问题及解决方法.125.3.多语言资源注册说明..135.4.常见问题..13新一代云ERP解决方案1一.前言U8cloud管理软件为了企业在软件应用过程中能够有效达成管理控制的效果,专门开发了参数设置平台。参数设置平台中输入和设置系统所有的参数,实现参数的逐级分配,使上级可以控制一些重要参数,不允许下级公司修改,只能够使用。参数设置增加了对多账簿、多主体、多语言的支持。参数设置平台由两部门组成:参数模板管理和参数设置。参数模板管理为程序员提供注册系统参数的平台,注册的参数将在参数设置中供实施人员使用。新一代云ERP解决方案2二.参数模板注册2.1.参数模板管理2.1.1.节点描述及功能参数模版设置提供给各产品组进行参照模版的设置。参数模版设置由各产品组的程序员进行设置后,用户才能在参数设置界面看到这些参数。2.1.2.基本功能操作说明选择左侧系统节点,单击“增加”,可以增加一条参数。编辑后单击“保存”,保存该参数。选择一条已注册的参数,单击“修改”,可以修改已注册的参数信息。选择一条已注册的参数,单击“删除”,可以删除已注册的参数。在参数注册编辑状态时,单击“作用范围”,弹出选择作用范围编辑框,可以选择当前参数作用的功能模块。项目说明:序号:手工输入,必输项。组编码:对于互相有制约关系的参数分组,输入代码。互相有制约关系的参数指A参数选择某值,就不能输入B参数,或者A参数选择某值,B参数必须输入等等这些情况都叫做互相制约。对于不互相制约的参数不用分组。还有一种需要进行分组的参数就是复杂参数,定义为默认java类的参数,其整个界面和界面里的参数定义为一组。组名称:手工输入,显示名称参数代码:不能重复,必输项。参数名称:参数显示名称。参数值类型:有四个类型:日期、逻辑、字符和整型、Double型,根据参数的实际情况选择。默认值:根据选择的参数值类型预置参数的值,主要为了防止实施人员或用户由于误操新一代云ERP解决方案3作设错了某个值无法恢复,所以在这里设了默认值,可以恢复为默认值。默认值为Java类对于一些复杂参数流程配置中很难表示的则调用产品组的参数设置界面。对于这样的参数在“默认值是Java类”项上打勾,代表选中,那么在“默认值”这一项中输入完整的类名称(包括路径)。在用户的参数设置界面,双击这个参数的“参数值”项即可进入产品组的参数设置界面。对于界面中的其他参数也要在下面输入,但是“是否显示”项置为不显示。【例子】对于下面的设置个人信息界面,采用界面切入到参数设置中的方式,每个参数如何设置?这个界面将存为4个参数,整个界面存为一个参数比如将参数名设为个人信息,姓名为一个参数,年龄为一个参数,文化为一个参数,一共四个。确定了有这么多参数后我们就要逐个定义了,首先定义个人信息这个参数,选中“默认Java类”项,在默认值中输入完整的类名,是否显示项为显示;然后定义姓名,不选“默认Java类”项,是否显示项为不显示;同理其他两个参数的设置与姓名参数相同。各项值如下:组名参数名默认值编辑样式默认java类显示Group2个人信息设置nc.ui.pub.para.sysinituidialogexample文本框√√Group2姓名张三空Group2年龄20空Group2文化程度大学空这样设置以后,在用户的参数设置界面,只能看到一个参数就是个人信息设置参数,在“参数值”下显示“参数对象,请双击”,双击鼠标将弹出产品组的参数设置界面,用户逐项输入即可。组名参数名参数值Group2个人信息设置参数对象,请双击取值范围:指参数输入范围或选择范围。对于整型和DOUBLE型的参数,取值范围的编个人信息设置姓名:年龄:文化程度:新一代云ERP解决方案4辑形式是m-n,m为最小值,n为最大值,必需用“-”分割,选择的范围为包含m、n的集合;对于选择框的参数,取值范围的编辑形式为:x,y,z,该参数在进行参数值设置时表现为有x,y,z三个选项的下拉列表,必需用“,”分割。编辑样式:参数的编辑控件。注意要和参数类型配合。编辑样式中,系统预制了集中参照类型。如果要选择的参照类型,在编辑样式中不存在,可以在“参照”栏目中选择,这里包含所有的系统默认参照。参数说明:参数的注释。作用域:参数所属功能节点。只起到按作用域显示的功能,和参数实际控制的范围无关。本栏目不可编辑。系统默认为当前选中的功能节点。是否组主参数:对于某个参数组定义一个主参数,在设置界面,该项打上勾即为组主参数,一个参数组可以没有主参数。被定义为主参数的参数其编辑样式必须为选择框,取值范围必须输入。图2-1参数模板管理互斥值:即与主参数的互斥关系。在一个组中将其他参数的互斥值与主参数值的选项进行比较,互斥值与主参数选项顺序值相同的参数,在用户界面可以编辑,证明与主参数不互斥;互斥值与主参数值选项顺序值不同的参数,在用户界面就不能编辑,证明与主参数互斥。检查类:在参数模版中只能对参数进行数据校验,但是有的参数还需要业务校验,用以检验这个参数是否能保存,因此我们提供了检查类项,对于这种参数,产品组可以在此处输入检查类的完整路径。该参数在进行编辑后进行保存时,系统会调用该检查类检查输入参数值的合法性,如不合法,则不允许保存。新一代云ERP解决方案5编辑类:与检查类类似,有的参数需要业务校验,用以检验这个参数是否能编辑,因此我们提供了编辑类项,在此处输入编辑类的完整路径。用户修改该参数前,系统会调用编辑类检查该参数是否允许编辑,如检查未通过,则该参数不能编辑。参数类型:参数按所属组织不同,分为5种类型。集团、核算账簿、公司、会计主体、主体账簿。集团级参数,集团只有一份,由脚本提供。账簿级参数,账簿只有一份,由脚本提供。公司级参数,每个公司一份,新建公司账时自动从参数模版Copy。会计主体级参数,每个会计主体一份,新建会计主体时,自动从参数模版Copy。主体账簿级参数,每个主体账簿一份,主体账簿启用时,自动从参数模版Copy。参照:“参照”栏目可以选择系统默认的参照。如果编辑样式选择了某参照,这里也选择的参照。本栏目下的选择优先。参照属性修改控制类。参照栏目中选择了参照,如果产品组要控制参照(如WherePart),注册控制类。参照初始化后会调用此类定制参照。2.1.3.其他功能说明[公司按钮]:点击公司按钮,系统检测是否有新增的参数模版记录,如有自动分配到所有已建账的公司。[总账参数调整]:包含2个子按钮[主体账簿参数调整为公司参数][公司参数参数调整为主体账簿]只能调整总账参数的参数类型,其他业务子系统没有此功能[主体账簿参数调整为公司参数]:把选中的主体账簿参数调整为公司级参数。[公司参数参数调整为主体账簿]:把选中的公司级参数调整为主体账簿参数。新一代云ERP解决方案6三.参数设置3.1.节点描述及功能参数设置可以对所有参数值进行设置,并可以设置参数之间的各种控制条件。根据多账簿多主体需求内容的要求,参数设置要支持原来的集团/公司的模式,还支持主体/账簿的模式。根据多账簿多主体需求内容,参数设置功能可以在集团、公司下进行设置。按照参数作用域的不同,将参数分为集团、核算账簿、公司、会计主体、主体账簿五种类型。在集团设置集团、核算账簿类型参数;在公司设置公司、会计主体、主体账簿类型参数。在公司登录时,可以设置以当前公司为主体或者当前公司部门为二级核算主体的会计主体类型参数;也可以设置以当前公司为主体的各个账簿或者当前公司部门为二级核算主体的各个账簿的主体账簿类型参数。在公司(主体)可以将某个公司(主体)参数设置成是否控制下级的方式,如果控制下级,则下级必须遵守该参数设置的条件或者规则,如果不控制下级,则下级公司(主体)可以根据需要设置该参数的值。3.2.操作说明首先选择参数类型和业务模块。注:集团登陆,参数类型只有集团(核算账簿类型的参数暂无);以公司登陆参数类型只有公司和主体账簿(会计主体级参数暂无)。单击“修改”,可以修改该系统下任何参数。进入修改状态,单击“默认值”,可以将该参数值恢复为系统初始化时的参数值。项目说明:参数名称:仅作显示,不能修改。参数值:可以修改。是否控制下级:勾选此项,则该参数在当前公司的下级公司被设置为受控参数,即该参新一代云ERP解决方案7数在下级公司参数设置界面中,无法在“本级参数”页签显示,而是显示在“上级参数”页签,且该参数值不能修改,只能使用上级公司(或上级主体账簿)设定的参数值。控制下级的参数,其下级的参数值可以与控制下级的上级参数不同,设置方法用[编辑下级参数]按钮实现.图3-1集团登陆新一代云ERP解决方案8图3-2公司登陆如果该参数选择控制下级参数,在参数保存时,会弹出对话框,询问控制下级的参数,保存时是否同时修改下级参数,选OK,同时设置下级参数的值,选Cancel,只修改当前参数的值.编辑下级参数;选择一条控制下级的参数,点编辑下级参数按钮,弹出属于该公司或该下级主体账簿的所有参数,修改参数值,保存.新一代云ERP解决方案9四.API(介绍本功能模块的插件注册与开发技术方案,如有多个插件可按照章节展开)4.1.参数平台对外提供的需实现的接口说明1.默认Java类实现接口nc.ui.pub.para.IsysInitPanel默认值为Java类需要实现nc.ui.pub.para.IsysInitPanel接口接口有两个方法:nc.ui.pub.para.ISysInitPanel.getPanel()产品组设置参数的Panelnc.ui.pub.para.ISysInitPanel.getSysInitVOs()用户设置完参数后,按确定按钮,参数设置平台需要调用此方法返回参数VO数组。注意:产品组得到参数VO数组的方法:nc.ui.pub.para.SysInitBO_Client.querySysInit(StringcorpID,StringgroupCode)2.初始化参数值编辑对话框的数据接口nc.ui.pub.para.ICbbData初始化参数值编辑对话框的数据,用于有特殊要求的业务组。如果编辑对话框的数据是动态变化的,不能把编辑对话框的数据静态地写入数据库。nc.ui.pub.para.ICbbDataExample.getCbbData()返回String[]3.业务组检查参数是否可编辑、参数是否合法的接口nc.ui.pub.para.ICheckPara修改参数前,参数是否可编辑;参数保存时,检查参数是否合法。接口有两个方法:nc.ui.pub.para.ICheckPara.checkPara(StringcorpPK,StringparaID,StringparaValue)参数保存时,检查参数是否合法:合法返回True;不合法返回False。nc.ui.pub.para.ICheckPara.editParaeditPara(StringcorpPK,StringparaID,StringparaValue)修改参数前,参数是否可编辑:可编辑True;不可编辑False4.业务组检查参数是否可编辑、参数是否合法的接口2nc.ui.pub.para.ICheckPara2新一代云ERP解决方案10修改参数前,参数是否可编辑;参数保存时,检查参数是否合法。接口有两个方法:nc.ui.pub.para.ICheckPara2.checkPara(SysInitVOvo,java.awt.Containerparent,SysInitVO[]compvo)参数保存时,检查参数是否合法:合法返回True;不合法返回False。nc.ui.pub.para.ICheckPara2.editPara(SysInitVOvo,java.awt.Containerparent,SysInitVO[]compvo)修改参数前,参数是否可编辑:可编辑True;不可编辑False5.参数保存前调用的接口nc.bs.pub.para.IBeforSaveSysinit参数保存后,调用的接口。必须在服务器端实现voidbeforSaveSysinit(Stringpk_org,Stringinitcode,StringparaValue,StringpkValue)6.参数保存后调用的接口nc.bs.pub.para.IAfterSaveSysinit:参数保存后,调用的接口。必须在服务器端实现接口方法:afterSaveSysinit(StringcorpPk,Stringinitcode,StringparaValue,StringpkValue)7.保存后调用的接口IAfterSaveSysinit1参数保存后,调用的接口。继承nc.bs.pub.para.IafterSaveSysinit,新增方法,voidafterSaveSysinit(SysInitVOvo,PkNameVO[]subOrgs,Objectobj);8.关于参数编辑类型为参照的参数,如何修改参照的一些属性A、实现IParaEditComponentCtrl接口,参数初始化时会传给接口方法当前编辑的参照(UIRefPane)publicvoidinitComponentProp(Objectcomponent,Objectparameter);其中component请造型为(UIRefPane)进行参照各种属性的修改.parameter为当前的pk_org.B、注册实现类的全路径到pub_sysinittemp表,editcomponentctrlclass列新一代云ERP解决方案114.2.参数平台对外提供的调用接口说明参数的读取可以在UI层,也可以在BS层,视您程序的需要。前后同一为一个调用接口SysInitBO_Client的静态方法。注意必须调用这个接口,否则可能无法利用到参数缓存的数据。接口详细见SysInitBO_Client的javadoc新一代云ERP解决方案12五.附录5.1.参数设置升级1)新增参数请在升级程序中调用:voidnc.itf.uap.busibean.ISysInitUpdate.insertAllDataFromSysinittemp()2)修改、删除参数请在升级脚本中用update(delete)语句修改pub_sysinit,pub_sysinittemp中的数据。例如:deletefrompub_sysinitwhereinitcode=’参数编码’Deletefrompub_sysinittempwhereinitcode=’参数编码’5.2.可能遇到的问题及解决方法1)对于产品组程序员在参数输入界面:i.进行设置时,参数代码是唯一的,不能重复。ii.互斥值与组主参数值相同的参数,在用户参数设置界面可编辑,否则不可编辑。iii.对于默认java类的参数,一定将“是否显示”项设为显示,Dialog中的其他参数一定是不显示的。iv.对于默认java类的参数,在默认值处输入类全名,包括全路径。2)对于用户和实施人员看到的参数设置界面:i.输入参数值时不能超过参数范围。ii.对于不存在或不启用的模块,将不会显示在用户的参数设置界面。iii.对于选择了控制下级的参数,将成为其下级公司(主体账簿)的上级参数,下级公司(主体账簿)对于这些参数是不能修改的。新一代云ERP解决方案135.3.多语言资源注册说明新增的参数,要进行多语化。参数是基于规则进行多语化的。具体需要多语化的属性有:参数名称,组名称,参数说明,参数范围。具体字段为:pub_sysinittemp:initname列、groupname列、remark列、valuelist列具体规则参见sysinit子目录文件。业务组的文件名请保持唯一。5.4.常见问题1)添加参数是否自己编写SQL脚本运行?pub_sysinittemp脚本可以自己编写,也可以通过二次开发工具下的参数设置来添加参数(集团登录)pub_sysinit脚本要自己编写(如果是集团级参数)2)是否只需要对pub_sysinit以及pub_sysinittemp表各插入记录即可?公司级参数只需提供pub_sysinittemp脚本集团级参数要提供pub_sysinit,pub_sysinittemp脚本新增的参数,如果是升级环境,还要进行升级处理,调用Uap提供的接口,给已建账公司添加新增的参数。接口如下:nc.itf.uap.busibean.ISysInitUpdate.insertAllDataFromSysinittemp()新一代云ERP解决方案14新一代云ERP解决方案NewGenerationofCloudERPSolution用友网络科技股份有限公司YonyouNetworkTechCo.Ltd.