Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

bdc

Former Member
0 Likes
662

what is the use of function module format_message

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
633

Hi,

While doing call transaction, if an error occurs in updation, we declare bdcmsgcoll and store our messages in it, to retreive error message ...

Using function module 'FORMAT_MESSAGE' you can capture the messages.

Here is a sample of the program code for that:

  LOOP AT it_messtab. 
  CALL FUNCTION 'FORMAT_MESSAGE' 
    EXPORTING 
      id     = it_messtab-msgid 
      lang   = it_messtab-msgspra 
      no     = it_messtab-msgnr 
      v1     = it_messtab-msgv1 
      v2     = it_messtab-msgv2 
    IMPORTING 
    msg    =  g_msg 
  EXCEPTIONS 
      OTHERS = 0. 
  IF it_messtab-msgtyp = 'S'. 
    it_sucess-sucess_rec = g_msg. 
    it_sucess-lifnr = it_header-lifnr." Based on your field 
    it_sucess-tabix = v_lines. 
    APPEND it_sucess. 
  ELSEIF it_messtab-msgtyp = 'E'. 
    it_error-error_rec = g_msg. 
    it_error-lifnr = it_header-lifnr. 
    it_error-tabix = v_lines. 
    APPEND it_error. 
  ELSE. 
    it_info-info_rec = g_msg. 
    it_info-lifnr    = it_header-lifnr. 
    it_info-tabix    = v_lines. 
    APPEND it_info. 
  ENDIF. 
ENDLOOP.

Regards

Sudheer

5 REPLIES 5
Read only

Former Member
0 Likes
633

and also can any one give small example on that.

regards,

srinu.

Read only

Former Member
0 Likes
634

Hi,

While doing call transaction, if an error occurs in updation, we declare bdcmsgcoll and store our messages in it, to retreive error message ...

Using function module 'FORMAT_MESSAGE' you can capture the messages.

Here is a sample of the program code for that:

  LOOP AT it_messtab. 
  CALL FUNCTION 'FORMAT_MESSAGE' 
    EXPORTING 
      id     = it_messtab-msgid 
      lang   = it_messtab-msgspra 
      no     = it_messtab-msgnr 
      v1     = it_messtab-msgv1 
      v2     = it_messtab-msgv2 
    IMPORTING 
    msg    =  g_msg 
  EXCEPTIONS 
      OTHERS = 0. 
  IF it_messtab-msgtyp = 'S'. 
    it_sucess-sucess_rec = g_msg. 
    it_sucess-lifnr = it_header-lifnr." Based on your field 
    it_sucess-tabix = v_lines. 
    APPEND it_sucess. 
  ELSEIF it_messtab-msgtyp = 'E'. 
    it_error-error_rec = g_msg. 
    it_error-lifnr = it_header-lifnr. 
    it_error-tabix = v_lines. 
    APPEND it_error. 
  ELSE. 
    it_info-info_rec = g_msg. 
    it_info-lifnr    = it_header-lifnr. 
    it_info-tabix    = v_lines. 
    APPEND it_info. 
  ENDIF. 
ENDLOOP.

Regards

Sudheer

Read only

Former Member
0 Likes
633

hi Srinu,

Here is the sample code how it helps ...

Regards,

Santosh

Read only

Former Member
0 Likes
633

hi,

FM FORMAT_messages is used to display error messages cought using BDCMSGCOLL in the call transaction method.

example:

REPORT ZSR_BDC_CT_ERROR.

DATA: BEGIN OF ITAB OCCURS 0,

LIFNR LIKE RF02K-LIFNR,

KTOKK LIKE RF02K-KTOKK,

NAME1 LIKE LFA1-NAME1,

SORTL LIKE LFA1-SORTL,

LAND1 LIKE LFA1-LAND1,

SPRAS LIKE LFA1-SPRAS,

END OF ITAB.

DATA : BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE,

it_error like itab occurs 0 with header line,

BDCMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

