博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
删除PO
阅读量:5808 次
发布时间:2019-06-18

本文共 3129 字,大约阅读时间需要 10 分钟。

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.

 

转载于:https://www.cnblogs.com/caizjian/p/6074199.html

你可能感兴趣的文章
使用nodejs和Java访问远程服务器的服务
查看>>
冒泡排序、二分查找
查看>>
Spring Boot @ControllerAdvice 处理全局异常,返回固定格式Json
查看>>
MikroTik RouterOS U盘安装工具netinstall的使用
查看>>
MyBatis 源码分析系列文章合集
查看>>
PHP技术细节汇总
查看>>
Ansible playbook 部署Openresty
查看>>
MySQL5.7新特性之备份工具mysqlpump的使用
查看>>
js代码与html代码分离示例
查看>>
“知天命”的英特尔,过去有些遗憾未来有些迷茫
查看>>
SQL注入测试平台 SQLol -2.SELECT注入测试
查看>>
学习整理与细化(1)——Internet 的域名系统(domain name system)
查看>>
微服务定义及.Net Core中用的技术
查看>>
Java匿名内部类与回调函数
查看>>
逃离北上广?程序员的北漂生活
查看>>
hibernate笔记--缓存机制之 一级缓存(session缓存)
查看>>
Linux 常用性能工具简介.
查看>>
elasticsearch 支持中英文搜索和混合搜索
查看>>
区块链应用 | 直击“区块链”:概念火爆背后 是技术还是利益在驱动?
查看>>
JDK/Java SE官方文档汇总
查看>>