Расширенное логирование в разрезе идентификатора документа

Объекты по расширенному логированию хранятся в пакете /TRL/XDE_LOGGING.

Для расширенного логирования создан класс /TRL/XDE_CL_EXTENDED_LOGGER. Данный класс наследует интерфейс /TRL/XDE_IF_LOGGER.

Методы класса /TRL/XDE_CL_EXTENDED_LOGGER

Таблица 275 Методы класса /TRL/XDE_CL_EXTENDED_LOGGER

Имя метода

Вид

Видимость

Описание

/TRL/XDE_IF_LOGGER~GET_INSTANCE

Static Method

Public

Получить экземпляр класса

/TRL/XDE_IF_LOGGER~APPL_LOG_RETURN

Instance Method

Public

Сохранить структуру /TRL/XDE_return в журнал приложения

/TRL/XDE_IF_LOGGER~APPL_LOG_TEXT

Instance Method

Public

Сохранить информацию в журнал приложения

ADD_MSG

Static Method

Public

Добавить сообщение в лог

SHOW_LOG

Static Method

Public

Вывести лог

SET_NO_ADDITION

Static Method

Public

Установить флаг добавления сообщений в лог

GET_SUBOBJECT

Instance Method

Protected

Получить имя SLG подобъекта

GET_OBJECT

Static Method

Protected

Получить ссылку на объект

DB_SAVE

Instance Method

Private

Сохранить в журнал приложений SAP

CHECK_LOG_OPERATION

Static Method

Private

Проверить логирование для операции

Описание методов класса

Получить экземпляр класса

Метод /TRL/XDE_IF_LOGGER~GET_INSTANCE не реализован в классе.

Сохранить структуру с данными об ошибке в журнал приложения

Метод /TRL/XDE_IF_LOGGER~APPL_LOG_RETURN не реализован в классе.

Сохранить информацию в журнал приложения

Метод /TRL/XDE_IF_LOGGER~APPL_LOG_TEXT реализован в классе. Данный метод добавляет сообщение в лог по идентификатору журнала. Кроме того, длинный текст разбивается на части и сохраняется как таблица текстов. В качестве обработки длинного сообщения задается функциональный модуль /TRL/XDE_LOG_CALLBACK_SHOW_DETAIL.

Таблица 276 Параметры метода /TRL/XDE_IF_LOGGER~APPL_LOG_TEXT

Имя параметра

Вид

Обязателен

Тип

Описание

IV_RECORD_ID

Importing

ANY

Идентификатор документа

IV_PRM_NAME

Importing

ANY

Имя параметра

IV_PRM_VALUE

Importing

ANY

Значение параметра

IT_LOG_PARAM

Importing

/TRL/XDE_T_LOG_PARAM

Таблица параметров

IV_STEXT

Importing

X

ANY

Короткий текст сообщения

IV_LTEXT

Importing

ANY

Длинный текст сообщения

IV_MSGTY

Importing

ANY

Тип сообщения (по умолчанию «E»)

IV_PROB_CLASS

Importing

BALPROBCL

Класс проблем сообщения

Добавить сообщение в лог

Данный метод полностью выполняет операцию добавления сообщения в лог: создание объекта логирования, выполнение проверок и сохранение сообщения. Если до вызова данного метода сделать вызов метода SET_NO_ADDITION с параметром IV_NO_ADDITION = «X», то метод добавления сообщения не будет отрабатывать. В остальных случаях делается вызов метода CHECK_LOG_OPERATION и в случае его удачного завершения (возвращен объект класса) с помощью /TRL/XDE_IF_LOGGER~APPL_LOG_TEXT вызывается метод добавления сообщения в лог.

Таблица 277 Параметры метода ADD_MSG

Имя параметра

Вид

Обязателен

Тип

Описание

IV_OPER

Importing

X

CLIKE

Имя операции

IS_HEADER

Importing

/TRL/XDE_HEADER

Заголовок документа

IV_STEXT

Importing

X

CLIKE

Короткий текст сообщения

IV_LTEXT

Importing

CLIKE

Длинный текст сообщения

IV_MSGTY

Importing

CLIKE

Тип сообщения (по умолчанию «E»)

Вывести лог

Данный метод считывает все журналы по идентификатору документа, который передается как внешний идентификатор журналов. Кроме того, поиск по журналам выполняется с учетом объекта логирования /TRL/XDE_LOG.

Таблица 278 Параметры метода SHOW_LOG

Имя параметра

Вид

Обязателен

