SAP中HR逻辑数据库PNP中创建报表

合集下载

SAP-HR技术系列之一:SAP-HR工资回算和报表取数逻辑问题的讨论

SAP-HR技术系列之一:SAP-HR工资回算和报表取数逻辑问题的讨论

SAP-HR技术系列之一:SAP-HR工资回算和报表取数逻辑问题的讨论(该文发表于《思毕德季刊-思》2011年第二期)一、人力资源业务需求1、企业需要在下一年度延迟支付员工上一年度的业绩奖金,延迟支付的奖金需要统计到上一年度的工资/人工成本实际发生额。

2、由于某些原因,员工的入职、离职、调动、岗位变动等异动信息未能在当月工资发放前及时进入系统,工资发放后需要按实际业务发生日期记录进系统。

3、上月工资发放后,需要补发或者扣发上月或以前月度的工资项目(含考勤相关工资项目)。

4、上月工资发放后,需要调整上月或以前月份的已经发放的工资项目的金额(含考勤相关工资项目,工资调整延后发放类似)5、由于政府相关部门延迟公布社会平均工资,在社保基数切换月及后面若干月内员工仍然需要按原定基数缴费,等政府公布社会平均工资后,核定缴费基数和上下限后需要回退到切换月进入系统,需要计算和补缴前几月的社保缴费二、SAP-HR工资回算机制介绍1、所有员工的数据需要按业务发生日进入系统(业务发生日为数据起效日),工资相关的数据在当前期间工资发放之前进入系统,在本次发放中体现(发放),如果数据生效日所在期间已经发放,一律通过回算实现补发/补扣2、已经发放期间的工资发放结果数据严格禁止删除和手工修改,所有的调整需要通过按业务发生日进入系统的员工数据调整来触发自动回算实现3、可以通过工资范围设定可以向过去回算的期间数,也可以按个人设定,但后一方法因数据维护量大、不好跟踪控制不推荐4、向过去回算期间可以设定任意月数,但一般为12/6/3/1个月为限制,意味着工资只能向前回算12/6/3/1个月,同时所有工资相关的员工数据超过此期间数的,系统禁止调整,如个人数据/组织岗位分配数据/计划工时数据/基本工资数据/地址数据等三、工资回算相关的工资结果信息每个期间的工资计算结果,系统自动记录两个期间标识和一个状态标识:For Period-工资结果归属期间 In Period- 工资计算所在期间Status-工资结果状态注:mm in nn mm : ForPeriod nn : InPeriod四、工资计算相关的补发/补扣工资项目1、对于以前回算期间,需要补发/补扣的金额通过工资项/553体现本次需要补发/补扣金额,最后以前回算期间的所有补发/补扣金额转移到当前期间并合并体现为/552,累加到当期实发金额,/552为正数的时候,在当前期间补发;为负数的时候,在当前期间补扣;2、在回算期间工资结果状态为“A”的工资结果记录中,除当期实发(/560)和银行转帐项(/559)外,所有的工资项目都是以调整后的结果为准,累计项目也是按最新项目重新累计生成,如:基本工资/津贴/加班工资/应发合计等五、不使用回算的折中处理方案1、对以前期间需要补发/补扣的情形,手工计算好金额后一律输入到当前月计算和发放,补发工资占用当前月份所在年度的工资总额预算2、员工收入统计、制度报表统计时,对以前期间需要补发/补扣也统计当前月份所在年度3、报表提取最老结果(归属期间=计算期间且工资结果状态为“A P O”的工资结果)存在问题:1)工资总额控制和收入统计如果是补发/补扣上一年度的收入:不能按归属期间所在年度统计,只能按当前(发放)期间所在年度统计;工资总额占用当前年度的工资总额;如果是补发/补扣同一年度以前月份的收入:月度工资总额监控有问题;2)对部分需求,如普调工资、社保基数延迟调整需要繁琐手工计算3)对员工异动信息滞后处理需要给予支持,需要回算开关打开,事实上目前系统没有完全阻断回算,只是在操作上规定用户不使用六、使用回算方案的效果及需要采取的行动效果:支持前述滞后的人事业务处理需求;需要采取的行动:1、目前的报表(含业务处理平台的监控报表/表单和综合应用平台的报表)取数逻辑需要调整为:取某个月的工资结果,应该取“归属期间=读取期间”且工资结果状态为“A”的当前最新结果,而不是最老的工资结果(“归属期间=读取期间”的且工资结果状态为“A、P、O”的工资结果)2、管理制度上要求企业在上报制度报表前应该完成上年的所有补发/补扣;3、对于少数单位在上报完报表后利用回算到上年再次补发上年收入的,要求重新上报报表,或者要求按当前月进入系统计发,统计在当前年(当前方案),否则就会漏统计4、对可以回算的期间数做适当限制,建议是3个月,也就是至少在三月份工资发放前应该把上年收入(如奖金)补发完,奖金的发生日期为上年12月的任何一天均可!七、存在问题及建议1、对回算月工资总额控制不好处理,因为相应月的工资已经发放和审批;建议:要么就不做事前控制,可以从监控报表中看到实发额的变化;要么按/552在当前年度(月度)累加到实际发放额中来监控,实际是占了当前年度(月度)的总额!2、由于启用回算,一个月的工资结果可能有多条,增加工资结果的数据量和工资计算的复杂度/时间量,建议:根据其他企业的经验,对数据量和运行时间的影响有限,顾问要加强学习,克服心理上对回算功能的畏惧感3、因为SAP 是按固定日期设置可回算日期,需要在工资发放完成后对每个工资计算范围的控制记录及时调整可回算的期间建议:开发一个批量调整工资范围的最早回算日期的程序,选定一个公司的所有工资范围后执行批量调整,需要每月在工资计算完成后手工进行,该程序需要检查每个工资范围当月工资已经处理完毕(状态为退出)!。

