BAPI me21n vl10b vl02n
来源:互联网 发布:淘宝直播自我简介 编辑:程序博客网 时间:2024/06/06 14:18
FUNCTION ZTEST01.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(IT_TABP01) LIKE ZMM_NCP01 STRUCTURE ZMM_NCP01
*" EXPORTING
*" VALUE(MSG) TYPE MAKTX
*" TABLES
*" IT_TABP02 STRUCTURE ZMM_NCP02
*"----------------------------------------------------------------------
TABLES: ZMM_NCP01,
ZMM_NCP02,
EKPO.
DATA:
POHEADER LIKE BAPIMEPOHEADER OCCURS 0 WITH HEADER LINE,
POHEADERX LIKE BAPIMEPOHEADERX OCCURS 0 WITH HEADER LINE,
EXPPURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER OCCURS 0 WITH HEADER LINE,
RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
POITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
POITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,
POSCHEDULE LIKE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE,
POSCHEDULEX LIKE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE,
P_ITEMNO LIKE EKPO-EBELP.
* **Header Data
POHEADER-PO_NUMBER = ''.
POHEADER-COMP_CODE = IT_TABP01-BUKRS.
POHEADER-DOC_TYPE = IT_TABP01-BSART.
POHEADER-CREAT_DATE = SY-DATUM.
POHEADER-CREATED_BY = SY-UNAME.
POHEADER-LANGU = SY-LANGU.
POHEADER-PURCH_ORG = IT_TABP01-EKORG.
POHEADER-PUR_GROUP = IT_TABP01-EKGRP.
POHEADER-DOC_DATE = SY-DATUM.
POHEADER-VAT_CNTRY = 'CNY'.
POHEADER-SUPPL_PLNT = IT_TABP01-LIFNR.
POHEADER-STATUS = 'I'.
APPEND POHEADER.
* **Po Header Flag
POHEADERX-PO_NUMBER = 'X' .
POHEADERX-COMP_CODE = 'X' .
POHEADERX-DOC_TYPE = 'X' .
POHEADERX-CREAT_DATE = 'X'.
POHEADERX-CREATED_BY = 'X'.
POHEADERX-LANGU = 'X' .
POHEADERX-PURCH_ORG = 'X' .
POHEADERX-PUR_GROUP = 'X' .
POHEADERX-DOC_DATE = 'X'.
POHEADERX-VAT_CNTRY = 'X'.
POHEADERX-SUPPL_VEND = 'X'.
POHEADERX-SUPPL_PLNT = 'X'.
POHEADERX-STATUS = 'X'.
APPEND POHEADERX.
LOOP AT IT_TABP02.
P_ITEMNO = P_ITEMNO + 10.
* **Po Item Data
POITEM-PO_ITEM = P_ITEMNO.
POITEM-MATERIAL = IT_TABP02-MATNR.
POITEM-PLANT = IT_TABP02-WERKS.
POITEM-STGE_LOC = IT_TABP02-LGORT_GI .
POITEM-QUANTITY = IT_TABP02-MENGE .
POITEM-NET_PRICE = IT_TABP02-NETPR .
POITEM-PRICE_UNIT = IT_TABP02-KPEIN .
POITEM-PREQ_NAME = SY-UNAME.
POITEM-SHIPPING = IT_TABP02-EVERS.
APPEND POITEM.
* **Po Item Data Flag
POITEMX-PO_ITEM = P_ITEMNO.
POITEMX-MATERIAL = 'X' .
POITEMX-PLANT = 'X'.
POITEMX-STGE_LOC = 'X'.
POITEMX-QUANTITY = 'X'.
POITEMX-NET_PRICE = 'X'.
POITEMX-PRICE_UNIT = 'X'.
POITEMX-PREQ_NAME = 'X'.
POITEMX-SHIPPING = 'X'.
APPEND POITEMX.
ENDLOOP.
CLEAR P_ITEMNO.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = POHEADER
POHEADERX = POHEADERX
IMPORTING
EXPPURCHASEORDER = EXPPURCHASEORDER
TABLES
RETURN = RETURN
POITEM = POITEM
POITEMX = POITEMX
POSCHEDULE = POSCHEDULE
POSCHEDULEX = POSCHEDULEX.
DATA ERROR_LOG TYPE C.
LOOP AT RETURN.
IF RETURN-TYPE = 'E'.
ERROR_LOG = 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF ERROR_LOG = 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE '凭证号码' EXPPURCHASEORDER '创建失败!' INTO MSG.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CONCATENATE '凭证号码' EXPPURCHASEORDER '创建成功!' INTO MSG.
ENDIF.
ENDFUNCTION.
FUNCTION ZTEST02.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(MSG) TYPE MAKTX
*" TABLES
*" IT_TABP01 STRUCTURE ZMM_NCP03
*"----------------------------------------------------------------------
TABLES: ZMM_NCP03.
DATA: REQUEST TYPE BAPIDELICIOUSREQUEST OCCURS 0 WITH HEADER LINE,
CREATEDITEMS TYPE BAPIDELICIOUSCREATEDITEMS OCCURS 0 WITH HEADER LINE,
RETURN TYPE BAPIRET2 ,
IT_RETURN LIKE TABLE OF RETURN WITH HEADER LINE,
IT_TAB LIKE TABLE OF REQUEST WITH HEADER LINE,
IT_ITEMS LIKE TABLE OF CREATEDITEMS WITH HEADER LINE,
IID LIKE BAPIDELICIOUSREQUEST-ID,
IITEM LIKE BAPIDELICIOUSREQUEST-DOCUMENT_ITEM,
SALEORDER(150) TYPE C,
SALES_UOM LIKE BAPIDELICIOUSREQUEST-QUANTITY_SALES_UOM VALUE '1'.
LOOP AT IT_TABP01.
IID = IID + 10.
REQUEST-ID = IID.
REQUEST-DOCUMENT_NUMB = IT_TABP01-EBELN.
REQUEST-DOCUMENT_ITEM = '10'.
REQUEST-QUANTITY_SALES_UOM = SALES_UOM.
REQUEST-DOCUMENT_TYPE = 'B'. "Delivery
REQUEST-DOCUMENT_TYPE_DELIVERY = 'YY90'.
REQUEST-DELIVERY_DATE = SY-DATUM+0(6).
REQUEST-DOCUMENT_TYPE_DELIVERY = 'YY90'.
APPEND REQUEST TO IT_TAB.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
REQUEST = IT_TAB
CREATEDITEMS = IT_ITEMS
RETURN = IT_RETURN.
DATA ERROR_LOG TYPE C.
LOOP AT IT_RETURN.
IF IT_RETURN-TYPE = 'E'.
ERROR_LOG = 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF ERROR_LOG = 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE '' '销售凭证创建失败!' INTO MSG.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
* loop at it_items.
** concatenate SALES_UOM it_items-dOCUMENT_NUMB
* endloop.
CONCATENATE '销售号码' '创建成功!' INTO MSG.
ENDIF.
ENDFUNCTION.
FUNCTION ZTEST03.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(VBELN) TYPE VBELN_VL
*" EXPORTING
*" VALUE(MSG) TYPE MAKTX
*"----------------------------------------------------------------------
TABLES: VBUK.
DATA: BEGIN OF I_VBKOK OCCURS 11.
INCLUDE STRUCTURE VBKOK.
DATA: END OF I_VBKOK.
I_VBKOK-VBELN_VL = VBELN.
I_VBKOK-WABUC = 'X'.
I_VBKOK-WADAT_IST = SY-DATUM.
APPEND I_VBKOK.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
VBKOK_WA = I_VBKOK
DELIVERY = VBELN.
IF SY-SUBRC <> '0'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE '交货单' VBELN '发货过帐失败!' INTO MSG.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CONCATENATE '交货单' VBELN '发货过帐成功!' INTO MSG.
ENDIF.
ENDFUNCTION.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(IT_TABP01) LIKE ZMM_NCP01 STRUCTURE ZMM_NCP01
*" EXPORTING
*" VALUE(MSG) TYPE MAKTX
*" TABLES
*" IT_TABP02 STRUCTURE ZMM_NCP02
*"----------------------------------------------------------------------
TABLES: ZMM_NCP01,
ZMM_NCP02,
EKPO.
DATA:
POHEADER LIKE BAPIMEPOHEADER OCCURS 0 WITH HEADER LINE,
POHEADERX LIKE BAPIMEPOHEADERX OCCURS 0 WITH HEADER LINE,
EXPPURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER OCCURS 0 WITH HEADER LINE,
RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
POITEM LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
POITEMX LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,
POSCHEDULE LIKE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE,
POSCHEDULEX LIKE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE,
P_ITEMNO LIKE EKPO-EBELP.
* **Header Data
POHEADER-PO_NUMBER = ''.
POHEADER-COMP_CODE = IT_TABP01-BUKRS.
POHEADER-DOC_TYPE = IT_TABP01-BSART.
POHEADER-CREAT_DATE = SY-DATUM.
POHEADER-CREATED_BY = SY-UNAME.
POHEADER-LANGU = SY-LANGU.
POHEADER-PURCH_ORG = IT_TABP01-EKORG.
POHEADER-PUR_GROUP = IT_TABP01-EKGRP.
POHEADER-DOC_DATE = SY-DATUM.
POHEADER-VAT_CNTRY = 'CNY'.
POHEADER-SUPPL_PLNT = IT_TABP01-LIFNR.
POHEADER-STATUS = 'I'.
APPEND POHEADER.
* **Po Header Flag
POHEADERX-PO_NUMBER = 'X' .
POHEADERX-COMP_CODE = 'X' .
POHEADERX-DOC_TYPE = 'X' .
POHEADERX-CREAT_DATE = 'X'.
POHEADERX-CREATED_BY = 'X'.
POHEADERX-LANGU = 'X' .
POHEADERX-PURCH_ORG = 'X' .
POHEADERX-PUR_GROUP = 'X' .
POHEADERX-DOC_DATE = 'X'.
POHEADERX-VAT_CNTRY = 'X'.
POHEADERX-SUPPL_VEND = 'X'.
POHEADERX-SUPPL_PLNT = 'X'.
POHEADERX-STATUS = 'X'.
APPEND POHEADERX.
LOOP AT IT_TABP02.
P_ITEMNO = P_ITEMNO + 10.
* **Po Item Data
POITEM-PO_ITEM = P_ITEMNO.
POITEM-MATERIAL = IT_TABP02-MATNR.
POITEM-PLANT = IT_TABP02-WERKS.
POITEM-STGE_LOC = IT_TABP02-LGORT_GI .
POITEM-QUANTITY = IT_TABP02-MENGE .
POITEM-NET_PRICE = IT_TABP02-NETPR .
POITEM-PRICE_UNIT = IT_TABP02-KPEIN .
POITEM-PREQ_NAME = SY-UNAME.
POITEM-SHIPPING = IT_TABP02-EVERS.
APPEND POITEM.
* **Po Item Data Flag
POITEMX-PO_ITEM = P_ITEMNO.
POITEMX-MATERIAL = 'X' .
POITEMX-PLANT = 'X'.
POITEMX-STGE_LOC = 'X'.
POITEMX-QUANTITY = 'X'.
POITEMX-NET_PRICE = 'X'.
POITEMX-PRICE_UNIT = 'X'.
POITEMX-PREQ_NAME = 'X'.
POITEMX-SHIPPING = 'X'.
APPEND POITEMX.
ENDLOOP.
CLEAR P_ITEMNO.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = POHEADER
POHEADERX = POHEADERX
IMPORTING
EXPPURCHASEORDER = EXPPURCHASEORDER
TABLES
RETURN = RETURN
POITEM = POITEM
POITEMX = POITEMX
POSCHEDULE = POSCHEDULE
POSCHEDULEX = POSCHEDULEX.
DATA ERROR_LOG TYPE C.
LOOP AT RETURN.
IF RETURN-TYPE = 'E'.
ERROR_LOG = 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF ERROR_LOG = 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE '凭证号码' EXPPURCHASEORDER '创建失败!' INTO MSG.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CONCATENATE '凭证号码' EXPPURCHASEORDER '创建成功!' INTO MSG.
ENDIF.
ENDFUNCTION.
FUNCTION ZTEST02.
*"----------------------------------------------------------------------
*"*"Local interface:
*" EXPORTING
*" VALUE(MSG) TYPE MAKTX
*" TABLES
*" IT_TABP01 STRUCTURE ZMM_NCP03
*"----------------------------------------------------------------------
TABLES: ZMM_NCP03.
DATA: REQUEST TYPE BAPIDELICIOUSREQUEST OCCURS 0 WITH HEADER LINE,
CREATEDITEMS TYPE BAPIDELICIOUSCREATEDITEMS OCCURS 0 WITH HEADER LINE,
RETURN TYPE BAPIRET2 ,
IT_RETURN LIKE TABLE OF RETURN WITH HEADER LINE,
IT_TAB LIKE TABLE OF REQUEST WITH HEADER LINE,
IT_ITEMS LIKE TABLE OF CREATEDITEMS WITH HEADER LINE,
IID LIKE BAPIDELICIOUSREQUEST-ID,
IITEM LIKE BAPIDELICIOUSREQUEST-DOCUMENT_ITEM,
SALEORDER(150) TYPE C,
SALES_UOM LIKE BAPIDELICIOUSREQUEST-QUANTITY_SALES_UOM VALUE '1'.
LOOP AT IT_TABP01.
IID = IID + 10.
REQUEST-ID = IID.
REQUEST-DOCUMENT_NUMB = IT_TABP01-EBELN.
REQUEST-DOCUMENT_ITEM = '10'.
REQUEST-QUANTITY_SALES_UOM = SALES_UOM.
REQUEST-DOCUMENT_TYPE = 'B'. "Delivery
REQUEST-DOCUMENT_TYPE_DELIVERY = 'YY90'.
REQUEST-DELIVERY_DATE = SY-DATUM+0(6).
REQUEST-DOCUMENT_TYPE_DELIVERY = 'YY90'.
APPEND REQUEST TO IT_TAB.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
REQUEST = IT_TAB
CREATEDITEMS = IT_ITEMS
RETURN = IT_RETURN.
DATA ERROR_LOG TYPE C.
LOOP AT IT_RETURN.
IF IT_RETURN-TYPE = 'E'.
ERROR_LOG = 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF ERROR_LOG = 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE '' '销售凭证创建失败!' INTO MSG.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
* loop at it_items.
** concatenate SALES_UOM it_items-dOCUMENT_NUMB
* endloop.
CONCATENATE '销售号码' '创建成功!' INTO MSG.
ENDIF.
ENDFUNCTION.
FUNCTION ZTEST03.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(VBELN) TYPE VBELN_VL
*" EXPORTING
*" VALUE(MSG) TYPE MAKTX
*"----------------------------------------------------------------------
TABLES: VBUK.
DATA: BEGIN OF I_VBKOK OCCURS 11.
INCLUDE STRUCTURE VBKOK.
DATA: END OF I_VBKOK.
I_VBKOK-VBELN_VL = VBELN.
I_VBKOK-WABUC = 'X'.
I_VBKOK-WADAT_IST = SY-DATUM.
APPEND I_VBKOK.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
VBKOK_WA = I_VBKOK
DELIVERY = VBELN.
IF SY-SUBRC <> '0'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONCATENATE '交货单' VBELN '发货过帐失败!' INTO MSG.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CONCATENATE '交货单' VBELN '发货过帐成功!' INTO MSG.
ENDIF.
ENDFUNCTION.
- BAPI me21n vl10b vl02n
- 发货过账(vl02n)bapi 及冲销
- VL02N修改外交货的表头数据的BAPI
- BAPI
- BAPI
- BAPI
- BAPI
- BAPI
- vl02n发货序列号查询
- vl02n 批次拆分
- vl02n 批次拆分
- 采购订单(ME21N/ME23N)
- ME21N 出口userexit
- BADI修改VL02N屏幕字段
- ME21N增强提示警告消息
- ME21N增强提示警告消息
- 增强之BADI修改VL02N屏幕字段
- 关于BAPI
- xcode4 快捷键
- Kernel+中驱动挂载
- XP,VISTA,WIN7 远程踢 2003用户
- 超酷的天气预报
- oracle里的数组
- BAPI me21n vl10b vl02n
- 制作对话框与视图结合的分割窗口
- C# iphone MontTouch UIPageControl 的使用
- python 学习之读串口
- 利用ServletContextListener 获取spring上下文
- C语言、UNIX之父丹尼斯·里奇
- How to resolve Time_Wait issue when you use TcpListener and TcpClient
- weblogic 手动发布 Eclipse下的工程
- VS2005断点无法调试