Application Development 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: 

SLG1/MM90 - Multiple Application logs - BAL - extraction and download

former_member214131
Active Contributor
0 Kudos

Dear Experts,

Is there any program / transaction to extract multiple logs with respect to material master (MM90)  (MATMAS - IDoc) in background (spool / file).

Best Regards, Murugesh

1 ACCEPTED SOLUTION

former_member214131
Active Contributor
0 Kudos

Solved by self using FM APPL_LOG_READ_DB_WITH_LOGNO

4 REPLIES 4

former_member214131
Active Contributor
0 Kudos

Solved by self using FM APPL_LOG_READ_DB_WITH_LOGNO

0 Kudos

Hi, can you please tell how did you achieve this? I passed the IDoc number to LOGNUMBERS table but FM is not fetching any data. Am I missing something?

0 Kudos

Hi,

Check the code in BOLD.

Just pasted the LSMW where the logs were extracted.

Hope this helps.

Best Regards, Murugesh

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

* LSM Workbench: Data Conversion Program

* Program:      /1CADMC/SAP_LSMW_CONV_00000569

* Date:         07.03.2013

* Time:       15:04:19

* User:         

* Project:      

* Subproject:  

* Object:        ZTC_CA_BAL

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

report /1CADMC/SAP_LSMW_CONV_00000569

  message-id /sapdmc/lsmw.

* Global data definitions and table declarations

include:

  /SAPDMC/SAP_LSMW_INC_GLOBALS.

* Additional data definitions and table declarations

include:

  /sapdmc/sap_lsmw_conv_data.

* Target structure definitions

data:

  begin of ZMM03_DUMMY occurs 0,

    TABNAME(000030) type C,

    TCODE(000020) type C,

    MATNR(000018) type C,

  end of ZMM03_DUMMY .

data:

  init_ZMM03_DUMMY like ZMM03_DUMMY,

  prev_ZMM03_DUMMY like ZMM03_DUMMY.

* Source structure definitions

data:

  begin of LSMW_Z001,

    MATNR(018) type C,

  end of LSMW_Z001.

data:

  begin of Z001 occurs 0.

        include structure LSMW_Z001.

data:   recnr_000001 type i.

data:

  end of Z001.

* Counters

data:

  g_cnt_Z001  type i.

* Counter ct_xxxxxxxxxx: number of transferred records

data:

  ct_ZMM03_DUMMY  type i,

  cs_ZMM03_DUMMY  type i.

* Global data definitions and data declarations

* __GLOBAL_DATA__

TABLES: balhdr.

DATA: g_t_balhdr LIKE balhdr OCCURS 0 WITH HEADER LINE.

DATA: g_msg TYPE baltmsg.

*-Log Numbers

DATA: BEGIN OF g_t_lognumbers  OCCURS 0.

DATA: balognr TYPE balognr.

DATA: END OF g_t_lognumbers.

DATA g_s_lognumbers LIKE LINE OF g_t_lognumbers.

*- Log header data

DATA: BEGIN OF g_t_header_data_tab OCCURS 0.

        INCLUDE STRUCTURE balhdr.

DATA: END OF g_t_header_data_tab.

*- Log parameters

DATA: BEGIN OF g_t_header_para_tab OCCURS 0.

        INCLUDE STRUCTURE balhdrp.

DATA: END OF g_t_header_para_tab.

*- Log messages

DATA: BEGIN OF g_t_message_tab OCCURS 0.

        INCLUDE STRUCTURE balm.

DATA: END OF g_t_message_tab.

DATA: g_s_message_tab LIKE LINE OF g_t_message_tab.

*- message details

DATA: BEGIN OF g_t_message_tab_detail OCCURS 0.

        INCLUDE STRUCTURE balm.

DATA: message TYPE baltmsg.

DATA: END OF g_t_message_tab_detail.

DATA: g_s_message_tab_detail LIKE LINE OF g_t_message_tab_detail.

*- Message parameters

DATA: BEGIN OF g_t_message_para_tab OCCURS 0.

        INCLUDE STRUCTURE balmp.

DATA: END OF g_t_message_para_tab.

SELECT-OPTIONS: s_logno FOR balhdr-lognumber . "obligatory.

SELECT-OPTIONS: s_obj FOR balhdr-object.

SELECT-OPTIONS: s_sobj FOR balhdr-subobject.

SELECT-OPTIONS: s_extno FOR balhdr-extnumber.

SELECT-OPTIONS: s_aluser FOR balhdr-aluser.

SELECT-OPTIONS: s_alprog FOR balhdr-alprog.

SELECT-OPTIONS: s_altcod FOR balhdr-altcode.

SELECTION-SCREEN ULINE.