SAP query操作手册

SAP query操作手册

基本概念QUERY是SAP的一项简单报表工具,它可为没有编程基础的用户用来生成简单的报表。

它有图形化的界面,你可在上面托托拽拽,然后就可以见到你要的报表,可是这只是简单的应用,其实每个工具功能都是比较完善的,QUERY也不例外。

1.生成用户组SAP菜单→工具→ABAP工作台→实用程序→SAP查询→用户组T-Code:SQ032。

创建Functional area(功能区)SAP菜单→工具→ABAP工作台→实用程序→SAP查询→信息集T-Code:SQ023。

创建SAP QuerySAP菜单→工具→ABAP工作台→实用程序→SAP查询→查询T-Code:SQ012.这些组件之间的关系有:1。

Query的管理包括建立Functional area(功能区)和User Group(用户组),并将功能区分配到相应的用户组中去。

2。

Functional area(功能区)中定义query中需引用的表和字段。

3。

只有当一个用户属于至少一个用户组才可以创建、运行Queries。

一个用户可以属于几个用户组。

用户组中的用户享有相同的权力。

4。

当Functional area(功能区)分配给了某用户组,该用户组的成员即可以访问此功能区。

5。

一个Functional area(功能区)可以分配给多个用户组;多个Functional area(功能区)可以分配给一个用户组。

6。

Queries通常为特定的用户组和特定的功能区而建立。

这个用户组的用户可以访问所有分配给这个用户组的Queries。

3.还有一点值得注意,在QUERY的管理时,有这样的概念:标准区(Standard Area):建立在标准区的查询往往用以满足特定用户的特定需求,因此属于Client独立(client-specific)的查询。

这些查询不会连接到SAP工作台组织器(Workbench Organizer)上。

全局区域(Global Area):建立在全局区域的查询是为整个系统开发的,因此属于Client交叉(cross-client)的查询。

SAP_财务报表制作流程草图

SAP_财务报表制作流程草图

