SAP ABAP BAPI_MATERIAL_SAVEDATA 物料主数据EAN
效果圖:
??
?
?
DATA:LS_TE_MARA?TYPE??BAPI_TE_MARA?,
???????LS_TE_MARAX?TYPE??BAPI_TE_MARAX?.
??DATA:?WA_BAPIMATHEAD?TYPE?BAPIMATHEAD.
??DATA:GS_DESCRIPTION?TYPE?BAPI_MAKT.
??DATA:?WA_CLIENTDATA?TYPE?BAPI_MARA.
??DATA:?WA_CLIENTDATAX?TYPE?BAPI_MARAX.
??DATA:?WA_PLANTDATA?TYPE?BAPI_MARC.
??DATA:?WA_PLANTDATAX?TYPE?BAPI_MARCX.
??DATA??LT_INTERNATIONALARTNOS??LIKE?TABLE?OF???BAPI_MEAN?.
??DATA:??LS_INTERNATIONALARTNOS??LIKE??BAPI_MEAN?.
??DATA:LS_UNITSOFMEASURE?LIKE??BAPI_MARM,
???LS_UNITSOFMEASUREX??LIKE??BAPI_MARMX?.
??DATA:LT_BAPIPAREX?TYPE?TABLE?OF?BAPIPAREX?,
????????LS_BAPIPAREX??TYPE?BAPIPAREX??.
??DATA:LT_BAPIPAREXX?TYPE?TABLE?OF?BAPIPAREXX?,
???????LS_BAPIPAREXX?TYPE?BAPIPAREXX?.
*"庫存地點
??DATA:?WA_BAPI_MARD?TYPE?BAPI_MARD.
??DATA:?WA_BAPI_MARDX?TYPE?BAPI_MARDX.
??DATA:?WA_BAPI_MBEW?TYPE?BAPI_MBEW.
??DATA:?WA_BAPI_MBEWX?TYPE?BAPI_MBEWX.
??DATA:?WA_BAPI_MVKE?TYPE?BAPI_MVKE.
??DATA:?WA_BAPI_MVKEX?TYPE?BAPI_MVKEX.
*倉庫
??DATA:?WA_BAPI_MLGN?TYPE?BAPI_MLGN.
??DATA:?WA_BAPI_MLGNX?TYPE?BAPI_MLGNX.
??DATA:LV_MESSAGE?TYPE?STRING?.
??DATA:LV_ALL_MESSAGE?TYPE?STRING?.
??DATA:
???LT_UNITSOFMEASURE?LIKE?TABLE?OF???BAPI_MARM,
??LT_UNITSOFMEASUREX??LIKE?TABLE?OF???BAPI_MARMX.
*倉儲類型
??DATA:?WA_BAPI_MLGT?TYPE?BAPI_MLGT.
??DATA:?WA_BAPI_MLGTX?TYPE?BAPI_MLGTX.
*稅分類
??DATA:?I_TAXCLASSIFICATIONS?TYPE?TABLE?OF?BAPI_MLAN.
??DATA:?WA_TAXCLASSIFICATIONS?TYPE?BAPI_MLAN.
*錯誤消息
??DATA:?WA_BAPIRET2?TYPE?BAPIRET2.
??DATA:?I_BAPI_MATRETURN2?TYPE?TABLE?OF
?????????????????????BAPI_MATRETURN2?WITH?HEADER?LINE.
??DATA:??GT_DESCRIPTION?TYPE?TABLE?OF?BAPI_MAKT.
??DATA:GT_MEASURE??LIKE?TABLE?OF??BAPI_MARM,
????????WA_MEASURE?LIKE?BAPI_MARM,
??GT_MEASUREX?LIKE?TABLE?OF???BAPI_MARMX,
??WA_MEASUREX?LIKE?BAPI_MARMX.
??DATA:?LV_FLAG?TYPE?CHAR01?.
*創建基本視圖和EAN數據。
??WA_BAPIMATHEAD-BASIC_VIEW?=?'X'.
*基本視圖。
??WA_BAPIMATHEAD-MATERIAL???=?GS_HEAD-MATNR?.??"物料
*基本EAN數據。
??CLEAR:?LS_UNITSOFMEASURE.
??CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
????EXPORTING
??????INPUT??????????=?GS_HEAD-MEINS
??????LANGUAGE???????=?SY-LANGU
????IMPORTING
??????OUTPUT?????????=?LS_UNITSOFMEASURE-ALT_UNIT
????EXCEPTIONS
??????UNIT_NOT_FOUND?=?1
??????OTHERS?????????=?2.
??IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
??ENDIF.
??LS_UNITSOFMEASURE-GROSS_WT?=?GS_HEAD-BRGEW?.
??CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
????EXPORTING
??????INPUT??????????=?GS_HEAD-GEWEI
??????LANGUAGE???????=?SY-LANGU
????IMPORTING
??????OUTPUT?????????=?LS_UNITSOFMEASURE-UNIT_OF_WT
????EXCEPTIONS
??????UNIT_NOT_FOUND?=?1
??????OTHERS?????????=?2.
??IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
??ENDIF.
??WA_CLIENTDATA-NET_WEIGHT?=?GS_HEAD-NTGEW.
??WA_CLIENTDATA-UNIT_OF_WT?=?LS_UNITSOFMEASURE-UNIT_OF_WT.
??WA_CLIENTDATAX-NET_WEIGHT?=?'X'.
??WA_CLIENTDATAX-UNIT_OF_WT?=?'X'.
??LS_UNITSOFMEASURE-EAN_UPC?=?GS_HEAD-EAN11?.
??LS_UNITSOFMEASURE-EAN_CAT?=?GS_HEAD-NUMTP?.
??LS_UNITSOFMEASURE-LENGTH?=?GS_HEAD-LAENG??.
??LS_UNITSOFMEASURE-WIDTH?=?GS_HEAD-BREIT?.
??LS_UNITSOFMEASURE-HEIGHT?=?GS_HEAD-HOEHE?.
??LS_UNITSOFMEASURE-UNIT_DIM?=?GS_HEAD-MEABM??.
??LS_UNITSOFMEASURE-VOLUME?=?GS_HEAD-VOLUM?.
??CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
????EXPORTING
??????INPUT??????????=?GS_HEAD-VOLEH
??????LANGUAGE???????=?SY-LANGU
????IMPORTING
??????OUTPUT?????????=?LS_UNITSOFMEASURE-VOLUMEUNIT
????EXCEPTIONS
??????UNIT_NOT_FOUND?=?1
??????OTHERS?????????=?2.
??IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
??ENDIF.
??APPEND?LS_UNITSOFMEASURE?TO?LT_UNITSOFMEASURE?.
??CLEAR:?LS_UNITSOFMEASUREX.
??LS_UNITSOFMEASUREX-ALT_UNIT?=???LS_UNITSOFMEASURE-ALT_UNIT?.
??LS_UNITSOFMEASUREX-GROSS_WT?=?'X'?.
??LS_UNITSOFMEASUREX-EAN_UPC?=?'X'?.
??LS_UNITSOFMEASUREX-EAN_CAT?=?'X'?.
??LS_UNITSOFMEASUREX-LENGTH?=??'X'?.
??LS_UNITSOFMEASUREX-WIDTH?=??'X'?.
??LS_UNITSOFMEASUREX-HEIGHT?=?'X'?.
??LS_UNITSOFMEASUREX-UNIT_DIM?=?'X'?.
??LS_UNITSOFMEASUREX-VOLUME?=??'X'?.
??LS_UNITSOFMEASUREX-VOLUMEUNIT?=??'X'?.
??LS_UNITSOFMEASUREX-UNIT_OF_WT?=?'X'?.
??APPEND?LS_UNITSOFMEASUREX?TO?LT_UNITSOFMEASUREX?.
??CLEAR?LS_INTERNATIONALARTNOS?.
??CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
????EXPORTING
??????INPUT??????????=?GS_HEAD-MEINS
??????LANGUAGE???????=?SY-LANGU
????IMPORTING
??????OUTPUT?????????=?LS_INTERNATIONALARTNOS-UNIT
????EXCEPTIONS
??????UNIT_NOT_FOUND?=?1
??????OTHERS?????????=?2.
??IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
??ENDIF.
??LS_INTERNATIONALARTNOS-UNIT_ISO?=?SPACE?.
??LS_INTERNATIONALARTNOS-EAN_UPC??=??GS_HEAD-EAN11?.
??LS_INTERNATIONALARTNOS-EAN_CAT??=?GS_HEAD-NUMTP?.
??LS_INTERNATIONALARTNOS-DEL_FLAG?=?SPACE?.
??APPEND?LS_INTERNATIONALARTNOS?TO?LT_INTERNATIONALARTNOS?.
*附加EAN?.
??LOOP?AT?GT_MARM?INTO?GS_MARM??.
????CLEAR?LS_UNITSOFMEASURE?.
????CLEAR?LS_UNITSOFMEASUREX?.
????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
??????EXPORTING
????????INPUT??????????=?GS_MARM-MEINH
????????LANGUAGE???????=?SY-LANGU
??????IMPORTING
????????OUTPUT?????????=?LS_UNITSOFMEASURE-ALT_UNIT
??????EXCEPTIONS
????????UNIT_NOT_FOUND?=?1
????????OTHERS?????????=?2.
????IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
????ENDIF.
????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
??????EXPORTING
????????INPUT??????????=?GS_MARM-MEINH
????????LANGUAGE???????=?SY-LANGU
??????IMPORTING
????????OUTPUT?????????=?LS_UNITSOFMEASURE-ALT_UNIT_ISO
??????EXCEPTIONS
????????UNIT_NOT_FOUND?=?1
????????OTHERS?????????=?2.
????IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
????ENDIF.
????LS_UNITSOFMEASURE-GROSS_WT?=?GS_MARM-BRGEW?.
????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
??????EXPORTING
????????INPUT??????????=?GS_MARM-GEWEI
????????LANGUAGE???????=?SY-LANGU
??????IMPORTING
????????OUTPUT?????????=?LS_UNITSOFMEASURE-UNIT_OF_WT
??????EXCEPTIONS
????????UNIT_NOT_FOUND?=?1
????????OTHERS?????????=?2.
????IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
????ENDIF.
????LS_UNITSOFMEASURE-EAN_UPC?=?GS_MARM-EAN11.
????LS_UNITSOFMEASURE-EAN_CAT?=?GS_MARM-NUMTP?.
????LS_UNITSOFMEASURE-LENGTH?=?GS_MARM-LAENG??.
????LS_UNITSOFMEASURE-WIDTH?=?GS_MARM-BREIT?.
????LS_UNITSOFMEASURE-HEIGHT?=?GS_MARM-HOEHE?.
????LS_UNITSOFMEASURE-UNIT_DIM?=?GS_MARM-MEABM??.
????LS_UNITSOFMEASURE-VOLUME?=?GS_MARM-VOLUM?.
????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
??????EXPORTING
????????INPUT??????????=?GS_MARM-VOLEH
????????LANGUAGE???????=?SY-LANGU
??????IMPORTING
????????OUTPUT?????????=?LS_UNITSOFMEASURE-VOLUMEUNIT
??????EXCEPTIONS
????????UNIT_NOT_FOUND?=?1
????????OTHERS?????????=?2.
????IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
????ENDIF.
????LS_UNITSOFMEASURE-NUMERATOR???=???GS_MARM-UMREZ?.
????LS_UNITSOFMEASURE-DENOMINATR?=???GS_MARM-UMREN?.
????APPEND?LS_UNITSOFMEASURE?TO?LT_UNITSOFMEASURE?.
????CLEAR:?LS_UNITSOFMEASUREX.
????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
??????EXPORTING
????????INPUT??????????=?GS_MARM-MEINH
????????LANGUAGE???????=?SY-LANGU
??????IMPORTING
????????OUTPUT?????????=?LS_UNITSOFMEASUREX-ALT_UNIT
??????EXCEPTIONS
????????UNIT_NOT_FOUND?=?1
????????OTHERS?????????=?2.
????IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
????ENDIF.
????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
??????EXPORTING
????????INPUT??????????=?GS_MARM-MEINH
????????LANGUAGE???????=?SY-LANGU
??????IMPORTING
????????OUTPUT?????????=?LS_UNITSOFMEASUREX-ALT_UNIT_ISO
??????EXCEPTIONS
????????UNIT_NOT_FOUND?=?1
????????OTHERS?????????=?2.
????IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
????ENDIF.
????LS_UNITSOFMEASUREX-GROSS_WT?=?'X'?.
????LS_UNITSOFMEASUREX-EAN_UPC?=?'X'?.
????LS_UNITSOFMEASUREX-EAN_CAT?=?'X'?.
????LS_UNITSOFMEASUREX-LENGTH?=??'X'?.
????LS_UNITSOFMEASUREX-WIDTH?=??'X'?.
????LS_UNITSOFMEASUREX-HEIGHT?=?'X'?.
????LS_UNITSOFMEASUREX-UNIT_DIM?=?'X'?.
????LS_UNITSOFMEASUREX-VOLUME?=??'X'?.
????LS_UNITSOFMEASUREX-VOLUMEUNIT?=??'X'?.
????LS_UNITSOFMEASUREX-NUMERATOR???=??'X'?.
????LS_UNITSOFMEASUREX-DENOMINATR?=????'X'.
????LS_UNITSOFMEASUREX-UNIT_OF_WT?=?'X'?.
????APPEND?LS_UNITSOFMEASUREX?TO?LT_UNITSOFMEASUREX?.
????CLEAR?LS_INTERNATIONALARTNOS?.
????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'
??????EXPORTING
????????INPUT??????????=?GS_MARM-MEINH
????????LANGUAGE???????=?SY-LANGU
??????IMPORTING
????????OUTPUT?????????=?LS_INTERNATIONALARTNOS-UNIT
??????EXCEPTIONS
????????UNIT_NOT_FOUND?=?1
????????OTHERS?????????=?2.
????IF?SY-SUBRC?<>?0.
*?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO
*?????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.
????ENDIF.
????LS_INTERNATIONALARTNOS-UNIT_ISO?=?LS_INTERNATIONALARTNOS-UNIT?.
????LS_INTERNATIONALARTNOS-EAN_UPC??=?GS_MARM-EAN11?.
????LS_INTERNATIONALARTNOS-EAN_CAT??=?GS_MARM-NUMTP??.
????LS_INTERNATIONALARTNOS-DEL_FLAG?=?SPACE?.
????APPEND?LS_INTERNATIONALARTNOS?TO?LT_INTERNATIONALARTNOS?.
??ENDLOOP.
*默認字段
??CALL?FUNCTION?'BAPI_MATERIAL_SAVEDATA'
????EXPORTING
??????HEADDATA?????????????=?WA_BAPIMATHEAD
??????CLIENTDATA???????????=?WA_CLIENTDATA
??????CLIENTDATAX??????????=?WA_CLIENTDATAX
??????PLANTDATA????????????=?WA_PLANTDATA
??????PLANTDATAX???????????=?WA_PLANTDATAX
??????STORAGELOCATIONDATA??=?WA_BAPI_MARD
??????STORAGELOCATIONDATAX?=?WA_BAPI_MARDX
??????VALUATIONDATA????????=?WA_BAPI_MBEW
??????VALUATIONDATAX???????=?WA_BAPI_MBEWX
??????WAREHOUSENUMBERDATA??=?WA_BAPI_MLGN
??????WAREHOUSENUMBERDATAX?=?WA_BAPI_MLGNX
??????SALESDATA????????????=?WA_BAPI_MVKE
??????SALESDATAX???????????=?WA_BAPI_MVKEX
??????STORAGETYPEDATA??????=?WA_BAPI_MLGT
??????STORAGETYPEDATAX?????=?WA_BAPI_MLGTX
????IMPORTING
??????RETURN???????????????=?WA_BAPIRET2
????TABLES
??????MATERIALDESCRIPTION??=?GT_DESCRIPTION
??????TAXCLASSIFICATIONS???=?I_TAXCLASSIFICATIONS[]
??????UNITSOFMEASURE???????=?LT_UNITSOFMEASURE
??????UNITSOFMEASUREX??????=?LT_UNITSOFMEASUREX
??????INTERNATIONALARTNOS??=?LT_INTERNATIONALARTNOS
??????EXTENSIONIN???????????=???LT_BAPIPAREX
??????EXTENSIONINX?????????=?LT_BAPIPAREXX
??????RETURNMESSAGES???????=?I_BAPI_MATRETURN2[].
??LOOP?AT?I_BAPI_MATRETURN2?WHERE?TYPE?CA?'EAX'.
????CALL?FUNCTION?'MESSAGE_TEXT_BUILD'
??????EXPORTING
????????MSGID???????????????=?I_BAPI_MATRETURN2-ID
????????MSGNR???????????????=?I_BAPI_MATRETURN2-NUMBER
????????MSGV1???????????????=?I_BAPI_MATRETURN2-MESSAGE_V1
????????MSGV2???????????????=?I_BAPI_MATRETURN2-MESSAGE_V2
????????MSGV3???????????????=?I_BAPI_MATRETURN2-MESSAGE_V3
????????MSGV4???????????????=?I_BAPI_MATRETURN2-MESSAGE_V4
??????IMPORTING
????????MESSAGE_TEXT_OUTPUT?=?LV_MESSAGE.
????LV_FLAG?=?'X'.
????CONCATENATE?LV_ALL_MESSAGE?LV_MESSAGE?INTO?LV_ALL_MESSAGE?.
????LV_FLAG?=?'X'.
??ENDLOOP.
??IF?LV_FLAG?IS?INITIAL?.
????CALL?FUNCTION?'BAPI_TRANSACTION_COMMIT'
??????EXPORTING
????????WAIT?=?'X'
*?????IMPORTING
*???????RETURN????????=
??????.
??ELSE.
????CALL?FUNCTION?'BAPI_TRANSACTION_ROLLBACK'
*???IMPORTING
*?????RETURN????????=
??????.
????CONCATENATE??GS_CUST-MSGTX??'EAN'?GS_MARC-WERKS?'操作失敗:'LV_ALL_MESSAGE??INTO?GS_CUST-MSGTX?.
??ENDIF.
總結
以上是生活随笔為你收集整理的SAP ABAP BAPI_MATERIAL_SAVEDATA 物料主数据EAN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: suse linux如何重置密码忘记,S
- 下一篇: 【Qt学习】 碰撞检测 图元绘制