• 删除PO


    FUNCTION zrfc_mm002.
    *"----------------------------------------------------------------------
    *"*"Local interface:
    *"  IMPORTING
    *"     VALUE(CALLNO) TYPE  ZCALLNO
    *"     VALUE(PO_NUMBER) LIKE  BAPIMEPOHEADER-PO_NUMBER
    *"  EXPORTING
    *"     VALUE(FLAG) LIKE  BAPIRET2-TYPE
    *"     VALUE(MESSAGE) LIKE  BAPIRET2-MESSAGE
    *"  TABLES
    *"      ZPOITEM STRUCTURE  ZPOITEM01
    *"----------------------------------------------------------------------
    DATA: ls_zpoitem TYPE zpoitem01,
          lv_message TYPE bapiret2-message,
          lv_datano  TYPE zdatano.
    
    DATA:
          gv_po_number         LIKE  bapimepoheader-po_number,              "PO号
          gt_return            LIKE  TABLE OF bapiret2,                     "返回消息
          gs_return            LIKE  LINE  OF gt_return,
          gt_poitem            LIKE  TABLE OF bapimepoitem,                 "行项目
          gs_poitem            LIKE  LINE  OF gt_poitem,
          gt_poitemx           LIKE  TABLE OF bapimepoitemx,
          gs_poitemx           LIKE  LINE  OF gt_poitemx.
    
    
    CLEAR:gv_po_number,gs_poitemx,gs_poitem,gs_return,gt_poitemx,gt_poitem,gt_return.
    
    gv_po_number = po_number.
    
    LOOP AT zpoitem INTO ls_zpoitem.
    gs_poitem-po_item    = ls_zpoitem-po_item.
    gs_poitem-delete_ind = ls_zpoitem-delete_ind.
    APPEND gs_poitem TO gt_poitem.
    
    gs_poitemx-po_item    = ls_zpoitem-po_item.
    gs_poitemx-po_itemx    = g_flag.
    gs_poitemx-delete_ind = g_flag.
    APPEND gs_poitemx TO gt_poitemx.
    
    CLEAR:gs_poitemx,gs_poitem.
    ENDLOOP.
    
    
    CALL FUNCTION 'BAPI_PO_CHANGE'
      EXPORTING
        purchaseorder               = gv_po_number
     TABLES
       return                       = gt_return
       poitem                       = gt_poitem
       poitemx                      = gt_poitemx.
    
      READ TABLE gt_return INTO gs_return WITH KEY type = 'E'.
      IF sy-subrc NE 0.
        flag = 'S'.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait = 'X'.
        CONCATENATE 'PO:'gv_po_number '处理完成' INTO message .
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    
        LOOP AT gt_return INTO gs_return WHERE type CA 'AEX'.
            MESSAGE ID     gs_return-id
                    TYPE   gs_return-type
                    NUMBER gs_return-number
                    WITH   gs_return-message_v1 gs_return-message_v2
                           gs_return-message_v3 gs_return-message_v4
                           INTO lv_message.
            CONCATENATE message lv_message INTO message SEPARATED BY ''.
        ENDLOOP.
        SHIFT message LEFT DELETING LEADING  ''.
        flag = 'E'.
      ENDIF.
    
    
    *记录日志
      CLEAR:gt_log,gs_log,ls_zpoitem.
      LOOP AT zpoitem INTO ls_zpoitem.
        lv_datano     = lv_datano + 1.
        gs_log-datano = lv_datano.
        gs_log-name   = 'ZRFC_MM002'.
        gs_log-cdate  = sy-datum.
        GET TIME.
        gs_log-ctime  = sy-uzeit.
        gs_log-callno = callno.
        gs_log-flag   = flag.
        gs_log-log    = message.
    
        CONCATENATE  po_number  ls_zpoitem-po_item   ls_zpoitem-delete_ind
        INTO gs_log-content SEPARATED BY '|'.
    
        CONDENSE gs_log-content NO-GAPS.
        gs_log-length = STRLEN( gs_log-content ).
        APPEND gs_log TO gt_log.
        CLEAR ls_zpoitem.
      ENDLOOP.
    
    IF gt_log IS NOT INITIAL.
    INSERT zrfc_mm01in_log FROM TABLE gt_log.
    IF sy-subrc = 0.
    COMMIT WORK.
    ENDIF.
    ENDIF.
    ENDFUNCTION.
  • 相关阅读:
    hdu 2485 Destroying the bus stations 迭代加深搜索
    hdu 2487 Ugly Windows 模拟
    hdu 2492 Ping pong 线段树
    hdu 1059 Dividing 多重背包
    hdu 3315 My Brute 费用流,费用最小且代价最小
    第四天 下载网络图片显示
    第三天 单元测试和数据库操作
    第二天 布局文件
    第一天 安卓简介
    Android 获取存储空间
  • 原文地址:https://www.cnblogs.com/caizjian/p/6074199.html
Copyright © 2020-2023  润新知