Documente Academic
Documente Profesional
Documente Cultură
REPORT zsd_bauto_po_generation.
TABLES : vbap,mara,vbak,zsd_sash.
TYPES:BEGIN OF ty_podata,
bstkd TYPE bstkd,
bstdk TYPE bstdk,
bsark TYPE bsark,
auart TYPE vbak-auart,
posnr TYPE vbap-posnr,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
spart TYPE spart,
kunnr TYPE kunag,
matnr TYPE matnr,
kwmeng TYPE kwmeng,
meins TYPE meins,
werks TYPE werks_ext,
vbeln TYPE vbeln_va,
flag(1) TYPE c,
remark TYPE char480,
color TYPE char12,
END OF ty_podata.
TYPES:BEGIN OF ty_log,
bstkd TYPE bstkd,
bstdk TYPE bstdk,
bsark TYPE bsark,
auart TYPE vbak-auart,
posnr TYPE vbap-posnr,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
spart TYPE spart,
kunnr TYPE kunag,
vbeln TYPE vbeln_va,
flag(1) TYPE c,
message TYPE char480,
END OF ty_log.
AT SELECTION-SCREEN.
SELECT werks FROM t001w INTO TABLE it_plant WHERE werks IN s_werks.
START-OF-SELECTION.
PERFORM get_data.
PERFORM process_data.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_data.
v_day = p_date+6(2).
REFRESH gt_zsd_sash.
SELECT * FROM zsd_sash
INTO TABLE gt_zsd_sash
WHERE zcreated_on = p_date
AND zitem_codem IN s_matnr
AND werks IN s_werks
AND zwss_code IN s_wsscd.
DELETE gt_zsd_sash WHERE zsash_qty LE 0.
IF gt_zsd_sash IS NOT INITIAL.
PERFORM winomkar1.
SELECT vbeln fkdat kunag rfbsk fksto
INTO CORRESPONDING FIELDS OF TABLE it_vbrk
FROM vbrk
FOR ALL ENTRIES IN gt_zsd_sash
WHERE fkdat BETWEEN v_frdt AND v_todt
AND kunag = gt_zsd_sash-zwss_code
AND fkart = 'ZDDS'.
DELETE it_vbrk WHERE rfbsk NE 'C'.
DELETE it_vbrk WHERE fksto IS NOT INITIAL.
ELSE.
p_date = p_date - 1.
SELECT * FROM zsd_sash
INTO TABLE gt_zsd_sash
WHERE zcreated_on = p_date
AND zitem_codem IN s_matnr
AND werks IN s_werks
AND zwss_code IN s_wsscd.
IF gt_zsd_sash IS NOT INITIAL.
SELECT vbeln fkdat kunag rfbsk fksto
INTO CORRESPONDING FIELDS OF TABLE it_vbrk
FROM vbrk
FOR ALL ENTRIES IN gt_zsd_sash
WHERE fkdat BETWEEN v_frdt AND v_todt
AND kunag = gt_zsd_sash-zwss_code
AND fkart = 'ZDDS'.
DELETE it_vbrk WHERE rfbsk NE 'C'.
DELETE it_vbrk WHERE fksto IS NOT INITIAL.
ENDIF.
ENDIF.
wa_blcnt-kunag = <wa_vbrk>-kunag.
wa_blcnt-fkdat = <wa_vbrk>-fkdat.
wa_blcnt-matnr = <wa_vbrp>-matnr.
PERFORM mth_data USING <wa_vbrp>-matnr CHANGING wa_blcnt-mmtnr.
wa_blcnt-fklmg = <wa_vbrp>-fklmg.
APPEND wa_blcnt TO it_blcnt.
wa_blcnt-fklmg = 1.
APPEND wa_blcnt TO it_blcnt_cnt.
CLEAR : wa_blcnt-fkdat,wa_blcnt-matnr .
wa_blcnt-fklmg = <wa_vbrp>-fklmg.
COLLECT wa_blcnt INTO it_blcnt_sum.
CLEAR : wa_blcnt.
ENDLOOP.
ENDLOOP.
REFRESH it_blcnt_cnt.
it_blcnt_cnt[] = it_blcnt_cnt1[].
REFRESH it_blcnt_cnt1.
gt_zsd_sash1[] = gt_zsd_sash[].
SORT gt_zsd_sash1 BY zitem_codem .
DELETE ADJACENT DUPLICATES FROM gt_zsd_sash1 COMPARING zitem_codem.
ENDIF.
gt_zsd_sash1[] = gt_zsd_sash[].
SORT : gt_zsd_sash1 BY zwss_code .
DELETE ADJACENT DUPLICATES FROM gt_zsd_sash1 COMPARING zwss_code.
SELECT kunnr
vkorg
vtweg
spart
aufsd
wsscode
FROM knvv
INTO TABLE gt_knvv
FOR ALL ENTRIES IN gt_zsd_sash1
WHERE kunnr = gt_zsd_sash1-zwss_code
AND spart IN s_spart.
ENDIF.
ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form mth_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->MTR text
* <--MMTR text
*----------------------------------------------------------------------*
FORM mth_data USING mtr CHANGING mmtr.
DATA : knu TYPE kotd001-knumh.
SELECT SINGLE knumh INTO knu FROM kotd001
WHERE kappl EQ 'V'
AND kschl EQ 'ZA01'
AND matwa EQ mtr
AND datbi GE sy-datum
AND datab LE sy-datum.
SELECT SINGLE smatn INTO mmtr FROM konddp
WHERE knumh EQ knu.
IF sy-subrc NE 0.
SELECT SINGLE knumh INTO knu FROM konddp
WHERE smatn EQ mtr.
SELECT SINGLE matwa INTO mmtr FROM kotd001
WHERE kappl EQ 'V'
AND kschl EQ 'ZA01'
AND knumh EQ knu
AND datbi GE sy-datum
AND datab LE sy-datum.
IF sy-subrc NE 0.
mmtr = mtr.
ENDIF.
ENDIF.
ENDFORM. "mth_data
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM process_data.
gs_final-zwss_code = <fs_sash>-zwss_code.
gs_final-zitem_code = <fs_sash>-zitem_codem.
gs_final-werks = <fs_sash>-werks.
gs_final-zsash_qty = <fs_sash>-zsash_qty.
SELECT SINGLE name1 INTO gs_final-pname FROM t001w WHERE werks = <fs_sash>-
werks.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = <fs_sash>-zitem_codem BINARY
SEARCH.
IF sy-subrc = 0.
gs_final-maktx = wa_makt-maktx.
ELSE.
SELECT SINGLE maktx INTO gs_final-maktx FROM makt WHERE matnr = <fs_sash>-
zitem_codem.
ENDIF.
CLEAR gs_knvv.
READ TABLE gt_knvv INTO gs_knvv WITH KEY kunnr = <fs_sash>-zwss_code vtweg =
'30' spart = '70' .
IF sy-subrc EQ 0.
gs_final-spart = '70'.
ELSE.
READ TABLE gt_knvv INTO gs_knvv WITH KEY kunnr = <fs_sash>-zwss_code.
IF sy-subrc = 0.
gs_final-spart = gs_knvv-spart.
ENDIF.
ENDIF.
CLEAR gs_kna1.
READ TABLE gt_kna1 INTO gs_kna1 WITH KEY kunnr = <fs_sash>-zwss_code BINARY
SEARCH.
IF sy-subrc = 0.
gs_final-name1 = gs_kna1-name1.
IF gs_kna1-aufsd = 'Z7' OR gs_kna1-aufsd = 'Z8' OR gs_kna1-aufsd = 'ZL' OR
gs_kna1-aufsd = 'CC' .
gs_final-aufsd = 'B'.
ELSEIF gs_knvv-aufsd = 'Z7' OR gs_knvv-aufsd = 'Z8' OR gs_knvv-aufsd = 'ZL'
OR gs_knvv-aufsd = 'CC' .
gs_final-aufsd = 'B'.
ENDIF.
ELSE.
SELECT SINGLE name1 INTO gs_final-name1 FROM kna1 WHERE kunnr = <fs_sash>-
zwss_code.
ENDIF.
READ TABLE gt_mvke INTO gs_mvke WITH KEY matnr = <fs_sash>-zitem_codem vkorg =
gs_knvv-vkorg vtweg = gs_knvv-vtweg BINARY SEARCH.
IF sy-subrc EQ 0.
IF gs_mvke-vrkme IS NOT INITIAL.
gs_final-uom = gs_mvke-vrkme.
ELSE.
SELECT SINGLE meinh FROM marm INTO gs_mvke-vrkme WHERE matnr = <fs_sash>-
zitem_codem.
gs_final-uom = gs_mvke-vrkme.
ENDIF.
ELSE.
SELECT SINGLE meinh FROM marm INTO gs_mvke-vrkme WHERE matnr = <fs_sash>-
zitem_codem.
gs_final-uom = gs_mvke-vrkme.
ENDIF.
IF gs_final-auto_po_qty GT 0.
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
i_matnr = <fs_sash>-zitem_codem
i_in_me = 'EA'
i_out_me = gs_mvke-vrkme
i_menge = gs_final-auto_po_qty
IMPORTING
e_menge = gs_final-autopo_caseqty
EXCEPTIONS
error_in_application = 1
error = 2
OTHERS = 3.
ELSE.
gs_final-auto_po_qty = 0.
gs_final-autopo_caseqty = 0.
ENDIF.
gs_final-autopo_csqtyf = lv_qty.
IF gs_final-autopo_csqtyf GE 0.
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
i_matnr = <fs_sash>-zitem_codem
i_in_me = gs_mvke-vrkme
i_out_me = 'EA'
i_menge = gs_final-autopo_csqtyf
IMPORTING
e_menge = gs_final-auto_po_qtyf
EXCEPTIONS
error_in_application = 1
error = 2
OTHERS = 3.
ENDIF.
APPEND gs_final TO gt_final.
CLEAR : gs_final,gs_mvke,wa_blcnts,wa_blcntc.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form winomkar1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM winomkar1.
REFRESH : gt_kna1,gt_knvv.
gt_zsd_sashm[] = gt_zsd_sash[].
SORT gt_zsd_sashm BY zwss_code.
DELETE ADJACENT DUPLICATES FROM gt_zsd_sashm COMPARING zwss_code.
IF gt_zsd_sashm[] IS NOT INITIAL.
SELECT kunnr
name1
aufsd
winomkar
FROM kna1
INTO TABLE gt_kna1
FOR ALL ENTRIES IN gt_zsd_sashm
WHERE kunnr = gt_zsd_sashm-zwss_code.
DELETE gt_kna1 WHERE winomkar = '1'.
DELETE gt_kna1 WHERE winomkar = '2'.
SORT gt_kna1 BY kunnr.
LOOP AT gt_kna1 INTO gs_kna1.
DELETE gt_zsd_sash WHERE zcreated_on = p_date AND zwss_code = gs_kna1-kunnr.
DELETE FROM zsd_sash WHERE zcreated_on = p_date AND zwss_code = gs_kna1-
kunnr.
COMMIT WORK.
WAIT UP TO 1 SECONDS.
ENDLOOP.
ENDIF.
"---------------------
REFRESH : gt_zsd_sashm.
gt_zsd_sashm[] = gt_zsd_sash[].
SORT gt_zsd_sashm BY zwss_code.
DELETE ADJACENT DUPLICATES FROM gt_zsd_sashm COMPARING zwss_code.
IF gt_zsd_sashm[] IS NOT INITIAL.
SELECT kunnr
vkorg
vtweg
spart
aufsd
wsscode
FROM knvv
INTO TABLE gt_knvv
FOR ALL ENTRIES IN gt_zsd_sashm
WHERE kunnr = gt_zsd_sashm-zwss_code
AND spart IN s_spart
AND vkgrp IN s_vkgrp
AND vkorg IN s_vkorg.
IF gt_zsd_sash[] IS INITIAL.
MESSAGE 'No winomkar WSS found.' TYPE 'S' DISPLAY LIKE 'E' .
ENDIF.
REFRESH : gt_zsd_sashm,gt_kna1,gt_knvv.
ENDFORM. "winomkar
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM display_data .
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'ZCREATED_ON'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'Creation Date'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'ZWSS_CODE'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'WSS Code'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'WSS Name'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'ZITEM_CODE'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'Item Code'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'MAKTX'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'Item Name'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'UOM'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'UOM'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'SPART'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'Division'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'Plant'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'PNAME'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'Plant Name'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'AUTO_PO_QTYF'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'AutoPO Qty (EA)'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'AUTOPO_CSQTYF'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'AutoPO Qty (CS)'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'PO_NO'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'PO No'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
IF cb2 = 'X'.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'ZSONO'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'SO No'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'ZSODT'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'SO Date'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'ZSOVAL'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'SO Value'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'ZSOUOM'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'SO UOM'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
counter = counter + 1.
wa_fieldcat-col_pos = counter.
wa_fieldcat-fieldname = 'REMARKS'.
wa_fieldcat-tabname = 'GT_FINAL'.
wa_fieldcat-seltext_m = 'Remarks'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = wa_layout
it_fieldcat = it_fieldcat
" i_callback_user_command = 'USER_COMMAND'
TABLES
t_outtab = gt_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
*** Implement suitable error handling here
ENDIF.
ENDFORM. "display_data
*&---------------------------------------------------------------------*
*& Form get_form
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM create_so.
*To get last date of current month for BAPI header data
CALL FUNCTION 'LAST_DAY_OF_MONTHS'
EXPORTING
day_in = sy-datum
IMPORTING
last_day_of_month = gv_monthend_dt
EXCEPTIONS
day_in_no_date = 1
OTHERS = 2.
CLEAR : it_header_in.
CLEAR : it_header_inx.
CLEAR : it_partners.
CLEAR : it_items_in.
CLEAR : it_items_inx.
CLEAR : it_schedules_in.
CLEAR : it_schedules_inx.
CLEAR : it_return.
CLEAR : gv_counter.
it_header_inx-updateflag = 'I'.
it_header_inx-doc_type = 'X'.
it_header_inx-sales_org = 'X'.
it_header_inx-distr_chan = 'X'.
it_header_inx-division = 'X'.
it_header_inx-purch_date = 'X'.
it_header_inx-po_method = 'X'.
it_header_inx-purch_no_c = 'X'.
it_header_inx-sd_doc_cat = 'X'.
wa_partners-partn_role = 'RE'.
wa_partners-partn_numb = wa_hdpodata-kunnr.
APPEND wa_partners TO it_partners.
wa_partners-partn_role = 'RG'.
wa_partners-partn_numb = wa_hdpodata-kunnr.
APPEND wa_partners TO it_partners.
wa_partners-partn_role = 'WE'.
wa_partners-partn_numb = wa_hdpodata-kunnr.
APPEND wa_partners TO it_partners.
CLEAR wa_partners_sim.
REFRESH it_partners_sim.
wa_items_in-material = wa_detpodata-matnr.
wa_items_in-plant = wa_detpodata-werks.
wa_items_in-target_qty = wa_detpodata-kwmeng.
wa_items_in-ref_1 = wa_detpodata-color. " (+) Amit 26.04.2018
wa_items_inx-itm_number = gv_counter.
wa_items_inx-updateflag = 'I'.
wa_items_inx-material = 'X'.
wa_items_inx-plant = 'X'.
wa_items_inx-target_qty = 'X'.
wa_items_inx-target_qu = 'X'.
wa_items_inx-sales_unit = 'X'.
wa_items_inx-ref_1 = 'X'. " (+) Amit 26.04.2018
wa_schedules_in-itm_number = gv_counter.
wa_schedules_in-req_qty = wa_detpodata-kwmeng.
wa_schedules_inx-itm_number = gv_counter.
wa_schedules_inx-updateflag = 'I'.
wa_schedules_inx-req_qty = 'X'.
ELSE.
APPEND wa_items_in TO it_items_in.
APPEND wa_items_inx TO it_items_inx.
APPEND wa_schedules_in TO it_schedules_in.
APPEND wa_schedules_inx TO it_schedules_inx.
ENDIF.
****************** For Dummy simulation
CLEAR:wa_detpodata.
CLEAR it_return_sim.
ENDLOOP.
*BAPI Commit
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
WAIT UP TO 1 SECONDS.
ENDIF.
* MOVE-CORRESPONDING header data TO it_log.
wa_log-bstkd = wa_hdpodata-bstkd.
wa_log-bstdk = wa_hdpodata-bstdk.
wa_log-bsark = wa_hdpodata-bsark.
* wa_log-auart = wa_hdpodata-auart.
wa_log-vkorg = wa_hdpodata-vkorg.
wa_log-vtweg = wa_hdpodata-vtweg.
wa_log-spart = wa_hdpodata-spart.
wa_log-kunnr = wa_hdpodata-kunnr.
ELSE.
wa_log-flag = 'E'.
SORT it_return BY type.
LOOP AT it_return INTO wa_return WHERE type EQ 'E'.
IF wa_log-message IS INITIAL.
wa_log-message = wa_return-message.
ELSE.
CONCATENATE wa_log-message wa_return-message INTO wa_log-message
SEPARATED BY ','.
ENDIF.
CLEAR wa_return.
ENDLOOP.
ENDIF.
IF wa_log IS NOT INITIAL.
APPEND wa_log TO it_log.
CLEAR: wa_log.
ENDIF.
CLEAR wa_hdpodata.
ENDLOOP.
it_detpodata1[] = it_detpodata[].
IF sy-subrc = 0.
CLEAR : gs_final.
READ TABLE gt_final INTO gs_final WITH KEY po_no = wa_detpodata1-bstkd
zwss_code = vwss zitem_code = wa_detpodata1-matnr.
IF sy-subrc = 0.
gs_final-zsono = vbln.
gs_final-zsodt = sy-datum.
gs_final-zsoval = vnetwr.
gs_final-zsouom = wa_detpodata1-meins.
gs_final-remarks = wa_detpodata1-remark.
MODIFY gt_final FROM gs_final TRANSPORTING zsono zsodt zsoval zsouom
remarks
WHERE po_no = wa_detpodata1-bstkd
AND zwss_code = vwss
AND zitem_code = wa_detpodata1-matnr.
ENDIF.
* UPDATE zsd_autopo_planb SET zsono = vbln
* zsodt = sy-datum
* zsoval = vnetwr
* zsouom = wa_detpodata1-meins
* remarks = wa_detpodata1-remark
* WHERE po_no = wa_detpodata1-bstkd
* AND zwss_code = vwss
* AND zitem_code = wa_detpodata1-matnr.
ELSE.
CLEAR : gs_final.
READ TABLE gt_final INTO gs_final WITH KEY po_no = wa_detpodata1-bstkd
zwss_code = vwss zitem_code = wa_detpodata1-matnr.
IF sy-subrc = 0.
gs_final-remarks = wa_detpodata1-remark.
MODIFY gt_final FROM gs_final TRANSPORTING remarks WHERE po_no =
wa_detpodata1-bstkd AND zwss_code = vwss AND zitem_code = wa_detpodata1-matnr.
ENDIF.
* UPDATE zsd_autopo_planb SET remarks = wa_detpodata1-remark
* WHERE po_no = wa_detpodata1-bstkd
* AND zwss_code = vwss
* AND zitem_code = wa_detpodata1-matnr.
ENDIF.
COMMIT WORK.
CLEAR : vnetwr,vbln.
ENDLOOP.
IF gt_final[] IS NOT INITIAL.
MODIFY zsd_autopo_planb FROM TABLE gt_final.
ENDIF.
it_output-auto_and_push_poresult-data[] = it_dataout[].
* Error handling
IF l_sys_exc IS NOT INITIAL .
l_exception_msg = l_sys_exc->get_text( ).
WRITE : 'System Error :' ,l_exception_msg.
ELSEIF l_app_exc IS NOT INITIAL.
l_exception_msg1 = l_app_exc->get_text( ).
WRITE : 'Appln Error :' ,l_exception_msg1.
* ELSE.
* PERFORM display_data.
" WRITE 'Executed Successfully - Data Sent to PI'.
ENDIF.
ENDFORM. "get_form
*&---------------------------------------------------------------------*
*& Form SEND_EMAIL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM send_email.
ENDFORM. "SEND_EMAIL