在前面的例子中,我们给每个基本工资类型OBAS的员工计算扣除数4XXX。使用OUTWP你可以决定只计算在某个人事范围/子范围或员工子组的员工。假设你想计算在信息类型14或15已经进入工资类型4XXX的员工。假设已经进入工资类型,信息类型的number域也有要求的数据,你需要做以下步骤:
工资类型OBAS:ADDWT *, NUM=4XXX, 在NUM?0做选择,
IF:如果是=(等于),就什么也不做,
ELSE:否则(_*条件)执行NUM=KZNUM,MULTI ANA, AMT/-100, ADDWT 4XXX.这取决于在这点你的工资类型裂片是如何组织的,你可能想在NUM=4XXX之前ELIMI R,在ADDWT 4XXX之前RESET R。
正如前面提到的,这仅仅是隔靴搔痒。当配置薪酬时你不能仅关注某个问题,而应该理解所有的部分并力求最好的配置。你有许多的方法组合函数,操作符,处理类和常数等。SAP已经为薪酬创建了灵活的功能强大的配置模型。当使用正确时,许多工作就已经完成好了,当使用不正确时,发现它会引起困惑并且导致不稳定。所以要好好的测试你的配置并以文档形式记录你的配置。
下面是对模式CN28的部分简单阐述:
BLOCK BEG *Payroll schema:CHINA
COM 工资模式:中国标准
COPY XIN0 初始化工资
COPY CNBD 编辑基本数据(中国)
IF SPRN 特别处理运行??非周期性支付?
RERSH IT 删除IT(删除内表)
ENDIF 到:特别处理运行?
COPY XLR0 导入上一期工资结果
COPY CNT0 工资总额(读入时间数据)
COPY CNAP 导入扣减(0014、0015导入)
COPY CNAL 确定每个月的扣减因子
COPY CNNG 净支付(净工资)计算(中国)
COPY XNA0 累计净支付的值
COPY XRR0 回溯(反算)
COPY XNN0 净支付/扣减 和 传输
COPY CNEN 最后处理
BLOCK END *中国 工资核算
函数(Function)
BLOCK
描述:BLOCK函数允许你构造一个工资核算过程日志。在开始和结束标记点中把工资函数按语义顺序聚集在一起,且他们出现在日志中的一个普通节点。
语法:
函数 参数1 参数2 参数3 参数4
FUNCTION BLOCK 函数名称
参数1 BEG 开始一个语义块
END 结束一个语义块
参数2 目前无该参数
参数3 目前无该参数
参数4 目前无该参数
说明:BLOCK函数可以被嵌套,在一个子模式中,一个结束块必须对应一个开始块
模式
XIN0 初始化工资数据(国际)
人员计算模式
重要的信息/事件(开关),哪一些有关工资核算的进一步过程,工资运行开始在这个子模式中指定。
结构:
子模式由下述步骤组成:
1、 指定程序类型(工资核算或评估)
2、 设置数据库更新开关(YES/NO)
3、 必需的信息类型(导入仅仅是schema所需的主数据信息类型)
4、 导入所有时间信息类型
5、 指定检查控制记录PA03(测试或激活生产)
参数1 参数2 参数3 参数4 D
COM 注释:工资发放核算初始化
BLOCK BEG 块开始:
PGM ABR 工资发放的程序类型
UPD YES 更新数据库(是/否)
OPT INFT 只使用信息类型的读取
OPT TIME 输入全部的时间信息类型
CHECK ABR * 核查PA03(生产机去掉 *)
BLOCK END 块结束
函数
PGM :识别一个工资发放的程序类型
PGM函数给工资核算驱动提供一个工资核算的程序类型信息
不同的Schema允许薪资驱动在不同的时间段里去执行不同的程序,这些工资和评估程序哪一个在工资核算之后运行。
这两个类型说明程序现有的工资数据
如果一个Schema不包含PGM函数,程序是假设(缺省)一个发薪程序。如果一个schema包含多个PGM函数,那么最后一个是有效的。
语法:
参数1
ABR 工资核算
AUS 评估
MIX 工资/评估
SP 特殊运行,这个特殊的仅仅适用于西班牙和奥地利国家的版本
TRN 遗留数据传输
例:如果你想去创建一个工资的模式PGM (参数1)ABR
UPD:执行数据库更新
函数UPD控制在运行工资核算后产生的结果是否保存到数据库或仅仅在当前显示。
参数1作为一个开关在一个schema之初设置
语法:
Function UPD
参数1
NO 不更新数据库
YES 更新数据库
参数2
参数3
参数4
例:
如果你想去测试一个工资核素且结果不被更新到数据库UPD (参数1)NO
OPT(Options):你可以使用OPT函数去为工资导入信息类型
语法:
参数1:BSI 已过时
COPL 集成成本计划
DEC 小时工资>2位数
ENQ 不再使用
INFT 必需的信息类型(导入仅仅是schema所需的主数据信息类型)
NRC 无回溯核算
TIME 读时间信息类型
必需入口:参数1
注意:
如果你想在工资核算中去处理时间管理数据(如:改变日程表,缺勤等),在你的schema中OPT函数必需在参数1中包含TIME。
CHECK:在选择雇员之前/之后核查。
函数CHECK完成两个任务
1) 按照schema类型检查规定的时间(期间)
2) 执行一个整体的检查:
模式
CNBD 中国基础数据
工资子模式,子模式被主模式调用
该子模式读取国际总工资计算(核算)所需的全部基础数据(主数据),基础数据接着被打印到工资日志(如果program option=ON).
结构:
该子模式由以下主要步骤组成:
1、 读取员工姓名(P0001-ENAME)
2、 从以下信息类型中读有关工作中心和基本工资数据
a) 人事事件P0000,
b) 组织分配P0001,
c) 计划工作时间P0007
d) 基本工资P0008
e) 工资维护P0052和
f) 成本分配P0027
3、 检查所需的所有主数据可以被工资驱动的,否则程序被取消。
4、 在工资日志中打印上述基本数据。
FUNCTIO 参数1 参数2 参数3 参数4 D
COM 编辑基本数据
BLOCK BEG 编辑基本数据
ENAME 从EE(Infotype0001)中确定名字
WPBP 读取工作中心和基础工资数据
P0014 CN14 GEN NOAB 为P0014分割WPBP和设置APZNR
DATES 读取详细时间数据
IF SPRN 判读是否为非周期工资运行?
ELSE 周期性工资运行?
P0532 读取(5)保险数据
P0530 读取公积金数据
P0533 读取人事档案中的服务费
ENDIF 结束IF语句块
P0531 读取所得税数据
GON 如果数据完整,继续…
BLOCK END 结束块----
A previous employer table VAG 先前雇主表
C Cumulation table CRT 累积表
D difference table DT 差异表
E results table RT 结果表
G Gross results table GRT 总结果表
H Old results table AIT 旧结果表
I Input table IT 输入表
L Results table last payroll LRT 上一工资结果表
M Incentive wages results LS 计件工资结果表
N Loan LO 借出(仅仅可以再function P0045使用)
O see blank above
U Difference table DFT 差异表
W wage maintenance table
X Cumulated tax table SCRT 累积税表
Z Table of time wage types ZL 计时工资表
& Variable table VAR 可变表