NCV61协同配置技术红皮书Word格式文档下载.docx
《NCV61协同配置技术红皮书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《NCV61协同配置技术红皮书Word格式文档下载.docx(35页珍藏版)》请在冰豆网上搜索。
(注:
修改了模板名称)
点击“确定”更新;
删除:
选中模版,点击“删除”,弹出删除对话框,点击“确定”,删除选中模板;
查询条件编辑:
选中模版,点击“查询条件编辑”按钮,打开查询条件编辑窗口,根据添加的元数据主体数据,在左侧树中全部显示元数据结构,通过中间按钮“向右”、“向左”按钮添加、删除查询条件,也可以通过添加系统变量菜单添加自定义变量作为查询条件;
点击“确定”,保存选择的查询编辑条件。
模版分配:
选择某个模版,点击“模版分配”,可以有角色、用户、组织三个部分;
选择角色、用户、组织中一个或多个;
点击“确定”保存,分配模版权限;
快速查询配置:
点击“OK”,引用公共片段pubview_simplequery,在pagemeta.pm中
添加了refId=”../pubview_simplequery”,widget中id可以修改;
在文件的uimeta.um中添加UI设计
公共片段pubview_simplequery是通过配置文件动态添加的,在文件中:
通过类SimpleQueryWidgetProvider.java生成控件,通过SimpleQueryWidgetUIProvider.java设计UI,通过SimpleQueryController.java控制该公共片段:
点击搜索,触发SimpleQueryController.java中
PublicvoidonQryBtOk(MouseEvent<
ButtonComp>
e){}方法,最后通过触发命令newUifPlugoutCmd(widgetId,”qryout”,Map);
PlugoutDescplugoutDesc=newPlugoutDesc();
plugoutDesc.setId("
qryout"
);
widget.addPlugoutDescs(plugoutDesc);
是动态添加的,因此在引用的view中要添加一个pluginDesc和Connector,如:
才能够触发添加的plugin,如:
如果不需要直接用拼写的wheresql,也可以通过((FromWhereSQLImpl)keys.get(“wheresql”)).getFieldAndMap()得到查询条件的键值对,用于其它。
4.1.2规则模板
规则模版包括新增、编辑、删除、规则条件编辑和模版分配功能;
点击“确定”保存;
选中模版,点击“删除”,删除模版;
规则条件编辑:
选中模版,点击“查询条件编辑”按钮,打开查询条件编辑窗口,根据添加的元数据主体数据,在左侧树中全部显示元数据结构,通过中间按钮“向右”、“向左”按钮添加、删除查询条件,也可以通过添加系统变量菜单添加自定义变量作为条件,设计规则条件
选择角色、用户、组织中一个或多个,点击“确定”保存,分配模版权限
使用规则模板的方法:
配置文件:
在使用的窗体中应用文件application.app中应用规则模板窗体并添加一个Connector,如
并在当前使用的widget中添加一个pluginDesc,如
并添加
Map.put(GzConstant.$NODECODE,”E06204”);
Map.put(GzConstant.$PK_GROUP,”001”);
Map.put(GzConstant.$PK_RULESCHEME,”001001001”);
Map.put(GzConstant.BEANID,”0000000000000000011”);
AppLifeCycleContext.current.getApplicationContext.navgate(“cp_gztemplate”,”企业分组条件”,”800”,”600”,map,null,true);
弹出规则模板:
4.1.3打印模板
打印条件编辑:
导出:
选择模版,点击“导出”,根据模版编辑的打印条件,生成xml文件,保存在本地;
模版上传:
在本地设计一个word文档,讲生成的xml文件作为数据源导入到word模版中,设计模版,点击“模版上传”,选择设计好的模版上传到文件服务器上,并将上传的文件PK_FILE回写到模版打印表(CP_PRINT_TEMPLATE)中;
模版下载:
选择模版,点击“模版下载”,获取已上传的文件PK_FILE,并下载文件到本地;
4.1.4表单配置
表单配置是指在选择的功能节点基础上进行定制业务的个性化,可以对功能节点进行个性化改造后进行使用,不影响原先功能节点的正常使用。
主要功能有:
新增个性化,修改,删除,个性化设置,模板分配,重置等。
4.1.4.1新增个性化
选择模板使用的设备名称,目前支持的设备有:
手机、pc、pad。
设置模板的名称,优先级等。
新增的模板在列表中的位置。
4.1.4.2修改个性化
对增加的模板进行修改,可以修改名称、优先级、和设备。
4.1.4.3个性化设置
个性化设置可以对模板中的所有组件进行样式内容的设置,在视图模式下进行可见即可得的操作。
如:
上图中对显示字段“用户名称”个性化修改为“用户名称test”。
4.1.4.4模板分配
模板分配是把个性化之后的模板分配给使用者,这里的使用者包括三个类型:
角色、用户、组织。
Ø
角色:
是指个性化模板分配给一个角色后,该角色下的用户将可以使用该个性化模板。
用户:
分配给一个用户,该用户即可见该模板。
组织:
分配给一个组织,则该组织对该模板有权限。
4.1.4.5重置模板
当个性化设置对模板修改的比较混乱时,可以通过“重置模板”还原该模板到初始状态。
也可以通过“删除”功能把该模板删除后新建一个原始模板。
4.2参数
4.2.1参数模板(cp_sysinittemp表)
参数模板表中的字段如上图所示。
其中上图中标红字段“domainflag”外键关联模块分组表(cp_appscategory)的“id”字段(非pk字段),标识参数具体属于哪个节点下。
对应元数据实体文件路径:
uapcp\cpb\METADATA\cpb_mgr\cpb_sysinittemp.bmf
4.2.2参数设置(cp_sysinit表)
参数设置表中的字段如上图所示。
其中标红字段:
“sysinit”外键关联上面的参数模板表的pk“pk_sysinittemp“。
“pk_org”所属组织的pk,标识当前参数具体属于哪个组织。
uapcp\cpb\METADATA\cpb_mgr\cpb_sysinit.bmf
4.2.3参数设置页面操作
目前只提供对参数的修改和查询操作。
●只能修改“参数值”,“是否控制下级”字段如上图。
当修改时,会根据上图中的“取值范围”字段限定取值范围。
限定规则:
取值范围字段以“-”分隔,如“0-8“,则输入值限定为数字,且在限定的范围之内。
取值范围以“/”或者“,”分隔,如“总部统一制定/集团统一制定/各个单位自行维护”,修改时会渲染为下拉列表的形式,如上图所示。
其它修改时为文本框输入,对值不做限制。
●查询:
根据组织单元参照查询:
对应cp_sysinit参数设置表中的pk_org字段。
根据树子节点查询:
对应参数模板表cp_sysinittemp表中的domainflag字段。
4.2.4参数设置预置脚本
涉及表:
参数模板表cp_sysinittemp和参数设置表cp_sysinit。
●cp_sysinittemp表中设置domainflag字段值为参数所属模块节点的id,id字段为cp_appscategory表的“id”字段,非pk字段。
●cp_sysinittemp表中设置pk_orgtype字段值为参数所属管控模式类型(全局,集团等)。
其具体值参考SysinitConstants类中定义常量
4.2.5调用服务
服务接口:
ICpSysinitQry服务实现类:
CpSysinitQry
该接口中定义了提供获取参数值的方法,具体方法见接口中。
调用方法:
ICpSysinitQryqs=NCLocator.getInstance().lookup(ICpSysinitQry.class);
//组织时才需要传pk_org
CpSysinitVOvo=qs.getSysinitByCodeAndPkorg(initcode,pk_org);
4.3代理人
代理人分为流程代理人、单据代理人两种类型。
流程代理是用在审批中,代理人可代替被代理人执行审批任务。
单据代理是代理人可替代被代理人填写单据。
4.3.1代理人注册
代理人是依据业务类型设定的,设置代理人需要先注册业务类型。
代理人的设置有两个入口。
集团管理员可以在系统管理->
代理人中为集团内所有人设置代理人。
个人用户可以在任务中心->
代理人中设置。
4.3.2代理人获取
接口:
nc.uap.wfm.agent.FlowAgentHelper.doFind(FlowAgentContextctx)
调用时需要定义FlowAgentContext对象,
privateStringpk_user;
//被代理人用户pk,传入类型
privateStringpk_agent;
//WfmFlowAgentVO代理对象pk,返回类型
privateStringpk_flowtype;
//业务类型pk,传入类型
privateStringagenttype;
//代理类型,WfmFlowAgentVO.BILL_AGENTTYPE单据代理
WfmFlowAgentVO.USER_AGENTTYPE流程代理
4.4上机日志
现在已经提供了默认的日志记录机制,如果在此基础上还不能满足需求的话,可以根据下面的接口自行调用;
台日志支持登录日志、操作日志、业务日志三种形态;
接口如下:
4.4.1登陆日志
类:
LoginLogHelper登录日志接口类
LoginLogVO登录日志VO类
LoginLogVO包括以下属性的get和set方法:
Stringpk_loginlog登录日志主键
Stringclientip客户端ip
Stringlogingrop登录集团
Stringusername用户名
Stringtruename真实姓名
UFDateTimelogintime登录时间
UFDateTimelogouttime注销时间
UFBooleanloginresult登录结果
Stringdetail详细信息
Stringpk_logingrop登录集团主键
Stringpk_user用户主键
Stringlogingropcode登录集团编码
StringsessionidsessionID
Integerdr
UFDateTimets
登陆:
publicstaticStringlogin(LoginLogVOvo)throwslfwBusinessException;
/**
*插入登陆信息(登录时调用)
*@paramvo要插入的登陆日志VO无主键
*@return成功则返回随机生成的主键
*@throwsLfwBusinessException
*/
注销:
publicstaticintlogout(Stringsessionid,UFDateTimelogouttime)throwslfwBusinessException;
*更新登出信息(注销时调用)
*@paramsessionid当前sessionid
*@paramlogouttime注销时间
*@return如操作成功则返回正数否则返回-1
4.4.2操作日志
OperatorLogHelper操作日志接口类
OperatorLogVO操作日志VO类
OperatorLogVO包括以下属性的get和set方法:
Stringpk_funcoperlog操作日志主键
Stringbuttonname按钮名称
Stringclientip客户端ip
Stringpk_logingrop登录集团主键
Stringfuncnodename功能节点全名
Stringusername用户名称
Stringtruename真实姓名
UFDateTimeopertime操作时间
Stringlogingropcode登录集团编码
Stringfuncnodecode功能节点编码
Stringpk_user用户主键
Stringpk_funcnode功能节点主键
Stringdetail详细信息
StringsessionidSessionid
Integerdr
UFDateTimets
操作:
publicstaticStringdoOperator(OperatorLogVOvo)throwsLfwBusinessException
/**
*插入操作日志(记录操作日志时调用)
*@paramvo待插入的日志VO无主键
*@return成功则返回随即生成的主键
*@throwsLfwBusinessException
*/
4.4.3业务日志
类:
DataLogHelper业务日志接口类
DataLogVO业务日志VO类
DataLogVO包括以下属性的get和set方法
Stringpk_businesslog业务日志主键
Stringdetail详细信息
Stringclientip客户端ip
Stringbusobjtype业务对象类型
UFDateTimeopertime操作时间
Stringoperate操作
Stringbusinessobject业务对象
UFBooleanoperresult操作结果
Stringbusobjcode业务对象编码
Stringbusobjorganization业务对象组织
Stringlogingrop登录集团
Stringusername用户名称
Stringtruename真实姓名
Stringpk_busobj业务对象主键
Stringpk_logingrop登录集团主键
Stringlogingropcode登录集团编码
Stringpk_user用户主键
StringsessionidSessionID
执行业务:
publicstaticStringdoTask(DataLogVOvo)throwsLfwBusinessException
*插入业务日志(记录业务日志时调用)
*@paramvo要插入的日志VO无主键
*@return插入成功则返回随机生成的主键
第五章文档与用印
5.1前言
Office编辑在OA领域是不可获取的控件,在集成了相关控件的基础上提供开发相关接口,并屏蔽开发对第三方开发控件的直接调用
控件分为Office、电子签名、上传的等三类;
其中Office控件中继承了电子印章。
Office控件目前可以支持word、excel、wps、et等四种类型的文档
5.2Office控件
5.2.1调用接口
${root}/core/word.jsp?
pageId=officeedit&
url={wordpk}
必选参数:
pageId:
控件基础参数,不可修改
url:
后台存储PK
其他参数:
TrackRevisions:
是否留痕,默认true
autoSave:
是否自动保存,默认true
saveTTL:
自动保存时间,默认180秒
readonly:
是否只读,默认false
showRevisions:
是否显示痕迹,默认true
occupymsg:
打开文档后的提示消息,默认空
filenew:
新建文档,默认false
loadbookmarkclass:
替换标签实现类
sysid:
系统编码(获取filemanager用)
5.2.2主要功能
5.2.2.1痕迹
痕迹目前支持word、wps两种文档类型,只要传入参数TrackRevisions即可。
可通过接受修订或者拒绝修订来清除痕迹;
目前没有对清除痕迹的操作做权限控制,如果需要,将来提供接口。
接受修订:
acceptAllRevision()
拒绝修订:
rejectAllRevisions()
5.2.2.2手写批注
目前手写批注有两个功能节点,一个是在留痕菜单中,另一个是在签章菜单中。
实现方式不同,前一种只是在office中增加了一个浮动图片,没有痕迹,无法查到图片来源。
另一种,则是利用手写签章机制,去除签章的保护功能
在前期无法对这两种功能做出取舍,暂时全部提供,将来再定去留。
5.2.2.3套红
套红功能,将头部套红、底部套红分开,暂使用同一套模板,如有需要将来可以分开。
第三方控件中提供了头部、底部、选择替换三种模板插入接口,从前期需求来看,只提出了头部和底部两种场景,因此暂不提供选择替换这种方式。
套红、模板可利用下面的方法直接调用insertTemplete(file,filetype)。
file的创建过程如下:
varfile={};
file.url=文件的相对地址
filetype是指模板类型包括:
redhead、redend、templete、sign四种(头部套红、尾部套红、正文模板、服务器印章)
5.2.2.4模板
通过选择可直接使用现有模板
5.2.2.5电子签章
电子签章分为手写签名、本地签章、服务器签章、Ukey签章的部分几种形态,这部分开发使用即可。
可通过维护界面新增
Ukey签章JS函数,系统会自动选择Ukey并进行
doSign()
签章成功后,会调用传入的signmethod参数,回调执行
5.2.2.6变量替换
控件变量替换机制,该机制是利用ntko控件的标签替换机制。
可通过传递参数loadbookmarkclass实现,需继承nc.uap.portal.ctrl.office.core.IBookMarkLoader。
系统提供了一个默认实现DefaultBookMarkLoader;
仅仅提供了当前用户信息;
将来可根据需要增加,但只可添加系统级字段
也可直接调用JS函数替换:
functionreplaceMarks(bookmarks);
bookmarks的创建过程示例如下:
varbookmarks=newHashMap();
bookmarks.Put(“标签名称”,”标签内容”)
标签替换文件接口
replaseBookMarkToFile(markname,url)
markname:
标签名称
url:
路径
5.2.2.7其他接口
打开文件
PK:
需要打开的正文Pk,如果不传则是打开当前PK;
注意,该操作只打开指定PK的文档,当前正文对应的PK
Load(pk)
保存文件
保存到新的pk
saveFileToURL(pk)
获取文件内容
Start:
开始位