Changing the Standard Values in (CO02) Using BDC
*&------------------------------------------------------------------------------*
*& Report ZPP_CO02_STD_VAL_CHNG_REP*&------------------------------------------------------------------------------*
*& Program : ZPP_CO02_STD_VAL_CHNG_REP
*& Author : King Of ABAP'r
*& Created on : 2025
*& Requested By : Functional Consultant
*& Transport-No : 1234567890
*& Description : Changing the Standard Values in CO02
*&------------------------------------------------------------------------------*
REPORT zpp_co02_std_val_chng_rep.
TYPES: BEGIN OF ty_data,
sno TYPE i,
order_no TYPE aufnr,
oper_no TYPE vornr,
value_1 TYPE char9, "vgwrt,
unit1 TYPE vgwrteh,
value_2 TYPE char9, "vgwrt,
unit2 TYPE vgwrteh,
value_3 TYPE char9, "vgwrt,
unit3 TYPE vgwrteh,
value_4 TYPE char9, "vgwrt,
unit4 TYPE vgwrteh,
value_5 TYPE char9, "vgwrt,
unit5 TYPE vgwrteh,
value_6 TYPE char9, "vgwrt,
unit6 TYPE vgwrteh,
END OF ty_data.
##NEEDED
DATA:it_data TYPE TABLE OF ty_data,
wa_data TYPE ty_data.
##NEEDED
DATA:wa_bdcdata TYPE bdcdata,
##NEEDED
it_bdcdata TYPE TABLE OF bdcdata,
##NEEDED
wa_bdcmsgcoll TYPE bdcmsgcoll,
##NEEDED
it_bdcmsgcoll TYPE TABLE OF bdcmsgcoll.
TYPES: BEGIN OF ty_alv,
sno TYPE i,
type TYPE char10, "bapi_mtype,
aufnr TYPE aufnr,
oper_no TYPE vornr,
message TYPE bapi_msg,
* status(250) TYPE c,
END OF ty_alv.
##NEEDED
DATA: gt_alv TYPE STANDARD TABLE OF ty_alv,
##NEEDED
gs_alv TYPE ty_alv.
##NEEDED
CONSTANTS:lv_tcode TYPE sy-tcode VALUE 'CO02'.
SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-000.
PARAMETERS:p_file TYPE rlgrap-filename OBLIGATORY,
p_mode DEFAULT 'N'.
SELECTION-SCREEN:END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_filename.
*&---------------------------------------------------------------------*
*& Form f4_filename
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM f4_filename .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
ENDFORM.
START-OF-SELECTION.
*** Get File Data
PERFORM get_file_data.
*** BDC Data Fill
PERFORM bdc_data.
*** Display Data
PERFORM display_data.
*&---------------------------------------------------------------------*
*& Form get_file_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM get_file_data .
DATA:lt_raw TYPE truxs_t_text_data.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = abap_true
i_tab_raw_data = lt_raw
i_filename = p_file
TABLES
i_tab_converted_data = it_data
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE TEXT-006 TYPE 'E'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form bdc_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM bdc_data .
DATA(it_file) = it_data.
SORT it_file BY sno oper_no .
DELETE ADJACENT DUPLICATES FROM it_data COMPARING sno.
LOOP AT it_data INTO DATA(gs_data).
DATA(ws_data) = gs_data.
LOOP AT it_file INTO wa_data WHERE sno = ws_data-sno.
PERFORM bdc_dynpro USING 'SAPLCOKO1' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'CAUFVD-AUFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTK'.
PERFORM bdc_field USING 'CAUFVD-AUFNR'
ws_data-order_no. " '110000001134'.
PERFORM bdc_field USING 'R62CLORD-FLG_OVIEW'
'X'.
PERFORM bdc_dynpro USING 'SAPLCOKO1' '0115'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VGUE'.
PERFORM bdc_dynpro USING 'SAPLCOVG' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-VORNR(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=AUFS'.
PERFORM bdc_dynpro USING 'SAPLCO05' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RCOSU-VORNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=MORE'.
PERFORM bdc_field USING 'RCOSU-VORNR'
wa_data-oper_no. "'0030'.
PERFORM bdc_dynpro USING 'SAPLCOVG' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-VORNR(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ALAV'.
PERFORM bdc_field USING 'RC27X-FLG_SEL(01)'
'X'.
PERFORM bdc_dynpro USING 'SAPLCOVF' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VOGW'.
PERFORM bdc_field USING 'BDC_CURSOR'
'AFVGD-CY_SEQNRV'.
CONDENSE wa_data-value_1 .
CONDENSE wa_data-value_2 .
CONDENSE wa_data-value_3 .
CONDENSE wa_data-value_4 .
CONDENSE wa_data-value_5 .
CONDENSE wa_data-value_6 .
CONDENSE wa_data-unit1.
CONDENSE wa_data-unit2.
CONDENSE wa_data-unit3.
CONDENSE wa_data-unit4.
CONDENSE wa_data-unit5.
CONDENSE wa_data-unit6.
PERFORM bdc_dynpro USING 'SAPLCOVF' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
IF wa_data-value_1 IS NOT INITIAL AND wa_data-unit1 IS NOT INITIAL.
PERFORM bdc_field USING 'AFVGD-VGW01'
wa_data-value_1. "'10.0'.
PERFORM bdc_field USING 'AFVGD-VGE01'
wa_data-unit1. "'HR'.
ENDIF.
IF wa_data-value_2 IS NOT INITIAL AND wa_data-unit2 IS NOT INITIAL.
PERFORM bdc_field USING 'AFVGD-VGW02'
wa_data-value_2. "'20.0'.
PERFORM bdc_field USING 'AFVGD-VGE02'
wa_data-unit2. "'HR'.
ENDIF.
IF wa_data-value_3 IS NOT INITIAL AND wa_data-unit3 IS NOT INITIAL.
PERFORM bdc_field USING 'AFVGD-VGW03'
wa_data-value_3. "'30'.
PERFORM bdc_field USING 'AFVGD-VGE03'
wa_data-unit3. "'MIN'.
ENDIF.
IF wa_data-value_4 IS NOT INITIAL AND wa_data-unit4 IS NOT INITIAL.
PERFORM bdc_field USING 'AFVGD-VGW04'
wa_data-value_4. "'40'.
PERFORM bdc_field USING 'AFVGD-VGE04'
wa_data-unit4. "'MIN'.
ENDIF.
IF wa_data-value_5 IS NOT INITIAL AND wa_data-unit5 IS NOT INITIAL.
PERFORM bdc_field USING 'AFVGD-VGW05'
wa_data-value_5. "'50'.
PERFORM bdc_field USING 'AFVGD-VGE05'
wa_data-unit5. "'MIN'.
ENDIF.
IF wa_data-value_6 IS NOT INITIAL AND wa_data-unit6 IS NOT INITIAL.
PERFORM bdc_field USING 'AFVGD-VGW06'
wa_data-value_6. " '60'.
PERFORM bdc_field USING 'AFVGD-VGE06'
wa_data-unit6. "'MIN'.
ENDIF.
PERFORM bdc_dynpro USING 'SAPLCOVF' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_transaction USING 'CO02'.
REFRESH : it_bdcdata.
PERFORM errors.
ENDLOOP.
CLEAR:wa_data,gs_data,ws_data.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form bdc_dynpro
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM bdc_dynpro USING a b.
CLEAR wa_bdcdata.
wa_bdcdata-program = a.
wa_bdcdata-dynpro = b.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form bdc_field
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM bdc_field USING a b.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = a.
wa_bdcdata-fval = b.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form bdc_transaction
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM bdc_transaction USING lv_tcode.
CALL TRANSACTION lv_tcode USING it_bdcdata MODE p_mode
UPDATE 'S' MESSAGES INTO it_bdcmsgcoll.
COMMIT WORK AND WAIT .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form errors
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM errors .
DATA:message TYPE string,
count TYPE i.
DELETE it_bdcmsgcoll WHERE msgtyp = 'I'.
DELETE it_bdcmsgcoll WHERE msgtyp = 'W'.
LOOP AT it_bdcmsgcoll INTO wa_bdcmsgcoll.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
lang = '-D'
no = wa_bdcmsgcoll-msgnr
v1 = wa_bdcmsgcoll-msgv1
v2 = wa_bdcmsgcoll-msgv2
v3 = wa_bdcmsgcoll-msgv3
v4 = wa_bdcmsgcoll-msgv4
IMPORTING
msg = message
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
##NEEDED
READ TABLE it_bdcmsgcoll INTO DATA(ls_err) WITH KEY msgtyp = 'S'.
IF sy-subrc = 0.
gs_alv-aufnr = wa_bdcmsgcoll-msgv1.
gs_alv-oper_no = wa_data-oper_no.
gs_alv-type = icon_led_green. " wa_bdcmsgcoll-msgtyp.
gs_alv-message = message.
##NEEDED
* ADD 1 TO count.
count = count + 1.
gs_alv-sno = count.
APPEND gs_alv TO gt_alv.
CLEAR gs_alv.
ENDIF.
ELSE.
* gs_alv-aufnr =
gs_alv-type = icon_led_red. " wa_bdcmsgcoll-msgtyp.
gs_alv-message = message.
##NEEDED
* ADD 1 TO count.
count = count + 1.
gs_alv-sno = count.
APPEND gs_alv TO gt_alv.
CLEAR gs_alv.
ENDIF.
ENDLOOP.
##NEEDED
REFRESH it_bdcmsgcoll.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form disp_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM display_data .
TYPE-POOLS:
slis.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
ls_layout TYPE slis_layout_alv.
DATA:
lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA:
lv_program TYPE sy-repid.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'SNO'.
ls_fieldcat-seltext_m = TEXT-001. "'Sno.'.
ls_fieldcat-tabname = 'GT_ALV'.
APPEND ls_fieldcat TO lt_fieldcat.
ls_fieldcat-fieldname = 'TYPE'.
ls_fieldcat-seltext_m = TEXT-002. "'Type'.
ls_fieldcat-tabname = 'GT_ALV'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'AUFNR'.
ls_fieldcat-seltext_m = TEXT-003. "'Order No.'.
ls_fieldcat-tabname = 'GT_ALV'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'OPER_NO'.
ls_fieldcat-seltext_m = TEXT-004. "'Operation No.'.
ls_fieldcat-tabname = 'GT_ALV'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MESSAGE'.
ls_fieldcat-seltext_m = TEXT-005. "'Message'.
ls_fieldcat-tabname = 'GT_ALV'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
CLEAR ls_layout.
ls_layout-colwidth_optimize = 'X'.
ls_layout-zebra = 'X'.
lv_program = sy-repid.
IF gt_alv IS NOT INITIAL.
* Display The Final Display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_program
is_layout = ls_layout
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_alv.
* EXCEPTIONS
* program_error = 1
* OTHERS = 2.
ENDIF.
ENDFORM.
Comments
Post a Comment