Вы находитесь на странице: 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.

Вам также может понравиться