Примеры добавления (ФМ SERNR_ADD_TO_PP) и удаления (ФМ SERNR_DEL_FROM_PP) серийных номеров из заказа.
" Поиск уже присвоенных серийных номеров заказу
SELECT SINGLE obknr
FROM ser05
INTO lv_obknr
WHERE ppaufnr EQ lv_aufnr
AND ppposnr EQ lv_posnr.
IF lv_obknr IS NOT INITIAL.
CALL FUNCTION 'PM_PRE_OBJECT_LIST_N'
EXPORTING
obknr = lv_obknr
* status_pre_read = ' '
enqueue = ''
* equnr_corr = 'X'
TABLES
s_xobjk = lt_xobjk
* s_xser00 =
* s_xobjnr =
EXCEPTIONS
no_objektlistmember = 1
OTHERS = 2.
ENDIF.
" Удаление серийного номера из заказа
INSERT INITIAL LINE INTO TABLE lt_sernos_d ASSIGNING <lfs_sernos_d>.
<lfs_sernos_d>-sernr = <lfs_xobjk>-sernr.
CALL FUNCTION 'SERNR_DEL_FROM_PP'
EXPORTING
material = lv_matnr
* j_vorgang = 'PMP2'
ppaufnr = lv_aufnr
ppposnr = lv_posnr
bapi = 'X'
* IMPORTING
* anzsn =
* zeilen_id =
* serial_commit =
TABLES
sernos = lt_sernos_d
* r_sernr =
EXCEPTIONS
serialnumber_errors = 1
serialnumber_warnings = 2
OTHERS = 3.
IF sy-subrc EQ 0.
CALL FUNCTION 'SERIAL_LISTE_POST_PP'
* EXPORTING
* memory_id_status = ' '
* TABLES
* tab_cuobj =
.
COMMIT WORK.
ENDIF.
" Добавление серийного номера в заказ
INSERT INITIAL LINE INTO TABLE lt_sernos ASSIGNING <lfs_sernos>.
<lfs_sernos>-sernr = 'AABBCC001122'.
CALL FUNCTION 'SERNR_ADD_TO_PP'
EXPORTING
profile = '0100'
material = lv_matnr
quantity = lv_quantity
ppaufnr = lv_aufnr
ppposnr = lv_posnr
ppautyp = lc_autyp
ppaufart = lc_auart
pmrsord = ''
ppwerk = lc_werks
* m_charge =
* kmatnr =
* cuobj =
* j_vorgang = 'PMP1'
* i_automatic = ' '
* i_no_enqueue = ' '
* i_more_allowed = ' '
i_bapi = 'X'
* IMPORTING
* anzsn =
* zeilen_id =
* serial_commit =
TABLES
sernos = lt_sernos
* r_sernr =
EXCEPTIONS
konfigurations_error = 1
serialnumber_errors = 2
serialnumber_warnings = 3
no_profile_operation = 4
OTHERS = 5.
IF sy-subrc EQ 0.
CALL FUNCTION 'SERIAL_LISTE_POST_PP'
* EXPORTING
* memory_id_status = ' '
* TABLES
* tab_cuobj =
.
COMMIT WORK.
ENDIF.
Комментариев нет:
Отправить комментарий