Тип

Описание

IS_DATA

Importing

X

ANY

Данные, содержащие идентификатор документа

Установить флаг добавления сообщений в лог

Данный метод устанавливает флаг (атрибут MV_NO_ADD) равным значению параметра IV_NO_ADDITION. Если атрибут равен «X», то метод добавления сообщения не будет выполняться.

Таблица 279 Параметры метода SET_NO_ADDITION

Имя параметра

Вид

Обязателен

Тип

Описание

IV_NO_ADDITION

Importing

XFELD

Флаг, запрещающий добавлять сообщения (по умолчанию «X» )

Получить имя SLG подобъекта

Данный метод возвращает значение подобъекта логирования в зависимости от используемой операции.

Таблица 280 Параметры метода GET_SUBOBJECT

Имя параметра

Вид

Обязателен

Тип

Описание

RV_SUBOBJ

Returning

X

BALSUBOBJ

Подобъект логирования

Получить ссылку на объект

Данный метод возвращает объект класса. Прежде всего выполняется поиск по уже созданным объектам, если по идентификатору документа и имени операции такой объект находится, то работа метода завершается. В противном случае создается новый объект.

Таблица 281 Параметры метода GET_OBJECT

Имя параметра

Вид

Обязателен

Тип

Описание

IV_OPER

Importing

X

CLIKE

Имя операции

IV_RECORD_ID

Importing

X

/TRL/XDE_ED_RECORD_ID_EXT

Идентификатор документа

RO_OBJ

Returning

X

/TRL/XDE_CL_EXTENDED_LOGGER

Объект класса расширенного логирования

Сохранение в журнал приложений SAP

Данный метод сохраняет добавленные сообщения в журнал приложения. Метод не имеет параметров.

Проверить логирование для операции

В первую очередь проверяется наличие уже созданного объекта логирования по идентификатору документа и имени операции. Если такой объект создан, то работа метода завершается. В противном случае метод выполняет проверку по настроечной таблице /TRL/XDE_LOG_SET. В качестве критериев для проверки используются все ключевые поля таблицы:

  • DIRECTION (направление документооборота)

  • ID_OED (идентификатор оператора)

  • SAP_DOC_TYP (тип документа SAP)

  • OED_DOC_TYP (тип документа оператора)

Если в таблице находится строка, удовлетворяющая условиям выборки, и имеющая значение = «X» в поле, соответствующем операции, то проверка считается выполненной. В таком случае делается вызов метода GET_OBJECT.

Таблица 282 Параметры метода CHECK_LOG_OPERATION

Имя параметра

Вид

Обязателен

Тип

Описание

IV_DIRECTION

Importing

X

/TRL/XDE_ED_DIRECTION

Направление документооборота

IV_ID_OED

Importing

X

/TRL/XDE_ED_ID_OED

Идентификатор оператора

IV_SAP_DOC_TYP

Importing

X

/TRL/XDE_ED_OBJECT_ART

Вид документа SAP

IV_OED_DOC_TYP

Importing

X

/TRL/XDE_ED_DOC_TYPE

Вид документа оператора

IV_OPER

Importing

CLIKE

Имя операции

IV_RECORD_ID

Importing

/TRL/XDE_ED_RECORD_ID_EXT

Идентификатор документа

RO_LOG

Returning

/TRL/XDE_CL_EXTENDED_LOGGER

Объект класса расширенного логирования

Описание атрибутов класса

Таблица 283 Атрибуты класса /TRL/XDE_CL_EXTENDED_LOGGER

Имя атрибута

Вид

Видимость

Тип

Описание

MS_OPER

Constant

Public

Внутренний тип

Структура, содержащая имена операций

MC_MSGTY_I

Static Attribute

Public

MSGTY

Вид сообщения. Значение «I»

MC_MSGTY_W

Static Attribute

Public

MSGTY

Вид сообщения. Значение «W»

MC_MSGTY_E

Static Attribute

Public

MSGTY

Вид сообщения. Значение «E»

MC_MSGTY_S

Static Attribute

Public

MSGTY

Вид сообщения. Значение «S»

MC_TEXTPAR1

Static Attribute

Public

CHAR2

Параметр для замены. Значение «&1»

MC_TEXTPAR2

Static Attribute

Public

CHAR2

Параметр для замены. Значение «&2»

MC_REC_ID

Static Attribute

Public

TPDA_ITAB_COL_VAL

Имя компонента. Значение «RECORD_ID»

MS_SUBOBJ

