SAPPER SETTINGS - Настройки выгрузки
Содержание
Настройки выгрузки
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутреннюю структуру SAPPER, на основании которой формируются XML документы.
Структура настроек выгрузки:
- ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)
- ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:
- PRINT_NAST - через программу печати основанную на структуре NAST
- EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT
- PRINT_PROG - через любые ABAP программы
- ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)
- assign_program – программа печати, J_3RV_DELIV_PDF
- ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета
- PRINT_SEND - параметры программы печати в режиме формирования XML
- PRINT_PRINT - параметры программы печати в режиме печати
- FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.
- [параметры заголовка документа]
- PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС.
- FACE - массив ролей участников документооборота
- LINKS - массив ссылок на связанные документы
- ITEMS - массив позиций документа
- PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС
FILE
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).
пример структуры файла DO_*
Заголовок документа (/SBIS/S_XML)
Параметры заголовка документа условно можно разделить на две группы:
- Предопределенные параметры
- DOC_NAME – наименование документа “Накладная”
- FILE_FORMAT_TYPE – тип документа “ЭДОНакл”
- FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"
- FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”
- FILE_PROG_VERSION – версия программы, по умолчанию "SAP NetConnector"
- FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"
- FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"
- NAME – отображаемое имя документа, “Накладная”
- Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:
- DATE – дата документа
- TIME – время документа, по умолчанию 00.00.00
- ID - уникальный идентификатор, обычно номер документа
- NUMBER - номер документа
- WAERS - код валюты
- SUM_TAX_FREE - сумма без налога
- SUM - сумма
- TAX_SUM - сумма налога
- AMOUNT - количество
- WEIGHT_GROSS - вес брутто
- WEIGHT_NET - вес нетто
- WEIGHT_UNIT_NAME - единица измерения веса
Значение параметра для заголовка может иметь тип:
- Field – поле ABAP объекта
- String – строка
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.
PARAM (ИнфПолФХЖ1)
Для заголовка, также можно добавить параметры, следующей структуры:
- PARAM массив параметров с типом Param
- [массив значений]
- [имя параметра]
- [массив NAME + VALUE]
- Имя (NAME или VALUE)
- Значение
- Тип
- [массив NAME + VALUE]
- [имя параметра]
- [массив значений]
пример параметров для заголовка документа
LINKS
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.
Структура:
- LINKS тип Links
- [значение] - массив документов оснований
- [название документа]
- [набор полей структуры S_XML_LINK_DOC], к примеру:
- NAME - наименование документа
- TYPE - тип документа
- NUMBER - номер документа
- DATE - дата документа
- [набор полей структуры S_XML_LINK_DOC], к примеру:
- [название документа]
- [значение] - массив документов оснований
массив LINKS связанных документов (документов оснований)
FACE
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.
Структура:
- FACE тип Face
- [значение] - массив ролей
- [название роли], например Отправитель
- [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:
- GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ
- GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.
- GET_WERKS_BANK_BY_WERKS - данные банка для завода
- GET_KUNNR_BANK_BY_KUNNR - данные банка для customer
- GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)
- GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)
- GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)
- GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)
- [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)
- [тип] - тип поля:
- Field - объекта словаря ABAP
- String - фиксированная строка
- Method - метод класса получения данных
- Concat_Field - строка получаемая конкатенацией строк
- ClassField - глобальное значение класса
- [подтип] - подтип типа:
- указание класса для типа Method
- указание поля в которое объединяются строки для Concat_Field
- [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:
- [название роли], например Отправитель
- [значение] - массив ролей
массив FACE для отправителя
ITEMS (S_XML_DOC)
Позиции документа отражаются в массиве ITEMS со структурой /SBIS/S_XML.
Структура ITEMS:
- ITEMS тип Items
- [значение]
- [указание на таблицу позиций программы печати]
- [маппинг полей таблицы позиций программы печати в /SBIS/S_XML]
- [имя] - имя поля из структуры /SBIS/S_XML
- [значение] - имя поля из структуры программы печати
- [тип] - тип поля
- String - фиксированная строка
- ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:
- ItemField_Matnr - удаляет лидирующие нули у номера материала
- ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя
- ItemField_Unitcode - преобразует имя единицу измерения в код
- [параметры ИнфПолФХЖ2] - тип Param, имя+значение:
- [имя параметра]
- [имя]
- [значение]
- [имя параметра]
- [маппинг полей таблицы позиций программы печати в /SBIS/S_XML]
- [указание на таблицу позиций программы печати]
- [значение]
пример массива позиций ITEMS для программы печати
PRINT_SEND, PRINT_PRINT
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.
пример PRINT_SEND, аналогично для PRINT_PRINT