云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

云服务器_阜阳网站建设公司_新用户

小七 141 0

到目前为止,我们使用自定义业务对象"奖金计划"创建了一个简单的应用程序,以保存员工特定的奖金权利规则。

任务:创建第二个自定义业务对象以使用现有对象。

示例:经理希望基于使用奖金数据的销售额创建"奖金权利"(=奖金计算)计划

先决条件

I)已完成SAP S/4HANA扩展教程的所有前面部分

II)在系统中为奖金计划的员工创建销售订单。在奖金计划有效期内创建的销售订单。他们的净金额之和应该高于奖金计划目标金额和高奖金分配系数的乘积。

为了能够创建销售订单,用户需要业务目录SAP\U SD\U BC\U SO\U PROC\U MC。

为了能够完成销售订单,用户需要业务目录SAP\U LE\U BC\U ODLV\U PROC\U MC

步骤1:创建业务对象"红利权利"

创建第二个业务对象,名为红利权利。

1。打开自定义业务对象应用程序

2。执行新动作

3。在打开的弹出窗口

4中输入"奖金权利"名称。点击创建

5关闭弹出窗口。在下面的视图中,大数据分析软件,用于编辑结构视图

6中根节点"奖金权利"的自定义业务对象"转到字段和逻辑"。创建以下字段

7。通过应用程序操作

8返回。检查系统管理数据

9。发布业务对象

步骤2:实现奖金授权的业务逻辑

1。打开业务对象,"转到字段和逻辑"。

2。进入修改后事件逻辑

3。实现以下功能一般

检查奖金计算的前提条件提示:必须设置奖金计划。获取奖金计划数据并检查其是否处于"已发布"状态提示:对于SELECT,奖金计划ID必须在文本字段中右对齐。您可以通过长度函数strln()和SHIFT语句来实现这一点。在计算id右移的位置数时,请记住,必须从中减去的最小id长度是19而不是20(这将是id文本字段的长度)。将奖金权利的计算期设置为奖金计划的有效期

奖金计算

从奖金计划有效期内创建的已完成销售订单中获取员工的实际收入提示:这里有CDS视图I\u SalesOrderItemCube,其中包含参数Exchange Rate(take'M')和Display Currency(应该是奖金计划目标金额中的货币)。此视图提供了已进行货币转换的货币提示:您需要以下视图字段来正确限制结果:"createdbyuser""OverallsProcessStatus"(值"C"表示已完成)"创建日期""为奖金计划的员工获取已完成的销售订单从i\u salesorderitemcube中选择(p\u exchangeratetype='M',p\u displaycurrency=@bonusplan-targetamount\u c)字段总和(货币)其中createdbyuser=@bonusplan employeeid和OverallsProcessStatus='C'以及@bonusplan validitystartdate和@bonusplan validityenddate之间的创建日期转化为@bonusentitlement-actualrevenue金额。bonusentitlement-actualrevenueamount\u c=bonusplan-targetamount\u c执行以下规则计算基于收入的奖金:如果员工达到目标金额与低奖金分配系数的乘积以上,则将其收入中的低奖金百分比作为低奖金金额提示:如果(ActualRevenueAmount/TargetAmount)>LowBonusAssignmentFactor,那么LowBonusAmount=ActualRevenueAmount*LowBonusPercentage如果员工达到目标金额与高奖金分配系数的乘积以上,则在低奖金金额的基础上,物联网智能家居,以高于该乘积的收入的高奖金百分比作为高奖金金额。提示:如果(ActualRevenueAmount/TargetAmount)>HighBonusAssignmentFactor,则HighBonusAmount=(ActualRevenueAmount–(TargetAmount*HighBonusAssignmentFactor))*HighBonusPercentage。"计算最低奖金如果(bonusentitlement-actualrevenueamount\u v/bonusplan-targetamount\u v)GT bonusplan lowbonusassignmentfactor。bonusentitlement-lowbonusamount\u v=bonusentitlement-actualrevenueamount\u v*bonusplan lowbonuspercentage/100。bonusentitlement-lowbonusamount\u c=bonusplan-targetamount\u c。否则。清除bonusentitlement-lowbonusamount\u v。清除bonusentitlement-lowbonusamount\u c。结束。"计算最高奖金如果(bonusentitlement-actualrevenueamount\u v/bonusplan-targetamount\u v)GT bonusplan highbonusassignmentfactor。bonusentitlement-highbonusamount\u v=(bonusentitlement-actuarlevenueaumount\u v-(bonusplan-targetamount\u v*bonusplan-highbonusassignmentfactor))*bonusplan-highbonuspercentage/100。bonusentitlement-highbonusamount\u c=bonusplan-targetamount\u c。否则。清除bonusentitlement-highbonusamount\u v。清除bonusentitlement-highbonusamount\u c。结束。把不同的奖金加起来。有关信息,请将奖金计划数据写入说明中"计算总奖金bonusentitlement-totalbonusamount\u v=bonusentitlement-lowbonusamount\u v+bonusentitlement-highbonusamount\u v。bonusentitlement-totalbonusamount\u c=bonusplan-targetamount\u c。数据(实际收入)=转换字符串(bonusentitlement-actualrevenueamount)。数据(target_s)=转换字符串(bonusplan-targetamount_v)。数据(lowf_s)=转换字符串(bonusplan lowbonusassignmentfactor)。数据(lowp\u s)=转换字符串(bonusplan lowbonuspercentage)。数据(highf\u s)=转换字符串(bonusplan highbonusassignmentfactor)。数据(highp\u s)=转换字符串(bonusplan highbonuspercentage)。串联"计划奖金运行:"bonusentitlement bonusplanid'目标金额:'目标金额''低因子:'低'低百分比:'低''高因子:'高',High Percentage:'High p_s INTO bonusentitlement description BY space分隔。否则。返回。结束。ENDIF.

4。发布修改后逻辑

5。通过应用程序的动作返回,通信云,输入保存前事件逻辑