REPORT zbdc_bp
NO STANDARD PAGE HEADING LINE-SIZE 255.
TYPES : BEGIN OF ty_bdc,
lifnr(10) TYPE c,
tax(3) TYPE c,
END OF ty_bdc.
DATA: it_bdc TYPE TABLE OF ty_bdc,
wa_bdc TYPE ty_bdc.
DATA: it_bdcdata TYPE TABLE OF bdcdata,
wa_bdcdata TYPE bdcdata.
DATA: it_msg TYPE TABLE OF bdcmsgcoll,
wa_msg TYPE bdcmsgcoll.
DATA: it_msg1 TYPE TABLE OF bdcmsgcoll,
wa_msg1 TYPE bdcmsgcoll.
DATA: lv_msg TYPE STRing.
TYPES:fs_struct(4096) TYPE c OCCURS 0 .
DATA:w_struct TYPE fs_struct.
DATA: lv_message TYPE string.
*DATA:msg(1000) TYPE c.
TYPES : BEGIN OF ty_msg,
lifnr(10) TYPE c,
msg(1000) TYPE c,
sta(1000) TYPE c,
END OF ty_msg.
DATA: lt_msg TYPE TABLE OF ty_msg,
lw_msg TYPE ty_msg.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1 .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* i_field_seperator = 'X'
i_line_header = '1'
i_tab_raw_data = w_struct
i_filename = p_file
TABLES
i_tab_converted_data = it_bdc
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
* INCLUDE bdcrecx1_s.
START-OF-SELECTION.
LOOP AT it_bdc INTO wa_bdc.
CLEAR:wa_bdcdata.
REFRESH: it_bdcdata[].
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SCREEN_1000_OPEN'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BUS_LOCA_SRCH01-SEARCH_TYPE'.
PERFORM bdc_field USING 'BUS_LOCA_SRCH01-SEARCH_TYPE'
'1'.
PERFORM bdc_field USING 'BUS_LOCA_SRCH01-SEARCH_ID'
'8'.
PERFORM bdc_field USING 'BUS_LOCA_SRCH01-MAXHIT'
'100'.
PERFORM bdc_dynpro USING 'SAPLBUPA_DIALOG_JOEL' '1600'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BUS_MAIN_ENTER'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BUS_JOEL_MAIN-OPEN_NUMBER'.
PERFORM bdc_field USING 'BUS_JOEL_MAIN-OPEN_NUMBER'
wa_bdc-lifnr."'21000266'.
PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BUS_MAIN_SAVE'.
PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_ROLE'
'FLVN01'.
PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
'000001'.
PERFORM bdc_field USING 'BDC_CURSOR'
'GS_LFA1-FITYP'.
PERFORM bdc_field USING 'GS_LFA1-FITYP'
wa_bdc-tax."'01'.
CALL TRANSACTION 'BP' USING it_bdcdata MODE 'N' UPDATE 'S' MESSAGES INTO
it_msg.
IF it_msg IS NOT INITIAL.
LOOP AT it_msg INTO wa_msg.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = wa_msg-msgid
msgnr = wa_msg-msgnr
msgv1 = wa_msg-msgv1
msgv2 = wa_msg-msgv2
msgv3 = wa_msg-msgv3
msgv4 = wa_msg-msgv4
IMPORTING
message_text_output = lv_message.
lw_msg-lifnr = wa_bdc-lifnr.
lw_msg-msg = lv_message.
APPEND lw_msg TO lt_msg.
CLEAR: lw_msg,lv_message.
ENDLOOP .
ENDIF.
ENDLOOP.
DATA(lt_msg1) = lt_msg.
SORT lt_msg BY lifnr .
SORT lt_msg1 BY lifnr msg.
DELETE ADJACENT DUPLICATES FROM lt_msg COMPARING lifnr.
DELETE ADJACENT DUPLICATES FROM lt_msg1 COMPARING lifnr msg.
LOOP AT lt_msg ASSIGNING FIELD-SYMBOL(<fs1>).
LOOP AT lt_msg1 ASSIGNING FIELD-SYMBOL(<fs2>) WHERE lifnr = <fs1>-lifnr.
DATA(lv_msg11) = <fs2>-msg.
CLEAR: <fs2>-msg.
CONCATENATE lv_msg11 <fs2>-msg INTO <fs1>-sta SEPARATED BY ':'.
CLEAR: lv_msg11.
ENDLOOP.
ENDLOOP.
IF lt_msg IS NOT INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* i_structure_name = 'BDCMSGCOLL'
TABLES
t_outtab = lt_msg
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
FORM bdc_dynpro USING program dynpro.
CLEAR wa_bdcdata.
wa_bdcdata-program = program.
wa_bdcdata-dynpro = dynpro.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM.
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = fnam.
wa_bdcdata-fval = fval.
SHIFT wa_bdcdata-fval LEFT DELETING LEADING space.
APPEND wa_bdcdata TO it_bdcdata.
ENDIF.
ENDFORM.
* PERFORM open_group.
* PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=BUS_MAIN_ENTER'.
* PERFORM bdc_field USING 'BUS_LOCA_SRCH01-SEARCH_TYPE'
* '1'.
* PERFORM bdc_field USING 'BUS_LOCA_SRCH01-SEARCH_ID'
* '8'.
* PERFORM bdc_field USING 'BDC_CURSOR'
* 'BUS_JOEL_SEARCH-LIFNR'.
* PERFORM bdc_field USING 'BUS_JOEL_SEARCH-LIFNR' "enter
* '21001179'.
* PERFORM bdc_field USING 'BUS_LOCA_SRCH01-MAXHIT'
* '100'.
* PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=%_GC 120 3'.
* PERFORM bdc_field USING 'BUS_LOCA_SRCH01-SEARCH_TYPE'
* '1'.
* PERFORM bdc_field USING 'BUS_LOCA_SRCH01-SEARCH_ID'
* '8'.
* PERFORM bdc_field USING 'BUS_JOEL_SEARCH-LIFNR'
* '21001179'.
* PERFORM bdc_field USING 'BUS_LOCA_SRCH01-MAXHIT'
* '100'.
* PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=SCREEN_1110_CHG_ROLE'.
* PERFORM bdc_field USING 'BDC_CURSOR'
* 'BUS_JOEL_MAIN-PARTNER_ROLE'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_ROLE'
* 'FLVN00'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
* '000001'.
* PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=SCREEN_1100_TAB_10'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_ROLE'
* 'FLVN00'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
* '000001'.
* PERFORM bdc_field USING 'BDC_CURSOR'
* 'BUS000FLDS-TITLE_MEDI'.
* PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=SCREEN_1000_ACTIVITY'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_ROLE'
* 'FLVN00'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
* '000001'.
* PERFORM bdc_field USING 'BDC_CURSOR'
* 'GS_LFA1-FITYP'.
* PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=BUS_MAIN_SAVE'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_ROLE'
* 'FLVN00'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
* '000001'.
* PERFORM bdc_field USING 'BDC_CURSOR'
* 'GS_LFA1-FITYP'.
* PERFORM bdc_field USING 'GS_LFA1-FITYP' "enter
* 'Z1'.
* PERFORM bdc_dynpro USING 'SAPLBUS_LOCATOR' '3000'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=BUS_MAIN_SAVE'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_ROLE'
* 'FLVN00'.
* PERFORM bdc_field USING 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
* '000001'.
* PERFORM bdc_field USING 'BDC_CURSOR'
* 'GS_LFA1-FITYP'.
* PERFORM bdc_field USING 'GS_LFA1-FITYP'
* '01'.
** PERFORM bdc_transaction USING 'BP'.
* PERFORM close_group.
*Text elements
*----------------------------------------------------------
* 040 Program already exists
* 041 Report name is not valid
* 042 No authorization to create reports
* 043 Path names are not permitted. Save file in DIR_HOME instead?
* E00 Error opening dataset, return code:
* I01 Session name
* I02 Open session
* I03 Insert transaction
* I04 Close Session
* I05 Return code =
* I06 Error session created
* S01 Session name
* S02 User
* S03 Keep session
* S04 Lock date
* S05 Processing Mode
* S06 Update Mode
* S07 Create Session
* S08 Call transaction
* S09 Error sessn
* S10 Nodata indicator
* S11 Short log
*Selection texts
*----------------------------------------------------------
* P_FILE D .
----------------------------------------------------------------------------------
Extracted by Mass Download version 1.5.5 - E.G.Mellodew. 1998-2024. Sap Release 757