SAPSCHEMA详解Word下载.docx
- 文档编号:18261174
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:13
- 大小:24.45KB
SAPSCHEMA详解Word下载.docx
《SAPSCHEMA详解Word下载.docx》由会员分享,可在线阅读,更多相关《SAPSCHEMA详解Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
所以,如果你曾经修改过一个技术工资类型,那么要在每次升级以后或HRSP以后检查他们,以保证他们还有你需要的属性。
并且不要删除任何技术工资类型。
3)用户工资类型一般以数字开始,SAP在升级或HRSP中是不会改变这些工资类型的。
或SAP很少在升级或HRSP中改变这些工资类型。
用户工资类型是为所有公司特定的工资支付制定的。
3、规则和操作符
我们的一个长期客户曾经创建了一个保存界面的信息叫“薪水规则”!
那些有经验的SAP薪水分析者和顾问立刻看成其中的双层含义和幽默。
规则包含SAP薪水中大多基本的逻辑。
其中模式是函数的集合,规则是操作符的集合。
一个操作符是一个非常基本的被用来操作工资类型的逻辑。
例如,操作符MULTI是乘以工资类型中的数字和比率以决定付给员工工资的数目。
操作符OUTWP获取一个员工特定的数据并决定如何去处理它。
比如,如果工作合同在信息类型1中是UA,那么执行‘x’,如果是UB,执行‘y’,ERP论坛欢迎您的执行‘z’。
可以通过t-codePE04和PDSY查看操作符,也可以通过PE02编辑操作符。
函数对应的ABAPform是以‘fu’开始,操作符对应的ABAPform是以‘op’开始。
比如,操作符MULTI,将有ABAPform‘opmulti’。
同模式一样,规则保存在表中,规则被保存在表T52C5中。
有多年计算机系统工作经验的SAP高级顾问们常在发现工资规则和编程大型机汇编语言的类似性。
然而当操作符被正确使用时功能强大,但这没有什么好神奇的。
希望我们这个简短的介绍是有意义的。
下一篇SAP工资技术文档中我们将更深入探讨用在SAP的工资模式中的公共函数。
函数最多能有4个参数,SAP文档将告诉你每个参数的用法。
通过PDSY和PE04能看到每个函数和操作符。
COPY
这与ABAP和ERP论坛欢迎您编程语言中的‘include’相同。
当工资执行时,Copy是插入包含在参数1中的模式。
好的模式配置风格和好的编程风格是一样的-将公共使用的逻辑放在‘include’中,这样能被用于多个地方,同时也增加可读性。
BLOCK
在版中,模式日志是放在树状结构中的。
BLOCKBEG开始一个节点,BLOCKEND结束一个节点。
在BEG和END之间是包含在节点中。
BLOCKBEG/END能被多层嵌套。
同时,适当的放置BLOCKBEG/END,使日志更方便读。
IF/ELSE/ENDIF
对
IF函数,有2种方法说明真/假条件。
SAP有几个内置的条件可以在参数2(模式U000中的IFNAMC)中使用。
你同时也能在参数1中说明一个定制的规则,并且在规则中执行你任意想要的逻辑。
在规则中,使用操作符SCOND为IF函数设置真/假转换。
Pxxxx
工资驱动和模式从许多信息类型中读取数据并处理数据。
一般是以P和四位数字命名的信息类型来执行。
所以,P0014读取并处理从信息类型14来的数据,P0168从信息类型168处理人生保险计划,P2010从信息类型2010中读取附加工资。
许多函数,但并非所有的函数,允许你用工资规则进一步精练此过程。
例如,模式UAP0表明P0014被规则U011处理过。
函数P0168是没有使用规则的函数之一(在一些老的版本中有使用),而是在参数中说明操作符(见模式UBE1)。
有些信息类型在工资中被使用,但没有Pxxx函数。
这些包括信息类型207,208,209和210,他们都在主税款函数USTAX中被读取并处理。
信息类型0,1,7和8被函数WPBP处理。
PIT
PIT是ProcessInputTable的首字母简写,它也是工资中最常用功能最强大的函数之一。
当工资类型被Pxxx函数读入工资时,他们被保存在称为IT(InputTable)的内部表中。
PIT通过内部表循环,并应用包含规则中的逻辑。
所以对于IT中的每个工资类型,它都将从规则中申请一个逻辑。
PIT的目标是将工资类型从IT中移出,移入到RT(ResultTable)中。
大多数情况下,被PIT调用的规则会改变工资类型的一些属性然后把他们从IT中转移到RT中。
工资类型也能留在IT中并移到ERP论坛欢迎您表中去。
在说明操作符是如何工作的时候我们再解释这种可能性。
s
PIT的一个例子是在模式UAL0中-PITX023。
当工资驱动到达模式的这点时,PIT将遍历IT中的每个工资类型,规则X023告诉它做什么事是取决于工资类型在过程类20中的值。
值为3,4,5,6,9和B使将把工资类型移到RT中,而1,7和8是将工资类型留在IT中,值2没有任何操作,但本质上其实是将工资类型从IT中清除。
PRT
PRT是ProcessResultsTable的缩写。
虽然大多数工资类型处理发生在PIT,也有几种情况当你想处理工资类型时已经被转移到RT中。
PRT工作原理同PIT,通过RT循环,同时从规则中申请逻辑。
在模式UTX0中,PRT被用来处理已经在RT中的税款工资类型。
函数UTX0(US税款函数)直接返回它的工资类型给RT,所以任何一个在税款工资类型中的处理都要PRT函数来完成。
ACTIO
ACTI0函数处理工资规则,但是它不通过工资类型表来循环,但它在不同的工作地点/基础工资记录间循环,并挨个处理它们的规则。
例如,假设员工在当前带薪时期有2个信息类型1个记录,ACTI0将有2条记录要循环。
UTX0模式是ACTI0使用规则UWH1计算带薪时期工作的小时数的一个好的例子。
像函数一样,操作符的帮助文档也能通过PDSY和PE04找到。
操作符能被放在2个不同的组-他们分布用来决策和操作工资类型。
有些操作符刚好适用这2个组。
操作工资类型
在规则中使用工资类型就好像在ABAP中使用内表。
函数通过把表的每一行一次性都放在‘头’空间来循环调用规则(PIT,PRT,P0014或ERP论坛欢迎您)。
在头空间使用工资类型,完成以后在把它加回表中。
MULTI,DIVID
这些操作符让你将工资类型中的两个字段相乘并将结果保存在第三个字段中。
能使用的字段是AMT,RTE和NUM。
MULTIRNA将用一个数乘以比率并将结果保存在amount字段。
DIVIDANA将用一个数除amount字段并将结果保存回amount字段。
NUM,RTEandAMT
这些是非常基本的也很强大的操作符,它们能操作他们各自字段的内容。
很大情况会用到这些操作符,F1帮助文档是很有用的。
基本情况下,设置值NUM=1或者AMT=,但这不是一个好的实践方法。
而使用常数-在表T511K中创建名叫ZNUM的常数,并使NUM=KZNUM(把number字段的值赋给常数ZNUM)。
因为常数是根据日期有效的,而规则不是,这样当数值需要改变时使你更灵活地改变。
你可以设置工资类型的头的字段等于另外一个工资类型中对应的字段-AMT=E9XXX是使amount等于RT工资类型9XXX中的amount字段。
当且仅当IT中的9XXX小于amount域的值时,AMT<
9XXX将amount域设置为IT中的9XXX(取两个值中的较小者)
最后,你可以使用值上的算法。
RTE*100是rate字段的内容乘以100并把结果保存回rate字段。
AMT*KZNUM是amount字段被常数ZNUM中的值相乘,ZNUM中的值可以是任意数。
ADDWT
至此,我们已经使用MULTI,DIVID,AMT,RTE和NUM设置我们的工资类型的值。
ADDWT将头中的工资类型不改变值或改变值后移到ERP论坛欢迎您的表。
ADDWTE*是不改变工资类型的数值加到RT中。
ADDWTE9XXX将它重命名为9XXX然后转移到RT中。
用F1帮助文档将告诉你所有这些你能转移到的表。
ELIMIandRESET
裂片是用于将工资类型连接到工资中ERP论坛欢迎您表的属性。
有时你在做某个规则时不得不移除某个裂片-这就是ELIMI做的(ELIMInate裂片)。
在删除一个工资类型的裂片后,你可以使用RESET重新保存他们。
一般来说,你应该避免删除裂片-因为这可能导致比率和报表出错。
所以使用和测试时要小心。
FILLF
这个简单的操作符能重置wagetype域的值。
例如,FILLFA是在规则第一次被调用时将amount重置回原来的值。
这里你将把把所有这些操作符集合在一起在基本工资的基础上计算固定比例的扣除数(有几种方法计算,这里仅介绍一种)。
假设基础工资在IT值,比率作为一个完整的数保存在常数ZNUM中,你制定了一个规则包含了工资类型****和基础工资,在这个例子中用‘OBAS’。
扣除的部分将是4XXX。
所以,在这个模式中我们将在规则Z001中执行一个PIT:
PITZ001。
在规则中:
工资类型****:
ADDWT*(如果它不是OBAS,我们就不改变它)。
规则类型OBAS:
ADDWT*,NUM=KZNUM,MULTIANA,AMT/-100,ADDWT4XXX(将OBAS传到输出表,这样我们就不会丢失它了,设置number域等于常数ZNUM,用amount乘以number,因为我们将百分比作为一个完整的数保存并且我们希望这个扣除数是负数,所以用-100除amount,并把结果作为工资类型4XXX保存。
决策
很多次我们只需在某种条件存在时执行某个动作-比如,我们只想为某种员工计算扣除数4XXX。
在这种情况下,我们必须选择什么时候执行这个动作。
Decisions将结果放入称为变量的键中-这就象一个带有通配符的描述。
如果我们把公司代码放在一个变量键只,那么含有1234的行将为公司1234执行,含有2***的行将为任何以2打头的公司执行,而****将为所有任意匹配的公司执行。
OUTWP
这个操作符使我们在基于工资中的WPBP表中的各种数据元素做出决策-粗略地只有信息类型0和1数据。
通过F1帮助文档,可以看到许多的元素。
例如,通过OUTWPCOMPY可以查看公司代码,它把companycode域的内容放到变量键中。
VAKEY
像OUTWP这个操作符是把某个数据放在变量键中,可以看F1帮助查看各种可能性。
作为decisions,他们又出现在这里。
如果用AMT0,它将amount域的值与0比较然后返回>
<
或=.你也可以用上面提到的概念将它与一个常量或另外一个工资类型进行比较。
VWTCL
这个操作符为当前的工资类型返回某个处理类的值。
例如,VWTCL93将处理类93的值放在变量键里。
规则X023是如何使用处理类值的一个好例子。
二、Payrollschema基础
(二)
在前面的例子中,我们给每个基本工资类型OBAS的员工计算扣除数4XXX。
使用OUTWP你可以决定只计算在某个人事范围/子范围或员工子组的员工。
假设你想计算在信息类型14或15已经进入工资类型4XXX的员工。
假设已经进入工资类型,信息类型的number域也有要求的数据,你需要做以下步骤:
工资类型OBAS:
ADDWT*,NUM=4XXX,在NUM0做选择,
IF:
如果是=(等于),就什么也不做,
ELSE:
否则(_*条件)执行NUM=KZNUM,MULTIANA,AMT/-100,ADDWT4XXX.这取决于在这点你的工资类型裂片是如何组织的,你可能想在NUM=4XXX之前ELIMIR,在ADDWT4XXX之前RESETR。
正如前面提到的,这仅仅是隔靴搔痒。
当配置薪酬时你不能仅关注某个问题,而应该理解所有的部分并力求最好的配置。
你有许多的方法组合函数,操作符,处理类和常数等。
SAP已经为薪酬创建了灵活的功能强大的配置模型。
当使用正确时,许多工作就已经完成好了,当使用不正确时,发现它会引起困惑并且导致不稳定。
所以要好好的测试你的配置并以文档形式记录你的配置。
下面是对模式CN28的部分简单阐述:
BLOCK
BEG
*Payrollschema:
CHINA
COM
工资模式:
中国标准
COPY
XIN0
初始化工资
CNBD
编辑基本数据(中国)
IF
SPRN
特别处理运行非周期性支付
RERSH
IT
删除IT(删除内表)
ENDIF
到:
特别处理运行
XLR0
导入上一期工资结果
CNT0
工资总额(读入时间数据)
COPY CNAP
导入扣减(0014、0015导入)
CNAL
确定每个月的扣减因子
CNNG
净支付(净工资)计算(中国)
XNA0
累计净支付的值
XRR0
回溯(反算)
XNN0
净支付/扣减和传输
CNEN
最后处理
BLOCKEND
*中国工资核算
函数(Function)
描述:
BLOCK函数允许你构造一个工资核算过程日志。
在开始和结束标记点中把工资函数按语义顺序聚集在一起,且他们出现在日志中的一个普通节点。
语法:
函数
参数1
参数2
参数3
参数4
FUNCTION
BLOCK
函数名称
参数1
开始一个语义块
END
结束一个语义块
参数2
目前无该参数
参数3
参数4
说明:
BLOCK函数可以被嵌套,在一个子模式中,一个结束块必须对应一个开始块
模式
XIN0
初始化工资数据(国际)
人员计算模式
重要的信息/事件(开关),哪一些有关工资核算的进一步过程,工资运行开始在这个子模式中指定。
结构:
子模式由下述步骤组成:
1、
指定程序类型(工资核算或评估)
2、
设置数据库更新开关(YES/NO)
3、
必需的信息类型(导入仅仅是schema所需的主数据信息类型)
4、
导入所有时间信息类型
5、
指定检查控制记录PA03(测试或激活生产)
参数4
D
注释:
工资发放核算初始化
BLOCKBEG
块开始:
PGM
ABR
工资发放的程序类型
UPD
YES
更新数据库(是/否)
OPT
INFT
只使用信息类型的读取
TIME
输入全部的时间信息类型
CHECK
*
核查PA03(生产机去掉 *)
BLOCKEND 块结束
函数
PGM:
识别一个工资发放的程序类型
PGM函数给工资核算驱动提供一个工资核算的程序类型信息
不同的Schema允许薪资驱动在不同的时间段里去执行不同的程序,这些工资和评估程序哪一个在工资核算之后运行。
这两个类型说明程序现有的工资数据
如果一个Schema不包含PGM函数,程序是假设(缺省)一个发薪程序。
如果一个schema包含多个PGM函数,那么最后一个是有效的。
参数1
ABR
工资核算
AUS
评估
MIX
工资/评估
SP
特殊运行,这个特殊的仅仅适用于西班牙和奥地利国家的版本
TRN
遗留数据传输
例:
如果你想去创建一个工资的模式PGM
(参数1)ABR
UPD:
执行数据库更新
函数UPD控制在运行工资核算后产生的结果是否保存到数据库或仅仅在当前显示。
参数1作为一个开关在一个schema之初设置
FunctionUPD
NO
不更新数据库
更新数据库
参数2
参数3
参数4
如果你想去测试一个工资核素且结果不被更新到数据库UPD
(参数1)NO
OPT(Options):
你可以使用OPT函数去为工资导入信息类型
参数1:
BSI
已过时
COPL
集成成本计划
DEC
小时工资>
2位数
ENQ
不再使用
NRC
无回溯核算
读时间信息类型
必需入口:
注意:
如果你想在工资核算中去处理时间管理数据(如:
改变日程表,缺勤等),在你的schema中OPT函数必需在参数1中包含TIME。
CHECK:
在选择雇员之前/之后核查。
函数CHECK完成两个任务
1)
按照schema类型检查规定的时间(期间)
2)
执行一个整体的检查:
CNBD中国基础数据
工资子模式,子模式被主模式调用
该子模式读取国际总工资计算(核算)所需的全部基础数据(主数据),基础数据接着被打印到工资日志(如果programoption=ON).
该子模式由以下主要步骤组成:
读取员工姓名(P0001-ENAME)
从以下信息类型中读有关工作中心和基本工资数据
a)
人事事件P0000,
b)
组织分配P0001,
c)
计划工作时间P0007
d)
基本工资P0008
e)
工资维护P0052和
f)
成本分配P0027
检查所需的所有主数据可以被工资驱动的,否则程序被取消。
在工资日志中打印上述基本数据。
FUNCTIO
D
COM
编辑基本数据
ENAME
从EE(Infotype0001)中确定名字
WPBP
读取工作中心和基础工资数据
P0014
CN14
GEN
NOAB
为P0014分割WPBP和设置APZNR
DATES
读取详细时间数据
判读是否为非周期工资运行
ELSE
周期性工资运行
P0532
读取(5)保险数据
P0530
读取公积金数据
P0533
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAPSCHEMA 详解