Constant

Protected

Внутренний тип

Структура, содержащая имена подобъектов

MV_HANDLE

Instance Attribute

Protected

BALLOGHNDL

Идентификатор журнала

MV_OPER

Instance Attribute

Protected

CHAR15

Имя операции

MV_NO_ADD

Static Attribute

Private

XFELD

Флаг «Не добавлять сообщения»

MT_OBJ

Static Attribute

Private

Внутренний тип

Набор созданных объектов логирования

MC_LOG_OBJECT

Static Attribute

Private

BALOBJ_D

Объект логирования. Значение «/TRL/XDE_LOG»

Настройка расширенного логирования

Для настройки расширенного логирования в разрезе документа существует настроечная таблица /TRL/XDE_LOG_SET.

Таблица 284 Поля таблицы /TRL/XDE_LOG_SET

Имя поля

Ключ

Тип

Описание

MANDT

X

MANDT

Мандант

DIRECTION

/TRL/XDE_ED_DIRECTION

Направление документооборота

ID_OED

X

/TRL/XDE_ED_ID_OED

Идентификатор оператора

SAP_DOC_TYP

X

/TRL/XDE_ED_OBJECT_ART

Вид документа SAP

OED_DOC_TYP

X

/TRL/XDE_ED_DOC_TYPE

Вид документа ОЭД

GET_NEW_DOC

XFELD

Получение нового документа

SEQ_OUT_DOC

XFELD

Постановка в очередь отправки

SIGN_OUT_DOC

XFELD

Подпись исходящего документа

SEND_OUT_DOC

XFELD

Отправка исходящего документа

GET_NEW_STATUS

XFELD

Получение нового статуса

DEL_OUT_DOC

XFELD

Удаление документа

WITH_OUT_DOC

XFELD

Отзыв исходящего документа

REV_OUT_DOC

XFELD

Аннулирование исходящего документа

ACP_REV_DOC

XFELD

Согласование аннулирования

REJ_REV_DOC

XFELD

Отклонение аннулирования

ACP_IN_DOC

XFELD

Согласование входящего документа

REJ_IN_DOC

XFELD

Отклонение входящего документа

GET_PRINTFORM

XFELD

Получение печатной формы

GET_ZIP

XFELD

Получение ZIP архива

GET_FNS

XFELD

Получение ЮЗ документов

AUTOINV

XFELD

Автофактурирование

MIGO_MIRO

XFELD

Предзаполнение MIGO/MIRO

NOTIF

XFELD

Уведомления

Для ведения таблицы создан кластер ракурсов /TRL/XDE_LOG_SETTINGS, который также может быть вызыван с помощью транзакции /TRL/XDE_LOGGING. Кластер делит таблицу на две части, в одной из которых можно заполнить данные для входящих документов, в другой части - данные для исходящих документов.

../../_images/image115.png

Примечание

В принципе заполнение нужно выполнять с учетом всех полей. Однако, если необходимо включить логирование по определенным операциям без учета некоторых критериев, поле можно оставить пустым. Например, если нужно включить логирование по операции для всех документов по оператору «XXX», то следует заполнить только поле ID_OED = «XXX» для входящих и/или исходящих документов и оставить поля SAP_DOC_TYP и OED_DOC_TYP пустыми.

../../_images/image213.png

Просмотр сообщений расширенного логирования

Сообщения, попавшие в логи, можно посмотреть двумя способами.

  1. С помощью транзакции SLG1.

    В транзакции нужно указать в качестве объекта /TRL/XDE_LOG. Для ограничения выборки можно изменить подобъект логирования, даты и/или указать внешний идентификатор (идентификатор документа).

    ../../_images/image54.png
  2. С помощью кнопки История операций.

    Предварительно необходимо выбрать только одну запись на ALV.

    ../../_images/image63.png

    Если данные имеются, то будут выведены все журналы для выбранного документа, в которых можно посмотреть сообщения по каждой операции отдельно.

    ../../_images/image73.png

Навигация и поиск ошибок

Для поиска ошибок, возникших во время логирования, можно воспользоваться классом сообщений /TRL/XDE_LOG (транзакция SE91), который создан специально для этой задачи. Данный класс содержит все сообщения, которые затем можно увидеть в журналах. Для навигации по классу сообщения можно воспользоваться функцией поиска по классу сообщений и журналу использования.

  • Поиск сообщений в классе сообщений по тексту

    ../../_images/image33.png
  • Поиск использования сообщения

    ../../_images/image45.png