SAP_财务报表制作流程草图预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制此是根据工单关闭明细与公司提供的入库明细制做的一份财务报表1、当月关帐结束后,将当月所有的工单关闭明细整理出,如下图然后根据公司提供的入库明细,如下图:将表拉到最后,在其加工单价到未开票金额上进行单元格设置为保留小数点2位将入库数量、加工单价、材料单价移到机种名之后,见下图在物料后面再增加一栏,将其订单号与机种名合并在一起,如下图合并的功能可以通过函数:CONCATENA TE实现,很简单的回到工单关闭的报表,增加三栏在第一栏做成订单号与机种名合并;后面两栏为加工单价与材料单价,如图在工单关闭的加工单价处输入函数:VLOOKUP 将入库明细中的加工单价通过函数带到工单关闭的表中(函数也是很简单的,如果实在不行,可见此流程最后,也可以问一下物控)依照上面的函数,将材料单价也带过来如果有乱码的请不用动,是因为此笔关闭的工单是上月的,而公司给我们的数据是本月的,我们直接复制到财务报表中,让公司添加即可。

回到最后一份财务报表,将机种名,订单号,材料订单号(与订单号一样)入库数量,工单号,加工单价与材料单价等,全部复制过去,即下图然后根据机种名进行筛选,将系列分清楚然后再将工单为101的单独列出,命名为改造入库明细,即可发给运营进行核对了PS:1、需注意当月的工单关闭明细不要有遗漏,不要把上月已经结算的再拿进来2、公司给的入库明细一定要确认清楚3、做财务报表时如有单价不对的需及时确认清楚(按照价格备忘录来参照)4、如果正常里有加放电源或改造的费用也需备注清楚(可参考我做的11月份财务报表)5、运营核对完毕后即可发工厂财务,让其确认,然后就等公司通知开票了.VLOOKUP的使用:先在加工单价空白处输入=VLOOKUP(选择工单关闭的定单号与机种合并的那一行,只是一行,鼠标点一下就可以了一个逗号,然后选择公司所给报表定单号与机种合并的那一列一直拉到加工单价的那一列停止,是竖着的为列,横着的为行一个逗号,然后看加工单价是公司所给报表定单号与机种合并的那一列之后的第几列,是3就输入3一个逗号,再输入FALSE再来一个反括弧就OK了。

逻辑数据库和ABAP-4报表

逻辑数据库和ABAP-4报表

生成ABAP/4 报表时的逻辑数据库每个ABAP/4 报表都链接到报表属性中指定的逻辑数据库上。

该逻辑数据库将影响报表的生成:生成的选择屏幕包含逻辑数据库选择(选择标准和参数)和报表。

在选择屏幕上,只显示报表中与数据评估相关的特定数据库选择。

链接到逻辑数据库的报表的运行行为当执行链接到逻辑数据库的报表时,系统以特定顺序调用一系列处理块(参见ABAP/4 处理程序(页错误!链接无效。

) )。

某些处理在报表中编码而某些则在逻辑数据库程序中编码。

在数据库程序SAPDB<dba> 中执行特定数据库子程序(参见逻辑数据库的数据库程序(页348) )。

在ABAP/4 报表中执行事件的处理块(关于事件和示例的详细信息,参见事件及其事件关键字(页错误!链接无效。

) )。

下列列表包含系统为链接到逻辑数据库<dba> 的ABAP/4 报表而执行的处理步骤。

在每种情况下,ABAP/4 程序代码行指定属于这些步骤的处理块(子程序和事件)。

1. 在显示选择屏幕之前初始化(例如,关键数据的默认值)PBO。

- 子程序:FORM INIT在第一次显示选择屏幕之前调用一次该子程序。

FORM PBO.每次刷新选择屏幕时调用该子程序(在用户按ENTER 之后)。

- 事件:INITIALIZA TION.在第一次显示选择屏幕之前发生该事件(参见INITIALIZATION (页错误!链接无效。

) )。

A T SELECTION-SCREEN OUTPUT.该事件在每次刷新选择屏幕时发生(参见选择屏幕的PBO (页错误!链接无效。

) )。

2. 系统显示选择屏幕,用户在输入字段中输入数据。

3. 当用户在选择屏幕上按F4 或F1 时,显示可能的条目和帮助。

- 子程序:FORM <par>_V AL.FORM <selop>_V AL.FORM <selop>-LOW_V AL.FORM <selop>-HIGH_V AL.如果用户请求特定数据库参数<par> 的可能条目(F4) 列表或者选择标准<selop> ,则根据需要调用子程序。

ABAP Query报表开发

ABAP  Query报表开发

基本概念QUERY是SAP的一项简单报表工具,它可为没有编程基础的用户用来生成简单的报表。

它有图形化的界面,你可在上面托托拽拽,然后就可以见到你要的报表,可是这只是简单的应用,其实每个工具功能都是比较完善的,QUERY也不例外。

1.生成用户组SAP菜单→工具→ABAP工作台→实用程序→SAP查询→用户组T-Code:SQ032。

创建Functional area(功能区)SAP菜单→工具→ABAP工作台→实用程序→SAP查询→信息集T-Code:SQ023。

创建SAP QuerySAP菜单→工具→ABAP工作台→实用程序→SAP查询→查询T-Code:SQ012.这些组件之间的关系有:1。

Query的管理包括建立Functional area(功能区)和User Group(用户组),并将功能区分配到相应的用户组中去。

2。

Functional area(功能区)中定义query中需引用的表和字段。

3。

只有当一个用户属于至少一个用户组才可以创建、运行Queries。

一个用户可以属于几个用户组。

用户组中的用户享有相同的权力。

4。

当Functional area(功能区)分配给了某用户组,该用户组的成员即可以访问此功能区。

5。

一个Functional area(功能区)可以分配给多个用户组;多个Functional area(功能区)可以分配给一个用户组。

6。

Queries通常为特定的用户组和特定的功能区而建立。

这个用户组的用户可以访问所有分配给这个用户组的Queries。

3.还有一点值得注意,在QUERY的管理时,有这样的概念:标准区(Standard Area):建立在标准区的查询往往用以满足特定用户的特定需求,因此属于Client独立(client-specific)的查询。

这些查询不会连接到SAP工作台组织器(Workbench Organizer)上。

全局区域(Global Area):建立在全局区域的查询是为整个系统开发的,因此属于Client交叉(cross-client)的查询。

ABAPHR开发总结

ABAPHR开发总结

ABAPHR开发总结HR开发⼩结HR信息类型增强信息类型是SAP HR模块数据单元,⽤于对⼈员数据的记录和维护,是HR的基础。

信息类型按照其创建⽅式的不同可以分为:⼈事信息类型、组织信息类型。

信息类型数据的维护主要在事物码PA30、PA40、po10、P013 中进⾏。

信息类型的创建信息类型的创建涉及到的两个事务码:PM01,PPCI。

分别对应⼈事主数据与组织、职位主数据的增强。

⼈事信息类型在⽣成时,系统会⾃动⽣成2000、1000、3000等屏幕,以及相应的类,和PR模块。

其中2000屏幕是我们在PA30中(对⼈事信息类型来说)编辑或查看时看到的屏幕,⼀般做好信息类型增强后需要对2000屏进⾏修改,像设置下拉框、设置单选按钮组、制作树型结构F4等;3000屏为列表屏幕,是我们点击概览时所看到的屏幕。

PR模块⽤于信息类型的显⽰(具体的我也不清楚)。

组织信息或职位信息类型,有时需要创建7000屏,也就是我们常见的PPOSE屏,这个屏幕可以在⽣成信息类型时直接在PPCI⾥⽣成(点击菜单栏中,信息类型—创建⼦屏幕即可,当然逻辑流要与2000屏的逻辑流保持⼀致)。

⼈事信息类型的创建创建信息类型HR本⾝提供⼀些常⽤的信息类型,但当有特殊的需求时需要进⾏信息类型的创建。

⾃⼰创建的信息类型编码是以‘9’开头的四位数字,其他数字开头的信息类型为系统⾃带的。

像9025、9195、9135等。

创建步骤如下(以9001为例):TCODE PM01 PM01——》创建IT——》输⼊9001——》选择PS结构——》编辑,进⼊ps9001编辑界⾯。

维护后点击;信息类型增强时,需要创建⼀个结构,⽤于说明该信息类型有哪些字段,结构的名称格式为:”PS+信息类型”。

实例结构如下:保存,激活后返回PM01界⾯,点击⽣成对象,同前。

维护信息类型特征:系统会按照你提供的字段⽣成2000屏、3000屏;其中2000屏为我们在PA30中进⾏维护(查看)时展现出的屏幕,3000屏即列表屏,当我们选择概览时的所看到屏幕。

SAP QUERY报表的创建方法

SAP QUERY报表的创建方法

SAP QUERY查询报表创建方法Query报表一旦创建以后可以跨集团跨用户使用,在不需要用到开发的多表查询的时候,创建Query查询非常方便。

创建流程如下:一、建立信息集-SQ021.输入事物码:SQ02,创建信息集,输入名称,点击创建2.在弹出的新窗口中输入名称和透明表3、进入数据表维护界面,可通过添加其他信息所在表。

如某两张表之间没有关联则需建立字段主键之间的关联,这样才能通过一张表取出另一张表中的信息。

拖放法:点中某一主键字段不放,拖到另一张表中对应字段。

如使用普通字段进行连接,则可能会出现某些字段值取不出的情况。

4、连接好后返回,提示字段选择,选择全部字段即可。

5、之后进入修改信息记录集,可对相应字段进行删除和添加,只添加所需字段并保存,保存时可保存为本地对象。

二、建立用户组-SQ031、填写用户组编号,点击创建。

2、再点击“分配用户和功能区”。

选择添加用户名,利用屏幕左上角分配信息集选择之前做好的信息集,并保存。

三、建立查询-SQ011、填写查询编号,点击创建。

2、点击创建系统会自动带出自己创建的信息集,选择此信息集。

也可通过上图中信息集查询选择自己所建信息集。

3、填写标题,确定输出格式。

可选择清单浏览、表格、图形等。

4、点击抬头“基本清单”确定显示字段及选择屏幕字段。

通过左边结构树,勾选显示字段及选择字段。

右侧显示为输出格式,可调整字段宽度,字段标题等。

利用几个工具框可删除表格中的字段,指定排序字段或总计字段。

5、查询系统内部程序名,用于创建事务代码时填写程序名。

通过菜单:查询→其他功能→显示报表名,查看报表名,并记录下来。

6、测试。

创建好查询后,列表中会列出所建查询。

点击或可直接进行测试。

四、创建事务代码-SE931、填写事务代码,进行创建。

1、维护事务代码对应的程序及输出形式。

a)填写事务说明b)程序中填写上在查询时系统自动生成的报表名c)选择屏幕系统自动生成。

