02-05-2013 8:55 AM
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
02-06-2013 1:30 PM
02-06-2013 1:30 PM
07-16-2013 10:39 AM
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?
07-18-2013 5:53 AM
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
07-18-2013 7:37 AM