FV50XF0B_BELEG_SICHERN:
ENHANCEMENT 1 ZPOSTGOODS. "active version
*
DATA: wa_lips LIKE LINE OF xlips.
DATA: wa_mkpf TYPE bapi2017_gm_head_01,
gt_fg TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
gt_sp TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
wa_mseg LIKE LINE OF gt_fg,
l_vendor LIKE gt_sp-vendor,
l_plant LIKE lips-werks,
l_mblnr TYPE BAPI2017_GM_HEAD_RET-MAT_DOC.
DATA: goodsmvt_code TYPE bapi2017_gm_code.
DATA: gt_msg TYPE TABLE OF bapiret2,
wa_msg LIKE LINE OF gt_msg,
gs_zsd003 TYPE zsd003.
DATA: wbs TYPE c LENGTH 24,
l_kunno LIKE likp-kunnr, "sold-to party
l_kunni LIKE likp-kunnr, "ship-to party.
l_lifnr LIKE zsd002-lifnr,
l_tabix LIKE sy-tabix,
regiogroup LIKE adrc-regiogroup,
l_flag,
l_skip.
DATA: BEGIN OF gt_serial OCCURS 0,
vbeln LIKE lips-vbeln,
posnr LIKE lips-posnr,
SERNR LIKE objk-SERNR,
END OF gt_serial.
DATA: gt_material TYPE ZMATERIAL WITH HEADER LINE.
DATA: gt_serno TYPE TABLE OF BAPI2017_GM_SERIALNUMBER WITH HEADER LINE.
DATA: BEGIN OF it_kunnr OCCURS 0,
kunnr LIKE vbpa-kunnr,
parvw LIKE vbpa-kunnr,
END OF it_kunnr.
CLEAR l_skip.
IF gs_vbak-auart eq 'TA'.
READ TABLE xvbpa WITH KEY parvw = 'WE'.
IF sy-subrc EQ 0.
SELECT SINGLE regiogroup INTO regiogroup
FROM kna1 AS a JOIN adrc AS b
ON a~adrnr = b~addrnumber
WHERE a~kunnr = xvbpa-kunnr.
ELSE.
l_skip = 'X'.
ENDIF.
IF regiogroup eq 'VTECH'.
ELSE.
l_skip = 'X'.
ENDIF.
IF l_skip IS INITIAL.
wa_mkpf-pstng_date = xlikp-WADAT_IST.
wa_mkpf-doc_date = xlikp-WADAT_IST.
wa_mkpf-PR_UNAME = sy-uname.
wa_mkpf-HEADER_TXT = xlikp-vbeln.
goodsmvt_code-gm_code = '05'.
IF gs_vbak-auart eq 'ZSP'.
READ TABLE xvbpa WITH KEY parvw = 'WE'.
IF sy-subrc eq 0.
l_kunni = xvbpa-kunnr.
ENDIF.
READ TABLE xvbpa WITH KEY parvw = 'AG'.
IF sy-subrc eq 0.
l_kunno = xvbpa-kunnr.
ENDIF.
SELECT SINGLE lifnr flag FROM zsd002
INTO (l_vendor,l_flag)
WHERE kunno = l_kunno
AND kunni = l_kunni
AND VKORG = gs_vbak-vkorg.
ELSEIF gs_vbak-auart eq 'TA'.
* SELECT SINGLE * FROM vbpa
* WHERE vbeln = gs_lips-VGBEL
* AND PARVW = 'WE'.
READ TABLE xvbpa WITH KEY parvw = 'WE'.
SELECT SINGLE werks FROM zsd001
INTO l_plant
WHERE KUNNR = xvbpa-kunnr
AND VKORG = gs_vbak-vkorg.
ENDIF.
SELECT SERNR LIEF_NR AS vbeln posnr
INTO CORRESPONDING FIELDS OF TABLE gt_serial
FROM ser01 AS a JOIN objk AS b
ON a~obknr = b~obknr
WHERE b~TASER = 'SER01'
AND a~LIEF_NR = xlikp-vbeln.
CLEAR l_tabix.
LOOP AT xlips INTO wa_lips.
IF wa_lips-lfimg eq 0.
CONTINUE.
ENDIF.
l_tabix = l_tabix + 1.
gt_material-vbeln = wa_lips-vgbel.
gt_material-posnr = wa_lips-vgpos.
gt_material-matnr = wa_lips-matnr.
APPEND gt_material.
wa_mseg-material = wa_lips-matnr.
wa_mseg-stge_loc = wa_lips-lgort.
wa_mseg-batch = wa_lips-charg.
wa_mseg-entry_qnt = wa_lips-lfimg.
wa_mseg-entry_uom = wa_lips-meins.
LOOP AT gt_serial WHERE posnr = wa_lips-posnr.
gt_serno-MATDOC_ITM = l_tabix.
gt_serno-SERIALNO = gt_serial-SERNR.
APPEND gt_serno.
CLEAR gt_serno.
ENDLOOP.
CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT'
EXPORTING
input = wa_lips-PS_PSP_PNR
IMPORTING
OUTPUT = wbs.
wa_mseg-val_wbs_elem = wbs.
wa_mseg-wbs_elem = wbs.
IF gs_vbak-AUART eq 'TA'.
MOVE-CORRESPONDING wa_mseg to gt_fg.
gt_fg-spec_stock = 'Q'.
gt_fg-plant = l_plant.
gt_fg-move_type = '901'.
APPEND gt_fg.
ELSEIF gs_vbak-AUART eq 'ZSP'.
MOVE-CORRESPONDING wa_mseg to gt_sp.
gt_sp-vendor = l_vendor.
gt_sp-move_type = '901'.
gt_sp-spec_stock = 'K'.
gt_sp-plant = wa_lips-werks.
APPEND gt_sp.
ENDIF.
CLEAR wa_mseg.
ENDLOOP.
IF gs_vbak-auart eq 'ZSP'.
CALL FUNCTION 'ZSD_PIR'
EXPORTING
l_vendor = l_vendor
flag = l_flag
tables
it_material = gt_material
.
ENDIF.
IF gt_fg[] IS NOT INITIAL.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = wa_mkpf
goodsmvt_code = goodsmvt_code
IMPORTING
MATERIALDOCUMENT = l_mblnr
TABLES
goodsmvt_item = gt_fg
GOODSMVT_SERIALNUMBER = gt_serno
return = gt_msg.
REFRESH: gt_fg,gt_serno.
READ TABLE gt_msg INTO wa_msg WITH KEY type = 'E' .
IF sy-subrc = 0.
* - call back
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
gs_zsd003-datum = sy-datum.
gs_zsd003-UZEIT = sy-uzeit.
gs_zsd003-vbeln = xlikp-vbeln.
gs_zsd003-mark = 'Failure'.
LOOP AT gt_msg INTO wa_msg.
CONCATENATE gs_zsd003-message wa_msg-message
INTO gs_zsd003-message SEPARATED BY space.
ENDLOOP.
INSERT zsd003 FROM gs_zsd003.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
gs_zsd003-datum = sy-datum.
gs_zsd003-UZEIT = sy-uzeit.
gs_zsd003-vbeln = xlikp-vbeln.
gs_zsd003-mblnr = l_mblnr.
gs_zsd003-mark = 'Success'.
LOOP AT gt_msg INTO wa_msg.
CONCATENATE gs_zsd003-message wa_msg-message
INTO gs_zsd003-message SEPARATED BY space.
ENDLOOP.
INSERT zsd003 FROM gs_zsd003.
ENDIF.
REFRESH gt_msg.
ENDIF.
IF gt_sp[] IS NOT INITIAL.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = wa_mkpf
goodsmvt_code = goodsmvt_code
IMPORTING
MATERIALDOCUMENT = l_mblnr
TABLES
goodsmvt_item = gt_sp
GOODSMVT_SERIALNUMBER = gt_serno
return = gt_msg.
REFRESH: gt_sp,gt_serno.
READ TABLE gt_msg INTO wa_msg WITH KEY type = 'E' .
IF sy-subrc = 0.
* - call back
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
gs_zsd003-datum = sy-datum.
gs_zsd003-UZEIT = sy-uzeit.
gs_zsd003-vbeln = xlikp-vbeln.
gs_zsd003-mark = 'Failure'.
LOOP AT gt_msg INTO wa_msg.
CONCATENATE gs_zsd003-message wa_msg-message
INTO gs_zsd003-message SEPARATED BY space.
ENDLOOP.
INSERT zsd003 FROM gs_zsd003.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
gs_zsd003-datum = sy-datum.
gs_zsd003-UZEIT = sy-uzeit.
gs_zsd003-vbeln = xlikp-vbeln.
gs_zsd003-mblnr = l_mblnr.
gs_zsd003-mark = 'Success'.
LOOP AT gt_msg INTO wa_msg.
CONCATENATE gs_zsd003-message wa_msg-message
INTO gs_zsd003-message SEPARATED BY space.
ENDLOOP.
INSERT zsd003 FROM gs_zsd003.
ENDIF.
REFRESH gt_msg.
ENDIF.
ENDIF.
ENDIF.
ENDENHANCEMENT.
FUNCTION zsd_pir.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(L_VENDOR) LIKE EINA-LIFNR
*" REFERENCE(FLAG) LIKE ZSD002-FLAG OPTIONAL
*" TABLES
*" IT_MATERIAL TYPE ZMATERIAL
*"----------------------------------------------------------------------
flag_free = flag.
l_lifnr = l_vendor.
APPEND LINES OF it_material TO it_matnr.
SELECT * FROM vbap
INTO CORRESPONDING FIELDS OF TABLE gt_vbap
FOR ALL ENTRIES IN it_matnr
WHERE vbeln = it_matnr-vbeln
AND posnr = it_matnr-posnr.
LOOP AT it_matnr.
READ TABLE gt_vbap WITH KEY vbeln = it_matnr-vbeln
posnr = it_matnr-posnr.
l_netpr = gt_vbap-netpr.
l_vpein = gt_vbap-kpein.
l_vonwa = gt_vbap-waerk.
l_vkmein = gt_vbap-kmein.
SELECT SINGLE * FROM eina
WHERE matnr = it_matnr-matnr
AND lifnr = l_lifnr.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM eine
WHERE infnr = eina-infnr
AND esokz EQ '2'
AND werks NE ''.
IF sy-subrc EQ 0.
IF flag_free EQ 'X'.
ELSE.
PERFORM change_consignment.
ENDIF.
ELSE.
PERFORM create_pir.
ENDIF.
ELSE.
PERFORM create_pir.
ENDIF.
ENDLOOP.
ENDFUNCTION.
FORM change_consignment .
PERFORM get_conditions.
PERFORM bdc_dynpro USING 'SAPMM06I' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINA-LIFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EINA-LIFNR'
l_lifnr.
PERFORM bdc_field USING 'EINA-MATNR'
it_matnr-matnr.
PERFORM bdc_field USING 'EINE-EKORG'
eine-ekorg.
PERFORM bdc_field USING 'EINE-WERKS'
eine-werks.
PERFORM bdc_field USING 'RM06I-KONSI'
'X'.
PERFORM bdc_dynpro USING 'SAPMM06I' '0101'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINA-MAHN1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=EINE'.
* PERFORM bdc_field USING 'EINA-URZLA'
* record-urzla_005.
* PERFORM bdc_field USING 'EINA-MEINS'
* record-meins_006.
* PERFORM bdc_field USING 'EINA-UMREZ'
* record-umrez_007.
* PERFORM bdc_field USING 'EINA-UMREN'
* record-umren_008.
PERFORM bdc_dynpro USING 'SAPMM06I' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINE-APLFZ'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=KO'.
* PERFORM bdc_field USING 'EINE-APLFZ'
* record-aplfz_009.
* PERFORM bdc_field USING 'EINE-EKGRP'
* record-ekgrp_010.
* PERFORM bdc_field USING 'EINE-NORBM'
* record-norbm_011.
* PERFORM bdc_field USING 'EINE-WEBRE'
* record-webre_012.
* PERFORM bdc_field USING 'EINE-MHDRZ'
* record-mhdrz_013.
* PERFORM bdc_field USING 'EINE-IPRKZ'
* record-iprkz_014.
PERFORM bdc_dynpro USING 'SAPLV14A' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
l_datab.
* 'VAKE-DATAB(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=NEWR'.
PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.
PERFORM bdc_field USING 'BDC_CURSOR'
l_kbetr.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SICH'.
* PERFORM bdc_field USING 'RV13A-DATAB'
* record-datab_015.
* PERFORM bdc_field USING 'RV13A-DATBI'
* record-datbi_016.
PERFORM bdc_field USING l_kbetr
l_netpr.
PERFORM bdc_field USING l_kpein
l_vpein.
PERFORM bdc_field USING l_konwa
l_vonwa.
PERFORM bdc_field USING l_kmein
l_vkmein.
PERFORM bdc_transaction USING 'ME12'.
CALL TRANSACTION 'ME12'
USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO messtab.
ENDFORM. " CHANGE_CONSIGNMENT
*&---------------------------------------------------------------------*
*& Form CREATE_PIR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_pir .
SELECT SINGLE * FROM lfm1 WHERE lifnr = l_lifnr.
SELECT SINGLE * FROM marc WHERE matnr = it_matnr-matnr
AND werks = gt_vbap-werks.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
input = mara-meins
language = sy-langu
IMPORTING
* LONG_TEXT =
output = mara-meins
* SHORT_TEXT =
EXCEPTIONS
unit_not_found = 1
OTHERS = 2.
IF marc-ekgrp is INITIAL.
marc-ekgrp = '101'.
ENDIF.
PERFORM bdc_dynpro USING 'SAPMM06I' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINA-LIFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EINA-LIFNR'
l_lifnr.
PERFORM bdc_field USING 'EINA-MATNR'
it_matnr-matnr.
PERFORM bdc_field USING 'EINE-EKORG'
lfm1-ekorg.
PERFORM bdc_field USING 'EINE-WERKS'
marc-werks.
PERFORM bdc_field USING 'RM06I-KONSI'
'X'.
PERFORM bdc_dynpro USING 'SAPMM06I' '0101'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINA-MAHN1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=EINE'.
*perform bdc_field using 'EINA-URZLA'
* record-URZLA_006.
*perform bdc_field using 'EINA-REGIO'
* record-REGIO_007.
*perform bdc_field using 'EINA-TELF1'
* record-TELF1_008.
PERFORM bdc_field USING 'EINA-MEINS'
gt_vbap-kmein.
*perform bdc_field using 'EINA-UMREZ'
* record-UMREZ_010.
*perform bdc_field using 'EINA-UMREN'
* record-UMREN_011.
PERFORM bdc_dynpro USING 'SAPMM06I' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINE-APLFZ'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=KO'.
PERFORM bdc_field USING 'EINE-APLFZ'
'1'.
PERFORM bdc_field USING 'EINE-EKGRP'
marc-ekgrp.
PERFORM bdc_field USING 'EINE-NORBM'
'1'.
*perform bdc_field using 'EINE-WEBRE'
* record-WEBRE_014.
*perform bdc_field using 'EINE-IPRKZ'
* record-IPRKZ_015.
*perform bdc_field using 'EINE-WAERS'
* l_vonwa.
*perform bdc_field using 'EINE-PEINH'
* record-PEINH_017.
*perform bdc_field using 'EINE-BPRME'
* record-BPRME_018.
*perform bdc_field using 'EINE-BPUMZ'
* record-BPUMZ_019.
*perform bdc_field using 'EINE-BPUMN'
* record-BPUMN_020.
PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KONP-KBETR(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SICH'.
*perform bdc_field using 'RV13A-DATAB'
* record-DATAB_021.
*perform bdc_field using 'RV13A-DATBI'
* record-DATBI_022.
IF flag_free NE 'X'.
PERFORM bdc_field USING 'KONP-KBETR(01)'
l_netpr.
PERFORM bdc_field USING 'KONP-KPEIN(01)'
l_vpein.
PERFORM bdc_field USING 'KONP-KONWA(01)'
l_vonwa.
endif.
PERFORM bdc_transaction USING 'ME11'.
CALL TRANSACTION 'ME11'
USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO messtab.
ENDFORM. " CREATE_PIR
*&---------------------------------------------------------------------*
*& Form GET_CONDITIONS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_conditions .
DATA: pos1(2),
pos2(2),
l_tabix LIKE sy-tabix.
CLEAR gt_mir_1.
REFRESH gt_mir_1.
SELECT * FROM a017
INTO CORRESPONDING FIELDS OF TABLE gt_mir
WHERE kappl = 'M'
AND kschl = 'PB00'
AND lifnr = l_lifnr
AND matnr = it_matnr-matnr
AND ekorg = eine-ekorg
AND werks = eine-werks
AND esokz = '2'.
APPEND LINES OF gt_mir TO gt_mir_1.
SORT gt_mir_1 BY datbi DESCENDING.
READ TABLE gt_mir_1 INDEX 1.
READ TABLE gt_mir WITH KEY datbi = gt_mir_1-datbi.
IF sy-subrc EQ 0.
pos1 = sy-tabix.
ELSE.
pos1 = '01'.
ENDIF.
CONCATENATE 'VAKE-DATAB(' pos1 ')' INTO l_datab.
SELECT * FROM konp
INTO CORRESPONDING FIELDS OF TABLE gt_con
WHERE knumh = gt_mir_1-knumh.
* READ TABLE gt_con WITH KEY kschl = 'PB00'
* loevm_ko = ''.
LOOP AT gt_con.
IF gt_con-kschl = 'PB00' AND gt_con-loevm_ko = ''.
l_tabix = sy-tabix.
ENDIF.
ENDLOOP.
IF l_tabix NE 0.
pos2 = l_tabix.
ELSE.
pos2 = '01'.
ENDIF.
CONCATENATE 'KONP-KBETR(' pos2 ')' INTO l_kbetr.
CONCATENATE 'KONP-KPEIN(' pos2 ')' INTO l_kpein.
CONCATENATE 'KONP-KONWA(' pos2 ')' INTO l_konwa.
CONCATENATE 'KONP-KMEIN(' pos2 ')' INTO l_KMEIN.
ENDFORM. " GET_CONDITIONS
ENHANCEMENT 2 OI0_FV50XF0B_BELEG_SICHERN. "active version
IF v50agl-no_commit = ' ' AND
v50agl-sofauftrag NE charx.
* Bei Aufruf aus Verpacken wird der Commit extern gesetzt
PERFORM sd_monitor_protocol_save.
IF G_OIKIMPORT-APPLIC = C_APPLIC_TAS OR "SOTK000026 DN
G_OIKIMPORT-APPLIC = C_APPLIC_TPI OR "SOTK000026 DN
G_OIKIMPORT-APPLIC = C_APPLIC_TSW_TIC OR "SOGK004056 DN
G_OIKIMPORT-APPLIC = C_APPLIC_TSW_REV. "SOGK004056 DN
ELSE. "SOTK000026 DN
IF v50agl-synchron NE charx.
import ROIO_SP_PARAM "RLM-Packing
to ls_oio_sp_param "RLM-Packing
from memory id 'ROIO_SP_PARAM'. "RLM-Packing
IF G_OIK_TAS_GISSUE = C_CHARX. "SOTK000026 DN
COMMIT WORK AND WAIT. "SOTK000026 DN
elseif not ls_oio_sp_param-calld is initial. "RLM-Packing
commit work and wait. "RLM-Packing
ELSE. "SOTK000026 DN
if TVLK-OIDELDCM EQ CHARX. "SDP-Billing.
COMMIT WORK AND WAIT. "SDP-Billing.
ELSE. "SDP-Billing.
COMMIT WORK.
endif. "SDP-Billing.
ENDIF.
ELSE.
COMMIT WORK AND WAIT.
ENDIF.
endif.
*Updating version number for DCM.
IF T180-TRTYP EQ CHARV AND TVLK-OIDELDCM EQ CHARX. "SDP-Billing.
PERFORM DOCUMENT_VERSION_UPDATE(SAPMV50A) USING JOB_DATE."SDP-Billing.
ENDIF. "SDP-Billing.
ENDIF.
ENDENHANCEMENT.
ENHANCEMENT 1 ZCOMMIT. "active version
DATA: gs_lips LIKE LINE OF xlips,
gs_vbak TYPE vbak.
IF v50agl-no_commit = ' ' AND
v50agl-sofauftrag NE charx.
* Bei Aufruf aus Verpacken wird der Commit extern gesetzt
PERFORM sd_monitor_protocol_save.
IF v50agl-synchron NE charx.
READ TABLE xlips INTO gs_lips INDEX 1.
SELECT SINGLE * INTO CORRESPONDING FIELDS OF gs_vbak
FROM vbak
WHERE vbeln = gs_lips-VGBEL.
IF gs_vbak-auart eq 'TA'.
COMMIT WORK AND WAIT.
ELSE.
COMMIT WORK.
ENDIF.
ELSE.
COMMIT WORK AND WAIT.
ENDIF.
ENDIF.
ENDENHANCEMENT.
LIPW1F59:
ENHANCEMENT 1 IUID_APPL_01_LIPW1F59. "active version
* Ermitteln des IUID-Typs des gegebenen Materials
try.
call method cl_uid_iuid=>get_iuid_type
exporting
iv_matnr = p-material
iv_uii_plant = p-m_werk
receiving
rv_iuid_type = da_iuid_type.
catch cx_uii_not_existing.
catch cx_iuid_mat_data_not_found.
catch cx_iuid_import_param_missing.
endtry.
ENDENHANCEMENT.
ENHANCEMENT 1 ZCHANGE_SERIAL. "active version
*
IF sy-tcode = 'VL02N'.
DATA: gt_serial TYPE TABLE OF zserial WITH HEADER LINE,
l_ZSNDOC LIKE zserial-ZSNDOC,
l_snno LIKE zserial-zsnno,
l_sernr LIKE equi-sernr,
l_index TYPE sy-tabix,
l_matnr LIKE zserial-zmodel.
CLEAR: da_tab_sernr,l_index.
REFRESH da_tab_sernr.
l_zsndoc = p-document.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
input = p-material
IMPORTING
OUTPUT = l_matnr
.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = p-document
IMPORTING
OUTPUT = l_zsndoc
.
SELECT * FROM zserial
INTO CORRESPONDING FIELDS OF TABLE gt_serial
WHERE zsndoc = l_zsndoc
AND zmodel = l_matnr.
LOOP AT gt_serial.
CALL FUNCTION 'CONVERSION_EXIT_GERNR_INPUT'
EXPORTING
input = gt_serial-zsnno
IMPORTING
OUTPUT = l_snno
.
SELECT SINGLE sernr FROM V_EQUI_EQBS_SML
INTO l_sernr
WHERE matnr = p-material
AND sernr = l_snno
AND b_werk = p-m_werk
AND b_lager = p-m_lager
AND b_charge = p-m_charge.
IF sy-subrc eq 0.
da_tab_sernr-sernr = gt_serial-ZSNNO.
APPEND da_tab_sernr.
add 1 to l_index.
IF l_index ge p-quantity.
EXIT.
ENDIF.
ENDIF.
ENDLOOP.
* SELECT * FROM ZSERIAL AS a
* JOIN V_EQUI_EQBS_SML as b
* on a~zmodel = b~matnr AND a~zsnno = b~SERNR
* INTO CORRESPONDING FIELDS OF gt_serial
* WHERE ZSNDOC = l_zsndoc
* AND zmodel = l_matnr
* AND B_WERK = p-m_werk
* AND b_LAGER = p-m_lager
* and b_CHARGE = p-m_charge.
*
* da_tab_sernr-sernr = gt_serial-ZSNNO.
* APPEND da_tab_sernr.
* ENDSELECT.
ENDIF.
ENDENHANCEMENT.
*$*$-End: EHP603_LIPW1F59_01------------------------------------------------------------------$*$*
MV50AF0S:
ENHANCEMENT 1 ZGET_LOCATION_TO_SERIAL. "active version
* take over valuation type into batch "v_n_1059918
lf_charg = is_lips-charg.
IF NOT is_lips-bwtex IS INITIAL AND NOT is_lips-xchar IS INITIAL AND
is_lips-xchpf IS INITIAL AND is_lips-charg IS INITIAL AND
NOT is_lips-bwtar IS INITIAL.
lf_charg = is_lips-bwtar.
ENDIF. "^_n_1059918
* Get plant and location from LIPS
lf_werks = is_lips-werks.
lf_lgort = is_lips-lgort.
CALL FUNCTION 'SERIALPROFILE_CHECK'
EXPORTING
operation = lf_xopera
j_vorgang = if_status
activity = if_trtyp
document = is_likp-vbeln
item = is_lips-posnr
material = is_lips-matnr
* m_charge = is_lips-charg
m_charge = lf_charg "n_1059918
profile = is_lips-serail
quantity = lf_xanzsn
debitor = is_likp-kunnr
cuobj = lf_cuobj "n_930204
vbtyp = is_likp-vbtyp
bwart = is_lips-bwart
m_werk = lf_werks
m_lager = lf_lgort
iuid_relevant = lf_iuid_relevant "EHP603 IUID
IMPORTING
anzsn = cf_anzsn
serial_commit = cf_dataloss.
ENDENHANCEMENT.
*$*$-End: MV50AF0S_04-------------------------------------------------------------------------$*$*
ENDFORM.
*&---------------------------------------------------------------------*
*& Form serialnumber_checks n_598948
*&---------------------------------------------------------------------*
FORM serialnumber_checks