.. _api_functional_description: Фунциональное описание API для обмена приглашениями --------------------------------------------------------- Доступ к функционалу обмена приглашениями реализован в классе **/TRL/XDE_CL_INVITATION_API**. Создание инстанции класса необходимо для использования методов API. Конструктор инстанции класса не имеет параметров. Порядок действий для следующих вариантов обработки: * Действие над существующими приглашениями #. Сформировать таблицу типа /TRL/XDE_CL_INVITATION_API => MTY_T_INVITATION. #. Передать её в API метод PROCESS_INVITATIONS с нужным вариантом действия над приглашениями (параметр IV_ACTION). #. Выполнить COMMIT_DB_CHANGES для актуализации статусов. * Отправка новых приглашений #. Вызвать метод FORM_LIST с необходимыми ограничениями. #. Нужные записи полученной таблицы привести к /TRL/XDE_CL_INVITATION_API => MTY_T_INVITATION. #. Передать подготовленную таблицу в метод PROCESS_INVITATIONS с кодом действия /TRL/XDE_CL_INVITATION_API => GC_SEND_ACTION. #. Выполнить COMMIT_DB_CHANGES для актуализации статусов. * Обновление данных по приглашениям #. Вызвать метод COMMON_REFRESH с необходимыми ограничениями. #. Выполнить COMMIT_DB_CHANGES для актуализации статусов. Описание констант ~~~~~~~~~~~~~~~~~~ Константы действий над приглашениями из домена /TRL/XDE_DM_INVITE_ACTION ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * /TRL/XDE_CL_INVITATION_API=>GC_ACCEPT_ACTION Значение ‘ACCEPT’ – Принятие приглашения * /TRL/XDE_CL_INVITATION_API=>GC_BREAK_ACTION Значение ‘BREAK’ – Прекращение отношений партнерства с контрагентом * /TRL/XDE_CL_INVITATION_API=>GC_FRIEND_ACTION Значение ‘FRIEND’ – Состояние установленных отношений партнерства с контрагентом. По умолчанию связан со статусом CV и используется в стандартной поставке для синхронизации отсутствующих ящиков в /TRL/XDE_OED_BX и /TRL/XDE_BOX_ID. * /TRL/XDE_CL_INVITATION_API=>GC_REJECT_ACTION Значение ‘REJECT’ – Отклонение приглашения * /TRL/XDE_CL_INVITATION_API=>GC_REVOKE_ACTION Значение ‘REVOKE’ – Отзыв приглашения * /TRL/XDE_CL_INVITATION_API=>GC_SEND_ACTION Значение ‘SEND’ – Отправка нового приглашения Константы статусов отношений партнерства между контрагентами ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * /TRL/XDE_CL_INVITATION_API=>GC_STS_CD Значение – ‘CD’ * /TRL/XDE_CL_INVITATION_API=>GC_STS_CDI Значение – ‘CDI’ * /TRL/XDE_CL_INVITATION_API=>GC_STS_CDO Значение – ‘CDO’ * /TRL/XDE_CL_INVITATION_API=>GC_STS_CX Значение – ‘CX’ Константы для ограничения выборок при обновлении статусов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * /TRL/XDE_CL_INVITATION_API=>GC_LIMIT_LIFNR Значение – ‘L’ * /TRL/XDE_CL_INVITATION_API=>GC_LIMIT_KUNNR Значение – ‘K’ * /TRL/XDE_CL_INVITATION_API=>GC_LIMIT_ALL Значение – ‘A’ Функционал API по обмену приглашениями, доступный для использования ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Метод подтверждения изменений в БД ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **COMMIT_DB_CHANGES** Метод выполняет COMMIT WORK AND WAIT и не имеет параметров. Обновление отношений партнерства по всем операторам ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **COMMON_REFRESH** .. list-table:: IMPORTING параметры :widths: 3 3 1 1 2 :header-rows: 1 * - Имя параметра - Тип - Необяз. - Ст. знач. - Описание * - IT_INVITATIONS - MTY_T_INVITATION - X - - Таблица с данными контрагента для обмена приглашениями * - IT_ID_OED - /TRL/XDE_T_RANGE - X - - RANGE ID_OED для ограничения обновления * - IT_LIFNR - /TRL/XDE_T_RANGE - X - - RANGE LIFNR для ограничения обновления * - IT_KUNNR - /TRL/XDE_T_RANGE - X - - RANGE KUNNR для ограничения обновления * - IT_BUKRS - /TRL/XDE_T_RANGE - X - - RANGE BUKRS для ограничения обновления * - IV_LIMIT - CHAR1 - X - «A» - Параметр ограничения выборки .. list-table:: EXPORTING параметры :widths: auto :header-rows: 1 * - Имя параметра - Тип - Описание * - ET_TAB - /TRL/XDE_T_INVITE_MAIN_ALV - Набор данных по обмену приглашениями Метод выполняет полное или частичное обновление статусов по приглашениям, в зависимости от входных параметров. Если есть ограничения IT_LIFNR или IT_KUNNR, то сначала выбираются данные по этим контрагентам в стандартных SAP таблицах LFA1 и KNA1. Используются как фильтры по ИНН и КПП после получения статусов отношений партнерства от операторов. Если после получений статусов отношений партнерства соответствующая запись по ИНН, КПП, идентификатору ящика существует в /TRL/XDE_DEB_REL, то выполняется обновление такой строки, при различиях в статусах. Если после получения статусов отношений партнерства соответствующая запись по ИНН, КПП, идентификатору ящика в /TRL/XDE_DEB_REL отсутствует, то такую запись необходимо вставить в таблицу. В выходную таблицу ET_TAB попадают все строки из /TRL/XDE_DEB_REL с ограничением по входным параметрам и соответствующие им данные о дебиторе/кредиторе, взятые из KNA1/LFA1 по ИНН, КПП, БЕ. Для того, чтобы после установления отношений партнерства между контрагентами можно было сразу обмениваться документами, в методе предусмотрен функционал по автоматическому добавлению данных ящика и соответствующего дебитора/кредитора в настроечные таблицы xDE продукта, а именно: /TRL/XDE_OED_BX, /TRL/XDE_BOX_ID. При включенной настройке UTD_INTEGRATION_INV в /TRL/XDE_CUST происходит синхронизация с таблицами UTD. В случае, если ящики уже настроены для такого дебитора/кредитора, добавление не выполняется. Функционал проверки наличия и добавления ящиков срабатывает только на статус отношений партнерства, в стандартной статусной схеме – «CV». Конструктор ^^^^^^^^^^^ **CONSTRUCTOR** Конструктор инстанции. Без параметров. В конструкторе выполняется подготовка общих данных для работы с приглашениями, это: данные из /TRL/XDE_INV_STS, /TRL/XDE_INV_CON, а также создание объекта по работе с /TRL/XDE_DEB_REL. Сформировать список контрагентов для обмена приглашениями ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **FORM_LIST** .. list-table:: IMPORTING параметры :widths: 2 3 1 1 2 :header-rows: 1 * - Имя параметра - Тип - Необяз. - Ст. знач. - Описание * - IT_ID_OED - /TRL/XDE_T_RANGE - X - - RANGE ID_OED для ограничения обновления * - IT_LIFNR - /TRL/XDE_T_RANGE - X - - RANGE LIFNR для ограничения обновления * - IT_KUNNR - /TRL/XDE_T_RANGE - X - - RANGE KUNNR для ограничения обновления * - IT_BUKRS - /TRL/XDE_T_RANGE - X - - RANGE BUKRS для ограничения обновления * - IV_LIMIT - CHAR1 - X - «A» - Параметр ограничения выборки .. list-table:: EXPORTING параметры :widths: auto :header-rows: 1 * - Имя параметра - Тип - Описание * - ET_TAB - /TRL/XDE_T_INVITE_MAIN_ALV - Набор данных по обмену приглашениями Метод формирует список контрагентов для обмена приглашениями. Входные параметры позволяют ограничить выбор списка контрагентов, созданных в системе по следующим параметрам: * Оператор ЭДО – IT_ID_OED * Кредитор – IT_LIFNR * Дебитор – IT_KUNNR * БЕ – IT_BUKRS Параметр IV_LIMIT позволят ограничить выборку по следующим параметрам: * Дебиторы – значение /TRL/XDE_CL_INVITATION_API=>GC_LIMIT_KUNNR * Кредиторы - /TRL/XDE_CL_INVITATION_API=>GC_LIMIT_LIFNR * Без ограничений - /TRL/XDE_CL_INVITATION_API=>GC_LIMIT_ALL В выходную таблицу ET_INVITES собираются строки из настроенных в SAP-системе дебиторов и кредиторов, с которыми на текущий момент не установлены отношения партнерства (отсутствуют записи в таблице /TRL/XDE_DEB_REL). Попадают в ET_INVITES также те дебиторы и кредиторы, с которыми ранее были установлены отношения партнерства, но на текущий момент приглашения отозваны, ошибочны, или отношения партнерства прекращены, в стандартном наборе статусов – «CX», «E». Получение таблицы отношений партнерства между контрагентами ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **GET_DEB_REL_LINES** .. list-table:: IMPORTING параметры :widths: auto :header-rows: 1 * - Имя параметра - Тип - Необяз. - Описание * - IT_BOX_ID - /TRL/XDE_T_RANGE - X - Диапазон значений * - IT_INN - /TRL/XDE_T_RANGE - X - Диапазон значений * - IT_KPP - /TRL/XDE_T_RANGE - X - Диапазон значений * - IT_BUKRS - /TRL/XDE_T_RANGE - X - Диапазон значений * - IV_ID_OED - /TRL/XDE_T_RANGE - X - Диапазон значений * - IT_STATUS - /TRL/XDE_T_RANGE - X - Диапазон значений .. list-table:: RETURNING параметры :widths: auto :header-rows: 1 * - Имя параметра - Тип - Описание * - RT_DEB_REL - /TRL/XDE_T_DEB_REL - Записи таблицы отношений партнерства между контрагентами Метод позволяет получить строки таблицы /TRL/XDE_DEB_REL. Ограничения, возможные для выборки: * По ящику SAP системы – IT_BOX_ID * По ИНН – IT_INN * По КПП – IT_KPP * По балансовой единице – IT_BUKRS * По идентификатору оператора ЭДО – IT_ID_OED * По статусу отношений партнерства – IT_STATUS Получение истории статусов для приглашения ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **GET_HISTORY** .. list-table:: IMPORTING параметры :widths: 2 4 1 2 :header-rows: 1 * - Имя параметра - Тип - Необяз. - Описание * - IS_ALV - /TRL/XDE_S_INVITE_MAIN_ALV - X - Строка с данными об отношениях партнерства .. list-table:: EXPORTING параметры :widths: 2 3 2 :header-rows: 1 * - Имя параметра - Тип - Описание * - ET_HISTORY_ALV - /TRL/XDE_T_INVITE_MAIN_ALV - Набор данных по обмену приглашениями Метод возвращает историю изменения статусов для конкретного отношения партнерства. Во входной структуре IS_ALV обязательно должны быть заполнены поля: * Идентификатор оператора - ID_OED * ИНН - STCD1 * КПП - STCD3 Выходная таблица ET_HISTORY_ALV содержит строки со всей историей изменения статусов для переданного контрагента и заполненными полями: * Статус – STATUS * Идентификатор оператора - ID_OED * ИНН - STCD1 * КПП - STCD3 * Текст статуса – TEXT Таблица выдается уже отсортированной по статусам, где последний полученный статус находится в конце таблицы. Получение текста статуса по коду ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **GET_STATUS_TEXT** .. list-table:: IMPORTING параметры :widths: 2 3 1 2 :header-rows: 1 * - Имя параметра - Тип - Необяз. - Описание * - IV_STATUS - /TRL/XDE_ED_INVITE_STATUS - - Код статуса отношений партнерства между контрагентами .. list-table:: RETURNING параметры :widths: 2 3 1 :header-rows: 1 * - Имя параметра - Тип - Описание * - RV_TEXT - /TRL/XDE_ED_INVITE_STATUS_TEXT - Описание кода статуса отношений партнерства между контрагентами Метод возвращает описание статуса отношений партнерства между контрагентами по коду статуса. Обработка приглашений ^^^^^^^^^^^^^^^^^^^^^ **PROCESS_INVITATIONS** .. list-table:: IMPORTING параметры :widths: 2 3 1 2 :header-rows: 1 * - Имя параметра - Тип - Необяз. - Описание * - IV_ACTION - /TRL/XDE_ED_INVITE_ACTION - - Код действия для операции над приглашением * - IT_INVITATIONS - MTY_T_INVITATION - - Таблица приглашений .. list-table:: EXPORTING параметры :widths: auto :header-rows: 1 * - Имя параметра - Тип - Описание * - ET_DEB_REL - /TRL/XDE_T_DEB_REL - Записи таблицы отношений партнерства между контрагентами * - ET_RETURN - MTY_T_RETURN - Таблица с сообщениями о возникших ошибках Метод выполняет обработку операций над набором приглашений, переданных в таблице IT_INVITATIONS. Для определения действия над приглашениями необходимо передать параметр IV_ACTION, значение можно взять из констант API класса. Все строки таблицы IT_INVITATIONS будут обработаны этим действием. Таблица IT_INVITATIONS должна содержать заполненные значения для каждого приглашения: * Балансовая единица * Оператор, через которого будет осуществляться обмен * ИНН контрагента для обмена * КПП контрагента для обмена * E-MAIL контрагента для обмена .. important:: На текущий момент обязательность/необязательность заполнения поля с адресом электронной почты зависит от оператора ЭДО (например, для оператора Такском-Файлер поле обязательно для заполнения). Во время работы какой-либо операции над приглашением будет вызвано получение последнего актуального для каждой обрабатываемой строки IT_INVITATIONS. Таким образом, даже если обработка приглашений завершилась неудачей, необходимо выполнить COMMIT WORK после метода PROCESS_INVITATIONS, \ чтобы актуальные статусы по каждому из приглашений были актуализированы в /TRL/XDE_DEB_REL.