PARAMETERS: p_f1 LIKE rlgrap-filename OBLIGATORY

DEFAULT 'C:\temp\g_t_header.txt'.

PARAMETERS: p_f2 LIKE rlgrap-filename OBLIGATORY

DEFAULT 'C:\temp\g_t_message.txt'.

*- BALHDR extract

SELECT * INTO CORRESPONDING FIELDS OF TABLE g_t_balhdr

FROM balhdr

WHERE

lognumber IN s_logno AND

object IN s_obj AND

subobject IN s_sobj AND

extnumber IN s_extno AND

aluser IN s_aluser AND

alprog IN s_alprog AND

altcode IN s_altcod.

CLEAR: g_t_lognumbers, g_t_lognumbers[].

LOOP AT g_t_balhdr.

  g_s_lognumbers-balognr = g_t_balhdr-lognumber.

  APPEND g_s_lognumbers TO g_t_lognumbers.

ENDLOOP.

*-BREAK-POINT.

CALL FUNCTION 'APPL_LOG_READ_DB_WITH_LOGNO'

* EXPORTING

*   PUT_INTO_MEMORY          = ' '

* IMPORTING

*   NUMBER_OF_LOGS           =

  TABLES

    lognumbers               = g_t_lognumbers

   header_data              = g_t_header_data_tab

   header_parameters        = g_t_header_para_tab

   messages                 = g_t_message_tab

   message_parameters       = g_t_message_para_tab

*   CONTEXTS                 =

*   T_EXCEPTIONS             =

          .

*-BREAK-POINT.

LOOP AT g_t_message_tab INTO g_s_message_tab.

  g_s_message_tab_detail =  g_s_message_tab.

*- Build message..

  CALL FUNCTION 'MESSAGE_TEXT_BUILD'

    EXPORTING

      msgid               = g_s_message_tab_detail-msgid

      msgnr               = g_s_message_tab_detail-msgno

      msgv1               = g_s_message_tab_detail-msgv1

      msgv2               = g_s_message_tab_detail-msgv2

      msgv3               = g_s_message_tab_detail-msgv3

      msgv4               = g_s_message_tab_detail-msgv4

    IMPORTING

      message_text_output = g_s_message_tab_detail-message.

  APPEND  g_s_message_tab_detail TO  g_t_message_tab_detail.

ENDLOOP.

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

*   BIN_FILESIZE                  = ' '

*   CODEPAGE                      = ' '

   filename                      = p_f1

   filetype                      = 'DAT'

*   MODE                          = ' '

*   WK1_N_FORMAT                  = ' '

*   WK1_N_SIZE                    = ' '

*   WK1_T_FORMAT                  = ' '

*   WK1_T_SIZE                    = ' '

*   COL_SELECT                    = ' '

*   COL_SELECTMASK                = ' '

*   NO_AUTH_CHECK                 = ' '

* IMPORTING

*   FILELENGTH                    =

  TABLES

    data_tab                      = g_t_header_data_tab

*   FIELDNAMES                    =

EXCEPTIONS

   file_open_error               = 1

   file_write_error              = 2

   invalid_filesize              = 3

   invalid_type                  = 4

   no_batch                      = 5

   unknown_error                 = 6

   invalid_table_width           = 7

   gui_refuse_filetransfer       = 8

   customer_error                = 9

   no_authority                  = 10

   OTHERS                        = 11

          .

IF sy-subrc <> 0.

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

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

ENDIF.

CALL FUNCTION 'MESSAGE_TEXT_BUILD'

  EXPORTING

    msgid               = sy-msgid

    msgnr               = sy-msgno

    msgv1               = sy-msgv1

    msgv2               = sy-msgv2

    msgv3               = sy-msgv3

    msgv4               = sy-msgv4

  IMPORTING

    message_text_output = g_msg.

WRITE 😕 p_f1(50), sy-msgty, g_msg(150).

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

*   BIN_FILESIZE                  = ' '

*   CODEPAGE                      = ' '

   filename                      = p_f2

   filetype                      = 'DAT'

*   MODE                          = ' '

*   WK1_N_FORMAT                  = ' '

*   WK1_N_SIZE                    = ' '

*   WK1_T_FORMAT                  = ' '

*   WK1_T_SIZE                    = ' '

*   COL_SELECT                    = ' '

*   COL_SELECTMASK                = ' '

*   NO_AUTH_CHECK                 = ' '

* IMPORTING

*   FILELENGTH                    =

  TABLES

    data_tab                      = g_t_message_tab_detail

*   FIELDNAMES                    =

