员工自助服务(employee self-service,简称ESS)是指员工通过企业建立的网络平台,实现自己对相关事宜的处理。员工自助服务允许员工在一定授权范围内,在线查看本人薪资及历史情况、福利情况、考勤情况,以及培训申请、请假/休假申请、应聘报名等事宜,或者更改本人人事信息数据,以及与人力资源或者其他部门人员进行电子方式的无纸化沟通[1]。
由于员工自助服务系统要求采用B/S运行模式,而且要求在员工没有ERP账号的情况下,仍然要实现从企业门户单点登录使用自助服务系统[2]。本文提出一种集成解决方案,在满足单点登录要求的同时,确保系统安全可靠,使用方便,系统容易维护与扩展。
1 员工自助服务系统架构分析与设计 1.1 可行性集成方案分析在ERP系统中没有登录账号的情况下,既要实现单点登录,又要将权限控制到位,确保数据的安全,可以考虑利用ERP软件供应商SAP公司提供的NetWeaver技术架构。在人员集成方面,有处于NetWeaver顶层的portal,即EP系统。该系统中的用户账号不收费,也不受限制,可以建任意多个,而且这些账号便于进行权限控制。在NetWeaver架构下,EP系统本身可以作为SAP或非SAP系统的统一入口,在集成ERP系统中的应用程序有绝对的优势。它支持WSRP协议,可以实现将ERP中的应用程序以WSRP应用共享的方式集成到EP中来[3]。
本方案将系统应用程序放置在ERP系统中,所有的业务流程与相关操作都在此完成,同时采取一定的技术措施来保护流程的及时流转,以提高工作效率。在EP中利用iView来封装ESS应用程序,然后构造角色,实现在企业门户中的单点登录。
集成架构中,由于自助服务的应用程序直接在ERP系统中运行,无需开发RFC,也不存在跨系统交换数据的问题,这样既增加了系统的安全性,又提高了程序的执行效率。另外,在ERP系统中,实现业务流程采用的是SAP Business Workflow技术,其强大的逻辑处理能力和灵活性,在构造工作流方面完全能满足要求。
该方案的业务流程在ERP系统中,流程中的待办项需要借助于一定的技术手段同步到EP中。另外,EP与ERP之间需要配置登录票,并对每一个用户做用户映射。
1.2 员工自助服务系统架构设计员工自助服务系统的架构设计分为3层,企业门户作为登录层,其中挂接自助服务的入口,作为员工的登录点;EP系统担当封装层的作用,对应用程序进行iView封装,屏蔽程序的路径和Get方法的传递参数;然后通过EP中的角色配置,进一步控制到用户是否有使用权限。在此系统架构中,采用SAP登录票的方案。将大部分在ERP中没有登录账号的员工,统一映射到一个固定的ERP后台用户上,以实现EP到ERP系统的安全访问。
在ERP系统中,提供有2种WEB程序开发技术,一种是BSP技术,另一种是Web Dynpro for Abap技术。BSP程序实际上就是以ABAP作为服务器脚本语言的HTML程序,它跟ASP、PHP程序类似。Web Dynpro for Abap则采用MVC的设计方法。鉴于Web Dynpro for Abap的低耦合性、高重用性、可适应性、较低的生命周期成本、可维护性程序界面友好、交互性强等诸多的优点[4],本项目采用Web Dynpro for Abap的开发方案。程序开发中除了完成主体程序之外,还需要设计工作流来满足业务流程的需要,并且采用类对象的方法来完成工作流中的相关作业。
利用Web Flow Connector将ERP中的待办项抽取到EP的通用工作清单中,ERP的业务工作台中不再显示。工作流中的待办项也在EP中进行,员工实际操作待办项时,实际上仍然是调用ERP中的前台作业对应的应用程序,这就保证了使用的一致性。根据业务需求,本文中员工自助与经理自助服务两个功能模块彼此相对独立。
1.3 权限规划设计员工自助服务处理的是ERP中的数据,它是很多其它信息系统的数据源头,所以其安全等级要求特别高。为了确保数据的安全,并将权限控制到位,自助服务系统在权限控制方面做了如下设计:
1.3.1 使用权控制为了控制员工使用权限,采用EP角色的解决方案,首先将ERP中的员工自助服务程序在EP中进行iView封装,然后将iView赋给一个角色,当员工在EP中被分配了该角色时才具有使用权限,否则连程序界面都无法看到。
信息内容个性化控制员工登录系统后,无论在哪一个模块中,都只能处理本人的信息。为此,在程序设计、iView封装、系统登录时采取了一定的技术措施。员工登录企业门户时,是以ERP中的员工编号登录的,进入EP后,登录用户名仍然是员工的编号。EP中,在设计iView时,就已经通过配置手段将用户ID赋值给自助服务应用程序的参数:员工编号。这样,应用程序就能识别使用系统的具体对象。程序中的所有数据库操作语句都以员工编号来限制数据的存取,这样就确保了员工只能处理本人的信息。
对于经理自助服务,为限制其只能查看本部门的员工信息,从程序上做了设计处理,根据经理本人的员工编号,查找经理所在的人事范围(与单位对应)和员工子组(与部门对应),并以此作为查询的限制条件,确保获取的员工列表只是本部门的。
1.3.2 审批权限控制员工提交了重要的人事信息修改内容,需要经过审批流程。本项目确定审批人的解决方案主要借助于审批权限配置表。以人事主数据审批人的确定为例,各级审核人都跟其具体岗位有关。在审批权限配置表中配置了各单位(即ERP中的人事范围)各部门(即ERP中的员工子组)对应的审批人岗位。在审批流程中,程序将根据审批人岗位在系统中查找具体的审批人。首先程序根据信息提交人的员工编号,找到其所在的部门及具体的审批人。其它审批流程中审批人的确定方案与上述方案相似。
2 系统关键部分程序的设计与实现 2.1 数据库设计由于员工自助服务是在ERP系统中二次开发的功能模块,是为人力资源模块服务的,所以主体数据库是系统现有的。在员工自助服务中,涉及的系统标准表多达40多个。为了记录临时数据和审批结果,以及进行权限配置,客户化开发了15个数据表(见表 1)。
表名 | 描述 |
ZHR-ESS-BONUS-AU | 员工自助服务薪资查询奖金明细显示的权限分配表 |
ZHR-ESS-INFO-AUT | 员工自助维护HR信息的权限分配表 |
ZHR-ESS-MAS-APP | 人事主数据审批关系维护表 |
ZHR-ESS-INFOTEXT | 信息类型文本 |
ZHR-ESS-MASTER | ESS审批数据临时存储数据表 |
ZHR-ESS-ADDI | ESS主数据审批辅助存储表 |
ZHR-ESS-PT-CFG | 休假审批配置表 |
ZHR-ESS-PT-APP1 | 考勤员审批配置表 |
ZHR-ESS-PT-APP2 | 部门领导审批配置表 |
ZHR-ESS-PT-APP3 | 三级审批(或人力资源部门审批)配置表 |
ZHR-ESS-PT | 休假审批临时记录表 |
ZHR-ESS-PE | ESS培训模块报名表 |
ZHR-ESS-PE-APP | 人事范围和培训体系的对应关系 |
ZHR-ESS-PERNR | 工作流人员数据传递结构 |
ZTIDCHECK | 身份检查结果记录表 |
在传统的SAP工作流中,主要用业务对象来触发流程,并处理其中的任务[5 , 6]。本设计采用类对象来处理。为了便于维护,开发设计了一个类对象,即ZCL-HR-ESS01。除了工作流中的审批作业用到业务对象WEBSERVICE之外,其他业务处理均使用该对象来处理。
类对象ZCL-HR-ESS01的设计如图1所示。
员工自助服务系统共有3个工作流,所以在类对象ZCL-HR-ESS01中设计了3个事件(Events):MODIFIED、PT-CREATED、PE-CREATED,分别用来在自助服务主体程序中触发3个工作流。
ZCL-HR-ESS01的属性PERNR用于存放员工编号,便于类对象识别处理的是哪一个员工的数据。GUID是一个32位长度的字符表单UUID,用于存放工作流的唯一标识号,便于类对象识别处理的是哪一个工作流实例。
ZCL-HR-ESS01的接口(Interfaces)有3个:BI-OBJECT、BI-PERSISTENT、IF-WORKFLOW,在图1中没有列出。ZCL-HR-ESS01除了继承接口的方法外,还设计了23个方法。
2.3 审批通知和审批结果信息的及时告知处理采用2种措施来保证工作流的及时流转:①发送邮件告知当事人;②将ERP的待办项显示到企业门户中。
1) 工作流中邮件发送的实现
为了确保流程的及时流转,设计了很多邮件发送的作业,以便及时告知当事人。在技术处理上,将各个作业要发送的邮件先制作成模板并上传到服务器上,模板中有很多待替换字符,以便灵活改变邮件中显示的文字信息和以及其中的链接地址。以人事主数据审批邮件为例,其模板内容如下:
$$$NACHN$$$,您好!
员工 $$$EDITOR-PERNR$$$--$$$EDITOR-NACHN$$$在员工自助服务的人事信息中,修改了$$$INFOTEXT$$$,请点击此链接,并完成审批。
上述模板中,"$$$NACHN$$$"是邮件接收人的姓名,"$$$EDITOR_PERNR$$$"是提交人事主数据信息修改的员工编号,"$$$EDITOR-NACHN$$$"是提交者的姓名,"$$$INFOTEXT$$$"是人事主数据信息描述。这些字符在真正发送邮件之前,需要用实际的具体值替换。
工作流中邮件发送的实现过程如图 2所示。发送作业均由类对象ZCL-HR-ESS01的相应方法来处理,这些方法均调用函数ZHR-ESS-SEND-MAIL-APPROVAL来实现邮件内容的加工处理。邮件的真正发送由函数ZHR-ESS-SEND-MAIL来完成,在发送的程序中,先将邮件模板导入到内存,并用相应值替换模板中的待替换字符,最后才完成邮件的发送。
函数ZHR-ESS-SEND-MAIL-APPROVAL的构造如下:
ZHR-ESS-SEND-MAIL-APPROVAL(
输入参数:(必选)RECEIVER //邮件接收者员工
编号
(必选)TEMPLATE //邮件正文模板名字
(必选)ZHR-ESS-PERNR //工作流人员数据传递
结构
(必选)SUBJECT //邮件标题
(可选)GUID //审批任务对应的GUID
(可选)WI-ID //工作项目ID
(可选)ZHR-ESS_INFTY //工作流传递信息类型参数
(可选)PE-HEADER //培训课程名称
(可选)COMMENT //审批意见
(可选)ZHR-ESS-PT-TYPE //考勤信息结构
(可选)STEP //审批阶段
(可选)LINK //HTML容器
(可选)NEED-HOST //需要主机域名
)
其中第二个必选参数TEMPLATE用来指定邮件模板,员工自助服务系统根据工作流的设计需要,共制作了17个邮件模板,如图 3所示。
2) 待办项的处理
利用WebFlowConnector将员工自助服务的待办项从ERP同步到EP中,首先需要在ERP中利用事务SWFVISU来配置工作流中的任务项,以任务TS92000051(人事主数据审批)为例,其配置见图 4。
在ERP中配置好了之后,还需要在EP的系统配置中利用通用工作清单管理器来配置连接器,如图 5所示。
EP中的连接器只需要配置一次,当ERP中有新的待办项需要同步到EP中时,只需要点击图 5中的“再登记”按钮,并刷新高速缓存即可。
待办项同步到EP中后,还需要传输到企业门户中。员工自助服务系统采取在EP中开发Web Service供门户调用来取得待办项的解决方案。由于EP是纯JAVA系统,所以该Web Service是采用Java语言开发的,其获取待办项的关键程序代码见程序1。
程序1:获取EP待办项的关键代码
IAuthentication auth=UMFactory.getAuthenticator();//get IUser
IUser sapUser=auth.getLoggedInUser();
IGPUserContext userCtx=null; //Get GP User Context
try {
userCtx=GPContextFactory.getContextManager().createUserContext(sapUser);
} catch (GPInvocationException e) {
e.printStackTrace();
} catch (GPEngineException e) {
e.printStackTrace();
}
IGPRuntimeManager rtMgr = null;
rtMgr = GPProcessFactory.getRuntimeManager();//Get RuntimeManager
//Get GP WorkItems
IGPWorkItem workitems = null;
try {
workitems=rtMgr.getWorkItems(
GPWorkItemStatus.WORKITEM-STATUS-OPEN,
userCtx); //此处即是取得待办项
} catch (GPInvocationException e) {
e.printStackTrace();
} catch (GPEngineException e) {
e.printStackTrace();
}
3 结 论员工自助服务系统基于B/S运行模式,采用先进的Web Dynpro for Abap技术开发,程序界面的易操作性接近Windows程序,交互性能在Web程序中具有绝对的优势。此外,系统在确保安全可靠,权限控制到位的前提下,实现了不具备ERP账号的员工对自己在ERP系统中的人事信息维护,而且为了促使业务流程的及时流转所采用的保障措施也具备一定的先进性。总之,员工自助服务系统无论从开发技术的先进性,系统架构的合理性,还是解决各种业务问题所采取的处理措施,都具有明显的优势,在ERP深化应用的使用过程中得到了成功运用。
[1] | 王宏.人力资源管理信息系统的自助服务[J].有色金属工业,2005(9):50-51,Wang Hong. Self-Service of Human Resources Management Information System[J].China Nonferrous Metals Industry, 2005(9): 50-51 (in Chinese) |
Cited By in Cnki (14) | |
[2] | 杨杰,刘丹.基于作流和B/S结构的OA系统设计[J].武汉理工大学学报, 2005,29(01): 56-59,Yang Jie, Liu Dan. OA System Design Based on Workflow and B/S Structure[J]. Journal of Wuhan University of Technology, 2005,29(01): 56-59 (in Chinese) |
Cited By in Cnki (67) | Click to display the text | |
[3] | Hernandez J A, Elechiguerra J R S, Bueno E R. SAP R/3技术与实现[M].周旋,译.北京:机械工业,2001:114-189,Hernandez J A, Elechiguerra J R S, Bueno E R. SAP R/3 Technology and Realization[M]. Zhou Xuan, Translator. Beijing, China Machine Press, 2001: 114-189 (in Chinese) |
[4] | 邓贵仕,易峰,李文立.支持Multi-Interface的MVC设计模式研究[J].计算机应用:2002, 22(06): 8-10,Deng Gushi, Yi Feng, Li Wenli.Research on MVC Design Model of Supporting Multi-Interface[J].Computer Applications, 2002, 22(06): 8-10 (in Chinese) |
Cited By in Cnki (70) | Click to display the text | |
[5] | 黄佳.SAP高级应用开发[M].北京:人民邮电出版社, 2008: 184-245,Huang Jia. High-Level Application Development of SAP[M].Beijing, Posts & Telecom Press. 2008: 184-245 (in Chinese) |
[6] | 黄佳.SAP程序设计[M].北京:机械工业出版社.2005: 100-210,Huang Jia. SAP Program Design[M].Beijing, China Machine Press, 2005: 100-210 (in Chinese) |