d)GUI support:全部勾选。

SAP HR模块报表开发

SAP HR模块报表开发

SAP HR模块报表开发目录1. 概述 (3)2. HR开发介绍 (3)2.1 逻辑数据库介绍 (3)2.2 HR相关逻辑数据库 (4)2.2.1 PNP (4)2.2.2 PCH (5)2.3 逻辑数据库的选择屏幕 (6)2.3.1 PNP的选择屏幕 (6)2.3.2 PCH的选择屏幕 (10)3. HR报表开发 (12)3.1 HR相关数据库表 (12)3.2 常用函数和宏 (12)3.2.1 宏RP_PROVIDE_FROM_FRST和RP_PROVIDE_FROM_LAST (13)3.2.2 函数RH_STRUC_GET (13)3.2.3 函数HR_READ_FOREIGN_OBJECT_TEXT (14)3.2.4 函数PYXX_READ_PAYROLL_RESULT (15)4. 其他 (16)4.1 PNP和PCH里的变量 (16)4.2 时间交叉 (17)4.3 权限检查 (18)1. 概述本文介绍了SAP HR模块报表开发的相关经验,结合本人参与项目所做的开发工作,汇总整理了一些在HR开发中需要注意的地方,并介绍了有用的小技巧。

相信本文对初级从事HR开发工作的相关人员有一定帮助。

