SAP财务账期后台任务(自动开关账期)
一,创建选择变量
1、使用事务码: STVARV
2、点击 “Change” 按钮,然后点击“Create” 按钮。
3、输入参数名和值 ,如下表:(值不需要手工维护,通过RVSETDAT 程序进行更新)
名称 | 值 |
RV_ACTUAL_MONTH | |
RV_ACTUAL_YEAR |
该程序将通过调用程序:RVSETDAT 作为后台作业动态更新。 因此,您不需要每次手动更新值。
二,创建程序变体
1、使用事务码OB52B,或者事务码SE38并输入程序RFOB5200(旧程序RFPERIOD_OPEN,通过应用Note 1483900才能执行,弃用)
由于程序 RFPERIOD_OPEN 仅允许在帐户类型字段中输入一个值,因此您需要创建至少六个变体(“+”,“A”,“D”,“K”,“M”和“ S“值)。这也意味着您将需要在后台任务中创建六个步骤来反映每个程序变体。使用程序 RFOB5200,您可以在变体中一次输入所有帐户类型,因此只须在后台作业中创建一个步骤完成后台工作的设置。
2、从一个或两个时间框架(从财务年度/期间到截止年度/期间),输入公司代码变式 。就像在OB52中设置一样。
3、在“帐户类型/通配符”字段中输入帐户类型(*号代表所有)。
4、保存变式
将您的设置保存为一个变体 variant。 当您进入变体属性屏幕时,您需要动态使用期间和年份字段,以便您每个月/年不需要重复输入。 因此在“选择变量”字段中,从下拉列表中选择“T”,在“变量名称”字段中选择与该字段相符的相关变量,如下所示:
字段名 | 变量类型 | 变量名称 |
FRPE1 | T | RV_ACTUAL_MONTH |
FRYE1 | T | RV_ACTUAL_YEAR |
TOPE1 | T | RV_ACTUAL_MONTH |
TOYE1 | T | RV_ACTUAL_YEAR |
三、安排后台工作
使用事务码SM36并输入作业名称
点击“开始”条件,点击日期/时间按钮,输入希望作业安排开始的日期/时间(例如新时段的第一天,确保时间安排在 RVSETDAT JOB工作的时间之后)。
点击屏幕底部的“期间值”按钮,选择“每月”并保存设置。这将使您回到以前的屏幕,您应该再次保存设置。
点击“步骤”按钮,输入程序名称 “RFOB5200” 和您在“名称”和“变式”字段中创建的变体,保存设置。
四、实际应用:
目前系统账期为2022年10月份—10月,例子测试的实际日期为2022年11月7日
需要达到的目的:
- 先通过OB52B中设置的开启账期的变式,后台作业执行后开启11月账期;
- 再通过OB52B中设置的关闭账期的变式,后台作业执行后关闭10月账期;
1、定义后台作业:
1240公司当前的OB52账期如下:
1.1 输入事物码:STVARV,维护变量RV_ACTUAL_MONTH和RV_ACTUAL_YEAR
1.2 SM36,维护后台作业:使用程序RVSETDAT,用于更新TVARVC表中两个变量的值
备注:此处维护的意思为:每个月1号的凌晨00:05:00开始执行程序RVSETDAT
此处为了方便测试看效果,通过SE38,手工执行程序RVSETDAT 。
执行后:STVARV事物码进去查看,发现两个参数已自动更新(按照执行期间的年月)
2、开启次月账期
2.1 OB52B,设置开启新月份账期的变式(或者输入SE38:RFOB5200)
注意:起始期间先不维护变量,此时,只更新终止期间(譬如目前系统账期是10月份,需要同时开启11月份账期)
2.2、SM36:给开启账期的变式ZOB52_OPEN分配后台作业
(1)定义步骤:给后台作业定义执行的程序
(2)定义开始条件:给后台作业定义执行的时间及周期
备注:如果此开启账期的时间在RVSETDAT程序调用之前执行,那么会导致日期还没更新从而开账失败
此处为方便测试,立刻执行作业;
(3)通过SM37,查看后台作业,并查看作业运行明细
2.3 此时,通过OB52,查看系统账期(此时可以看到,系统11月账期已打开)
3、关闭上月账期
3.1、OB52B,设置开启新月份账期的变式(或者输入SE38:RFOB5200)
3.2、SM36,给开启账期的变式ZOB52_CLOSE分配后台作业
(1)定义步骤:给后台作业定义执行的程序
(2)定义开始条件:
此处为方便测试,立刻执行作业;
(3)通过SM37,查看后台作业,并查看作业运行明细
3.3 此时,通过OB52,查看系统账期(此时可以看到,系统10月账期已关闭)