金蝶协同办公软件V61二次开发指南.docx
- 文档编号:10528689
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:42
- 大小:246.07KB
金蝶协同办公软件V61二次开发指南.docx
《金蝶协同办公软件V61二次开发指南.docx》由会员分享,可在线阅读,更多相关《金蝶协同办公软件V61二次开发指南.docx(42页珍藏版)》请在冰豆网上搜索。
金蝶协同办公软件V61二次开发指南
金蝶协同办公软件
二次开发指导手册V1.0
金蝶软件(中国)有限公司
2010.6
目录
1前言3
2二次开发3
2.1单点登录3
2.1.1其它系统单点登录金蝶协同3
2.1.2金蝶协同单点登录其它系统9
2.2业务功能调整9
2.2.1添加一个新的功能模块9
2.2.2添加菜单10
2.2.3修改页面信息11
2.3数据交换/接口数开发12
2.3.1手机短信接口开发12
2.3.2档案接口开发14
2.3.3通知消息交换16
2.3.4异构系统数据同步19
2.3.5办结公文数据与其它异构系统的数据交换20
1
前言
金蝶协同软件提供了稳定、标准的运行环境,但为了实现客户更加个性化的需求和保持金蝶协同架构的开放性,还为客户化开发提供了二次开发编程机制:
通过金蝶协同业务封装组件进行二次开发从而实现个性化的需求和跟其它异构系统集成从保持金蝶协同架构的开放性。
对金蝶协同运行平台进行有效的扩充和扩展。
需要注意的是:
1.当前版本的金蝶协同软件支持的二次开发,仅适用于金蝶协同软件V6.0以上版本;
2.当前版本的金蝶协同软件支持的二次开发J2EE架构,采用的二次开发方式推荐Spring2.0版本,hibernate3.1版本;
在本手册中,我们所有关于金蝶协同二次开发的定义、描述、示例等,都符合上述2点特征。
2二次开发
2.1单点登录
单点登录SSO(SingleSign-On)是身份管理中的一部分。
SSO的一种较为通俗的定义是:
SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。
金蝶协同跟其异构系统集成比较多,主要有金蝶K3系统、金蝶HR系统、金蝶EAS、金蝶PLM系统。
如果有新的系统需要二次开发有二种类型1,其它系统登陆单点登录金蝶协同2,金蝶协同单点登录到其它系统。
以下分二种类型详细说明。
2.1.1其它系统单点登录金蝶协同
金蝶协同基于kingdee-ltpa是kingdee提供的基于cookie的轻量级的认证方式,如果需要实现SSO的环境为提供中间件,那么使用kingdee-ltpa将是最佳的方式。
场景描述:
当用户发出一个URL请求到金蝶协同支持kingdee-ltpa的应用,系统要求输入“用户/密码”,输入并提交后用户就可以访问这个金蝶协同的应用,接着当用户再访问金蝶协同应用,此时无需再次输入“用户/密码”信息即可以访问金蝶协同的相关功能。
过程说明:
首先需要在两个系统服务器上配置基于LTPA的信任关系,经过配置后的服务器之间建立了信任,当其中一个服务器认证通过后,再去访问其它已经建立过信任关系的服务器时,因为它们之间彼此是信任的,所以就无需再次认证了。
1.其它系统发出一个URL请求到金蝶协同,此请求被单点拦截,单点登录定向到它内
置的一个form表单,加入用户/密码进行认证;
2.金蝶协同单点登录认证组件拿着输入的用户/密码到LDAPserver进行用户鉴别。
金蝶协同单点登录认证组件认证成功后生成一个LTPA的Token,并将请求转发到金蝶协同端,金蝶协同收到请求后,发现此请求含有LTPA的Token,因为之前已经配置了信任关系,所以金蝶协同单点登录认证组件不再要求进行认证,直接将请求的响应返回,用户收到所需的页面信息响应。
3.用户再次访问金蝶协同的Web应用,此请求被金蝶协同单点登录认证组件拦截,
因为金蝶协同单点登录认证组件之前缓存了LTPA的Token,它快速检查了请求信息是来自它所信任的金蝶协同单点登录认证组件,所以不需要再进行用户信息的鉴别,它把请求直接转给金蝶协同,因为是信任的,所以也不需要再次认证,金蝶协同将直接返回的请求结果。
开发过程分为三个步骤1.增加单点登录入口按钮2.实现单点登录请求3.实现单点登录验证
1.增加单点登录入口按钮
在应用相应页面增加一个按钮
访问金蝶协同软件login/login.jsp
2.实现单点登录请求
新建JSP,例如在webapp/login目录下新建JSP文件,命名为kingdee_sso_auth.jsp,
里面实现业务有以下四步
1)通过请求参数及金蝶协同配置信息,得到其它系统中用户信息,取出相关信息(为一下步验证这个是否合法相关数据)
示例核心代码提示
2)通过用户userName、用户密码,通过相关业务逻辑验证其信息是否合法。
如果不合法,做相关业务异常处理。
示例核心代码提示
3)将请求信息通过相关加密方式,然后通过LtpaToken组件相关处理组成DSESSIONID字符串。
示例核心代码提示:
4)提交单点登录请求
示例核心代码提示:
详细例子请参考文件
Webapp/login/kingdee_sso_auth.jsp
Resources/conf/LtpaToken.properties
3.实现单点登录验证
新建JSP,例如在webapp/login目录下新建JSP文件,命名为kingdee_sso_login.jsp,
里面实现业务有以下四步
1)清除session中单点登录相关信息(loginUserEAS_MESSAGEIDEAS_nexturlEAS_nexturl)
示例核心代码提示
2)判断是否有效请求。
如果判断是无效请求作相关业务异常处理
示例核心代码提示
3)设置访问金蝶协同URL信息
示例核心代码提示
4)提交金蝶协同安全验证
示例核心代码提示
详细例子请参考文件
Webapp/login/kingdee_sso_login.jsp
Resources/conf/LtpaToken.properties
2.1.2金蝶协同单点登录其它系统
其步骤跟其它系统单点登录金蝶协同基本上一样。
只过实现单点登录的方式有很大区别,如果金蝶协同单点登录其它系统如果有自己单点登录解决方案,那只能按照他们提供单点登录资源实现二次开发,如果没有单点登录解决方案。
就采用其它系统单点登录金蝶协同办法解决,另外请求角色跟验证角色调换一下,所以这里不作详细说明。
2.2业务功能调整
业务功能调整主要有:
1.新增功能2修改功能。
新增功能只支持把开发完成功能以菜单形式显示在金蝶协同软件,所以添加模块、添加菜单。
修改功能只能修改页面上文件文字、图片等一些信息。
2.2.1添加一个新的功能模块
添加模块:
目前版本只支持在首页头部区域增加入口(按钮、超链接)以弹出方式显示添加的模块,加模块功能开发框架不作限制。
开发步骤主要有1.打开文件2.增加入口
1、打开文件:
打开webapp\themes\mskin\目录下header_top.jsp
2、增加入口
header_top.jsp的效果如下
增加入口代码,示例如下
urlvalue="/j_acegi_logout"/>" target=”_top”>新增模块 2.2.2添加菜单 添加菜单: 目前通过在各个菜单扩展页面增加菜单链接来实现各个模块中加菜单功能。 开发步骤主要有: 1打开文件2增加菜单链接. 1.打开文件 打开webapp\themes\mskin目录,根据下面列表打开对应文件。 各个模块对应菜单扩展页面如下列表 文件 对应模块 menu_address.jsp 通讯录 menu_archive2.jsp 档案管理 menu_books.jsp 图书管理 menu_bulletin.jsp 通知公告 menu_calendar2.jsp 我的日历 menu_docex.jsp 协同工作 menu_email2.jsp 电子邮件 menu_fileman.jsp 文档管理 menu_forum.jsp 公司论坛 menu_knowledge.jsp 知识中心 menu_linktree.jsp 业务链接 menu_meeting.jsp 会议管理 menu_news.jsp 新闻中心 menu_plan.jsp 计划总结 menu_supply.jsp 办公用品 menu_workflow.jsp 协同审批 menu_worklog.jsp 工作日志 2.增加菜单链接 在文件底部增加代码 setvar="bulletinCount"value="0"/> onmouseover="this.style.background='#f2f4fb';this.style.cursor='hand';"onmouseout="this.style.background='#ffffff';this.style.cursor='auto';"noWrap> href="增加菜单的URL"target="_top">增加菜单名称
注意,增加链接是增加菜单必须以弹出窗口方式显示
2.2.3修改页面信息
目前用户修改登录页面和首页顶部内容需求比较频繁。
功能中一些页面用户很难找到具体页面文件,所以不提供具体功能页面修改。
所以此次二次开发只提供登录页面和首页顶部修改
1.登录页面
登录页面修改步骤主要有三步:
1打开文件2修改内容
Ø打开文件:
打开webapp\themes\mskin\login\login.jsp
修改内容:
包括文字、图片、样式、布局。
文字:
找到你要修改文字如果没有做国际化,直接在页面上修改文字。
如果做了国际化,打开misc\i18n\common.properties文件。
找到对应要修改文字国际化标签名字,例如“loginjsp_label4=登陆方式”说明登录方式国际化标签名字是“loginjsp_label4”
打开misc\i18n\extend.properties文件,增加loginjsp_label4=修改后名字,
打开misc\i18n\extend_zh_HK.properties增加loginjsp_label4=修改後名字(这个文件是繁体
国际化文件,里面标签值是繁体的)
用native2ascii编译extend.propertiesextend_zh_HK.properties
把编译后文件替换web-inf/classes/i18n/对应文件。
Ø图片:
替换图片,将修改的图片覆盖webapp\themes\mskin\login\images目录下对应的文件。
新增图片,login.jsp添加引用图片HTML代码。
然后将新增图片复制到webapp\themes\mskin\login\images,注意不要覆盖原来图片。
Ø样式:
找到要修改的样式属性,然后打开webapp\themes\mskin\login\style.css,编辑的样式保存,即刻生效。
Ø布局:
根据需要调整布局HTML代码保存,即刻生效。
2.首页
首页可以修改页面有二个文件,在webapp\themes\mskin\目录下header_top.jsp
header_menu.jsp,
header_top.jsp是下图效果
header_menu.jsp,是下图效果
首页修改步骤主要有三步:
1打开文件2修改内容
打开文件:
根据上面效果跟打开对应文件
修改内容:
包括图片、样式、布局。
图片:
替换图片,将修改的图片覆盖webapp\themes\mskin\login\images目录下对应的文件。
新增图片,login.jsp添加引用图片HTML代码。
然后将新增图片复制到webapp\themes\mskin\login\images,注意不要覆盖原来图片。
样式:
找到要修改的样式属性,然后打开webapp\themes\mskin\login\style.css,编辑的样式保存,即刻生效。
布局:
根据需要调整布局HTML代码保存,即刻生效。
2.3数据交换/接口数开发
2.3.1手机短信接口开发
手机短信接口开发主要实现将业务中消息以发送手机短信方式提醒用户。
手机短信接口开发分为三步。
1实现短信发送接口2设置发送短信参数3配置发送短信
1.实现短信发送接口:
接口定义cn.firstframe.plugins.sms.CommonSMSService类
send接口方法.请查看集成kingdeebos短信接口实现的例子。
新增的短信发信功能可以参考这个实现方法
Publicbooleansend(MessagesSmsoutsms,PropertiessmsConfig)
参数:
sms是需要手机发送内容对象smsConfig手机发送配参数配置信息对像。
返回:
boolean表示发送结果,成功为true,失败为false
方法业务:
将业务中需要发送手机提醒内容,发送指定用户手机上。
2.设置发送短信参数:
打开resources\conf\smsconfig.properties,添加接口实现类中需要的参数。
各个第三方短信发送程序参数有可能不同,请参考各个第三方资料。
例如集成kingdeebos短信发送例子的参数是第一步实现类例子用到的参数。
######################################
##KingdeeBOS通讯平台
##金蝶软件(中国)有限公司
######################################
#通讯平台服务器IP地址
KDBOS.host=127.0.0.1
#通讯平台远程服务端口,一般的,为5100
KDBOS.port=5100
#登陆通讯平台的账号
KDBOS.loginAccount=kingdeeoa
#登陆通讯平台的密码
KDBOS.loginPassword=password
3.配置发送短信:
将新增短信发送实现类添加这个配置里
打开resources\cn\firstsoft\modules\message\applicationContext-message-manager.xml文件
打开下图代码
然后在beanid=”commonSMSSender”添加属性
!
注意,其中这个属性在产品是注意点,如果添加手机短信发送功能。
只要把注释去掉就行。
2.3.2档案接口开发
档案接口开发目前主要现实将公文模块数据归到档案系统。
档案接口开发:
1.新增档案接口实现类2.档案实现类配置
.新增档案接口实现类:
新建类继承cn.firstsoft.modules.workflow.adapter.ToArchiveAdapter类(ToArchiveAdapte是个抽像类只是部分实现cn.firstsoft.modules.workflow.interfaces.ToArchiveInterface接口的方法)。
重载10个方法
privateMap
publicvoidworkFlowToArchive(WorkflowFileinboxworkflowFileinbox)
publicintworkFlowToArchive(List
publicvoidknowledgeToArchive(Knowledgesknowledges)
publicvoidsaveWorkflowArchive(Workflowworkflow,WorkflowArchiveworkflowArchive,intsavetype)
publicWorkflowArchivegetWorkflowArchive(Workflowworkflow)
publicvoidremoveField(Workflowworkflow,StringfieldName)
publicList
publicList
publicList
1.privateMap
ttargets属性是个Map
一个KEY的对应的值,表示一个类型目标字段集合。
得到这个值的业务代码需要targets属性静态块里面实现获取档案系统目标字段集合。
2.publicvoidworkFlowToArchive(WorkflowFileinboxworkflowFileinbox)
参数:
workflowFileinbox需要归档公文对像
返回:
无
方法业务:
workflowToArchive方法主要实现oa中用户配置的归档文件字段归到档案系统中。
3.publicintworkFlowToArchive(List
参数:
workflowFiles需要手动归档的workflowFiles对像集合,workflowArchive归到目标档案对像
返回:
int待定
方法业务:
workFlowToArchive方法主要实现手动归到档案系统中。
4.publicvoidknowledgeToArchive(Knowledgesknowledges)
参数:
knowledges
返回:
方法业务:
knowledgeToArchive方法主要实现知识中心归到档案系统中。
(这个方法可以空实现)
5.publicvoidsaveWorkflowArchive(Workflowworkflow,WorkflowArchiveworkflowArchive,intsavetype)
参数:
workflow归档设置更新指定工作流对象,workflowArchive流程转档案设置相关信。
息对象
返回:
无
方法业务:
saveWorkflowArchive主要实现在公作流流程设置中的结束结点,归档设置中流程转档案设置信息保存。
6.publicWorkflowArchivegetWorkflowArchive(Workflowworkflow)
参数:
workflow需要获取流转档案设置信息关联流程对象。
返回:
WorkflowArchive流转转档案设置信息
方法业务:
getWorkflowArchive主要实现在获取公作流流程设置中的结束结点的归档设置中流程转档案设置信息。
7.publicvoidremoveField(Workflowworkflow,StringfieldName)
参数:
workflow需要删除归档字段对照表流程对象fieldName删除对照表字段名称
返回:
无
方法业务:
removeField主要实现删除公作流流程设置中的结束结点的归档设置中“归档字段对照表”指定字段。
8.publicList
参数:
workflowArchive归档设置对象
返回:
List
方法业务:
getArchiveFields主要实现获取公作流流程设置中的结束结点的归档设置中目标表字段集合。
9.publicList
参数:
无
返回:
List
方法业务:
selectedArchive主要实现获取公作流流程设置中的结束结点的归档设置中档案门类树集合
10.publicList
参数:
返回:
List
方法业务:
getWorkFlowFields主要实现获取公作流流程设置中的结束结点的归档设置中归档字段对照表集合信息。
档案实现类配置:
打开resources\cn\firstsoft\modules\workflow\applicationContext-workflow-manager.xml修改
找到
将class属性值替换成新增档案接口实现类。
2.3.3通知消息交换
目前通知消息主要有二种情况:
1金蝶协同通知消息交换到其它系统;2其它系统的通知消息交换到OA系统。
这二次情况开发步骤基本上一致。
所以统一说明。
金蝶协同通知消息交换其它系统:
主要有三个步骤1.通知消息交换类实现2.配置消息类3,消息交换配置。
1)新增消息交换类(目前只支持springbean)类命令规则为*SyncChecker
类必须继承mons.BaseService
在类中新增消息交换方法:
publicvoidcheckMessage()
参数:
返回:
方法业务:
A.金蝶协同通知消息交换到其它系统:
通过数据交换方式(数据库同步、webservice)将金蝶协同通知消息根据目标系统通知消息业务规则转到目标系统。
B.其它系统的通知消息交换到OA系统:
通过数据交换方式(数据库同步)将源系统通知消息根据转换交换到金蝶协同通知消息数据表(messages)
messages表结构说明如下
FieldName
DataType
Key
M
Remark/DefaultValue
ID
NUMBER(10)
P
X
编号ID
SOURCE_ID
NUMBER(10)
来源:
0未知道的,1消息模块
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 协同 办公 软件 V61 二次开发 指南