0% found this document useful (0 votes)
337 views

Bapisourcecode

This document describes the FUNCTION bapi_material_savedata in SAP. It defines the importing and exporting parameters used to save material master data using BAPIs. The function includes logic to validate and convert material numbers using the cl_matnr_chk_mapper class to ensure consistent formatting of material numbers. Any errors encountered during material number conversion are appended to the returnmessages table.

Uploaded by

subbu
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
337 views

Bapisourcecode

This document describes the FUNCTION bapi_material_savedata in SAP. It defines the importing and exporting parameters used to save material master data using BAPIs. The function includes logic to validate and convert material numbers using the cl_matnr_chk_mapper class to ensure consistent formatting of material numbers. Any errors encountered during material number conversion are appended to the returnmessages table.

Uploaded by

subbu
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 14

FUNCTION bapi_material_savedata.

*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(HEADDATA) LIKE BAPIMATHEAD STRUCTURE BAPIMATHEAD
*" VALUE(CLIENTDATA) LIKE BAPI_MARA STRUCTURE BAPI_MARA OPTIONAL
*" VALUE(CLIENTDATAX) LIKE BAPI_MARAX STRUCTURE BAPI_MARAX
*" OPTIONAL
*" VALUE(PLANTDATA) LIKE BAPI_MARC STRUCTURE BAPI_MARC OPTIONAL
*" VALUE(PLANTDATAX) LIKE BAPI_MARCX STRUCTURE BAPI_MARCX
*" OPTIONAL
*" VALUE(FORECASTPARAMETERS) LIKE BAPI_MPOP STRUCTURE BAPI_MPOP
*" OPTIONAL
*" VALUE(FORECASTPARAMETERSX) LIKE BAPI_MPOPX STRUCTURE
*" BAPI_MPOPX OPTIONAL
*" VALUE(PLANNINGDATA) LIKE BAPI_MPGD STRUCTURE BAPI_MPGD
*" OPTIONAL
*" VALUE(PLANNINGDATAX) LIKE BAPI_MPGDX STRUCTURE BAPI_MPGDX
*" OPTIONAL
*" VALUE(STORAGELOCATIONDATA) LIKE BAPI_MARD STRUCTURE BAPI_MARD
*" OPTIONAL
*" VALUE(STORAGELOCATIONDATAX) LIKE BAPI_MARDX STRUCTURE
*" BAPI_MARDX OPTIONAL
*" VALUE(VALUATIONDATA) LIKE BAPI_MBEW STRUCTURE BAPI_MBEW
*" OPTIONAL
*" VALUE(VALUATIONDATAX) LIKE BAPI_MBEWX STRUCTURE BAPI_MBEWX
*" OPTIONAL
*" VALUE(WAREHOUSENUMBERDATA) LIKE BAPI_MLGN STRUCTURE BAPI_MLGN
*" OPTIONAL
*" VALUE(WAREHOUSENUMBERDATAX) LIKE BAPI_MLGNX STRUCTURE
*" BAPI_MLGNX OPTIONAL
*" VALUE(SALESDATA) LIKE BAPI_MVKE STRUCTURE BAPI_MVKE OPTIONAL
*" VALUE(SALESDATAX) LIKE BAPI_MVKEX STRUCTURE BAPI_MVKEX
*" OPTIONAL
*" VALUE(STORAGETYPEDATA) LIKE BAPI_MLGT STRUCTURE BAPI_MLGT
*" OPTIONAL
*" VALUE(STORAGETYPEDATAX) LIKE BAPI_MLGTX STRUCTURE BAPI_MLGTX
*" OPTIONAL
*" VALUE(FLAG_ONLINE) LIKE BAPIE1GLOBAL_DATA-TESTRUN DEFAULT SPACE
*" VALUE(FLAG_CAD_CALL) LIKE BAPIE1GLOBAL_DATA-TESTRUN DEFAULT
*" SPACE
*" VALUE(NO_DEQUEUE) LIKE BAPIE1GLOBAL_DATA-TESTRUN DEFAULT SPACE
*" VALUE(NO_ROLLBACK_WORK) LIKE BAPIE1GLOBAL_DATA-TESTRUN DEFAULT
*" SPACE
*" VALUE(CLIENTDATACWM) TYPE /CWM/BAPI_MARA OPTIONAL
*" VALUE(CLIENTDATACWMX) TYPE /CWM/BAPI_MARAX OPTIONAL
*" VALUE(VALUATIONDATACWM) TYPE /CWM/BAPI_MBEW OPTIONAL
*" VALUE(VALUATIONDATACWMX) TYPE /CWM/BAPI_MBEWX OPTIONAL
*" EXPORTING
*" VALUE(RETURN) LIKE BAPIRET2 STRUCTURE BAPIRET2
*" TABLES
*" MATERIALDESCRIPTION STRUCTURE BAPI_MAKT OPTIONAL
*" UNITSOFMEASURE STRUCTURE BAPI_MARM OPTIONAL
*" UNITSOFMEASUREX STRUCTURE BAPI_MARMX OPTIONAL
*" INTERNATIONALARTNOS STRUCTURE BAPI_MEAN OPTIONAL
*" MATERIALLONGTEXT STRUCTURE BAPI_MLTX OPTIONAL
*" TAXCLASSIFICATIONS STRUCTURE BAPI_MLAN OPTIONAL
*" RETURNMESSAGES STRUCTURE BAPI_MATRETURN2 OPTIONAL
*" PRTDATA STRUCTURE BAPI_MFHM OPTIONAL
*" PRTDATAX STRUCTURE BAPI_MFHMX OPTIONAL
*" EXTENSIONIN STRUCTURE BAPIPAREX OPTIONAL
*" EXTENSIONINX STRUCTURE BAPIPAREXX OPTIONAL
*" UNITSOFMEASURECWM STRUCTURE /CWM/BAPI_MARM OPTIONAL
*" UNITSOFMEASURECWMX STRUCTURE /CWM/BAPI_MARMX OPTIONAL
*" SEGMRPGENERALDATA STRUCTURE BAPI_SGT_MRP_GN OPTIONAL
*" SEGMRPGENERALDATAX STRUCTURE BAPI_SGT_MRP_GNX OPTIONAL
*" SEGMRPQUANTITYDATA STRUCTURE BAPI_SGT_MRP OPTIONAL
*" SEGMRPQUANTITYDATAX STRUCTURE BAPI_SGT_MRPX OPTIONAL
*" SEGVALUATIONTYPE STRUCTURE BAPI_SGT_MADKA OPTIONAL
*" SEGVALUATIONTYPEX STRUCTURE BAPI_SGT_MADKAX OPTIONAL
*" SEGSALESSTATUS STRUCTURE BAPI_SGT_MVKE OPTIONAL
*" SEGSALESSTATUSX STRUCTURE BAPI_SGT_MVKEX OPTIONAL
*" SEGWEIGHTVOLUME STRUCTURE BAPI_SGT_MARM OPTIONAL
*" SEGWEIGHTVOLUMEX STRUCTURE BAPI_SGT_MARMX OPTIONAL
*"----------------------------------------------------------------------