START-OF-SELECTION.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'z:\ct.txt'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_TYPE = 5

  • NO_AUTHORITY = 6

  • UNKNOWN_ERROR = 7

  • BAD_DATA_FORMAT = 8

  • HEADER_NOT_ALLOWED = 9

  • SEPARATOR_NOT_ALLOWED = 10

  • HEADER_TOO_LONG = 11

  • UNKNOWN_DP_ERROR = 12

  • ACCESS_DENIED = 13

  • DP_OUT_OF_MEMORY = 14

  • DISK_FULL = 15

  • DP_TIMEOUT = 16

  • OTHERS = 17

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

LOOP AT ITAB.

REFRESH BDCTAB.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0100'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02K-KTOKK'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'RF02K-LIFNR'

ITAB-LIFNR.

PERFORM BDC_FIELD USING 'RF02K-KTOKK'

ITAB-KTOKK.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0110'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFA1-SPRAS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFA1-NAME1'

ITAB-NAME1.

PERFORM BDC_FIELD USING 'LFA1-SORTL'

ITAB-SORTL.

PERFORM BDC_FIELD USING 'LFA1-LAND1'

ITAB-LAND1.

PERFORM BDC_FIELD USING 'LFA1-SPRAS'

ITAB-SPRAS.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0120'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFA1-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0300'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=YES'.

CALL TRANSACTION 'XK01' USING BDCTAB MODE 'A' UPDATE 'A' MESSAGES INTO BDCMSG.

if sy-subrc <> 0.

move-corresponding itab to it_error.

endif.

READ TABLE BDCMSG WITH KEY MSGTYP = 'E'.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = BDCMSG-MSGID

LANG = 'EN'

NO = BDCMSG-MSGNR

V1 = BDCMSG-MSGV1

V2 = BDCMSG-MSGV2

V3 = BDCMSG-MSGV3

V4 = BDCMSG-MSGV4

IMPORTING

MSG = BDCMSG-MSGV1

  • EXCEPTIONS

  • NOT_FOUND = 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.

WRITE 😕 BDCMSG-MSGNR,BDCMSG-MSGV1.

ENDLOOP.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE = BIN_FILESIZE

filename = 'z:\cerror.txt'

FILETYPE = 'ASC'

  • APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH = FILELENGTH

TABLES

data_tab = it_error

  • FIELDNAMES = FIELDNAMES

  • EXCEPTIONS

  • FILE_WRITE_ERROR = 1

  • NO_BATCH = 2

  • GUI_REFUSE_FILETRANSFER = 3

  • INVALID_TYPE = 4

  • NO_AUTHORITY = 5

  • UNKNOWN_ERROR = 6

  • HEADER_NOT_ALLOWED = 7

  • SEPARATOR_NOT_ALLOWED = 8

  • FILESIZE_NOT_ALLOWED = 9

  • HEADER_TOO_LONG = 10

  • DP_ERROR_CREATE = 11

  • DP_ERROR_SEND = 12

  • DP_ERROR_WRITE = 13

  • UNKNOWN_DP_ERROR = 14

  • ACCESS_DENIED = 15

  • DP_OUT_OF_MEMORY = 16

  • DISK_FULL = 17

  • DP_TIMEOUT = 18

  • FILE_NOT_FOUND = 19

  • DATAPROVIDER_EXCEPTION = 20

  • CONTROL_FLUSH_ERROR = 21

  • OTHERS = 22

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

&----


*& Form dynpro

&----


*FORM BDC_DYNPRO USING P_P1

P_P2.

CLEAR BDCTAB.

BDCTAB-PROGRAM = P_P1.

BDCTAB-DYNPRO = P_P2.

BDCTAB-DYNBEGIN = 'X'.

APPEND BDCTAB.

ENDFORM. " dynpro

&----


*& Form bdc_field

&----


FORM BDC_FIELD USING P_P3

P_P4.

CLEAR BDCTAB.

BDCTAB-FNAM = P_P3.

BDCTAB-FVAL = P_P4.

APPEND BDCTAB.

ENDFORM. " bdc_field

Read only

Former Member
0 Likes
633

hi srinu,

FM format_message can help u to know the message about that particular message id,

this FM mosty we can use in BDC,

just have look on following BDC report then u can get the IDEA about this FM.

REPORT zbdc_bill_docu_cre_vfo1

