• KB21N、KB24N作业分配与冲销


    一、KB21N

    调用BAPI:BAPI_ACC_ACTIVITY_ALLOC_POST

    经测试,分配订单时行项目一次性最多传332条数据

    "-----------------------------@斌将军-----------------------------
    DATA:ls_header TYPE bapidochdrp,
         lv_doc_no TYPE bapidochdrp-doc_no,
         lt_item TYPE TABLE OF bapiaaitm,
         ls_item TYPE bapiaaitm,
         lt_return TYPE TABLE OF bapiret2,
         ls_return TYPE bapiret2.
    
    DATA:lv_check TYPE char1,
          lv_message TYPE char200.
    
    ls_header-co_area = 'LLLG'.
    ls_header-docdate = sy-datum.
    ls_header-postgdate = sy-datum.
    ls_header-username = sy-uname.
    ls_header-val_period = sy-datum+4(2).
    ls_header-val_fisyear = sy-datum+0(4).
    
    ls_item-send_cctr = '1000410101'.
    ls_item-acttype = 'L010'.
    ls_item-actvty_qty = '308.6'.
    *ls_item-ACTIVITYUN = 'MIN'.
    ls_item-rec_order = '000110000003'.
    ls_item-seg_text = 'test'.
    APPEND ls_item TO lt_item.
    CALL FUNCTION 'BAPI_ACC_ACTIVITY_ALLOC_POST'
      EXPORTING
        doc_header            = ls_header
        ignore_warnings       = 'X'
     IMPORTING
        doc_no                = lv_doc_no
      TABLES
        doc_items             = lt_item
        return                = lt_return.
    
    CLEAR:lv_check,lv_message.
    LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'.
      lv_check = 'E'.
      lv_message = lv_message && ls_return-message.
    ENDLOOP.
    IF lv_check = 'E'.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = abap_true.
      WRITE: lv_doc_no.
    ENDIF.
    "-----------------------------@斌将军-----------------------------

    二、KB24N

     调用BAPI:BAPI_ACC_ACT_POSTINGS_REVERSE

    "-----------------------------@斌将军-----------------------------
    DATA:ls_header TYPE bapidochdrr,
         lt_doc_no TYPE TABLE OF bapidochdrr,
         ls_doc_no TYPE bapidochdrr,
         lt_return TYPE TABLE OF bapiret2,
         ls_return TYPE bapiret2.
    
    DATA:lv_check TYPE char1,
          lv_message TYPE char200.
    
    ls_header-co_area = 'LLLG'.
    ls_header-docdate = sy-datum.
    ls_header-postgdate = sy-datum.
    ls_header-username = sy-uname.
    ls_header-rvrs_no = '0104452804'."需要冲销的凭证
    
    CALL FUNCTION 'BAPI_ACC_ACT_POSTINGS_REVERSE'
      EXPORTING
        doc_header            = ls_header
        ignore_warnings       = 'X'
    *   CO_TRANSACTION        = ' '
      TABLES
        doc_no                = lt_doc_no
        return                = lt_return
              .
    CLEAR:lv_check,lv_message.
    LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'.
      lv_check = 'E'.
      lv_message = lv_message && ls_return-message.
    ENDLOOP.
    IF lv_check = 'E'.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    ELSE.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = abap_true.
    ENDIF.
    "-----------------------------@斌将军-----------------------------
  • 相关阅读:
    AI
    CentoOS6.6安装netcat
    ip防刷脚本
    php git pull
    冥想_ PHP抽奖程序概率算法
    如何在CentOS配置Apache的HTTPS服务
    C++ 用RGB 三种颜色绘图
    Linux Vsftpd 连接超时解决方法(被动模式)
    js 函数返回函数
    模拟jquery的$()选择器的实现
  • 原文地址:https://www.cnblogs.com/BinGeneral/p/16404813.html
Copyright © 2020-2023  润新知