因为笔者相关经验也在积累过程中,也许本文中会出现一些错误,还望见谅指正。

2. HR开发介绍HR 报表开发主要涉及到逻辑数据库的应用,相关的开发工作也主要围绕着逻辑数据库进行。

2.1 逻辑数据库介绍逻辑数据库则提供另一种选择数据的方式,可以代替SQL语句在数据库中提取数据,供程序操作。

因而,可以认为逻辑数据库是一种报表设计程序中的辅助工具,而不能将其误解为一种可进行数据存储的数据库。

SAP中提供多种类型的逻辑数据库,开发人员也可自行定义数据源。

Transaction Code:SE36或SLDB2.2 HR相关逻辑数据库HR报表开发主要是对逻辑数据库PNP( PNPCE)和PCH的应用。

其中PNPCE是PNP的加强。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

By Venkateswara Rao Appikonda, Intelligroup Inc
1. Create a program using the transaction SE38.
Provide the logical database name as PNP. Click on SAVE.
2. Then again follow this menu path--->GOTO---->ATTRIBUTES
3. Click on the button HR report category to use the existing report category.
Select the radio button “Master Data (Infotypes)
How to create the HR report category
1. Click on HR report category
Give name of the HR report category to be create like ____0001(4 underscores 3 zeros 1) here follow the standards for creating the HR report category.
To create new HR report category, click on new entries
Give the report category name : ____0002 (this is an example )
Description : this is te st report category
Then save it under a transport reque st.
Click on allowable selection criteria--->choose enter----> new entries
Get the fields from select option field with F4 help and give the values to be appeared in the selection screen of the LDB you want.
Save it.
How to use the report category in the LDB
If the report category is space, it means there is nothing given in the HR report category.
The output screen will be like this...with more field options
If the report category is _____000 (5 underscores 3 zeros no gap) No LDB selection screen is displayed. It shows a clear screen.
The output screen will be like this...
_____001 (5 underscores 2 zeros 1 no gap) only personnel number with out search help
_____003 (5 underscores 2 zeros 3 no gap) personnel number, Employment status, Payroll area, Pers.area/subarea/cost center
This is a simple program for understanding the PNP LDB... with report category _____001.
report zpnpldb .
INFOTYPES: 0001.
tables : pernr .
GET PERNR.
PROVIDE * FROM P0001 BETWEEN PN-BEGDA AND PN-ENDDA.
WRITE: / P0001-PERNR,
P0001-STELL,
P0001-BEGDA,
P0001-ENDDA.
ENDPROVIDE.
TABLES: PERNR.
INFOTYPES: 0001.
GET PERNR.
RP_PROVIDE_FROM_LAST P0001 SPACE PN-BEGDA PN-ENDDA .
IF PNP-SW-FOUND = 1.
WRITE: / PERNR-PERNR, P0001-STELL, PN-BEGDA, PN-ENDDA.
ELSE.
REJECT.
ENDIF.
This is a simple program for understanding the PNP LDB... with report category space or with no report category.
report zpnpldb .
tables : pernr .
INFOTYPES: 2001 MODE N.
initialization .
*pnpbegda = sy-datum - 30 .
*pnpendda = sy-datum .
pnppernr-sign = 'I'.
pnppernr-option = 'EQ' .
pnppernr-low = '1000'.
append pnppernr.
pnppernr-low = '1001'.
append pnppernr.
pnppernr-low = '1002'.
append pnppernr.
pnppernr-low = '1003'.
append pnppernr.
start-of-selection .
GET PERNR.
RP_READ_ALL_TIME_ITY PN-BEGDA PN-ENDDA.
LOOP AT P2001.
WRITE: / p2001-pernr , p2001-begda, p2001-endda, P2001-ABWTG. ENDLOOP.
end-of-selection .。

相关文档
最新文档