* FLE MATNR BAPI Changes


CALL METHOD cl_matnr_chk_mapper=>convert_on_input
EXPORTING
iv_matnr18 = headdata-material
iv_guid = headdata-material_guid
iv_version = headdata-material_version
iv_matnr40 = headdata-material_long
iv_matnr_ext = headdata-material_external
IMPORTING
ev_matnr40 = headdata-material_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

CALL METHOD cl_matnr_chk_mapper=>convert_on_input


EXPORTING
iv_matnr18 = clientdata-old_mat_no
iv_matnr18_x = clientdatax-old_mat_no
iv_matnr40 = clientdata-old_mat_no_long
iv_matnr40_x = clientdatax-old_mat_no_long
iv_map_as_value_from_partner = 'X'
IMPORTING
ev_matnr40 = clientdata-old_mat_no_long
ev_matnr40_x = clientdatax-old_mat_no_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

CALL METHOD cl_matnr_chk_mapper=>convert_on_input


EXPORTING
iv_matnr18 = clientdata-haz_mat_no
iv_matnr18_x = clientdatax-haz_mat_no
iv_guid = clientdata-haz_mat_no_guid
iv_guid_x = clientdatax-haz_mat_no_guid
iv_version = clientdata-haz_mat_no_version
iv_version_x = clientdatax-haz_mat_no_version
iv_matnr40 = clientdata-haz_mat_no_long
iv_matnr40_x = clientdatax-haz_mat_no_long
iv_matnr_ext = clientdata-haz_mat_no_external
iv_matnr_ext_x = clientdatax-haz_mat_no_external
IMPORTING
ev_matnr40 = clientdata-haz_mat_no_long
ev_matnr40_x = clientdatax-haz_mat_no_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

