You are on page 1of 5

*&---------------------------------------------------------------------*

*& Report ZTEST131


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztest131.
TYPE-POOLS: truxs.
PARAMETERS : p_file TYPE rlgrap-filename.
TYPES: BEGIN OF ty_final,
bukrs TYPE bukrs,
ktokk TYPE ktokk,
anred TYPE anred,
name1 TYPE name1,
sortl TYPE sortl,
akont TYPE akont,
END OF ty_final.
DATA : it_final TYPE TABLE OF ty_final,
wa_final TYPE ty_final,
it_raw TYPE truxs_t_text_data,
it_bdcdata TYPE TABLE OF bdcdata,
wa_bdcdata TYPE bdcdata,
it_msg TYPE TABLE OF bdcmsgcoll,
wa_msg TYPE bdcmsgcoll,
it_msg1 TYPE TABLE OF bdcmsgcoll,
wa_msg1 TYPE bdcmsgcoll.
START-OF-SELECTION .
BREAK-POINT.
PERFORM f_get_data.

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.
*&---------------------------------------------------------------------*
*&
Form f_get_data
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*

FORM f_get_data .

*
*

*
*
*
*
*

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'


EXPORTING
I_FIELD_SEPERATOR
=
I_LINE_HEADER
=
i_tab_raw_data
= it_raw
i_filename
= p_file
TABLES
i_tab_converted_data
= it_final
EXCEPTIONS
CONVERSION_FAILED
= 1
OTHERS
= 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF NOT it_final IS INITIAL.
PERFORM f_get_bdc.
ENDIF.

ENDFORM.
" f_get_data
*&---------------------------------------------------------------------*
*&
Form f_get_bdc
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_get_bdc .
LOOP AT it_final INTO wa_final.
REFRESH it_bdcdata[].
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field

USING 'SAPMF02K' '0100'.


USING 'BDC_CURSOR'
'RF02K-KTOKK'.
USING 'BDC_OKCODE'
'/00'.
USING 'RF02K-BUKRS'
wa_final-bukrs.
"'1000'.
USING 'RF02K-KTOKK'
wa_final-ktokk ."'CPD'.
USING 'SAPMF02K' '0110'.
USING 'BDC_CURSOR'
'LFA1-SORTL'.
USING 'BDC_OKCODE'
'/00'.
USING 'LFA1-ANRED'
wa_final-anred."'company'.
USING 'LFA1-NAME1'
wa_final-name1. "'patni'.
USING 'LFA1-SORTL'
wa_final-sortl. "'PAT'.
USING 'SAPMF02K' '0120'.
USING 'BDC_CURSOR'

PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field

'LFA1-KUNNR'.
USING 'BDC_OKCODE'
'/00'.
USING 'SAPMF02K' '0130'.
USING 'BDC_CURSOR'
'LFA1-LNRZA'.
USING 'BDC_OKCODE'
'=ENTR'.
USING 'SAPMF02K' '0210'.
USING 'BDC_CURSOR'
'LFB1-AKONT'.
USING 'BDC_OKCODE'
'/00'.
USING 'LFB1-AKONT'
wa_final-akont .
USING 'SAPMF02K' '0215'.
USING 'BDC_CURSOR'
'LFB1-ZTERM'.
USING 'BDC_OKCODE'
'/00'.
USING 'SAPMF02K' '0220'.
USING 'BDC_CURSOR'
'LFB1-BUSAB'.
USING 'BDC_OKCODE'
'/00'.

"'31000'.

CALL TRANSACTION 'XK01' USING it_bdcdata MODE 'A' UPDATE 's'


MESSAGES INTO it_msg.
IF NOT it_msg IS 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-msgv1
msgv4
= wa_msg-msgv1
IMPORTING
message_text_output = wa_msg1-msgv1.
APPEND wa_msg1 TO it_msg1.
CLEAR wa_msg1.
ENDLOOP.
ENDIF.
ENDLOOP.
IF NOT it_msg1 IS INITIAL .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK
= ' '

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

*
*

I_BYPASSING_BUFFER
= ' '
I_BUFFER_ACTIVE
= ' '
i_callback_program
= sy-repid
I_CALLBACK_PF_STATUS_SET
= ' '
I_CALLBACK_USER_COMMAND
= ' '
I_CALLBACK_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_END_OF_LIST
= ' '
i_structure_name
= 'bdcmsgcoll'
I_BACKGROUND_ID
= ' '
I_GRID_TITLE
=
I_GRID_SETTINGS
=
IS_LAYOUT
=
IT_FIELDCAT
=
IT_EXCLUDING
=
IT_SPECIAL_GROUPS
=
IT_SORT
=
IT_FILTER
=
IS_SEL_HIDE
=
I_DEFAULT
= 'X'
I_SAVE
= ' '
IS_VARIANT
=
IT_EVENTS
=
IT_EVENT_EXIT
=
IS_PRINT
=
IS_REPREP_ID
=
I_SCREEN_START_COLUMN
= 0
I_SCREEN_START_LINE
= 0
I_SCREEN_END_COLUMN
= 0
I_SCREEN_END_LINE
= 0
I_HTML_HEIGHT_TOP
= 0
I_HTML_HEIGHT_END
= 0
IT_ALV_GRAPHICS
=
IT_HYPERLINK
=
IT_ADD_FIELDCAT
=
IT_EXCEPT_QINFO
=
IR_SALV_FULLSCREEN_ADAPTER
=
IMPORTING
E_EXIT_CAUSED_BY_CALLER
=
ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= it_msg1
EXCEPTIONS
program_error
= 1
OTHERS
= 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.

ENDFORM.

" f_get_bdc

*----------------------------------------------------------------------*
*
Start new screen
*
*----------------------------------------------------------------------*

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.
"BDC_DYNPRO
*----------------------------------------------------------------------*
*
Insert field
*
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = fnam.
wa_bdcdata-fval = fval.
APPEND wa_bdcdata TO it_bdcdata.
ENDIF.
ENDFORM.
"BDC_FIELD

You might also like