• No results found

Application Logging in SAP Using ABAP

N/A
N/A
Protected

Academic year: 2021

Share "Application Logging in SAP Using ABAP"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

© 2006 SAP AG 1

Application Logging in SAP Using ABAP

Applies to:

SAP R3/ISU/CRM – ABAP side

Summary

This article explains how to create your own application logging program in ABAP

Author(s): Ashim Chowdhury

Company: Tata Consultancy Services Ltd.

Created on:

08 September 2006

Author Bio

Ashim Chowdhury is an SAP Technical consultant with Tata Consultancy, India.

He works in the SAP technical area(ABAP, Net weaver, XI).

(2)

SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 2

Table of Contents

Applies to: ... 1

Summary... 1

Author Bio ... 1

Application Logging in SAP ... 2

Configuration step: ... 2

Development Step:... 2

Using the function module: ... 6

Related Content... 7

Disclaimer and Liability Notice... 8

Application Logging in SAP

SAP provides standard functionality to write into as well as view the application log. This article will explain in

detail how to create your own logging function module for application logging using standard SAP log facility.

Two transaction code related to application logging are

SLG0 -> Used to maintain the log object

SLG1 -> Used to view the log

Configuration step:

In this step create a log object.

1. Open transaction SLG0. An information message about cross-client table will come.

2. Click the button “New Entries”. Enter the name and description of your log object (say ZTESTLOG as

object name and “Test Log” as object description) and save.

Development Step:

The following standard function modules provided by SAP has been used to create the Z function module for

logging.

BAL_GLB_MSG_DEFAULTS_SET

BAL_DB_SAVE

BAL_LOG_MSG_ADD

(3)

SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

© 2006 SAP AG 3

1. Go to transaction SE11. Create a z-structure Z_LOG_MESSAGE having the following fields

Component

Component Type

MSGTY SYMSGTY

MSG_TEXT_1 SYMSGV

MSG_TEXT_2 SYMSGV

MSG_TEXT_3 SYMSGV

MSG_TEXT_4 SYMSGV

2. Crate a message class say ZMESSAGE in transaction SE91 and a message 999 with four

placeholder ( & ) as the text.

3. Go to transaction SE37. Create a function group say ZLOG

4. After the function group is created, create a function module in that group. Let is name it

ZIU_MESSAGE_LOGGING.

Import parameters:

a. I_LOG_OBJECT type BALOBJ_D -> Application log: Object name (Application code)

b. I_EXTNUMBER type String -> Application Log: External ID

Export parameters: None

Changing parameters: None

Tables parameters:

T_LOG_MESSAGE type Z_LOG_MESSAGE

Exceptions:

LOG_HEADER_INCONSISTENT

LOGGING ERROR

Paste the code below as the source code

FUNCTION ZIU_MESSAGE_LOGGING.

*"--- *"*"Local interface:

*" IMPORTING

*" REFERENCE(I_LOG_OBJECT) TYPE BALOBJ_D *" REFERENCE(I_EXTNUMBER) TYPE STRING *" TABLES

(4)

SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

© 2006 SAP AG 4

*" T_LOG_MESSAGE STRUCTURE Z_LOG_MESSAGE *" EXCEPTIONS

*" LOG_HEADER_INCONSISTENT *" LOGGING_ERROR

*"--- * Author :Ashim Chowdhury

* DESCRIPTION: This function module is used insert messages in the * application log

CONSTANTS: c_message TYPE syst-msgid VALUE 'ZMESSAGE', c_999 TYPE syst-msgno VALUE '999'.

DATA:

l_log_handle TYPE balloghndl, l_s_log TYPE bal_s_log, l_dummy type string,

l_ext_no type bal_s_log-extnumber, l_s_mdef TYPE bal_s_mdef.

if T_LOG_MESSAGE[] is not initial. l_s_log-object = I_LOG_OBJECT. l_ext_no = I_EXTNUMBER.

l_s_log-extnumber = l_ext_no.

* Create the log with header data

CALL FUNCTION 'BAL_LOG_CREATE' EXPORTING i_s_log = l_s_log IMPORTING E_LOG_HANDLE = l_log_handle EXCEPTIONS LOG_HEADER_INCONSISTENT = 1 OTHERS = 2. IF sy-subrc <> 0. case sy-subrc. when 1. raise LOG_HEADER_INCONSISTENT. when others. raise LOGGING_ERROR. endcase. ENDIF. l_s_mdef-log_handle = l_log_handle.

* Set the default value

CALL FUNCTION 'BAL_GLB_MSG_DEFAULTS_SET' EXPORTING

i_s_msg_defaults = l_s_mdef EXCEPTIONS

(5)

SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

© 2006 SAP AG 5

OTHERS = 0.

* Loop the message table and write the messages into the log

loop at T_LOG_MESSAGE.

* Use the message type ZMESSAGE and msg no 999 * Issue the message in a dummy variable

message ID C_message type t_log_message-MSGTY number C_999 with t_log_message-MSG_TEXT_1 t_log_message-MSG_TEXT_2 t_log_message-MSG_TEXT_3 t_log_message-MSG_TEXT_4 into l_dummy.