CALL METHOD cl_matnr_chk_mapper=>convert_on_input


EXPORTING
iv_matnr18 = clientdata-inv_mat_no
iv_matnr18_x = clientdatax-inv_mat_no
iv_guid = clientdata-inv_mat_no_guid
iv_guid_x = clientdatax-inv_mat_no_guid
iv_version = clientdata-inv_mat_no_version
iv_version_x = clientdatax-inv_mat_no_version
iv_matnr40 = clientdata-inv_mat_no_long
iv_matnr40_x = clientdatax-inv_mat_no_long
iv_matnr_ext = clientdata-inv_mat_no_external
iv_matnr_ext_x = clientdatax-inv_mat_no_external
IMPORTING
ev_matnr40 = clientdata-inv_mat_no_long
ev_matnr40_x = clientdatax-inv_mat_no_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.
CALL METHOD cl_matnr_chk_mapper=>convert_on_input
EXPORTING
iv_matnr18 = clientdata-pl_ref_mat
iv_matnr18_x = clientdatax-pl_ref_mat
iv_guid = clientdata-pl_ref_mat_guid
iv_guid_x = clientdatax-pl_ref_mat_guid
iv_version = clientdata-pl_ref_mat_version
iv_version_x = clientdatax-pl_ref_mat_version
iv_matnr40 = clientdata-pl_ref_mat_long
iv_matnr40_x = clientdatax-pl_ref_mat_long
iv_matnr_ext = clientdata-pl_ref_mat_external
iv_matnr_ext_x = clientdatax-pl_ref_mat_external
IMPORTING
ev_matnr40 = clientdata-pl_ref_mat_long
ev_matnr40_x = clientdatax-pl_ref_mat_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

CALL METHOD cl_matnr_chk_mapper=>convert_on_input


EXPORTING
iv_matnr18 = planningdata-plng_matl
iv_matnr18_x = planningdatax-plng_matl
iv_guid = planningdata-plng_matl_guid
iv_guid_x = planningdatax-plng_matl_guid
iv_version = planningdata-plng_matl_version
iv_version_x = planningdatax-plng_matl_version
iv_matnr40 = planningdata-plng_matl_long
iv_matnr40_x = planningdatax-plng_matl_long
iv_matnr_ext = planningdata-plng_matl_external
iv_matnr_ext_x = planningdatax-plng_matl_external
IMPORTING
ev_matnr40 = planningdata-plng_matl_long
ev_matnr40_x = planningdatax-plng_matl_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

CALL METHOD cl_matnr_chk_mapper=>convert_on_input


EXPORTING
iv_matnr18 = plantdata-follow_up
iv_matnr18_x = plantdatax-follow_up
iv_guid = plantdata-follow_up_guid
iv_guid_x = plantdatax-follow_up_guid
iv_version = plantdata-follow_up_version
iv_version_x = plantdatax-follow_up_version
iv_matnr40 = plantdata-follow_up_long
iv_matnr40_x = plantdatax-follow_up_long
iv_matnr_ext = plantdata-follow_up_external
iv_matnr_ext_x = plantdatax-follow_up_external
IMPORTING
ev_matnr40 = plantdata-follow_up_long
ev_matnr40_x = plantdatax-follow_up_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

CALL METHOD cl_matnr_chk_mapper=>convert_on_input


EXPORTING
iv_matnr18 = plantdata-refmatcons
iv_matnr18_x = plantdatax-refmatcons
iv_guid = plantdata-refmatcons_guid
iv_guid_x = plantdatax-refmatcons_guid
iv_version = plantdata-refmatcons_version
iv_version_x = plantdatax-refmatcons_version
iv_matnr40 = plantdata-refmatcons_long
iv_matnr40_x = plantdatax-refmatcons_long
iv_matnr_ext = plantdata-refmatcons_external
iv_matnr_ext_x = plantdatax-refmatcons_external
IMPORTING
ev_matnr40 = plantdata-refmatcons_long
ev_matnr40_x = plantdatax-refmatcons_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

CALL METHOD cl_matnr_chk_mapper=>convert_on_input