NO STANDARD PAGE HEADING MESSAGE-ID zsmep.

&----


*& Request ID: ECCK900136

*& Author : seshu

*& Date : 30/03/2007

*& This report Creates Billing document Details through BDC-Call transaction

*& method and download error files to the Application server with fixed lenth.

&----


*data declaration...

DATA: path TYPE string,

path1 TYPE string.

DATA: BEGIN OF g_tab_vf01 OCCURS 0,

fkart TYPE fkart,

fbuda TYPE fbuda,

fkdat TYPE fkdat,

prsdt TYPE prsdt,

vbeln TYPE vbeln.

DATA: END OF g_tab_vf01.

DATA: BEGIN OF g_tab_down OCCURS 0,

fkart TYPE fkart,

fbuda TYPE fbuda,

fkdat TYPE fkdat,

prsdt TYPE prsdt,

vbeln TYPE vbeln.

DATA: END OF g_tab_down.

DATA: BEGIN OF g_tab_succ OCCURS 0,

vbeln TYPE vbeln,

message TYPE string.

DATA: END OF g_tab_succ.

DATA: BEGIN OF g_tab_error OCCURS 0,

vbeln TYPE vbeln,

message TYPE string.

DATA: END OF g_tab_error.

DATA: BEGIN OF g_tab_message OCCURS 0,

vbeln TYPE vbeln,

message TYPE string.

DATA: END OF g_tab_message.

*delcarations for blocked alv...

TYPE-POOLS: slis.

DATA: l_tab_fieldcatlog TYPE slis_t_fieldcat_alv,

l_tab_fieldcatlog1 TYPE slis_t_fieldcat_alv,

l_layout TYPE slis_layout_alv,

l_events TYPE slis_t_event,

l_events1 TYPE slis_t_event,

l_wa_events LIKE LINE OF l_events,

l_pos TYPE i,

report TYPE sy-repid.

*itab for mapping...

DATA: BEGIN OF tab_map OCCURS 0.

INCLUDE STRUCTURE bdcdata.

DATA: END OF tab_map.

*itab for error messages...

DATA: BEGIN OF tab_error OCCURS 0.

INCLUDE STRUCTURE bdcmsgcoll.

DATA: END OF tab_error.

*selection screen declaration...

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-004.

PARAMETERS: file2(200) TYPE c DEFAULT 'seshu'.

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: file(200) TYPE c DEFAULT 'arteria'.

SELECTION-SCREEN END OF BLOCK b2.

AT SELECTION-SCREEN .

IF file2 EQ file.

MESSAGE e103(zsmep).

EXIT.

ENDIF.

*to get the source file from application server...

START-OF-SELECTION.

PERFORM call_ctm.

*display the output in blocked alv...

PERFORM disply_block_alv.

&----


*& Form call_ctm

&----


  • text

----


FORM call_ctm.

DATA: l_mode, l_message TYPE string,l_subrc TYPE sy-subrc.

l_mode = 'N'.

OPEN DATASET file2 FOR INPUT IN TEXT MODE ENCODING DEFAULT.

DO.

REFRESH tab_map.

READ DATASET file2 INTO g_tab_vf01.

IF sy-subrc <> 0.

EXIT.

ENDIF.

PERFORM sub USING 'SAPMV60A' '0102'.

PERFORM sub1 USING 'BDC_CURSOR'

'RV60A-PRSDT'.

PERFORM sub1 USING 'BDC_OKCODE'

'/00'.

PERFORM sub1 USING 'RV60A-FKART'

g_tab_vf01-fkart.

PERFORM sub1 USING 'RV60A-FBUDA'

g_tab_vf01-fbuda.

PERFORM sub1 USING 'RV60A-FKDAT'

g_tab_vf01-fkdat.

PERFORM sub1 USING 'RV60A-PRSDT'

g_tab_vf01-prsdt.

PERFORM sub1 USING 'KOMFK-VBELN(01)'

g_tab_vf01-vbeln.

PERFORM sub USING 'SAPMV60A' '0104'.

PERFORM sub1 USING 'BDC_CURSOR'

'VBRK-FKART'.

PERFORM sub1 USING 'BDC_OKCODE'

'=SICH'.

