ABAP-判断是否是后台job运行和自动写入上个月的第一天和最后一天

这段代码主要用于后台Job的日期处理,判断是否为每月一号运行。如果满足条件,它会生成上个月的第一天和最后一天的日期范围。通过调用函数获取上个月的最后一天,并设置日期范围用于后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  IF sy-batch IS INITIAL."判断是否是后台job运行
    IF so_dates[] IS INITIAL.
      MESSAGE e001(00) WITH '评分日期范围必填'.
    ENDIF.
  ELSE.
    DATA: lv_monat TYPE numc2.
    DATA: lv_year  TYPE numc04.
*    DATA: lv_datum_s TYPE sy-datum.
    lv_monat = sy-datum+4(2).
    IF lv_monat EQ 1.
      lv_monat = 12.
      lv_year = sy-datum+0(4) - 1.
    ELSE.
      lv_monat = lv_monat - 1.
      lv_year = sy-datum+0(4).
    ENDIF.
    CONCATENATE lv_year lv_monat '01' INTO so_dates-low.
    CALL FUNCTION 'LAST_DAY_OF_MONTHS'
      EXPORTING
        day_in            = so_dates-low
      IMPORTING
        last_day_of_month = so_dates-high
      EXCEPTIONS
        day_in_no_date    = 1.
    so_dates-sign = 'I'.
    so_dates-option = 'BT'.
    APPEND so_dates.
  ENDIF.

上面一段代码实现的业务逻辑是判断是否是每个月一号运行的后台job,如果是后台运行的job,日期自动生成为上个月的1号和最后一天。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值