EXPORTING
iv_matnr18 = plantdata-original_batch_ref_material
iv_matnr18_x = plantdatax-original_batch_ref_material
iv_guid = plantdata-original_batch_ref_material_g
iv_guid_x = plantdatax-original_batch_ref_material_g
iv_version = plantdata-original_batch_ref_material_v
iv_version_x = plantdatax-original_batch_ref_material_v
iv_matnr40 = plantdata-original_batch_ref_material_l
iv_matnr40_x = plantdatax-original_batch_ref_material_l
iv_matnr_ext = plantdata-original_batch_ref_material_e
iv_matnr_ext_x = plantdatax-original_batch_ref_material_e
IMPORTING
ev_matnr40 = plantdata-original_batch_ref_material_l
ev_matnr40_x = plantdatax-original_batch_ref_material_l
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

CALL METHOD cl_matnr_chk_mapper=>convert_on_input


EXPORTING
iv_matnr18 = salesdata-pr_ref_mat
iv_matnr18_x = salesdatax-pr_ref_mat
iv_guid = salesdata-pr_ref_mat_guid
iv_guid_x = salesdatax-pr_ref_mat_guid
iv_version = salesdata-pr_ref_mat_version
iv_version_x = salesdatax-pr_ref_mat_version
iv_matnr40 = salesdata-pr_ref_mat_long
iv_matnr40_x = salesdatax-pr_ref_mat_long
iv_matnr_ext = salesdata-pr_ref_mat_external
iv_matnr_ext_x = salesdatax-pr_ref_mat_external
IMPORTING
ev_matnr40 = salesdata-pr_ref_mat_long
ev_matnr40_x = salesdatax-pr_ref_mat_long
EXCEPTIONS
excp_matnr_ne = 1
excp_matnr_invalid_input = 2
OTHERS = 3.

IF sy-subrc <> 0.
CALL METHOD cl_matnr_chk_mapper=>bapi_get_last_error
IMPORTING
ev_return = return.
append return to returnmessages. "note 2428432
RETURN.
ENDIF.

** Begin FLE segmentation BAPI Changes


DATA ls_return TYPE bapiret2.
PERFORM sfle_sgt_conversion_input
CHANGING plantdata-default_stock_segment
plantdata-def_seg_long
plantdatax-default_stock_segment
plantdatax-def_seg_long
ls_return.
PERFORM sfle_sgt_conversion_table
TABLES segvaluationtype
segvaluationtypex
segmrpgeneraldata
segmrpgeneraldatax
segmrpquantitydata
segmrpquantitydatax
segsalesstatus
segsalesstatusx
segweightvolume
segweightvolumex
internationalartnos
USING ' '
CHANGING ls_return.
IF ls_return IS NOT INITIAL.
MOVE ls_return to return.
APPEND RETURN TO RETURNMESSAGES.
ENDIF.
** End FLE segmentation BAPI Changes

ENHANCEMENT-POINT bapi_material_savedata_03 SPOTS es_sapl1001ueb STATIC.

ENHANCEMENT-POINT bapi_material_savedata_04 SPOTS es_sapl1001ueb.

ENHANCEMENT-POINT bapi_material_savedata_g6 SPOTS es_sapl1001ueb.


*$*$-Start:
BAPI_MATERIAL_SAVEDATA_G6----------------------------------------------------------
-$*$*
ENHANCEMENT 1 LO_SGT_SFWS_03_SAPL1001UEB. "active version

CALL METHOD cl_sgt_material_savedata=>segmentation_data_mapping


EXPORTING
is_headerdata = headdata
iv_init_tranc = init_tranc
it_unitsofmeasurex = unitsofmeasurex[]
CHANGING
cv_d_ind = d_ind
ct_segvaluationtype = segvaluationtype[]
ct_segvaluationtypex = segvaluationtypex[]
ct_segmrpgeneraldata = segmrpgeneraldata[]
ct_segmrpgeneraldatax = segmrpgeneraldataX[]
ct_segmrpquantitydata = segmrpquantitydata[]
ct_segmrpquantitydatax = segmrpquantitydatax[]
ct_segsalesstatus = segsalesstatus[]
ct_segsalesstatusx = segsalesstatusx[]
ct_segweightvolume = segweightvolume[]
ct_segweightvolumex = segweightvolumex[]
cv_bapi_error = bapi_error.