* The parameters set by message statement will be used * Add the message in the log

PERFORM msg_add. endloop.

* save logs in the database

CALL FUNCTION 'BAL_DB_SAVE' EXPORTING I_SAVE_ALL = 'X' EXCEPTIONS LOG_NOT_FOUND = 1 SAVE_NOT_ALLOWED = 2 NUMBERING_ERROR = 3 OTHERS = 4 . 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. ENDFUNCTION. *--- * FORM MSG_ADD *--- * Add the message to the log

*---*

FORM msg_add. DATA:

l_s_msg TYPE bal_s_msg.

* define data of message for Application Log

l_s_msg-msgty = sy-msgty. l_s_msg-msgid = sy-msgid. l_s_msg-msgno = sy-msgno. l_s_msg-msgv1 = sy-msgv1. l_s_msg-msgv2 = sy-msgv2. l_s_msg-msgv3 = sy-msgv3.

(6)

SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

© 2006 SAP AG 6

l_s_msg-msgv4 = sy-msgv4.

* add this message to log file

* (I_LOG_HANDLE is not specified, we want to add to the default log. * If it does not exist we do not care =>EXCEPTIONS log_not_found = 0)

CALL FUNCTION 'BAL_LOG_MSG_ADD' EXPORTING * I_LOG_HANDLE = i_s_msg = l_s_msg EXCEPTIONS log_not_found = 0 OTHERS = 1. 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.

Using the function module:

In your ABAP program write the following code and use this function module ZIU_MESSAGE_LOGGING for

logging.

Data declaration->

* Internal table for message logging

DATA: it_log_message TYPE STANDARD TABLE OF z_log_message, wa_log_message TYPE z_log_message,

l_ext_number TYPE string.

Constants:

c_obj_zxiproxy TYPE balobj_d VALUE 'ZTESTLOG'.

* Now populate the internal table with the log messages as shown below. wa_log_message- * msgty is the type of the message.

* E -> Error, W -> Warning, S -> Success * Logging code for insert message into log

CLEAR wa_log_message.

wa_log_message-msgty = 'E'. “ Can use W or S wa_log_message-msg_text_1 = < Message text 1>. wa_log_message-msg_text_2 = < Message text 2>

(7)

SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

© 2006 SAP AG 7

wa_log_message-msg_text_3 = < Message text 3> wa_log_message-msg_text_4 = < Message text 4>

* Append the message into the internal table

APPEND wa_log_message TO it_log_message.

At the end transfer the log message to the system log by calling function module ZIU_MESSAGE_LOGGING. L_EXT_NUMBER will bt any string of your choice.

* Function module ZIU_MESSAGE_LOGGING will do the logging

* i_log_object is the object type (to be configrd using txn SLG0

CALL FUNCTION 'ZIU_MESSAGE_LOGGING' EXPORTING i_log_object = c_obj_zxiproxy i_extnumber = l_ext_number TABLES t_log_message = it_log_message EXCEPTIONS log_header_inconsistent = 1 logging_error = 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.

The logged messages can be viewed in transaction SLG1. For filtering the messages use the Object type.

Related Content

Please include at least three references to SDN documents or web pages.

(8)

SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com

© 2006 SAP AG 8

Disclaimer and Liability Notice

This document may discuss sample coding or other information that does not include SAP official interfaces

and therefore is not supported by SAP. Changes made based on this information are not supported and can

be overwritten during an upgrade.

SAP will not be held liable for any damages caused by using or misusing the information, code or methods

suggested in this document, and anyone using these methods does so at his/her own risk.

SAP offers no guarantees and assumes no responsibility or liability of any type with respect to the content of

this technical article or code sample, including any liability resulting from incompatibility between the content

within this document and the materials and services offered by SAP. You agree that you will not hold, or

seek to hold, SAP responsible or liable with respect to the content of this document.

References

Related documents

Prediction of the flow patterns around and through a net grid with Reynolds averaged Navier-Stokes (RANS) method.. The length of the net grid and the parameters of the meshes were

In this paper, we will present a polynomial time algorithm to nd a minimum convex partition with respect to a point set S where S is constrained to lie on the boundaries of a

Based on the safety risk analysis performed in this study, hazard severity and hazard complexity are the two major factors of aircraft safety risk and the required effort to ensure an

Information related to the curricula of Punjab/Federal Boards, student activities, personnel evaluation methods, Government of Punjab employment rules, current data

Log Sheet and Report.. However, we cannot fully account for the true strength of cast iron as it also experience shear stress in the longitudinal direction, causing it to fail in a 45

Figure 6 (a) UV–visible spectra of 4-CP solution irradiated with visible light at different time intervals in the presence of the C/ZnO/CdS nanocomposite, (b) HPLC chromatograms of

With free labor mobility, the rural-to-urban migration process will come to a halt when the urban and rural wages for unskilled workers are equalized: the urban wage will

Considering the problem of deleting edges to obtain a graph with restricted maximum componet size, restricted to graphs of small treewidth, the algorithm we describe in this