SAPPER SETTINGS - Настройки выгрузки — различия между версиями
(→LINKS) |
(→FACE) |
||
Строка 235: | Строка 235: | ||
===FACE=== | ===FACE=== | ||
− | Маппинг данных | + | Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL. |
+ | Структура набора значений: | ||
+ | * [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /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 | ||
<div style="border: 1px dashed;"> | <div style="border: 1px dashed;"> | ||
− | + | массив FACE для отправителя | |
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"> | <div class="mw-collapsible mw-collapsed" style="overflow: hidden;"> | ||
<br> | <br> | ||
Строка 249: | Строка 269: | ||
{ | { | ||
"Имя": "ID", | "Имя": "ID", | ||
− | "Значение": "VBDKL-BUKRS", | + | "Значение": "VBDKL-BUKRS", //номер БЕ |
"Тип": "Field" | "Тип": "Field" | ||
}, | }, | ||
{ | { | ||
− | "Имя": "GET_BUKRS_BY_BUKRS", | + | "Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID |
"Значение": "", | "Значение": "", | ||
"Тип": "Method", | "Тип": "Method", | ||
Строка 259: | Строка 279: | ||
}, | }, | ||
{ | { | ||
− | "Имя": "GET_BUKRS_BANK_BY_BUKRS", | + | "Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID |
"Значение": "", | "Значение": "", | ||
"Тип": "Method", | "Тип": "Method", | ||
Строка 266: | Строка 286: | ||
{ | { | ||
"Имя": "INN", | "Имя": "INN", | ||
− | "Значение": "H_DOC-SUPPLIERINN", | + | "Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы |
"Тип": "Field" | "Тип": "Field" | ||
}, | }, | ||
{ | { | ||
"Имя": "KPP", | "Имя": "KPP", | ||
− | "Значение": "H_DOC-SUPPLIERKPP", | + | "Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы |
"Тип": "Field" | "Тип": "Field" | ||
}, | }, | ||
{ | { | ||
"Имя": "OKPO", | "Имя": "OKPO", | ||
− | "Значение": "H_DOC-SUPPLIEROKPO", | + | "Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы |
"Тип": "Field" | "Тип": "Field" | ||
}, | }, | ||
{ | { | ||
"Имя": "OKOPF", | "Имя": "OKOPF", | ||
− | "Значение": "H_DOC-SUPPLIEROKOPF", | + | "Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы |
"Тип": "Field" | "Тип": "Field" | ||
}, | }, | ||
Строка 291: | Строка 311: | ||
{ | { | ||
"Имя": "NAME", | "Имя": "NAME", | ||
− | "Значение": "ADDR1_SP-NAME1", | + | "Значение": "ADDR1_SP-NAME1", //наименование организации первая строка |
"Тип": "Field" | "Тип": "Field" | ||
}, | }, | ||
Строка 297: | Строка 317: | ||
"Имя": "NAME", | "Имя": "NAME", | ||
"Значение": "ADDR1_SP-NAME2", | "Значение": "ADDR1_SP-NAME2", | ||
− | "Тип": "Concat_Field_AddLeftSpace", | + | "Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева |
"Подтип": "NAME" | "Подтип": "NAME" | ||
}, | }, | ||
Строка 303: | Строка 323: | ||
"Имя": "NAME", | "Имя": "NAME", | ||
"Значение": "ADDR1_SP-NAME3", | "Значение": "ADDR1_SP-NAME3", | ||
− | "Тип": "Concat_Field_AddLeftSpace", | + | "Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева |
"Подтип": "NAME" | "Подтип": "NAME" | ||
}, | }, | ||
Строка 309: | Строка 329: | ||
"Имя": "NAME", | "Имя": "NAME", | ||
"Значение": "ADDR1_SP-NAME4", | "Значение": "ADDR1_SP-NAME4", | ||
− | "Тип": "Concat_Field_AddLeftSpace", | + | "Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева |
"Подтип": "NAME" | "Подтип": "NAME" | ||
}, | }, | ||
Строка 337: | Строка 357: | ||
{ | { | ||
"Имя": "COUNTRY_CODE", | "Имя": "COUNTRY_CODE", | ||
− | "Значение": "GR_CURRENT_DATA->COUNTRY_CODE", | + | "Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных |
"Тип": "ClassField" | "Тип": "ClassField" | ||
}, | }, | ||
Строка 410: | Строка 430: | ||
}, | }, | ||
{ | { | ||
− | "Имя": "PARAM", | + | "Имя": "PARAM", //свободные параметры |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
"Тип": "Param", | "Тип": "Param", | ||
"Значение": { | "Значение": { | ||
Строка 1020: | Строка 447: | ||
} | } | ||
} | } | ||
− | ] | + | ] |
} | } | ||
} | } | ||
Строка 1028: | Строка 455: | ||
</div> | </div> | ||
− | + | ===ITEMS (S_XML_DOC)=== | |
Позиции документа отражаются в массиве ITEMS. В качестве значения передается ссылка на массив из программы печати ITEMS и маппинг его полей, к примеру: | Позиции документа отражаются в массиве ITEMS. В качестве значения передается ссылка на массив из программы печати ITEMS и маппинг его полей, к примеру: |
Версия 08:29, 16 марта 2018
Содержание
[убрать]Настройки выгрузки
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования 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_"
- Параметры самого электронного документа (тег Документ формата ФНС). Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML.
- NAME – отображаемое имя документа, “Накладная”
- 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 можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Структура массива имеет следующее представление:
- [название документа]
- NAME - наименование документа
- TYPE - тип документа
- NUMBER - номер документа
- DATE - дата документа
массив LINKS
FACE
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL. Структура набора значений:
- [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /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
массив FACE для отправителя
ITEMS (S_XML_DOC)
Позиции документа отражаются в массиве ITEMS. В качестве значения передается ссылка на массив из программы печати ITEMS и маппинг его полей, к примеру:
массив позиций ITEMS
PRINT_SEND, PRINT_PRINT
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.
пример PRINT_SEND, аналогично для PRINT_PRINT