ENDENHANCEMENT.
*$*$-End:
BAPI_MATERIAL_SAVEDATA_G6----------------------------------------------------------
-$*$*

DATA: ls_isc_mltx_uebergeben TYPE isc_mltx_uebergeben. "IS2ERP


DATA: ls_isc_ext_uebergeben TYPE isc_mltx_uebergeben. "IS2ERP
DATA: h_pstat LIKE mara-pstat.

REFRESH: tmara_ueb, tmakt_ueb, tmarm_ueb, tmean_ueb,


tmarc_ueb, tmard_ueb, tmpop_ueb, tmpgd_ueb,
tsteu_ueb, tstmm_ueb, tmbew_ueb, tmvke_ueb,
tmlgn_ueb, tmlgt_ueb, tmfhm_ueb, tmltx_ueb,
tmfieldres, tmerrdat, h_tmerrdat.
LOG-POINT ID /cwm/enh SUBKEY to_upper( sy-tcode &&
'\/CWM/SAPL1001MASSUEB\BAPI_MATERIAL_SAVEDATA_25\' && sy-cprog ) FIELDS
/cwm/cl_enh_layer=>get_field( ).
ENHANCEMENT-SECTION bapi_material_savedata_25 SPOTS es_sapl1001ueb.
* IS2ERP: Attention: In the following part there are many nested modifications
* belonging to MGV_MATNR_LAMA, /SAPMP/MATMA_DRUM and /NFM/MAIN. Because
there
* is currently no technical solution to handle this, I decided to assign
the whole
* part to switch DIMP_GENERAL. (D022867)
DATA: length_matnr_short TYPE i.

TRANSLATE headdata-material_long TO UPPER CASE. "#EC TRANSLANG


CLEAR bapi_error.

IF headdata-material_long = space.
CLEAR tmerrdat.
sy-msgid = message_id_m3.
sy-msgty = message_error.
sy-msgno = '262'.
bapi_error = 'X'.
ENDIF.

PERFORM pstat_fuellen USING headdata


CHANGING h_pstat.

PERFORM mara_uebergeben USING headdata-material_long


headdata-ind_sector
headdata-matl_type
clientdata
clientdatax
h_pstat.
* set CWM specific MARA data
PERFORM /cwm/mara_uebergeben USING headdata-material_long
headdata-ind_sector
headdata-matl_type
clientdatacwm
clientdatacwmx
h_pstat.

PERFORM makt_uebergeben TABLES materialdescription


USING headdata-material_long.

PERFORM marc_uebergeben USING headdata-material_long


plantdata
plantdatax.

* begin of IS2ERP --- /SAPMP/MATMA_DRUM


* IS-MP - C5007732
* SPAU FOR DIMP: if interface of this function module has changed,
* adapt
* INTERFACE and CODE of function module
* '/SAPMP/BAPI_MATERIAL_SAVEDATA'
* as well as
* PROGRAM and PARAMETERS of method 'SaveData'
* of business objecttype 'IsMpStandardMaterial'
* (/SAPMP/STM) in business object repository
* set IS-MP client data
CALL FUNCTION '/SAPMP/1001UEB_SET_CLD_PLD'
CHANGING
ch_mara_ueb = tmara_ueb
ch_mara_ueb_t = tmara_ueb[]
ch_mfieldres = tmfieldres[]
ch_bapi_error = bapi_error.
* end of IS2ERP --- /SAPMP/MATMA_DRUM
* begin of IS2ERP --- /NFM/MAIN
* /NFM/ processing - C5007732
* transfer structural weights and charge weights on plant level
CALL FUNCTION '/NFM/1001UEB_TRANSFER_PLANT'
EXPORTING
im_material = headdata-material_long
im_transcount = init_tranc
TABLES
t_structuralweights = nfmstructuralweights
t_structuralweightsx = nfmstructuralweightsx
t_chargeweights = nfmchargeweights
t_chargeweightsx = nfmchargeweightsx
t_mfieldres = tmfieldres
CHANGING
ch_delind = d_ind
ch_bapi_error = bapi_error.
* end of IS2ERP --- /NFM/MAIN

PERFORM mpop_uebergeben USING headdata-material_long


forecastparameters
forecastparametersx.

PERFORM mpgd_uebergeben USING headdata-material_long


planningdata
planningdatax.

PERFORM mard_uebergeben USING headdata-material_long


storagelocationdata
storagelocationdatax.

PERFORM marm_uebergeben TABLES unitsofmeasure


unitsofmeasurex
USING headdata-material_long.

PERFORM mean_uebergeben TABLES internationalartnos


USING headdata-material_long.

PERFORM mlan_uebergeben TABLES taxclassifications


USING headdata-material_long
salesdata "note 2240523
salesdatax "note 2240523
plantdata "note 2240523
plantdatax. "note 2240523
PERFORM mbew_uebergeben USING headdata-material_long
valuationdata
valuationdatax.

PERFORM mlgn_uebergeben USING headdata-material_long


warehousenumberdata
warehousenumberdatax.

PERFORM mlgt_uebergeben USING headdata-material_long


storagetypedata
storagetypedatax.

PERFORM mvke_uebergeben USING headdata-material_long


salesdata
salesdatax.

* begin of IS2ERP --- /NFM/MAIN


* /NFM/ processing
* transfer charge weights on sales area level
IF bapi_error IS INITIAL.
CALL FUNCTION '/NFM/1001UEB_TRANSFER_SAREA'
EXPORTING
im_material = headdata-material_long
im_transcount = init_tranc
TABLES
t_chargeweights = nfmchargeweights
t_chargeweightsx = nfmchargeweightsx
t_mfieldres = tmfieldres
CHANGING
ch_delind = d_ind.
ENDIF.
* end of IS2ERP --- /NFM/MAIN

PERFORM mltx_uebergeben TABLES materiallongtext


USING headdata-material_long
ls_isc_mltx_uebergeben. "IS2ERP

PERFORM mfhm_uebergeben TABLES prtdata


prtdatax
USING headdata-material_long.
headdata-material_external = ls_isc_mltx_uebergeben-pi_material_external.

PERFORM extensionin_uebergeben TABLES extensionin


extensioninx
USING headdata-material_long
ls_isc_ext_uebergeben "IS2ERP
headdata-ind_sector
headdata-matl_type
h_pstat.

IF bapi_error IS INITIAL.

* note 602267
IF NOT flag_cad_call IS INITIAL.
call_mode2 = call_mode2_cad.
ELSE.
CLEAR call_mode2.
ENDIF.
CALL FUNCTION 'MATERIAL_MAINTAIN_DARK'
EXPORTING
flag_muss_pruefen = 'X'
sperrmodus = 'E'
max_errors = 0
p_kz_no_warn = 'N'
kz_prf = headdata-inp_fld_check
kz_verw = 'X'
kz_aend = 'X'
kz_dispo = 'X'
* KZ_TEST = ' '
* NO_DATABASE_UPDATE = ' '
call_mode = call_mode_bapi
call_mode2 = call_mode2
* USER = SY-UNAME
* SUPPRESS_ARRAY_READ = ' '
flg_mass = flag_online
iv_change_doc_tcode = '(BAPI)' "note 1050255&1682898
* IMPORTING
* MATNR_LAST =
* NUMBER_ERRORS_TRANSACTION =
TABLES
amara_ueb = tmara_ueb
amakt_ueb = tmakt_ueb
amarc_ueb = tmarc_ueb
amard_ueb = tmard_ueb
amfhm_ueb = tmfhm_ueb
amarm_ueb = tmarm_ueb
amea1_ueb = tmean_ueb
ambew_ueb = tmbew_ueb
asteu_ueb = tsteu_ueb
astmm_ueb = tstmm_ueb
amlgn_ueb = tmlgn_ueb
amlgt_ueb = tmlgt_ueb
ampgd_ueb = tmpgd_ueb
ampop_ueb = tmpop_ueb
* AMVEG_UEB =
* AMVEU_UEB =
amvke_ueb = tmvke_ueb
altx1_ueb = tmltx_ueb
* AMPRW_UEB =
amfieldres = tmfieldres
amerrdat = tmerrdat
EXCEPTIONS
kstatus_empty = 1
tkstatus_empty = 2
t130m_error = 3
internal_error = 4
too_many_errors = 5
update_error = 6
error_message = 8
OTHERS = 7.
ELSE.
CLEAR sy-subrc.
ENDIF.
END-ENHANCEMENT-SECTION.

ENHANCEMENT-POINT bapi_material_savedata_07 SPOTS es_sapl1001ueb.


IF sy-subrc NE 0 OR ( NOT bapi_error IS INITIAL ).
* Schwerwiegender DB-Fehler aufgetreten -> alle DB-�nderungen
* zur�ckrollen, damit kein inkonsistenter DB-Zustand zur�ckbleibt
IF sy-subrc NE 0.
* Rollback Work can be controlled by caller (never set to avoid data
* inconsistencies if caller forgetr to rollback themself)
IF no_rollback_work IS INITIAL.
ROLLBACK WORK.
ENDIF.
ENHANCEMENT-POINT bapi_material_savedata_08 SPOTS es_sapl1001ueb.
ENDIF.

tmerrdat-tranc = init_tranc.
tmerrdat-matnr = headdata-material_long.
tmerrdat-msgty = message_error.
tmerrdat-msgid = sy-msgid.
tmerrdat-msgno = sy-msgno.
tmerrdat-msgv1 = sy-msgv1.
tmerrdat-msgv2 = sy-msgv2.
tmerrdat-msgv3 = sy-msgv3.
tmerrdat-msgv4 = sy-msgv4.
APPEND tmerrdat.

ENHANCEMENT-POINT bapi_material_savedata_09 SPOTS es_sapl1001ueb.

ENDIF.

* note 756137: release all locks of _SCOPE 2 (instead of DEQUEUE_ALL)


ENHANCEMENT-SECTION bapi_material_savedata_10 SPOTS es_sapl1001ueb.
IF no_dequeue IS INITIAL.
CALL FUNCTION 'MATERIAL_UPDATE_DUMMY' IN UPDATE TASK.
ENDIF.
END-ENHANCEMENT-SECTION.

*Meldungen �bergeben, die nicht im MATERIAL_MAINTAIN_DARK auftreten


*und nicht zu einem Verbuchungsabbruch f�hren (z.B. MLTX).
APPEND LINES OF h_tmerrdat TO tmerrdat.

* alle Meldungen aus der tmerrdat an den Aufrufer zur�ckgeben


LOOP AT tmerrdat.
* Kein schwerwiegender Fehler aufgetreten -> messages f�llen
PERFORM messages_fuellen TABLES tmerrdat
CHANGING returnmessages.

APPEND returnmessages.

CHECK return IS INITIAL.

IF tmerrdat-msgty CA 'EA'.
MOVE returnmessages TO return.
ENDIF.

ENDLOOP.

IF sy-subrc = 0.
IF tmerrdat-msgty CA 'EA'.
tmerrdat-msgty = message_error.
ELSE.
CLEAR tmerrdat.
tmerrdat-msgty = message_succ.
tmerrdat-msgid = message_id_mm.
tmerrdat-msgno = '356'.
WRITE headdata-material_long TO tmerrdat-msgv1.
IF 1 = 2. "wegen Verwendungsnachweis
MESSAGE e356(mm) WITH headdata-material.
ENDIF.
ENDIF.

ELSE.
CLEAR tmerrdat.
tmerrdat-msgty = message_succ.
tmerrdat-msgid = message_id_mm.
tmerrdat-msgno = '356'.
WRITE headdata-material_long TO tmerrdat-msgv1.
ENDIF.

IF return IS INITIAL.
CALL FUNCTION 'BALW_BAPIRETURN_GET2'
EXPORTING
type = tmerrdat-msgty
cl = tmerrdat-msgid
number = tmerrdat-msgno
par1 = tmerrdat-msgv1
par2 = tmerrdat-msgv2
par3 = tmerrdat-msgv3
par4 = tmerrdat-msgv4
* LOG_NO = ' '
* LOG_MSG_NO = ' '
* PARAMETER = ' '
* ROW = 0
* FIELD = ' '
IMPORTING
return = return
EXCEPTIONS
OTHERS = 1.
ENDIF.

** Begin FLE segmentation BAPI Changes


PERFORM sfle_sgt_conversion_table
TABLES segvaluationtype
segvaluationtypex
segmrpgeneraldata
segmrpgeneraldatax
segmrpquantitydata
segmrpquantitydatax
segsalesstatus
segsalesstatusx
segweightvolume
segweightvolumex
internationalartnos
USING 'X'
CHANGING ls_return.
IF ls_return IS NOT INITIAL.
MOVE ls_return to return.
ENDIF.
** End FLE segmentation BAPI Changes
ENDFUNCTION.

You might also like