CALL TRANSACTION 'VF01' USING tab_map

MODE l_mode

UPDATE 'A'

MESSAGES INTO tab_error.

CLEAR l_subrc.

MOVE sy-subrc TO l_subrc.

LOOP AT tab_error.

IF l_subrc EQ 0.

  • IF tab_error-msgtyp EQ 'I' OR tab_error-msgtyp EQ 'S'.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

id = tab_error-msgid

lang = 'EN'

no = tab_error-msgnr

v1 = tab_error-msgv1

v2 = tab_error-msgv2

v3 = tab_error-msgv3

v4 = tab_error-msgv4

IMPORTING

msg = l_message

EXCEPTIONS

not_found = 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.

MOVE: g_tab_vf01-vbeln TO g_tab_succ-vbeln,

l_message TO g_tab_succ-message.

APPEND g_tab_succ.

CLEAR g_tab_succ.

  • ELSEIF

  • tab_error-msgtyp = 'E'.

ELSE.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

id = tab_error-msgid

lang = 'EN'

no = tab_error-msgnr

v1 = tab_error-msgv1

v2 = tab_error-msgv2

v3 = tab_error-msgv3

v4 = tab_error-msgv4

IMPORTING

msg = l_message

EXCEPTIONS

not_found = 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 g_tab_message-message IS NOT INITIAL.

CONCATENATE g_tab_message-message l_message INTO g_tab_message-message SEPARATED BY ';'.

ELSE.

MOVE l_message TO g_tab_message-message.

ENDIF.

MOVE g_tab_vf01-vbeln TO g_tab_message-vbeln.

MOVE-CORRESPONDING g_tab_vf01 TO g_tab_down.

APPEND g_tab_down.

ENDIF.

ENDLOOP.

APPEND g_tab_message.

REFRESH: tab_error.

  • LOOP AT g_tab_message.

  • MOVE: g_tab_message-vbeln TO g_tab_error-vbeln,

  • g_tab_message-message TO g_tab_error-message.

  • APPEND g_tab_error.

  • ENDLOOP.

  • REFRESH: g_tab_message.

ENDDO.

CLEAR: g_tab_error, g_tab_down.

  • DELETE ADJACENT DUPLICATES FROM g_tab_succ[] COMPARING vbeln.

  • DELETE ADJACENT DUPLICATES FROM g_tab_error[] COMPARING vbeln.

CLOSE DATASET file2.

PERFORM dload_error_appli.

ENDFORM. "call_ctm

&----


*& Form sub

&----


  • text

----


  • -->P_0122 text

  • -->P_0123 text

----


FORM sub USING a b.

CLEAR tab_map.

tab_map-program = a.

tab_map-dynpro = b.

tab_map-dynbegin = 'X'.

APPEND tab_map.

ENDFORM. " sub

&----


*& Form sub1

&----


  • text

----


  • -->P_0153 text

  • -->P_0154 text

----


FORM sub1 USING c d.

CLEAR tab_map.

tab_map-fnam = c.

tab_map-fval = d.

APPEND tab_map.

ENDFORM. " sub1

&----


*& Form disply_block_alv

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM disply_block_alv .

PERFORM fill_fieldcatlog.

PERFORM fill_fieldcatlog1.

PERFORM call_block_alv.

ENDFORM. " disply_block_alv

&----


*& Form fill_fieldcatlog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_fieldcatlog .

PERFORM build_catlog USING l_pos 'G_TAB_SUCC' 'VBELN' '16' text-005.

PERFORM build_catlog USING l_pos 'G_TAB_SUCC' 'MESSAGE' '90' text-007.

ENDFORM. " fill_fieldcatlog

&----


*& Form build_catlog

&----


  • text

----


  • -->P_L_POS text

  • -->P_0348 text

  • -->P_0349 text

  • -->P_0350 text

  • -->P_TEXT_004 text

----


FORM build_catlog USING u_pos TYPE any

value(u_0348) TYPE any

value(u_0349) TYPE any

value(u_0350) TYPE any

u_text TYPE any.

DATA: l_wa_fieldcatlog TYPE slis_fieldcat_alv.

ADD 1 TO u_pos.