EXCEPTIONS

   file_open_error               = 1

   file_write_error              = 2

   invalid_filesize              = 3

   invalid_type                  = 4

   no_batch                      = 5

   unknown_error                 = 6

   invalid_table_width           = 7

   gui_refuse_filetransfer       = 8

   customer_error                = 9

   no_authority                  = 10

   OTHERS                        = 11

          .

IF sy-subrc <> 0.

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

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

ENDIF.

CALL FUNCTION 'MESSAGE_TEXT_BUILD'

  EXPORTING

    msgid               = sy-msgid

    msgnr               = sy-msgno

    msgv1               = sy-msgv1

    msgv2               = sy-msgv2

    msgv3               = sy-msgv3

    msgv4               = sy-msgv4

  IMPORTING

    message_text_output = g_msg.

WRITE 😕 p_f2(50), sy-msgty , g_msg(150).

parameters:

  p_filept no-display,

  p_trfcpt no-display,

  p_packge(5) type n no-display.

* Select-option for wildcard value in file names

selection-screen begin of block selopts3

                 with frame title text-003.

select-options:

  so_wldcd for /sapdmc/lsofiw-wildcardvalue no-display.

selection-screen end of block selopts3.

initialization.

* Object identifer

  g_project = 'Z_TRANSCANADA  '.

  g_subproj = 'ZTC_Z99        '.

  g_object = 'ZTC_CA_BAL     '.

  g_objecttype = '02'.

start-of-selection.

* Initializations

  perform initializations.

* Reset counters and flags

  perform reset_counters_and_flags.

* Reset tables

  perform reset_tables.

* Create initial structures with nodata characters

  perform create_initial_structures.

* Execute data conversion.

  perform execute_data_conversion.

* Final message

  perform final_message.

* Close files

  perform close_files.

* Write protocol.

  perform write_protocol.

* End program

  exit.

* Form Routines

  include:

    /sapdmc/sap_lsmw_conv_forms,

    /sapdmc/sap_lsmw_conv_prot.

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

*&      Form  execute_data_conversion

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

*       text

*----------------------------------------------------------------------*

form execute_data_conversion.

  data: struc_length type i.

  do.

    perform read_next_record.

    if g_flg_end_of_file = yes. exit. endif.

    case g_record.

      when 'Z001'.

        if g_flg_convert_transaction = yes.

          perform convert_transaction.

          perform clear_source_tables.

        else.

          g_flg_convert_transaction = yes.

        endif.

        assign gs_buffer-data to <g_buffer_to_struc>

               casting like lsmw_Z001.

        move-corresponding <g_buffer_to_struc> to Z001.

        Z001-recnr_000001 = g_cnt_records_read.

        append Z001.

        add 1 to g_cnt_Z001.

        add 1 to g_cnt_transactions_read.

      when others.

* perform insert_message using ... .

    endcase.

    if ( so_tcntr-option = 'BT' and

         g_cnt_transactions_read > so_tcntr-high ) or

       ( so_tcntr-option = 'EQ' and

         g_cnt_transactions_read > so_tcntr-low ).

      exit.

    endif.

  enddo.

* Process last transaction.

  perform convert_transaction.

  perform clear_source_tables.

endform.                    "execute_data_conversion

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

*&      Form  convert_transaction

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

*       text

*----------------------------------------------------------------------*

form convert_transaction.

  check so_tcntr.

  loop at Z001.

    perform convert_0001. " ZMM03_DUMMY

  ENDLOOP.

* End of transaction

  transfer_transaction.

endform.                    "convert_transaction

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

*&      Form  clear_source_tables

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

*       text

*----------------------------------------------------------------------*

form clear_source_tables.

  clear Z001[].

endform.                    "clear_source_tables

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

*&      Form  create_initial_structures

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

*       text

*----------------------------------------------------------------------*

form create_initial_structures.

  perform initialize_with_nodata using

          'ZMM03_DUMMY' init_ZMM03_DUMMY.

endform.                    "create_initial_structures

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

*&      Form  convert_0001

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

*       text

*----------------------------------------------------------------------*

form convert_0001. " ZMM03_DUMMY

  check g_skip_transaction = no.

  g_skip_record = no.

  g_record = 'ZMM03_DUMMY'.

* --- __BEGIN_OF_RECORD__

  ZMM03_DUMMY = INIT_ZMM03_DUMMY.

* --- ZMM03_DUMMY-TABNAME

  ZMM03_DUMMY-TABNAME = 'ZMM03_DUMMY'.

* --- ZMM03_DUMMY-TCODE

  ZMM03_DUMMY-TCODE = 'MM03'.

* --- __END_OF_RECORD__

  transfer_record.

  g_skip_record = no.

endform.                    "convert_0001

0 Kudos

Thank you very much, it works.