SAP中使用
OB52
或S_ALR_87003642
事务代码可以操作所有集团公司下的公司代码账期,该操作需要每月月底或者月初执行,为了不影响业务,一般是凌晨0点执行,其实可以设置定时任务自动执行开关账期程序来实现,以下是开关账期程序。
REPORT ZOPEN_FINANCIAL_PERIOD.
/* 声明程序的名称 */
tables t001b.
/* 声明使用会计期间表T001B */
data: firstmonth like t001b-frpe1, /* 声明起始月份变量 */
firstyear like t001b-frye1, /* 声明起始年份变量 */
lastmonth like t001b-frpe1, /* 声明结束月份变量 */
lastyear like t001b-frye1, /* 声明结束年份变量 */
p_date LIKE sy-datum, /* 声明当前日期变量,sy-datum为系统日期变量 */
p_datef like sy-datum. /* 声明计算后的日期变量 */
p_date = sy-datum. /* 获取系统当前日期 */
/* 调用日期计算函数,计算前一个月的日期 */
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = p_date /* 输入当前日期 */
DAYS = 0 /* 天数偏移量为0 */
MONTHS = 1 /* 月份偏移量为1 */
SIGNUM = '-' /* 向前计算 */
YEARS = 0 /* 年份偏移量为0 */
IMPORTING
CALC_DATE = p_datef. /* 输出计算后的日期 */
lastmonth = p_date+4(2). /* 从当前日期提取月份(当前月) */
lastyear = p_date+0(4). /* 从当前日期提取年份(当前年) */
firstmonth = p_datef+4(2). /* 从计算后日期提取月份(上月) */
firstyear = p_datef+0(4). /* 从计算后日期提取年份(上年) */
loop at t001b. /* 遍历会计期间表 */
t001b-frpe1 = firstmonth. /* 设置第一期间起始月 */
t001b-frye1 = firstyear. /* 设置第一期间起始年 */
t001b-tope1 = lastmonth. /* 设置第一期间结束月 */
t001b-toye1 = lastyear. /* 设置第一期间结束年 */
t001b-frpe2 = 13. /* 设置第二期间起始月为13 */
t001b-frye2 = lastyear. /* 设置第二期间起始年 */
t001b-tope2 = 16. /* 设置第二期间结束月为16 */
t001b-toye2 = lastyear. /* 设置第二期间结束年 */
modify t001b. /* 更新表记录 */
endloop.
RP_CALC_DATE_IN_INTERVAL
进行日期计算扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有