l_wa_fieldcatlog-col_pos = u_pos.

l_wa_fieldcatlog-tabname = u_0348.

l_wa_fieldcatlog-fieldname = u_0349.

l_wa_fieldcatlog-outputlen = u_0350.

l_wa_fieldcatlog-reptext_ddic = u_text.

APPEND l_wa_fieldcatlog TO l_tab_fieldcatlog.

ENDFORM. " build_catlog

&----


*& Form fill_fieldcatlog1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_fieldcatlog1 .

PERFORM build_catlog1 USING l_pos 'G_TAB_MESSAGE' 'VBELN' '16' text-005.

PERFORM build_catlog1 USING l_pos 'G_TAB_MESSAGE' 'MESSAGE' '90' text-006.

ENDFORM. " fill_fieldcatlog1

&----


*& Form call_block_alv

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM call_block_alv .

report = sy-repid.

CLEAR l_events.

l_wa_events-name = slis_ev_top_of_page.

l_wa_events-form = 'TOP_OF_PAGE'.

APPEND l_wa_events TO l_events.

CLEAR l_wa_events.

l_wa_events-name = slis_ev_top_of_page.

l_wa_events-form = 'ETOP_OF_PAGE'.

APPEND l_wa_events TO l_events1.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = report

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IT_EXCLUDING =

.

IF g_tab_succ[] IS INITIAL.

MESSAGE s101(zsmep).

  • EXIT.

ELSE.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = l_layout

it_fieldcat = l_tab_fieldcatlog

i_tabname = 'G_TAB_SUCC'

it_events = l_events

  • IT_SORT =

  • I_TEXT = ' '

TABLES

t_outtab = g_tab_succ

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 2

  • OTHERS = 3

.

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.

IF g_tab_message[] IS INITIAL.

MESSAGE s102(zsmep).

ELSE.

DELETE g_tab_message WHERE vbeln EQ ''.

DELETE ADJACENT DUPLICATES FROM g_tab_message[] COMPARING vbeln.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = l_layout

it_fieldcat = l_tab_fieldcatlog1

i_tabname = 'G_TAB_MESSAGE'

it_events = l_events1

  • IT_SORT =

  • I_TEXT = ' '

TABLES

t_outtab = g_tab_message

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 2

  • OTHERS = 3

.

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.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

  • EXPORTING

  • I_INTERFACE_CHECK = ' '

  • IS_PRINT =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

  • 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.

ENDFORM. " CALL_BLOCK_ALV

&----


*& Form top_of_page

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM top_of_page .

WRITE: 'Success Records'.

ENDFORM. " top_of_page

&----


*& Form ETOP_OF_PAGE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM etop_of_page .

WRITE: 'Error Records'.

ENDFORM. " ETOP_OF_PAGE

&----


*& Form build_catlog1

&----


  • text

----


  • -->P_L_POS text

  • -->P_0473 text

  • -->P_0474 text

  • -->P_0475 text

  • -->P_TEXT_004 text

----


FORM build_catlog1 USING u_pos TYPE any

value(u_0473) TYPE any

value(u_0474) TYPE any

value(u_0475) TYPE any

u_text TYPE any.

DATA: l_wa_fieldcatlog1 TYPE slis_fieldcat_alv.

ADD 1 TO u_pos.

l_wa_fieldcatlog1-col_pos = u_pos.

l_wa_fieldcatlog1-tabname = u_0473.

l_wa_fieldcatlog1-fieldname = u_0474.

l_wa_fieldcatlog1-outputlen = u_0475.

l_wa_fieldcatlog1-reptext_ddic = u_text.

APPEND l_wa_fieldcatlog1 TO l_tab_fieldcatlog1.

ENDFORM. " build_catlog1

&----


*& Form DLOAD_ERROR_APPLI

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM dload_error_appli .

OPEN DATASET file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

DELETE ADJACENT DUPLICATES FROM g_tab_down[] COMPARING vbeln.

LOOP AT g_tab_down.

TRANSFER g_tab_down TO file.

ENDLOOP.

CLOSE DATASET file.

ENDFORM. " DLOAD_ERROR_APPLI

regards...

seshu.