*&---------------------------------------------------------------------*
*& Include SAPMZ_BARCODE_EDIT_SUB
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
FORM get_data .
IF gv_bar IS NOT INITIAL.
SELECT * FROM zbar_item INTO TABLE @DATA(it_bar)
WHERE barcode = @gv_bar.
IF sy-subrc = 0.
LOOP AT it_bar INTO DATA(wa_bar).
gv_matnr = wa_bar-matnr.
gv_maktx = wa_bar-maktx .
gv_menge = wa_bar-menge.
gv_sloc = wa_bar-sloc.
gv_pruflos = wa_bar-pruflos.
IF gv_pruflos IS INITIAL.
SELECT SINGLE * FROM mseg INTO wa_msegg
WHERE mblnr = wa_bar-mblnr_105
AND mjahr = wa_bar-mjahr_105
AND matnr = wa_bar-matnr
AND bwart = 105
AND werks = wa_bar-werks.
IF wa_msegg-insmk = 'X' OR wa_msegg-insmk = '2'.
SELECT SINGLE prueflos FROM qals INTO gv_pruflos
WHERE werk = wa_bar-werks
AND mblnr = wa_bar-mblnr_105
AND mjahr = wa_bar-mjahr_105
AND matnr = wa_bar-matnr.
IF gv_pruflos IS NOT INITIAL.
SELECT SINGLE vcode FROM qave INTO gv_udstatus
WHERE prueflos = gv_pruflos.
IF sy-subrc NE 0.
gv_udstatus = 'NTDN'.
MESSAGE 'UD Pending for the Inspection lot. 311 Not possible. So
Edit Without Stock Mvmt.' TYPE 'I'.
CLEAR lv_lgort.
ENDIF.
ELSE.
gv_udstatus = ''.
gv_pruflos = ''.
ENDIF.
ELSE.
SELECT SINGLE prueflos FROM qals INTO gv_pruflos
WHERE werk = wa_bar-werks
AND mblnr = wa_bar-mblnr_105
AND mjahr = wa_bar-mjahr_105
AND matnr = wa_bar-matnr.
gv_udstatus = 'SKIP'.
ENDIF.
ENDIF.
gv_status = wa_bar-status .
gv_process = wa_bar-process.
gv_pruflos_n = gv_pruflos.
IF lv_lgort IS NOT INITIAL.
SELECT SINGLE lgort FROM mard INTO lv_lgort
WHERE matnr = gv_matnr
AND werks = gv_werks
AND lgort = lv_lgort.
IF sy-subrc NE 0.
CLEAR lv_lgort.
MESSAGE 'Material Not Extended to [Link]' TYPE 'I'.
ELSEIF gv_udstatus = 'NTDN'.
MESSAGE 'UD Pending for the Inspection lot. 311 Not possible. So Edit
Without Stock Mvmt.' TYPE 'I'.
CLEAR lv_lgort.
ENDIF.
ENDIF.
ENDLOOP.
IF gv_new_menge IS NOT INITIAL.
IF gv_new_menge > gv_menge.
MESSAGE 'New OK Qty cannot be more than BOX Qty.' TYPE 'I'.
CLEAR gv_new_menge.
lv_flag = 0.
ELSEIF gv_new_menge = gv_menge AND gv_status = 'OK'.
MESSAGE 'New OK Qty cannot be same as previous OK Qty.' TYPE 'I'.
gv_new_menge = 0.
lv_flag = 0.
ELSE.
gv_nok_qty = gv_menge - gv_new_menge.
lv_flag = 1.
ENDIF.
ELSEIF gv_status = 'FN'.
MESSAGE 'Box already Finished. Qty = 0. Enter New Barcode.' TYPE 'I'.
PERFORM refresh.
ELSEIF gv_sloc = 'SH01'.
MESSAGE 'Cannot Edit Product from SH01. That is for Shortage.' TYPE 'I'.
PERFORM refresh.
ELSE.
IF gv_status = 'OK'.
lv_flag = 1.
gv_nok_qty = gv_menge.
gv_new_menge = 0.
ELSE.
lv_flag = 1.
gv_new_menge = gv_menge.
gv_nok_qty = 0.
ENDIF.
ENDIF.
ELSE.
MESSAGE 'Please Enter Correct Barcode' TYPE 'I'.
PERFORM refresh.
ENDIF.
ELSE.
MESSAGE 'Please Enter Barcode First' TYPE 'I'.
PERFORM refresh.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
FORM process_data .
lv_flag = 0.
IF gv_new_menge IS INITIAL OR gv_new_menge = '0.00'. "1 - Complete Box is NOK
Now. Change status of Box code as NOK
IF lv_lgort IS NOT INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
* TITLEBAR = ' '
* DIAGNOSE_OBJECT = ' '
text_question = 'Do you want to do stock posting??'
text_button_1 = 'YES'
* icon_button_1 = 'NO'
text_button_2 = 'NO'
IMPORTING
answer = ans
* TABLES
* PARAMETER =
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
IF ans = '1'.
CLEAR : gv_bar1.
gv_bar1 = gv_bar.
PERFORM post_stock. "Post_STOCK is for NOK Qty with GV_BAR1
IF lv_flag = 1.
MESSAGE 'Barcode Edit Complete with Stock [Link] Moved to New
SLOC.' TYPE 'I'.
UPDATE zbar_item SET status = 'NOK' process = gv_process_c remarksqa =
gv_remarks sloc = lv_lgort
WHERE barcode = gv_bar.
COMMIT WORK.
ENDIF.
ELSE.
MESSAGE 'Barcode Edit Complete without Stock Movement. SLOC Changed for
BOX.' TYPE 'I'.
UPDATE zbar_item SET status = 'NOK' process = gv_process_c remarksqa =
gv_remarks sloc = lv_lgort
WHERE barcode = gv_bar.
COMMIT WORK.
ENDIF.
ELSE.
UPDATE zbar_item SET status = 'NOK' process = gv_process_c remarksqa =
gv_remarks
WHERE barcode = gv_bar.
COMMIT WORK.
MESSAGE 'Barcode Edit Complete without Stock Movement. No change in SLOC.'
TYPE 'I'.
ENDIF.
ELSEIF ( gv_new_menge IS NOT INITIAL OR gv_new_menge NE '0.00' ) "2 - Complete
Box is OK Now. Change status of Box code as OK
AND ( gv_nok_qty IS INITIAL OR gv_nok_qty = '0.00' ).
IF lv_lgort IS NOT INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
* TITLEBAR = ' '
* DIAGNOSE_OBJECT = ' '
text_question = 'Do you want to do stock posting??'
text_button_1 = 'YES'
* icon_button_1 = 'NO'
text_button_2 = 'NO'
IMPORTING
answer = ans
* TABLES
* PARAMETER =
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
* gv_bar1 = lv_bar.
IF ans = '1'.
PERFORM post_stock_ok. "Post_STOCK is for OK Qty with GV_BAR
IF lv_flag = 1.
UPDATE zbar_item SET status = 'OK' process = gv_process_c remarksqa =
gv_remarks sloc = lv_lgort
WHERE barcode = gv_bar.
MESSAGE 'Barcode Edit Complete with Stock Movement. Material Moved to New
SLOC.' TYPE 'I'.
ENDIF.
ELSE.
UPDATE zbar_item SET status = 'OK' process = gv_process_c remarksqa =
gv_remarks sloc = lv_lgort
WHERE barcode = gv_bar.
MESSAGE 'Barcode Edit Complete without Stock Movement. SLOC Changed for
BOX.' TYPE 'I'.
ENDIF.
ELSE.
UPDATE zbar_item SET status = 'OK' process = gv_process_c remarksqa =
gv_remarks
WHERE barcode = gv_bar.
MESSAGE 'Barcode Edit Complete without Stock Movement. SLOC Remains Same.'
TYPE 'I'.
ENDIF.
ELSEIF gv_new_menge IS NOT INITIAL AND gv_nok_qty IS NOT INITIAL. "3 - When
Partial Qty is OK and NOK
IF gv_status = 'OK'.
SELECT * FROM zbar_item INTO TABLE @DATA(it_b)
WHERE barcode = @gv_bar.
READ TABLE it_b INTO DATA(wa_b) INDEX 1.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_b TO wa_barcode.
CONCATENATE wa_b-barcode 'R' INTO lv_bar.
* BREAK-POINT.
SELECT * FROM zbar_item INTO CORRESPONDING FIELDS OF TABLE ch_bar_item
WHERE barcode = lv_bar.
IF sy-subrc EQ 0.
CLEAR lv_bar.
cc = 0.
WHILE lv_bar IS INITIAL.
cc = cc + 1.
SHIFT cc LEFT DELETING LEADING ' '.
REFRESH ch_bar_item.
CONCATENATE wa_b-barcode 'R' cc INTO lv_bar.
SELECT * FROM zbar_item INTO CORRESPONDING FIELDS OF TABLE ch_bar_item
WHERE barcode = lv_bar.
IF sy-subrc EQ 0.
CLEAR lv_bar.
ENDIF.
ENDWHILE.
ENDIF.
wa_barcode-barcode = lv_bar.
wa_barcode-menge = gv_nok_qty.
wa_barcode-status = 'NOK'.
IF lv_lgort IS NOT INITIAL.
wa_barcode-sloc = lv_lgort.
ELSE.
wa_barcode-sloc = gv_sloc.
ENDIF.
wa_barcode-ref_barcode = gv_bar.
APPEND wa_barcode TO it_barcode.
ENDIF.
* UPDATE zbar_item SET menge = gv_new_menge status = 'OK' process =
gv_process_c remarksqa = gv_remarks
* WHERE barcode = gv_bar.
* MODIFY zbar_item FROM TABLE it_barcode.
* COMMIT WORK.
* CONCATENATE 'New Barcode : ' lv_bar 'Generated.' INTO DATA(lv_msg) SEPARATED
BY space.
* MESSAGE lv_msg TYPE 'I'.
IF lv_lgort IS NOT INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
* TITLEBAR = ' '
* DIAGNOSE_OBJECT = ' '
text_question = 'Do you want to do stock posting??'
text_button_1 = 'YES'
* icon_button_1 = 'NO'
text_button_2 = 'NO'
IMPORTING
answer = ans
* TABLES
* PARAMETER =
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
gv_bar1 = lv_bar.
IF ans = '1'.
PERFORM post_stock.
IF lv_flag = 1.
UPDATE zbar_item SET menge = gv_new_menge status = 'OK' process =
gv_process_c remarksqa = gv_remarks
WHERE barcode = gv_bar.
MODIFY zbar_item FROM TABLE it_barcode.
COMMIT WORK.
CONCATENATE 'New NOK Barcode : ' lv_bar 'Generated with stock movement
at SLOC = ' lv_lgort '.Edit complete with Stock Mvm.'
INTO DATA(lv_msg) SEPARATED BY space.
MESSAGE lv_msg TYPE 'I'.
CALL FUNCTION 'ZBAR_EDIT_BARCODE'
EXPORTING
gv_bar = lv_bar.
ENDIF.
* PERFORM post_stock_ok.
ELSE.
UPDATE zbar_item SET menge = gv_new_menge status = 'OK' process =
gv_process_c remarksqa = gv_remarks
WHERE barcode = gv_bar.
MODIFY zbar_item FROM TABLE it_barcode.
COMMIT WORK.
CONCATENATE 'New NOK Barcode : ' lv_bar 'Generated with SLOC = ' lv_lgort
'.Edit complete without Stock Mvm.'
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'I'.
CALL FUNCTION 'ZBAR_EDIT_BARCODE'
EXPORTING
gv_bar = lv_bar.
* MESSAGE 'Barcode Edit Complete without Stock Movement' TYPE 'I'.
ENDIF.
ELSE.
UPDATE zbar_item SET menge = gv_new_menge status = 'OK' process =
gv_process_c remarksqa = gv_remarks
WHERE barcode = gv_bar.
MODIFY zbar_item FROM TABLE it_barcode.
COMMIT WORK.
CONCATENATE 'New NOK Barcode : ' lv_bar 'Generated with SLOC = ' gv_sloc
'.Edit complete without Stock Mvm.'
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'I'.
CALL FUNCTION 'ZBAR_EDIT_BARCODE'
EXPORTING
gv_bar = lv_bar.
ENDIF.
ELSEIF gv_status = 'NOK'.
SELECT * FROM zbar_item INTO TABLE @it_b
WHERE barcode = @gv_bar.
READ TABLE it_b INTO wa_b INDEX 1.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_b TO wa_barcode.
CONCATENATE wa_b-barcode 'O' INTO lv_bar.
* logic for multiple breaks of box.
SELECT * FROM zbar_item INTO CORRESPONDING FIELDS OF TABLE ch_bar_item
WHERE barcode = lv_bar.
IF sy-subrc EQ 0.
CLEAR lv_bar.
cc = 0.
WHILE lv_bar IS INITIAL.
cc = cc + 1.
SHIFT cc LEFT DELETING LEADING ' '.
REFRESH ch_bar_item.
CONCATENATE wa_b-barcode 'O' cc INTO lv_bar.
SELECT * FROM zbar_item INTO CORRESPONDING FIELDS OF TABLE ch_bar_item
WHERE barcode = lv_bar.
IF sy-subrc EQ 0.
CLEAR lv_bar.
ENDIF.
ENDWHILE.
ENDIF.
* endof logic.
wa_barcode-barcode = lv_bar.
wa_barcode-menge = gv_new_menge.
wa_barcode-status = 'OK'.
IF lv_lgort IS NOT INITIAL.
wa_barcode-sloc = lv_lgort.
ELSE.
wa_barcode-sloc = gv_sloc.
ENDIF.
wa_barcode-ref_barcode = gv_bar.
APPEND wa_barcode TO it_barcode.
ENDIF.
IF lv_lgort IS NOT INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
* TITLEBAR = ' '
* DIAGNOSE_OBJECT = ' '
text_question = 'Do you want to do stock posting??'
text_button_1 = 'YES'
* icon_button_1 = 'NO'
text_button_2 = 'NO'
IMPORTING
answer = ans
* TABLES
* PARAMETER =
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
gv_bar1 = lv_bar.
IF ans = '1'.
* PERFORM post_stock.
PERFORM post_stock_ok.
IF lv_flag = 1.
UPDATE zbar_item SET menge = gv_nok_qty status = 'NOK' process =
gv_process_c remarksqa = gv_remarks
WHERE barcode = gv_bar.
MODIFY zbar_item FROM TABLE it_barcode.
COMMIT WORK.
CONCATENATE 'New OK Barcode : ' lv_bar 'Generated with Stock movement
at SLOC = ' lv_lgort '.Edit complete with Stock Mvm.'
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'I'.
CALL FUNCTION 'ZBAR_EDIT_BARCODE'
EXPORTING
gv_bar = lv_bar.
ENDIF.
ELSE.
UPDATE zbar_item SET menge = gv_nok_qty status = 'NOK' process =
gv_process_c remarksqa = gv_remarks
WHERE barcode = gv_bar.
MODIFY zbar_item FROM TABLE it_barcode.
COMMIT WORK.
CONCATENATE 'New OK Barcode : ' lv_bar 'Generated with SLOC = ' lv_lgort
'.Edit complete without Stock Mvm.'
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'I'.
CALL FUNCTION 'ZBAR_EDIT_BARCODE'
EXPORTING
gv_bar = lv_bar.
ENDIF.
ELSE.
UPDATE zbar_item SET menge = gv_nok_qty status = 'NOK' process =
gv_process_c remarksqa = gv_remarks
WHERE barcode = gv_bar.
MODIFY zbar_item FROM TABLE it_barcode.
COMMIT WORK.
CONCATENATE 'New OK Barcode : ' lv_bar 'Generated with SLOC = ' gv_sloc
'.Edit complete without Stock Mvm.'
INTO lv_msg SEPARATED BY space.
MESSAGE lv_msg TYPE 'I'.
CALL FUNCTION 'ZBAR_EDIT_BARCODE'
EXPORTING
gv_bar = lv_bar.
ENDIF.
ENDIF.
ENDIF.
CLEAR : gv_bar ,
gv_bar1 ,
gv_matnr ,
gv_maktx ,
gv_menge ,
gv_sloc ,
gv_pruflos ,
gv_status ,
gv_process ,
gv_new_menge,
gv_nok_qty ,
gv_process_c,
gv_pruflos_n,
gv_remarks ,
lv_lgort,
it_barcode.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POST_STOCK
*&---------------------------------------------------------------------*
FORM post_stock .
DATA : lv_cnt TYPE mblpo.
DATA : it_item TYPE TABLE OF bapi2017_gm_item_create,
wa_item TYPE bapi2017_gm_item_create,
it_sernr TYPE TABLE OF bapi2017_gm_serialnumber,
wa_sernr TYPE bapi2017_gm_serialnumber,
it_return TYPE TABLE OF bapiret2,
it_return2 TYPE TABLE OF bapiret2,
it_return1 TYPE TABLE OF bapiret2,
wa_return TYPE bapiret2,
lw_head TYPE bapi2017_gm_head_01,
gm_code TYPE bapi2017_gm_code,
testrun TYPE bapi2017_gm_gen-testrun,
goodsmvt_headret LIKE bapi2017_gm_head_ret,
materialdocument TYPE bapi2017_gm_head_ret-mat_doc,
matdocumentyear TYPE bapi2017_gm_head_ret-doc_year.
REFRESH : it_return[],it_item[]."it_sernr[].
*CLEAR : GV_BAR1.
*GV_BAR = GV_BAR1.
SELECT SINGLE * FROM zbar_item INTO @DATA(wa_b1)
WHERE barcode = @gv_bar.
IF sy-subrc NE 0.
* read TABLE it_barcode into wa_bl INDEX 1.
ENDIF.
wa_item-material = gv_matnr.
wa_item-plant = wa_b1-werks.
wa_item-batch = wa_b1-charg.
wa_item-stge_loc = wa_b1-sloc.
wa_item-move_type = '311'.
* wa_item-mvt_ind = 'B'.
wa_item-entry_qnt = gv_nok_qty.
wa_item-move_mat = gv_matnr.
wa_item-move_plant = wa_b1-werks.
wa_item-move_stloc = lv_lgort.
wa_item-move_batch = wa_b1-charg.
APPEND wa_item TO it_item.
CLEAR wa_item.
lw_head-pstng_date = sy-datum.
* lw_head-ref_doc_no = 'MOVE'.
* lw_head-header_txt = 'BIN Placement'.
lw_head-doc_date = sy-datum.
gm_code = '04'.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = lw_head
goodsmvt_code = gm_code
testrun = testrun
IMPORTING
goodsmvt_headret = goodsmvt_headret
materialdocument = materialdocument
matdocumentyear = matdocumentyear
TABLES
goodsmvt_item = it_item
goodsmvt_serialnumber = it_sernr
return = it_return.
READ TABLE it_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc IS INITIAL.
DATA : lv_message TYPE char50.
REFRESH : it_return2[].
* MOVE-CORRESPONDING wa_data2 TO gw_log.
gw_log-type = 'E'.
gw_log-light = 'Error'.
gw_log-message = wa_return-message.
APPEND gw_log TO gt_log.
CLEAR gw_log.
CONCATENATE 'Error : &' wa_return-message INTO lv_message SEPARATED BY ''.
* MESSAGE i003(zkml_bar) WITH wa_return-message.
MESSAGE lv_message TYPE 'S' DISPLAY LIKE 'I'.
lv_flag = 0.
CLEAR lv_message.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
gw_log-type = 'S'.
gw_log-light = 'Success'.
gw_log-matdoc = materialdocument.
APPEND gw_log TO gt_log.
CLEAR gw_log.
CONCATENATE 'Document :' materialdocument 'Posted' INTO DATA(lv_msg) SEPARATED
BY space.
MESSAGE lv_msg TYPE 'I'.
lv_flag = 1.
* UPDATE zbar_item SET sloc = lv_lgort
* WHERE barcode = gv_bar1.
* UPDATE zbar_item SET menge = gv_new_menge status = 'OK' process = gv_process_c
remarksqa = gv_remarks
* WHERE barcode = gv_bar.
* MODIFY zbar_item FROM TABLE it_barcode.
* COMMIT WORK.
* UPDATE zbar_item SET status = 'NOK' process = gv_process_c remarksqa =
gv_remarks sloc = lv_lgort
* WHERE barcode = gv_bar1.
* COMMIT WORK.
* CONCATENATE 'New NOK Barcode : ' lv_bar 'Generated with Stock Movement at SLOC
= ' lv_lgort '.Edit complete with Stock Mvm.'
* INTO lv_msg SEPARATED BY space.
* MESSAGE lv_msg TYPE 'I'.
* COMMIT WORK.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POST_STOCK_OK
*&---------------------------------------------------------------------*
FORM post_stock_ok.
DATA : lv_cnt TYPE mblpo.
DATA : it_item TYPE TABLE OF bapi2017_gm_item_create,
wa_item TYPE bapi2017_gm_item_create,
it_sernr TYPE TABLE OF bapi2017_gm_serialnumber,
wa_sernr TYPE bapi2017_gm_serialnumber,
it_return TYPE TABLE OF bapiret2,
it_return2 TYPE TABLE OF bapiret2,
it_return1 TYPE TABLE OF bapiret2,
wa_return TYPE bapiret2,
lw_head TYPE bapi2017_gm_head_01,
gm_code TYPE bapi2017_gm_code,
testrun TYPE bapi2017_gm_gen-testrun,
goodsmvt_headret LIKE bapi2017_gm_head_ret,
materialdocument TYPE bapi2017_gm_head_ret-mat_doc,
matdocumentyear TYPE bapi2017_gm_head_ret-doc_year.
REFRESH : it_return[],it_item[]."it_sernr[].
SELECT SINGLE * FROM zbar_item INTO @DATA(wa_b1)
WHERE barcode = @gv_bar.
wa_item-material = gv_matnr.
wa_item-plant = wa_b1-werks.
wa_item-batch = wa_b1-charg.
wa_item-stge_loc = wa_b1-sloc.
wa_item-move_type = '311'.
* wa_item-mvt_ind = 'B'.
wa_item-entry_qnt = gv_new_menge.
wa_item-move_mat = gv_matnr.
wa_item-move_plant = wa_b1-werks.
wa_item-move_stloc = lv_lgort.
wa_item-move_batch = wa_b1-charg.
APPEND wa_item TO it_item.
CLEAR wa_item.
lw_head-pstng_date = sy-datum.
* lw_head-ref_doc_no = 'MOVE'.
* lw_head-header_txt = 'BIN Placement'.
lw_head-doc_date = sy-datum.
gm_code = '04'.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = lw_head
goodsmvt_code = gm_code
testrun = testrun
IMPORTING
goodsmvt_headret = goodsmvt_headret
materialdocument = materialdocument
matdocumentyear = matdocumentyear
TABLES
goodsmvt_item = it_item
goodsmvt_serialnumber = it_sernr
return = it_return.
READ TABLE it_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc IS INITIAL.
REFRESH : it_return2[].
* MOVE-CORRESPONDING wa_data2 TO gw_log.
gw_log-type = 'E'.
gw_log-light = 'Error'.
gw_log-message = wa_return-message.
lv_flag = 0.
APPEND gw_log TO gt_log.
CLEAR gw_log.
MESSAGE i003(zkml_bar) WITH wa_return-message.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
gw_log-type = 'S'.
gw_log-light = 'Success'.
gw_log-matdoc = materialdocument.
APPEND gw_log TO gt_log.
CLEAR gw_log.
CONCATENATE 'Document :' materialdocument 'Posted' INTO DATA(lv_msg) SEPARATED
BY space.
MESSAGE lv_msg TYPE 'I'.
lv_flag = 1.
*
*
*
* UPDATE zbar_item SET status = 'OK' process = gv_process_c remarksqa =
gv_remarks sloc = lv_lgort
* WHERE barcode = gv_bar.
* COMMIT WORK.
* CONCATENATE 'New OK Barcode : ' lv_bar 'Generated with Stock Movement at SLOC
= ' lv_lgort '.Edit complete with Stock Mvm.'
* INTO lv_msg SEPARATED BY space.
* MESSAGE lv_msg TYPE 'I'.
* CONCATENATE 'Document :' materialdocument 'Posted' INTO DATA(lv_msg)
SEPARATED BY space.
* MESSAGE lv_msg TYPE 'I'.
*
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form REFRESH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM refresh .
CLEAR : gv_bar ,
gv_bar1 ,
gv_matnr ,
gv_maktx ,
gv_menge ,
gv_sloc ,
gv_pruflos ,
gv_status ,
gv_process ,
gv_new_menge,
gv_nok_qty ,
gv_process_c,
gv_pruflos_n,
gv_remarks ,
it_barcode.
ENDFORM.