BAPI:BAPI_CONTRACT_CREATE(内部合同创建)
生活随笔
收集整理的這篇文章主要介紹了
BAPI:BAPI_CONTRACT_CREATE(内部合同创建)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
說(shuō)明:創(chuàng)建,修改內(nèi)部合同,表頭有自定義增強(qiáng)字段。
?
FORM?FRM_PROCESS_SAVE_DATA?.*--------------------------------------------------------------------*
*?????Define?BAPI?parameters
*--------------------------------------------------------------------*
??DATA:?L_FLAG?TYPE?C.
??DATA:L_EBELN????TYPE?BAPIMEOUTHEADER-NUMBER,??????????????"#EC?NEEDED
???????LS_EKKO????TYPE?EKKO,
???????EXTENSIONIN?LIKE?BAPIPAREX
??????????????????OCCURS?0?WITH?HEADER?LINE,
???????LT_EXTENSIONOUT?TYPE?BAPIPAREX_T,
???????LT_RETURN???????TYPE?BAPIRET2_T,
???????LS_RETURN???????TYPE?BAPIRET2,
???????LS_HEADER?????????????TYPE?BAPIMEOUTHEADER,
???????LS_HEADERX????????????TYPE?BAPIMEOUTHEADERX,
???????LS_ITEM???????????????TYPE?BAPIMEOUTITEM,
???????LT_ITEM???????????????TYPE?BAPIMEOUT_T_ITEM,
???????LS_ITEMX??????????????TYPE?BAPIMEOUTITEMX,
???????LT_ITEMX??????????????TYPE?BAPIMEOUT_T_ITEMX.
*--------------------------------------------------------------------*
*???Header賦值
*--------------------------------------------------------------------*
??CLEAR:?LS_HEADER,LS_HEADERX,L_FLAG.
??REFRESH:?LT_RETURN,?LT_ITEM,?LT_ITEMX.
??READ?TABLE?GT_OUT?INTO?GWA_OUT?INDEX?1.
??IF?GWA_OUT-EBELN?IS?NOT?INITIAL.
????G_ACTION?=?CNS_MODIFY.
??ELSE.
????G_ACTION?=?CNS_CREATE.
??ENDIF.
??LS_HEADER-NUMBER????=?GWA_OUT-EBELN.??"合同號(hào)
??LS_HEADER-VENDOR????=?GWA_OUT-LIFNR.??"供應(yīng)商
??LS_HEADER-DOC_TYPE??=?GWA_OUT-BSART.??"協(xié)議類(lèi)型
??LS_HEADER-COMP_CODE?=?GWA_OUT-BUKRS.??"公司代碼
??LS_HEADER-DOC_DATE??=?GWA_OUT-BEDAT.??"協(xié)議日期
??LS_HEADER-VPER_START??=?GWA_OUT-KDATB.?"協(xié)議起始日期
??LS_HEADER-VPER_END???=?GWA_OUT-KDATE.??"協(xié)議截至日期
??LS_HEADER-PURCH_ORG??=?GWA_OUT-EKORG.??"采購(gòu)組織
??LS_HEADER-PUR_GROUP??=?GWA_OUT-EKGRP.??"采購(gòu)組
??LS_HEADER-ACUM_VALUE?=?GWA_OUT-KTWRT.??"目標(biāo)值
??LS_HEADER-CURRENCY???=?GWA_OUT-WAERS.??"貨幣
??LS_HEADER-LANGU??????=?SY-LANGU.
??LS_HEADERX-NUMBER????=?CNS_YES.??"合同號(hào)
??LS_HEADERX-VENDOR????=?CNS_YES.??"供應(yīng)商
??LS_HEADERX-DOC_TYPE??=?CNS_YES.??"協(xié)議類(lèi)型
??LS_HEADERX-COMP_CODE?=?CNS_YES.??"公司代碼
??LS_HEADERX-DOC_DATE??=?CNS_YES.??"協(xié)議日期
??LS_HEADERX-VPER_START??=?CNS_YES.?"協(xié)議起始日期
??LS_HEADERX-VPER_END???=?CNS_YES.??"協(xié)議截至日期
??LS_HEADERX-PURCH_ORG??=?CNS_YES.??"采購(gòu)組織
??LS_HEADERX-PUR_GROUP??=?CNS_YES.??"采購(gòu)組
??LS_HEADERX-ACUM_VALUE?=?CNS_YES.??"目標(biāo)值
??LS_HEADERX-CURRENCY???=?CNS_YES.??"貨幣
??LS_HEADERX-LANGU??????=?CNS_YES.
*--------------------------------------------------------------------*
*???Header?自定義字段賦值
*--------------------------------------------------------------------*
??DATA:?LS_BAPI_TE_MEOUTHEADERX?LIKE?BAPI_TE_MEOUTHEADERX,
????????LS_BAPI_TE_MEOUTHEADER??LIKE?BAPI_TE_MEOUTHEADER.
??CLEAR?EXTENSIONIN.
??LS_BAPI_TE_MEOUTHEADER-NUMBER?=?GWA_OUT-EBELN.
??LS_BAPI_TE_MEOUTHEADER-ZHTNUM?=?GWA_OUT-ZHTNUM.??"外部合同號(hào)
??LS_BAPI_TE_MEOUTHEADER-ZLOTNO?=?GWA_OUT-ZLOTNO.??"LOT包號(hào)
??LS_BAPI_TE_MEOUTHEADER-ZCGBLX?=?GWA_OUT-ZCGBLX.??"采購(gòu)包類(lèi)型
??LS_BAPI_TE_MEOUTHEADER-ZHTBZ??=?GWA_OUT-ZHTBZ.???"采購(gòu)立項(xiàng)號(hào)
??LS_BAPI_TE_MEOUTHEADER-ZCGNUM?=?GWA_OUT-ZCGNUM.??"采購(gòu)任務(wù)
??EXTENSIONIN-STRUCTURE?=?'BAPI_TE_MEOUTHEADER'.
??CALL?METHOD?CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C
????EXPORTING
??????IM_VALUE???????????????=?LS_BAPI_TE_MEOUTHEADER
????IMPORTING
??????EX_CONTAINER???????????=?EXTENSIONIN-VALUEPART1
????EXCEPTIONS
??????ILLEGAL_PARAMETER_TYPE?=?1
??????OTHERS?????????????????=?2.
??APPEND?EXTENSIONIN.
??CLEAR?EXTENSIONIN.
??LS_BAPI_TE_MEOUTHEADERX-NUMBER?=?GWA_OUT-EBELN.
??LS_BAPI_TE_MEOUTHEADERX-ZHTNUM?=?CNS_YES.??"外部合同號(hào)
??LS_BAPI_TE_MEOUTHEADERX-ZLOTNO?=?CNS_YES.??"LOT包號(hào)
??LS_BAPI_TE_MEOUTHEADERX-ZCGBLX?=?CNS_YES.??"采購(gòu)包類(lèi)型
??LS_BAPI_TE_MEOUTHEADERX-ZHTBZ??=?CNS_YES.???"采購(gòu)立項(xiàng)號(hào)
??LS_BAPI_TE_MEOUTHEADERX-ZCGNUM?=?CNS_YES.??"采購(gòu)任務(wù)
??EXTENSIONIN-STRUCTURE?=?'BAPI_TE_MEOUTHEADERX'.
??CALL?METHOD?CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C
????EXPORTING
??????IM_VALUE???????????????=?LS_BAPI_TE_MEOUTHEADERX
????IMPORTING
??????EX_CONTAINER???????????=?EXTENSIONIN-VALUEPART1
????EXCEPTIONS
??????ILLEGAL_PARAMETER_TYPE?=?1
??????OTHERS?????????????????=?2.
*??EXTENSIONIN-VALUEPART1?=?LS_BAPI_TE_MEOUTHEADERX.
??APPEND?EXTENSIONIN.
*--------------------------------------------------------------------*
*???Item賦值
*--------------------------------------------------------------------*
??CLEAR:?LS_ITEM,LS_ITEMX,LT_ITEM[],LT_ITEMX[].
??LOOP?AT?GT_OUT?INTO?GWA_OUT.
????CLEAR:?LS_ITEM,?LS_ITEMX.
????LS_ITEM-ITEM_NO????=?GWA_OUT-EBELP.??"行號(hào)
????LS_ITEM-SHORT_TEXT?=?GWA_OUT-TXZ01.??"端文本
????LS_ITEM-MATL_GROUP?=?GWA_OUT-MATKL.??"物料組
????LS_ITEM-PLANT??????=?GWA_OUT-WERKS.??"工廠
????LS_ITEM-TARGET_QTY?=?GWA_OUT-KTMNG.??"目標(biāo)數(shù)量
????LS_ITEM-PO_UNIT????=?GWA_OUT-MEINS.
????LS_ITEM-PO_UNIT_ISO????=?GWA_OUT-MEINS.
????LS_ITEM-NET_PRICE??=?GWA_OUT-NETPR.??"凈價(jià)
????LS_ITEM-PRICE_UNIT?=?GWA_OUT-PEINH.??"價(jià)格單位
????LS_ITEM-ORDERPR_UN?=?GWA_OUT-MEINS.??"訂單價(jià)格單位(采購(gòu))
????LS_ITEM-ORDERPR_UN_ISO?=?GWA_OUT-MEINS.??"訂單價(jià)格單位(采購(gòu))
????LS_ITEM-ACCTASSCAT?=?'U'.????????????"科目分配類(lèi)別
????LS_ITEM-ITEM_CAT???=?0.??????????????"項(xiàng)目類(lèi)別
????APPEND?LS_ITEM?TO?LT_ITEM.
????LS_ITEMX-ITEM_NO?????=?GWA_OUT-EBELP.??"行號(hào)
????LS_ITEMX-ITEM_NOX????=?CNS_YES.??"行號(hào)
????LS_ITEMX-SHORT_TEXT?=?CNS_YES.??"端文本
????LS_ITEMX-MATL_GROUP?=?CNS_YES.??"物料組
????LS_ITEMX-PLANT??????=?CNS_YES.??"工廠
????LS_ITEMX-TARGET_QTY?=?CNS_YES.??"目標(biāo)數(shù)量
????LS_ITEMX-PO_UNIT????=?CNS_YES.
????LS_ITEMX-PO_UNIT_ISO????=?CNS_YES.
????LS_ITEMX-NET_PRICE??=?CNS_YES.??"凈價(jià)
????LS_ITEMX-PRICE_UNIT?=?CNS_YES.??"價(jià)格單位
????LS_ITEMX-ORDERPR_UN?=?CNS_YES.
????LS_ITEMX-ORDERPR_UN_ISO?=?CNS_YES.
????LS_ITEMX-ACCTASSCAT?=?CNS_YES.????????????"科目分配類(lèi)別
????LS_ITEMX-ITEM_CAT???=?CNS_YES.??????????????"項(xiàng)目類(lèi)別
????APPEND?LS_ITEMX?TO?LT_ITEMX.
??ENDLOOP.
*--------------------------------------------------------------------*
*???Create?contract
*--------------------------------------------------------------------*
??IF?G_ACTION?=?CNS_CREATE.
????"無(wú)合同號(hào),新建
????CALL?FUNCTION?'BAPI_CONTRACT_CREATE'
??????EXPORTING
????????HEADER????????????????=?LS_HEADER
????????HEADERX???????????????=?LS_HEADERX
*??????TESTRUN???????????????=?PA_TEST
??????IMPORTING
????????PURCHASINGDOCUMENT????=?L_EBELN
??????TABLES
????????RETURN????????????????=?LT_RETURN
????????ITEM??????????????????=?LT_ITEM
????????ITEMX?????????????????=?LT_ITEMX
????????EXTENSIONIN???????????=?EXTENSIONIN.
??ELSE.
????"?有合同號(hào),修改
????L_EBELN?=?LS_HEADER-NUMBER.
????CALL?FUNCTION?'BAPI_CONTRACT_CHANGE'
??????EXPORTING
????????PURCHASINGDOCUMENT????=?L_EBELN
????????HEADER????????????????=?LS_HEADER
????????HEADERX???????????????=?LS_HEADERX
*??????TESTRUN???????????????=?PA_TEST
??????IMPORTING
????????EXP_HEADER????????????=?LS_HEADER
??????TABLES
????????RETURN????????????????=?LT_RETURN
????????ITEM??????????????????=?LT_ITEM
????????ITEMX?????????????????=?LT_ITEMX
????????EXTENSIONIN???????????=?EXTENSIONIN.
??ENDIF.
??L_FLAG?=?'S'.
??LOOP?AT?LT_RETURN?INTO?LS_RETURN?WHERE?TYPE?=?'E'?OR?TYPE?=?'A'.
????L_FLAG?=?'E'.
????EXIT.
??ENDLOOP.
??IF?L_FLAG?EQ?'S'.
????CALL?FUNCTION?'BAPI_TRANSACTION_COMMIT'.
??ELSE.
????CALL?FUNCTION?'BAPI_TRANSACTION_ROLLBACK'.
??ENDIF.
??IF?L_FLAG?EQ?'S'.
????IF?G_ACTION?EQ?CNS_CREATE.
??????MESSAGE?S836?WITH?L_EBELN.
????ELSE.
??????MESSAGE?S837?WITH?L_EBELN.
????ENDIF.
??ELSE.
????IF?G_ACTION?EQ?CNS_CREATE.
??????MESSAGE?S838?WITH?L_EBELN.
????ELSE.
??????MESSAGE?S839?WITH?L_EBELN.
????ENDIF.
??ENDIF.
??IF?NOT?LT_RETURN?IS?INITIAL.
????CALL?FUNCTION?'REUSE_ALV_GRID_DISPLAY'
??????EXPORTING
????????I_STRUCTURE_NAME?=?'BAPIRET2'
??????TABLES
????????T_OUTTAB?????????=?LT_RETURN
??????EXCEPTIONS
????????OTHERS???????????=?0.
??ENDIF.
ENDFORM.????????????????????"?FRM_PROCESS_SAVE_DATA?
?
總結(jié)
以上是生活随笔為你收集整理的BAPI:BAPI_CONTRACT_CREATE(内部合同创建)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【基础】ABAP不同变量类型之间数值大小
- 下一篇: 在Dialog中实现下拉框效果并对下拉框