http://wiki.razgovorov.ru/api.php?action=feedcontributions&user=%D0%A7%D0%B8%D0%B6%D0%BE%D0%B2+%D0%92%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B9&feedformat=atom
razgovorov.ru - Вклад участника [ru]
2024-03-28T15:13:11Z
Вклад участника
MediaWiki 1.31.1
http://wiki.razgovorov.ru/index.php?title=SAP_ERP_6.0_EHP7_-_%D0%90%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B&diff=3596
SAP ERP 6.0 EHP7 - Администрирование системы
2018-09-17T06:50:34Z
<p>Чижов Виталий: /* Экспорт транспортных запросов */</p>
<hr />
<div>= Ведение пользователей =<br />
#После установки системы необходимо сменить пароли у стандартных пользователей. <br />
#Стандартные пользователи:<br />
##client user passw<br />
##000 SAP* 06071992<br />
##000 DDIC 19920706<br />
##001 SAP* 06071992<br />
##001 DDIC 19920706<br />
##000 TMSADM<br />
##066 EARLYWATCH support<br />
#Пароли для пользователей SAP*, DDIC, EARLYWATCH изменяются через транзакцию SU01 - ведение пользователей. <br />
#Пользователя EARLYWATCH можно заблокировать через SU01.<br />
#Пароль для польз. TMSADM изменяется путем запуска программы TMS_UPDATE_PWD_OF_TMSADM через транзакцию SE38. Необходимо заполнить новый пароль и нажать Запуск.<br />
<br />
= Настройка параметров системы (RZ10) =<br />
#Настроить таймаут отладки.<br />
##Войти в транзакцию RZ11.<br />
##Параметр rdisp/max_debug_lazy_time.<br />
##Нажать Просмотр, нажать Изменить.<br />
##Ввести значение 0 - бесконечно. Проставить галочку Установить на всех серверах.<br />
##Нажать Сохранить.<br />
#Настроить таймаут STMS.<br />
##Войти в транзакцию RZ11.<br />
##Параметр gw/cpic_timeout.<br />
##Нажать Просмотр, нажать Изменить.<br />
##Ввести значение 120 вместо 20. Проставить галочку Установить на всех серверах.<br />
##Нажать Сохранить.<br />
#Настроить таймаут for dialog requests. (не нужно)<br />
##This parameter limits the time for which a high-priority request can run uninterrupted in a dialog work process before it is forced to terminate.Interruptions, that is, activities that could lead to a work process switch (roll-out) (for example, COMMIT WORK, RFC call, and so on) each restart the time interval at zero. For reasons of backward compatibility, this parameter only takes effect, if the parameter rdisp/max_wprun_time is not explicitly set. The rdisp/scheduler/prio_*/max_runtime parameters provide the same functionality as the parameter rdisp/max_wprun_time, but allow differentiation by priorities. We recommend that you switch to the new parameters. The system assigns high priority to all dialog requests that are directly triggered by user interaction (GUI, RFC remote logon through SM51), and to all system requests (everything that runs in the dialog work process and is not GUI, HTTP, or RFC.<br />
##Войти в транзакцию RZ11.<br />
##Параметр rdisp/scheduler/prio_high/max_runtime, rdisp/scheduler/prio_normal/max_runtime, rdisp/scheduler/prio_low/max_runtime.<br />
##Нажать Просмотр, нажать Изменить.<br />
##Ввести значение rdisp/scheduler/prio_high/max_runtime = 30m, rdisp/scheduler/prio_normal/max_runtime = 60m, rdisp/scheduler/prio_low/max_runtime = 0. <br />
##Проставить галочку Установить на всех серверах.<br />
##Нажать Сохранить.<br />
#Настроить порт ICM для работы ADS.<br />
##Войти в транзакцию RZ11.<br />
##Создать параметр icm/server_port_0. Задать значение PROT=HTTP,PORT=80$$<br />
##Нажать Скопировать , Сохранить.<br />
<br />
= Настройка браузера для доступа на support.sap.com = <br />
<br />
#Полезные ссылки:<br />
##[https://support.sap.com/support-programs-services/about/getting-started/passport.html#label11 https://support.sap.com/support-programs-services/about/getting-started/passport.html]<br />
##[https://support.sap.com/en/my-support/single-sign-on-passports.html https://support.sap.com/en/my-support/single-sign-on-passports.html]<br />
#ActiveX Settings with Internet Explorer<br />
##Click Tools → Internet Options → Security tab, then click the Custom Level button.<br />
##Set the following to Enable-ON or Prompt-OFF:<br />
###Download signed ActiveX controls<br />
###Run ActiveX controls and plug-ins<br />
###Script ActiveX controls marked safe for scripting<br />
#How To Enable SAP Passports for Windows 7<br />
##Make sure that ActiveX is enabled<br />
##Add Trusted Sites to Internet Explorer<br />
###Click Tools → Internet Options → Security tab, click Trusted Sites then click the Sites button. Add the following to the trusted sites list:<br />
###https://tcs.mysap.com<br />
###https://*.sap-ag.de<br />
##Download and Install the Certificate<br />
###Go to the Root Certificate page.<br />
###Click SAP Passport CA Certificate.<br />
###You get a file download warning. Click Open.<br />
###Click the Install Certificate button to open the Certificate Import Wizard. Click Next.<br />
###Select Place all certificates in the following store then click Browse.<br />
###Select the Trusted Root Certification Authorities store.<br />
###Click Next then Finish then Yes. You will then recieve a successful import notification.<br />
<br />
= Ноты =<br />
== Установка нот==<br />
#Курс ADM100. Глава 7.<br />
#[http://www.service.sap.com service.sap.com].<br />
##Зайти на [http://www.service.sap.com service.sap.com] и скачать ноту.<br />
##Перейти в sap.support.portal - KnowledgeBase&Incidents - Search for Solution.<br />
##Ввести номер ноты или ключевые слова для поиска.<br />
##Нажать Go.<br />
##Появится список нот.<br />
##Зайти в нужную ноту и нажать download.<br />
##Появится экран запроса. Нажать download Basket.<br />
##Появится окно корзины загрузок. Можно его закрыть.<br />
#SAP Download Manager.<br />
##Запустить приложение SAP dowload manager на компьютере. Приложение отображает список загрузок.<br />
##Настроить S-пользователя и прокси-сервер например 10.76.240.13:8080 из файла wpad.bat.<br />
##Запустить нужную загрузку в SAP dowload manager. По окончании загрузок закрыть SAP dowload manager.<br />
##Разархивировать скачанный архив.<br />
#В системе SAP.<br />
##В системе SAP запустить транзакцию SNOTE.<br />
##Нажать Перейти к - Загрузка указания.<br />
##Ввести номер ноты.<br />
##Нажать Выполнить.<br />
<br />
<br />
== Установленные ноты==<br />
<br />
Установленные ноты можно посмотреть через транзакцию SNOTE.<br />
<br />
#'''2079085''' - J_3RF_REGTORG: message 'Read from archive' appears on act creation from SD. Ошибка "обновление прервано" при печати сбытовой эл. фактуры в роли акта вып. работ программой J_3RV_TORG12_BIL.<br />
#'''2074621''' - J_3RF_REGTORG. 'Successfull processing' message during create XML file with errors.<br />
<br />
= Обновления и Add-on=<br />
<br />
== Обновление транзакций SPAM/SAINT==<br />
<br />
#Курс ADM100. Глава 7.<br />
#Проверить текущую версию. <br />
##Запустить транзакцию SPAM. <br />
##В строке заголовка проверить текущую версию. Например 7.40/055.<br />
#Скачать свежую версию SPAM/SAINT с ресурса [https://support.sap.com/swdc support.sap.com].<br />
##Зайти на ресурс под S-пользователем.<br />
##Перейти в меню Installations & Upgrades.<br />
##Перейти в строку поиска. Искать слово SPAM.<br />
##Выбрать версию, например 7.40 и положить в корзину загрузки.<br />
##Запустить SAP Download manager на сервере SAP.<br />
##Скачать файлы.<br />
#Подготовить файл.<br />
##Скопировать .SAR файл на сервер SAP в папку /usr/sap/trans. Сюда же скопировать утилиту архивации SAPCAR.<br />
##Разархивировать .SAR файл. В командной строке в папке /usr/sap/trans выполнить команду 'sapcar -xvf <filename>.SAR'. <br />
##В папке /usr/sap/trans/EPS/in появятся разархивированные файлы, например 'I720020751259_0111313.PAT'.<br />
#Выполнить обновление.<br />
##Войти в систему в мандант 000 под пользователем с правами SAP_ALL на англ. языке.<br />
##Запустить транзакцию SPAM. <br />
##Выполнить пункт меню: Support Package -> Load Packages -> From Application Server.<br />
##Появится экран со списком пакетов. Вернуться назад.<br />
##Выполнить пункт меню: SupportPackage-ImportSPAM/SAINT Update.<br />
##Подтвердить операцию.<br />
##Так как транзакция обновляет сама себя, появится дамп, ошибка.<br />
##Заново запустить транзакцию SPAM и проверить что версия новая.<br />
<br />
==Установка Support Package==<br />
<br />
#Войти в систему в мандант 000 под пользователем с правами SAP_ALL на англ. языке, кроме пользователя SAP*.<br />
#Запустить транзакцию SPAM.<br />
#Проверить текущую версию SPAM и при необходимости обновить. <br />
#Скачать необходимые пакеты с [https://launchpad.support.sap.com].<br />
#Подготовить файлы.<br />
##Разархивировать .SAR файлы. В командной строке выполнить команду 'sapcar -xvf <filename>.SAR'. <br />
##Разархивированные файлы из \EPS\in поместить на сервер в \usr\sap\trans\EPS\in.<br />
##В зависимости от версии SPAM можно распаковать архив на сервере приложений без предварительной подготовки.<br />
###Скопировать .SAR файл на сервер SAP в папку \usr\sap\trans\EPS\downloads.<br />
###В SPAM выбрать загрузку архива с сервера. <br />
#Выполнить установку.<br />
##Загрузить .SAR файлы с компьютера или распакованные файлы с сервера, Support Package -> Load packages. Экран покажет список загруженных пакетов. Вернуться на главный экран.<br />
##Выбрать New Support Packages и нажать Display на главном экране. <br />
###Проверить, что всё необходимые пакеты загружены и соблюдены все зависимости.<br />
##Нажать кнопку Display/define, чтобы определить очередь установки пакетов и выбрать сами пакеты<br />
##После возврата на главный экран можно нажать кнопку импорта (красный грузовичок) и определить фоновый или диалоговый процесс установки пакетов.<br />
##После завершения импорта останется нажать на кнопку карандаш с зеленой галкой, чтобы подтвердить конец процесса.<br />
<br />
== Установка Add-on Assembly Kit==<br />
#Использовать инструкции из [https://launchpad.support.sap.com/#/notes/2179441 Note 2179441]<br />
#Скачать свежую версию AAK с ресурса [https://support.sap.com/swdc support.sap.com].<br />
##Зайти на ресурс под S-пользователем.<br />
##Перейти в меню Installations & Upgrades.<br />
##Перейти в строку поиска. Искать слово AOFTOOLS.<br />
##Выбрать версию, например 7.40 и положить в корзину загрузки.<br />
##Запустить SAP Download manager на сервере SAP.<br />
##Скачать файлы. Пример 574AHINAOFTOOLS.SAR.<br />
#Подготовить файл.<br />
##Скопировать .SAR файл на сервер SAP в папку /usr/sap/trans. Сюда же скопировать утилиту архивации SAPCAR.<br />
##Разархивировать .SAR файл. В командной строке в папке /usr/sap/trans выполнить команду 'sapcar -xvf <filename>.SAR'. <br />
##В папке /usr/sap/trans/EPS/in появятся разархивированные файлы, например 'CSN0120061532_0095816.PAT'.<br />
#Установка AAK.<br />
##Войти в мандант 000 под пользователем с правами SAP_ALL на англ. языке. Не использовать пользователей SAP*, DDIC.<br />
##Запустить транзакцию SAINT.<br />
##Выполнить пункт меню: Installation Package -> Load Packages -> From Application Server.<br />
##Появится экран со списком пакетов. Вернуться назад.<br />
##На первом экране SAINT нажать кнопку Start.<br />
##Выбрать AOFTOOLS. Нажать кнопку Continue.<br />
##Появится окно с очередью установок и возможно окно SupportPackage. Нажать кнопку Continue.<br />
##Нажимать кнопку Continue.<br />
##Появится окно пароля. Ввести пароль из [https://launchpad.support.sap.com/#/notes/2179441 Note 2179441]<br />
##Запустится установка. При успешной установке нажать Finish.<br />
##Дополнительная информация: [https://launchpad.support.sap.com/#/notes/0001843158/E Note 1843158 "Known Problems with Add-On Inst/Upgr in SAP NW 7.40 AS ABAP"].<br />
#Деинсталляция Add-on Assembly Kit.<br />
##Войти в мандант 000 под пользователем с правами SAP_ALL на англ. языке. Не использовать пользователей SAP*, DDIC.<br />
##Использовать только транзакции SPAM/SAINT версий выше 60.<br />
##Выбрать закладку Deinstallable Components.<br />
##Выбрать пункт AOFTOOLS.<br />
##Нажать кнопку Start.<br />
##Нажать кнопку Да. Запустится процесс удаления.<br />
<br />
<br />
== Установка СБИС Сапер Адд-он==<br />
<br />
== Удаление СБИС Сапер Адд-он==<br />
<br />
=== Ошибки при удалении===<br />
#Ошибка в транзакции SAINT TN401 "OCS locked by user &1 with transaction &2".<br />
##При этом в таблице PAT01 лежит одна запись о блокировании очереди, перенос лежит не в той системе (например в виртуальной системе EXT).<br />
##Через SE16 и отладку вручную удалить записи из БД PAT01, PAT03. Это ошибки очереди.<br />
##В транзакции STMS удалить виртуальную систему (EXT), в которую попал перенос.<br />
##Заново деинсталлировать Адд-он.<br />
<br />
==Импорт транспортных запросов==<br />
* Распаковать архив с транспортными запросами на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)<br />
* Запустить транзакцию STMS<br />
* Import overview (F5)<br />
* Выбрать систему куда импортируем<br />
* Меню Extras -> Other requests -> Add<br />
* Выбираем запрос (имя такое же как у архива)<br />
* Import Request<br />
<br />
= Настройка пространства имен =<br />
<br />
== Регистрация собственного пространства имен на сайте SAP==<br />
#Зайти на сайт support.sap.com под S-пользователем.<br />
#Создать запрос на пространство имен.<br />
##Перейти по меню в keys-systems-installations.<br />
##Перейти по меню в keys.<br />
##Перейти по меню в development-namespace.<br />
##Нажать кнопку Launch the Namespaces application.<br />
##Нажать кнопку Request Namespace.<br />
##Заполнить поле Namespace, например /SBIS/<br />
##Заполнить поле Description, например Система СБИС.<br />
##Нажать кнопку Create Request.<br />
#Дождаться изменения статуса запроса на Создано.<br />
#Зайти на просмотр и найти ключ.<br />
<br />
<br />
== Регистрация собственного пространства имен в системе SAP==<br />
#Зайти в транзакцию SE03<br />
#Зайти в пункт меню Просмотр/Изменение областей имен.<br />
#Нажать кнопку Изменить.<br />
#Нажать кнопку Новые записи.<br />
#Ввести данные в поле Область имен, например /SBIS/<br />
#Ввести ключи на разработку и на исправление, полученные с сайта support.sap.com.<br />
#Ввести Краткий текст, например Система СБИС.<br />
#Ввести Владелец , например Kompaniya Tenzor,OOO<br />
#Сохранить.<br />
<br />
=Экспорт транспортных запросов=<br />
*Выгружаем переносы<br />
** Запускаем транзакцию - SE01 – Закладка Переносы – Нажимаем кнопку Просмотр <br />
** Открылось окно «Организатор переносов: Запросы»<br />
** Перед выгрузкой запросов с именем /SBIS/CORE необходимо добавить пространство имен /SBIS/<br />
*** Заходим в перенос верхнего уровня (кликаем по нему дважды)<br />
*** Включаем изменение (значок карандаша)<br />
*** Добавляем ID R3TR, объект NSPC, имя /SBIS/<br />
*** Сохраняем <br />
** Выгружаем все запросы со статусом «Изменяемо» для целевой системы EXT (кроме тех где написано – Не переносить)<br />
*** Разворачиваем верхний уровень переноса<br />
*** Ставим курсор на перенос нижнего уровня – нажимаем кнопку «Прямое деблокирование» (машинка)<br />
*** Ставим курсор на перенос верхнего уровня – нажимаем кнопку «Прямое деблокирование» (машинка)<br />
*** Открывает отчет о состоянии переноса. Дожидаемся завершения (нажимаем кнопочку обновить) или выходим и переходим к следующему запросу.<br />
** В статусе «изменяемо» не должно остаться переносов. <br />
* Импортируем переносы в тестовую систему для проверки<br />
** Заходим в папку TRANS системы разработки. Находим две папки (cofiles и data).<br />
** По номеру переноса верхнего уровня отбираем в папке выгруженные нами переносы (номера можно посмотреть в транзакции SE01 в разделе Деблокировано за текущую дату).<br />
** Копируем файлы переносов из папки cofiles системы разработки в папку cofiles тестовой системы.<br />
** Копируем файлы переносов из папки data системы разработки в папку data тестовой системы.<br />
* В тестовой системе выполняем импорт запросов при помощи транзакции STMS.<br />
* Если все переносы загрузились в тестовую систему без ошибок – отдаем переносы клиенту в виде двух папок (cofiles и data) для каждого из пакетов.<br />
* Создать новые запросы на перенос и включить все объекты пакетов в соответствующие запросы.<br />
<br />
= Сохранение SPRO-настроек при помощи BC Sets =<br />
#Источник [https://wiki.scn.sap.com/wiki/display/Basis/Business+Configuration+Sets+%28BC+Sets%29+and+their+use https://wiki.scn.sap.com]<br />
#Создание BC Sets.<br />
##Меню SAP Easy Access -> Tools -> Customizing -> BC Sets.<br />
##Запустить транзакцию SCPR3 - Display and Maintain BC Sets.<br />
##Указать название и описание.<br />
##Указать пункт меню SPRO, который необходимо сохранить.<br />
##Выделить таблицы и данные, которые необходимо сохранить.<br />
##Сохранить.<br />
#Загрузка настроек из BC Set в систему.<br />
##Меню SAP Easy Access -> Tools -> Customizing -> BC Sets.<br />
##Запустить транзакцию SCPR20 - Activation of BC Sets.<br />
##Указать название BC Set.<br />
##Нажать кнопку Активировать. Настройки загрузятся в систему.<br />
<br />
<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3525
SAPPER SETTINGS - Настройки выгрузки
2018-07-05T05:53:05Z
<p>Чижов Виталий: /* ITEMS */</p>
<hr />
<div>=Настройки выгрузки=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME структуры S_API2_PACKET. <br />
Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутренние структуры SAPPER, на основании которых формируются XML документы.<br />
<br />
Структура настроек выгрузки:<br />
*ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)<br />
*ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
*ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)<br />
*assign_program – программа печати, J_3RV_DELIV_PDF<br />
*ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета<br />
*PRINT_SEND - параметры программы печати в режиме формирования XML<br />
*PRINT_PRINT - параметры программы печати в режиме печати<br />
*FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
** [параметры заголовка документа]<br />
** PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС. <br />
** FACE - массив ролей участников документооборота<br />
** LINKS - массив ссылок на связанные документы (документы основания)<br />
** ITEMS - массив позиций документа<br />
*** PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС<br />
<br />
==FILE==<br />
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).<br />
<br />
<div style="border: 1px dashed;"><br />
пример структуры файла DO_* с двумя файлами выгрузки Накладная и ТТН<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA"<br />
},<br />
"ПолучениеДанных_Метод": {<br />
"Значение": "/SBIS/PRINT_NAST"<br />
},<br />
"ПолучениеДанных_XSLT": {<br />
"Значение": "/SBIS/DOC301"<br />
},<br />
"assign_program": {<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
"ОтправительПакета_Роль": {<br />
"Значение": "Отправитель"<br />
},<br />
"ПолучательПакета_Роль": {<br />
"Значение": "Получатель"<br />
},<br />
"FILE": {<br />
"Файл1_Накладная": {<br />
},<br />
"Файл2_ТТН": {<br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===Заголовок документа===<br />
<br />
Параметры заголовка документа условно можно разделить на две группы:<br />
* Предопределенные параметры<br />
** NAME – наименование документа “Накладная”<br />
** XSLT_CONVERTER – необязательный, техническое имя XSLT для запасного конвертера 3.01->5.01. Если пустое, то имя конвертера вычисляется на основе (Тип_Подтип_Версия).<br />
** FILE_FORMAT_TYPE – тип документа “ЭДОНакл”<br />
** FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"<br />
** FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”<br />
** FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"<br />
** FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"<br />
**NAME – отображаемое имя документа, “Накладная”<br />
* Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:<br />
**DATE – дата документа <br />
**TIME – время документа, по умолчанию 00.00.00<br />
**ID - уникальный идентификатор, обычно номер документа<br />
**NUMBER - номер документа<br />
**WAERS - код валюты<br />
**SUM_TAX_FREE - сумма без налога<br />
**SUM - сумма<br />
**TAX_SUM - сумма налога<br />
**AMOUNT - количество<br />
**WEIGHT_GROSS - вес брутто<br />
**WEIGHT_NET - вес нетто<br />
**WEIGHT_UNIT_NAME - единица измерения веса<br />
<br />
Значение параметра для заголовка может иметь тип: <br />
*Field – поле ABAP объекта<br />
*String – строка<br />
<br />
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.<br />
<br />
===PARAM (ИнфПолФХЖ1)===<br />
<br />
Для заголовка, также можно добавить параметры следующей структуры:<br />
* PARAM массив параметров с типом Param<br />
** [массив значений]<br />
*** [имя параметра]<br />
**** [массив NAME + VALUE]<br />
***** Имя (NAME или VALUE)<br />
***** Значение<br />
***** Тип<br />
<br />
<div style="border: 1px dashed;"><br />
пример параметров для заголовка документа<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"PARAM": {<br />
"Тип": "Param",<br />
"Значение": {<br />
"Отправитель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправитель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-WAERK",<br />
"Тип": "Field"<br />
}<br />
],<br />
"Получатель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Получатель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field"<br />
}<br />
],<br />
"ИнфПередТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПередТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПередТабл N 00 от 01.01.1999 Контракт 123 от 01.01.2017",<br />
"Тип": "String"<br />
}<br />
],<br />
"ИнфПослеТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПослеТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПослеТабл N 00 от 01.01.1999",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===LINKS===<br />
<br />
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.<br />
<br />
Структура:<br />
* LINKS тип Links<br />
** [значение] - массив документов оснований<br />
*** [название документа]<br />
**** [набор полей структуры S_XML_LINK_DOC], к примеру:<br />
***** NAME - наименование документа<br />
***** TYPE - тип документа<br />
***** NUMBER - номер документа<br />
***** DATE - дата документа<br />
<br />
<div style="border: 1px dashed;"><br />
массив LINKS связанных документов (документов оснований)<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"LINKS": {<br />
"Тип": "Links",<br />
"Значение": {<br />
"Заказ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "H_DOC-GROUND",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "ЗаказВх",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "H_DOC-TRANSP_DATE1",<br />
"Тип": "Field_Date"<br />
}<br />
],<br />
"ТранНакл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ТранНакл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM2",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "01.01.1900",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===FACE===<br />
<br />
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.<br />
<br />
Структура:<br />
* FACE тип Face<br />
** [значение] - массив ролей<br />
*** [название роли], например Отправитель<br />
**** [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:<br />
***** GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ<br />
***** GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.<br />
***** GET_WERKS_BANK_BY_WERKS - данные банка для завода<br />
***** GET_KUNNR_BANK_BY_KUNNR - данные банка для customer<br />
***** GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)<br />
**** [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)<br />
**** [тип] - тип поля:<br />
***** Field - объекта словаря ABAP<br />
***** String - фиксированная строка<br />
***** Method - метод класса получения данных <br />
***** Concat_Field - строка получаемая конкатенацией строк<br />
***** ClassField - глобальное значение класса<br />
**** [подтип] - подтип типа:<br />
***** указание класса для типа Method<br />
***** указание поля в которое объединяются строки для Concat_Field<br />
<br />
<div style="border: 1px dashed;"><br />
массив FACE для отправителя<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"FACE": {<br />
"Тип": "Face",<br />
"Значение": {<br />
"Отправитель": [<br />
{<br />
"Имя": "ID",<br />
"Значение": "VBDKL-BUKRS", //номер БЕ<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "INN",<br />
"Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "KPP",<br />
"Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKPO",<br />
"Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKOPF",<br />
"Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKDP",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME1", //наименование организации первая строка<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "COUNTRY_CODE",<br />
"Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "ADR_TEXT",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "ADR_TYPE",<br />
"Значение": "Юридический",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "POST_CODE",<br />
"Значение": "ADDR1_SP-POST_CODE1",<br />
"Тип": "Concat_Field",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "CITY",<br />
"Значение": "ADDR1_SP-CITY1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "STREET",<br />
"Значение": "ADDR1_SP-STREET",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "HOUSE",<br />
"Значение": "ADDR1_SP-HOUSE_NUM1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "PHONE",<br />
"Значение": "ADDR1_SP-TEL_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FAX",<br />
"Значение": "ADDR1_SP-FAX_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "EMAIL",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_NAME",<br />
"Значение": "SP_BANK-NAME",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_BIK",<br />
"Значение": "SP_BANK-BIK",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_CORACC",<br />
"Значение": "GR_CURRENT_DATA->BANK_CORACC",<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "BANK_ACC",<br />
"Значение": "SP_BANK-ACC_NUM",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"BANK_CITY": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "BANK_CITY",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "GR_HIGHER_DATA->BANK_CITY",<br />
"Тип": "ClassField"<br />
}<br />
]<br />
}<br />
}<br />
] <br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===ITEMS===<br />
<br />
Позиции документа отражаются в массиве ITEMS, описываемом структурой /SBIS/S_DOC_ITEM.<br />
<br />
Структура ITEMS:<br />
* ITEMS тип Items<br />
** [значение]<br />
*** [указание на таблицу позиций программы печати]<br />
**** [маппинг полей таблицы позиций программы печати]<br />
***** [имя] - имя поля из структуры /SBIS/S_XML<br />
***** [значение] - имя поля из структуры программы печати<br />
***** [тип] - тип поля<br />
****** String - фиксированная строка<br />
****** ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:<br />
******* ItemField_Matnr - удаляет лидирующие нули у номера материала<br />
******* ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя<br />
******* ItemField_Unitcode - преобразует имя единицы измерения в код<br />
**** [параметры ИнфПолФХЖ2] - тип Param, имя+значение:<br />
***** [имя параметра]<br />
****** [имя] - NAME или VALUE<br />
****** [значение] - значение параметра<br />
****** [тип] - тип параметра:<br />
******* String - фиксированная строка<br />
******* Field - поле структуры залоговка<br />
******* ItemField - поле структуры позиции<br />
<br />
<div style="border: 1px dashed;"><br />
пример массива позиций ITEMS для программы печати <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"ITEMS": {<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [ //указание на массив ITEMS из программы печати<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "POSNUM", //маппинг полей структуры ITEMS в /SBIS/S_XML<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "ID",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField_Matnr" //использование модификатора преобразования<br />
},<br />
{<br />
"Имя": "PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "AMOUNT",<br />
"Значение": "LFIMG",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "UNIT_NAME",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitlongname"<br />
},<br />
{<br />
"Имя": "UNIT_CODE",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitcode"<br />
},<br />
{<br />
"Имя": "SUM_TAX_FREE",<br />
"Значение": "NETWR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "SUM",<br />
"Значение": "WRBTR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_SUM",<br />
"Значение": "VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_TYPE",<br />
"Значение": "процент",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TAX_RATE",<br />
"Значение": "ST_VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "EXCISE_SUM",<br />
"Значение": "",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_NET",<br />
"Значение": "NTGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_GROSS",<br />
"Значение": "BRGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_UNIT_NAME",<br />
"Значение": "GEWEI",<br />
"Тип": "ItemField_Unitname"<br />
},<br />
{<br />
"Имя": "PACK_NAME",<br />
"Значение": "MAGRV",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_AMOUNT",<br />
"Значение": "PLACES",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_SIZE",<br />
"Значение": "IN1PL",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"НомерПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НомерПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"НаименованиеПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НаименованиеПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"ДатаПоказаний": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ДатаПоказаний",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field_Date"<br />
}<br />
]<br />
}<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==PRINT_SEND, PRINT_PRINT==<br />
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.<br />
<br />
Структура:<br />
* [PRINT_SEND\PRINT_PRINT]<br />
** [значение] - массив значений<br />
*** print_program - программа печати<br />
*** print_form - точка входа в программу печати<br />
*** tnapr-sform - печатная форма<br />
*** nast-kappl - приложение<br />
*** nast-parvw - роль партнера <br />
*** nast-nacha - тип обмена (1 - вывод на печать, 8 - электронная отправка)<br />
*** nast-kschl - тип сообщения<br />
*** nast-objtype - тип объекта<br />
*** nast-spras - язык<br />
<br />
<div style="border: 1px dashed;"><br />
пример PRINT_SEND и PRINT_PRINT для программы печати J_3RV_DELIV_PDF с точкой входа ENTRY, печатной формой J_3RV_T12_PDF<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"PRINT_PRINT": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "1"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
},<br />
{<br />
"Имя": "nast-dimme",<br />
"Значение": "X"<br />
}<br />
]<br />
},<br />
"PRINT_SEND": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "8"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3524
SAPPER SETTINGS - Настройки выгрузки
2018-07-05T05:51:47Z
<p>Чижов Виталий: /* ITEMS */</p>
<hr />
<div>=Настройки выгрузки=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME структуры S_API2_PACKET. <br />
Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутренние структуры SAPPER, на основании которых формируются XML документы.<br />
<br />
Структура настроек выгрузки:<br />
*ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)<br />
*ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
*ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)<br />
*assign_program – программа печати, J_3RV_DELIV_PDF<br />
*ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета<br />
*PRINT_SEND - параметры программы печати в режиме формирования XML<br />
*PRINT_PRINT - параметры программы печати в режиме печати<br />
*FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
** [параметры заголовка документа]<br />
** PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС. <br />
** FACE - массив ролей участников документооборота<br />
** LINKS - массив ссылок на связанные документы (документы основания)<br />
** ITEMS - массив позиций документа<br />
*** PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС<br />
<br />
==FILE==<br />
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).<br />
<br />
<div style="border: 1px dashed;"><br />
пример структуры файла DO_* с двумя файлами выгрузки Накладная и ТТН<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA"<br />
},<br />
"ПолучениеДанных_Метод": {<br />
"Значение": "/SBIS/PRINT_NAST"<br />
},<br />
"ПолучениеДанных_XSLT": {<br />
"Значение": "/SBIS/DOC301"<br />
},<br />
"assign_program": {<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
"ОтправительПакета_Роль": {<br />
"Значение": "Отправитель"<br />
},<br />
"ПолучательПакета_Роль": {<br />
"Значение": "Получатель"<br />
},<br />
"FILE": {<br />
"Файл1_Накладная": {<br />
},<br />
"Файл2_ТТН": {<br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===Заголовок документа===<br />
<br />
Параметры заголовка документа условно можно разделить на две группы:<br />
* Предопределенные параметры<br />
** NAME – наименование документа “Накладная”<br />
** XSLT_CONVERTER – необязательный, техническое имя XSLT для запасного конвертера 3.01->5.01. Если пустое, то имя конвертера вычисляется на основе (Тип_Подтип_Версия).<br />
** FILE_FORMAT_TYPE – тип документа “ЭДОНакл”<br />
** FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"<br />
** FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”<br />
** FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"<br />
** FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"<br />
**NAME – отображаемое имя документа, “Накладная”<br />
* Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:<br />
**DATE – дата документа <br />
**TIME – время документа, по умолчанию 00.00.00<br />
**ID - уникальный идентификатор, обычно номер документа<br />
**NUMBER - номер документа<br />
**WAERS - код валюты<br />
**SUM_TAX_FREE - сумма без налога<br />
**SUM - сумма<br />
**TAX_SUM - сумма налога<br />
**AMOUNT - количество<br />
**WEIGHT_GROSS - вес брутто<br />
**WEIGHT_NET - вес нетто<br />
**WEIGHT_UNIT_NAME - единица измерения веса<br />
<br />
Значение параметра для заголовка может иметь тип: <br />
*Field – поле ABAP объекта<br />
*String – строка<br />
<br />
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.<br />
<br />
===PARAM (ИнфПолФХЖ1)===<br />
<br />
Для заголовка, также можно добавить параметры следующей структуры:<br />
* PARAM массив параметров с типом Param<br />
** [массив значений]<br />
*** [имя параметра]<br />
**** [массив NAME + VALUE]<br />
***** Имя (NAME или VALUE)<br />
***** Значение<br />
***** Тип<br />
<br />
<div style="border: 1px dashed;"><br />
пример параметров для заголовка документа<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"PARAM": {<br />
"Тип": "Param",<br />
"Значение": {<br />
"Отправитель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправитель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-WAERK",<br />
"Тип": "Field"<br />
}<br />
],<br />
"Получатель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Получатель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field"<br />
}<br />
],<br />
"ИнфПередТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПередТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПередТабл N 00 от 01.01.1999 Контракт 123 от 01.01.2017",<br />
"Тип": "String"<br />
}<br />
],<br />
"ИнфПослеТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПослеТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПослеТабл N 00 от 01.01.1999",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===LINKS===<br />
<br />
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.<br />
<br />
Структура:<br />
* LINKS тип Links<br />
** [значение] - массив документов оснований<br />
*** [название документа]<br />
**** [набор полей структуры S_XML_LINK_DOC], к примеру:<br />
***** NAME - наименование документа<br />
***** TYPE - тип документа<br />
***** NUMBER - номер документа<br />
***** DATE - дата документа<br />
<br />
<div style="border: 1px dashed;"><br />
массив LINKS связанных документов (документов оснований)<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"LINKS": {<br />
"Тип": "Links",<br />
"Значение": {<br />
"Заказ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "H_DOC-GROUND",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "ЗаказВх",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "H_DOC-TRANSP_DATE1",<br />
"Тип": "Field_Date"<br />
}<br />
],<br />
"ТранНакл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ТранНакл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM2",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "01.01.1900",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===FACE===<br />
<br />
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.<br />
<br />
Структура:<br />
* FACE тип Face<br />
** [значение] - массив ролей<br />
*** [название роли], например Отправитель<br />
**** [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:<br />
***** GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ<br />
***** GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.<br />
***** GET_WERKS_BANK_BY_WERKS - данные банка для завода<br />
***** GET_KUNNR_BANK_BY_KUNNR - данные банка для customer<br />
***** GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)<br />
**** [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)<br />
**** [тип] - тип поля:<br />
***** Field - объекта словаря ABAP<br />
***** String - фиксированная строка<br />
***** Method - метод класса получения данных <br />
***** Concat_Field - строка получаемая конкатенацией строк<br />
***** ClassField - глобальное значение класса<br />
**** [подтип] - подтип типа:<br />
***** указание класса для типа Method<br />
***** указание поля в которое объединяются строки для Concat_Field<br />
<br />
<div style="border: 1px dashed;"><br />
массив FACE для отправителя<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"FACE": {<br />
"Тип": "Face",<br />
"Значение": {<br />
"Отправитель": [<br />
{<br />
"Имя": "ID",<br />
"Значение": "VBDKL-BUKRS", //номер БЕ<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "INN",<br />
"Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "KPP",<br />
"Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKPO",<br />
"Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKOPF",<br />
"Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKDP",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME1", //наименование организации первая строка<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "COUNTRY_CODE",<br />
"Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "ADR_TEXT",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "ADR_TYPE",<br />
"Значение": "Юридический",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "POST_CODE",<br />
"Значение": "ADDR1_SP-POST_CODE1",<br />
"Тип": "Concat_Field",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "CITY",<br />
"Значение": "ADDR1_SP-CITY1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "STREET",<br />
"Значение": "ADDR1_SP-STREET",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "HOUSE",<br />
"Значение": "ADDR1_SP-HOUSE_NUM1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "PHONE",<br />
"Значение": "ADDR1_SP-TEL_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FAX",<br />
"Значение": "ADDR1_SP-FAX_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "EMAIL",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_NAME",<br />
"Значение": "SP_BANK-NAME",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_BIK",<br />
"Значение": "SP_BANK-BIK",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_CORACC",<br />
"Значение": "GR_CURRENT_DATA->BANK_CORACC",<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "BANK_ACC",<br />
"Значение": "SP_BANK-ACC_NUM",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"BANK_CITY": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "BANK_CITY",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "GR_HIGHER_DATA->BANK_CITY",<br />
"Тип": "ClassField"<br />
}<br />
]<br />
}<br />
}<br />
] <br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===ITEMS===<br />
<br />
Позиции документа отражаются в массиве ITEMS, описываемом структурой /SBIS/S_DOC_ITEM.<br />
<br />
Структура ITEMS:<br />
* ITEMS тип Items<br />
** [значение]<br />
*** [указание на таблицу позиций программы печати]<br />
**** [маппинг полей таблицы позиций программы печати в /SBIS/S_DOC]<br />
***** [имя] - имя поля из структуры /SBIS/S_XML<br />
***** [значение] - имя поля из структуры программы печати<br />
***** [тип] - тип поля<br />
****** String - фиксированная строка<br />
****** ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:<br />
******* ItemField_Matnr - удаляет лидирующие нули у номера материала<br />
******* ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя<br />
******* ItemField_Unitcode - преобразует имя единицы измерения в код<br />
**** [параметры ИнфПолФХЖ2] - тип Param, имя+значение:<br />
***** [имя параметра]<br />
****** [имя] - NAME или VALUE<br />
****** [значение] - значение параметра<br />
****** [тип] - тип параметра:<br />
******* String - фиксированная строка<br />
******* Field - поле структуры залоговка<br />
******* ItemField - поле структуры позиции<br />
<br />
<div style="border: 1px dashed;"><br />
пример массива позиций ITEMS для программы печати <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"ITEMS": {<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [ //указание на массив ITEMS из программы печати<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "POSNUM", //маппинг полей структуры ITEMS в /SBIS/S_XML<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "ID",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField_Matnr" //использование модификатора преобразования<br />
},<br />
{<br />
"Имя": "PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "AMOUNT",<br />
"Значение": "LFIMG",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "UNIT_NAME",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitlongname"<br />
},<br />
{<br />
"Имя": "UNIT_CODE",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitcode"<br />
},<br />
{<br />
"Имя": "SUM_TAX_FREE",<br />
"Значение": "NETWR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "SUM",<br />
"Значение": "WRBTR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_SUM",<br />
"Значение": "VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_TYPE",<br />
"Значение": "процент",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TAX_RATE",<br />
"Значение": "ST_VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "EXCISE_SUM",<br />
"Значение": "",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_NET",<br />
"Значение": "NTGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_GROSS",<br />
"Значение": "BRGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_UNIT_NAME",<br />
"Значение": "GEWEI",<br />
"Тип": "ItemField_Unitname"<br />
},<br />
{<br />
"Имя": "PACK_NAME",<br />
"Значение": "MAGRV",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_AMOUNT",<br />
"Значение": "PLACES",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_SIZE",<br />
"Значение": "IN1PL",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"НомерПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НомерПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"НаименованиеПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НаименованиеПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"ДатаПоказаний": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ДатаПоказаний",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field_Date"<br />
}<br />
]<br />
}<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==PRINT_SEND, PRINT_PRINT==<br />
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.<br />
<br />
Структура:<br />
* [PRINT_SEND\PRINT_PRINT]<br />
** [значение] - массив значений<br />
*** print_program - программа печати<br />
*** print_form - точка входа в программу печати<br />
*** tnapr-sform - печатная форма<br />
*** nast-kappl - приложение<br />
*** nast-parvw - роль партнера <br />
*** nast-nacha - тип обмена (1 - вывод на печать, 8 - электронная отправка)<br />
*** nast-kschl - тип сообщения<br />
*** nast-objtype - тип объекта<br />
*** nast-spras - язык<br />
<br />
<div style="border: 1px dashed;"><br />
пример PRINT_SEND и PRINT_PRINT для программы печати J_3RV_DELIV_PDF с точкой входа ENTRY, печатной формой J_3RV_T12_PDF<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"PRINT_PRINT": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "1"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
},<br />
{<br />
"Имя": "nast-dimme",<br />
"Значение": "X"<br />
}<br />
]<br />
},<br />
"PRINT_SEND": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "8"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3523
SAPPER SETTINGS - Настройки выгрузки
2018-07-05T05:51:26Z
<p>Чижов Виталий: /* ITEMS */</p>
<hr />
<div>=Настройки выгрузки=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME структуры S_API2_PACKET. <br />
Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутренние структуры SAPPER, на основании которых формируются XML документы.<br />
<br />
Структура настроек выгрузки:<br />
*ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)<br />
*ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
*ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)<br />
*assign_program – программа печати, J_3RV_DELIV_PDF<br />
*ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета<br />
*PRINT_SEND - параметры программы печати в режиме формирования XML<br />
*PRINT_PRINT - параметры программы печати в режиме печати<br />
*FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
** [параметры заголовка документа]<br />
** PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС. <br />
** FACE - массив ролей участников документооборота<br />
** LINKS - массив ссылок на связанные документы (документы основания)<br />
** ITEMS - массив позиций документа<br />
*** PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС<br />
<br />
==FILE==<br />
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).<br />
<br />
<div style="border: 1px dashed;"><br />
пример структуры файла DO_* с двумя файлами выгрузки Накладная и ТТН<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA"<br />
},<br />
"ПолучениеДанных_Метод": {<br />
"Значение": "/SBIS/PRINT_NAST"<br />
},<br />
"ПолучениеДанных_XSLT": {<br />
"Значение": "/SBIS/DOC301"<br />
},<br />
"assign_program": {<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
"ОтправительПакета_Роль": {<br />
"Значение": "Отправитель"<br />
},<br />
"ПолучательПакета_Роль": {<br />
"Значение": "Получатель"<br />
},<br />
"FILE": {<br />
"Файл1_Накладная": {<br />
},<br />
"Файл2_ТТН": {<br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===Заголовок документа===<br />
<br />
Параметры заголовка документа условно можно разделить на две группы:<br />
* Предопределенные параметры<br />
** NAME – наименование документа “Накладная”<br />
** XSLT_CONVERTER – необязательный, техническое имя XSLT для запасного конвертера 3.01->5.01. Если пустое, то имя конвертера вычисляется на основе (Тип_Подтип_Версия).<br />
** FILE_FORMAT_TYPE – тип документа “ЭДОНакл”<br />
** FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"<br />
** FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”<br />
** FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"<br />
** FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"<br />
**NAME – отображаемое имя документа, “Накладная”<br />
* Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:<br />
**DATE – дата документа <br />
**TIME – время документа, по умолчанию 00.00.00<br />
**ID - уникальный идентификатор, обычно номер документа<br />
**NUMBER - номер документа<br />
**WAERS - код валюты<br />
**SUM_TAX_FREE - сумма без налога<br />
**SUM - сумма<br />
**TAX_SUM - сумма налога<br />
**AMOUNT - количество<br />
**WEIGHT_GROSS - вес брутто<br />
**WEIGHT_NET - вес нетто<br />
**WEIGHT_UNIT_NAME - единица измерения веса<br />
<br />
Значение параметра для заголовка может иметь тип: <br />
*Field – поле ABAP объекта<br />
*String – строка<br />
<br />
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.<br />
<br />
===PARAM (ИнфПолФХЖ1)===<br />
<br />
Для заголовка, также можно добавить параметры следующей структуры:<br />
* PARAM массив параметров с типом Param<br />
** [массив значений]<br />
*** [имя параметра]<br />
**** [массив NAME + VALUE]<br />
***** Имя (NAME или VALUE)<br />
***** Значение<br />
***** Тип<br />
<br />
<div style="border: 1px dashed;"><br />
пример параметров для заголовка документа<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"PARAM": {<br />
"Тип": "Param",<br />
"Значение": {<br />
"Отправитель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправитель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-WAERK",<br />
"Тип": "Field"<br />
}<br />
],<br />
"Получатель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Получатель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field"<br />
}<br />
],<br />
"ИнфПередТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПередТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПередТабл N 00 от 01.01.1999 Контракт 123 от 01.01.2017",<br />
"Тип": "String"<br />
}<br />
],<br />
"ИнфПослеТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПослеТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПослеТабл N 00 от 01.01.1999",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===LINKS===<br />
<br />
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.<br />
<br />
Структура:<br />
* LINKS тип Links<br />
** [значение] - массив документов оснований<br />
*** [название документа]<br />
**** [набор полей структуры S_XML_LINK_DOC], к примеру:<br />
***** NAME - наименование документа<br />
***** TYPE - тип документа<br />
***** NUMBER - номер документа<br />
***** DATE - дата документа<br />
<br />
<div style="border: 1px dashed;"><br />
массив LINKS связанных документов (документов оснований)<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"LINKS": {<br />
"Тип": "Links",<br />
"Значение": {<br />
"Заказ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "H_DOC-GROUND",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "ЗаказВх",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "H_DOC-TRANSP_DATE1",<br />
"Тип": "Field_Date"<br />
}<br />
],<br />
"ТранНакл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ТранНакл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM2",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "01.01.1900",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===FACE===<br />
<br />
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.<br />
<br />
Структура:<br />
* FACE тип Face<br />
** [значение] - массив ролей<br />
*** [название роли], например Отправитель<br />
**** [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:<br />
***** GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ<br />
***** GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.<br />
***** GET_WERKS_BANK_BY_WERKS - данные банка для завода<br />
***** GET_KUNNR_BANK_BY_KUNNR - данные банка для customer<br />
***** GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)<br />
**** [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)<br />
**** [тип] - тип поля:<br />
***** Field - объекта словаря ABAP<br />
***** String - фиксированная строка<br />
***** Method - метод класса получения данных <br />
***** Concat_Field - строка получаемая конкатенацией строк<br />
***** ClassField - глобальное значение класса<br />
**** [подтип] - подтип типа:<br />
***** указание класса для типа Method<br />
***** указание поля в которое объединяются строки для Concat_Field<br />
<br />
<div style="border: 1px dashed;"><br />
массив FACE для отправителя<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"FACE": {<br />
"Тип": "Face",<br />
"Значение": {<br />
"Отправитель": [<br />
{<br />
"Имя": "ID",<br />
"Значение": "VBDKL-BUKRS", //номер БЕ<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "INN",<br />
"Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "KPP",<br />
"Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKPO",<br />
"Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKOPF",<br />
"Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKDP",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME1", //наименование организации первая строка<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "COUNTRY_CODE",<br />
"Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "ADR_TEXT",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "ADR_TYPE",<br />
"Значение": "Юридический",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "POST_CODE",<br />
"Значение": "ADDR1_SP-POST_CODE1",<br />
"Тип": "Concat_Field",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "CITY",<br />
"Значение": "ADDR1_SP-CITY1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "STREET",<br />
"Значение": "ADDR1_SP-STREET",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "HOUSE",<br />
"Значение": "ADDR1_SP-HOUSE_NUM1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "PHONE",<br />
"Значение": "ADDR1_SP-TEL_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FAX",<br />
"Значение": "ADDR1_SP-FAX_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "EMAIL",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_NAME",<br />
"Значение": "SP_BANK-NAME",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_BIK",<br />
"Значение": "SP_BANK-BIK",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_CORACC",<br />
"Значение": "GR_CURRENT_DATA->BANK_CORACC",<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "BANK_ACC",<br />
"Значение": "SP_BANK-ACC_NUM",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"BANK_CITY": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "BANK_CITY",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "GR_HIGHER_DATA->BANK_CITY",<br />
"Тип": "ClassField"<br />
}<br />
]<br />
}<br />
}<br />
] <br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===ITEMS===<br />
<br />
Позиции документа отражаются в массиве ITEMS, описываемом структурой /SBIS/S_DOC_ITEM.<br />
<br />
Структура ITEMS:<br />
* ITEMS тип Items<br />
** [значение]<br />
*** [указание на таблицу позиций программы печати]<br />
**** [маппинг полей таблицы позиций программы печати в /SBIS/S_XML]<br />
***** [имя] - имя поля из структуры /SBIS/S_XML<br />
***** [значение] - имя поля из структуры программы печати<br />
***** [тип] - тип поля<br />
****** String - фиксированная строка<br />
****** ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:<br />
******* ItemField_Matnr - удаляет лидирующие нули у номера материала<br />
******* ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя<br />
******* ItemField_Unitcode - преобразует имя единицы измерения в код<br />
**** [параметры ИнфПолФХЖ2] - тип Param, имя+значение:<br />
***** [имя параметра]<br />
****** [имя] - NAME или VALUE<br />
****** [значение] - значение параметра<br />
****** [тип] - тип параметра:<br />
******* String - фиксированная строка<br />
******* Field - поле структуры залоговка<br />
******* ItemField - поле структуры позиции<br />
<br />
<div style="border: 1px dashed;"><br />
пример массива позиций ITEMS для программы печати <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"ITEMS": {<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [ //указание на массив ITEMS из программы печати<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "POSNUM", //маппинг полей структуры ITEMS в /SBIS/S_XML<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "ID",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField_Matnr" //использование модификатора преобразования<br />
},<br />
{<br />
"Имя": "PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "AMOUNT",<br />
"Значение": "LFIMG",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "UNIT_NAME",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitlongname"<br />
},<br />
{<br />
"Имя": "UNIT_CODE",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitcode"<br />
},<br />
{<br />
"Имя": "SUM_TAX_FREE",<br />
"Значение": "NETWR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "SUM",<br />
"Значение": "WRBTR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_SUM",<br />
"Значение": "VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_TYPE",<br />
"Значение": "процент",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TAX_RATE",<br />
"Значение": "ST_VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "EXCISE_SUM",<br />
"Значение": "",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_NET",<br />
"Значение": "NTGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_GROSS",<br />
"Значение": "BRGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_UNIT_NAME",<br />
"Значение": "GEWEI",<br />
"Тип": "ItemField_Unitname"<br />
},<br />
{<br />
"Имя": "PACK_NAME",<br />
"Значение": "MAGRV",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_AMOUNT",<br />
"Значение": "PLACES",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_SIZE",<br />
"Значение": "IN1PL",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"НомерПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НомерПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"НаименованиеПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НаименованиеПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"ДатаПоказаний": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ДатаПоказаний",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field_Date"<br />
}<br />
]<br />
}<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==PRINT_SEND, PRINT_PRINT==<br />
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.<br />
<br />
Структура:<br />
* [PRINT_SEND\PRINT_PRINT]<br />
** [значение] - массив значений<br />
*** print_program - программа печати<br />
*** print_form - точка входа в программу печати<br />
*** tnapr-sform - печатная форма<br />
*** nast-kappl - приложение<br />
*** nast-parvw - роль партнера <br />
*** nast-nacha - тип обмена (1 - вывод на печать, 8 - электронная отправка)<br />
*** nast-kschl - тип сообщения<br />
*** nast-objtype - тип объекта<br />
*** nast-spras - язык<br />
<br />
<div style="border: 1px dashed;"><br />
пример PRINT_SEND и PRINT_PRINT для программы печати J_3RV_DELIV_PDF с точкой входа ENTRY, печатной формой J_3RV_T12_PDF<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"PRINT_PRINT": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "1"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
},<br />
{<br />
"Имя": "nast-dimme",<br />
"Значение": "X"<br />
}<br />
]<br />
},<br />
"PRINT_SEND": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "8"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3522
SAPPER SETTINGS - Настройки выгрузки
2018-07-05T05:50:46Z
<p>Чижов Виталий: /* ITEMS (S_XML_DOC) */</p>
<hr />
<div>=Настройки выгрузки=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME структуры S_API2_PACKET. <br />
Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутренние структуры SAPPER, на основании которых формируются XML документы.<br />
<br />
Структура настроек выгрузки:<br />
*ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)<br />
*ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
*ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)<br />
*assign_program – программа печати, J_3RV_DELIV_PDF<br />
*ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета<br />
*PRINT_SEND - параметры программы печати в режиме формирования XML<br />
*PRINT_PRINT - параметры программы печати в режиме печати<br />
*FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
** [параметры заголовка документа]<br />
** PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС. <br />
** FACE - массив ролей участников документооборота<br />
** LINKS - массив ссылок на связанные документы (документы основания)<br />
** ITEMS - массив позиций документа<br />
*** PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС<br />
<br />
==FILE==<br />
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).<br />
<br />
<div style="border: 1px dashed;"><br />
пример структуры файла DO_* с двумя файлами выгрузки Накладная и ТТН<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA"<br />
},<br />
"ПолучениеДанных_Метод": {<br />
"Значение": "/SBIS/PRINT_NAST"<br />
},<br />
"ПолучениеДанных_XSLT": {<br />
"Значение": "/SBIS/DOC301"<br />
},<br />
"assign_program": {<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
"ОтправительПакета_Роль": {<br />
"Значение": "Отправитель"<br />
},<br />
"ПолучательПакета_Роль": {<br />
"Значение": "Получатель"<br />
},<br />
"FILE": {<br />
"Файл1_Накладная": {<br />
},<br />
"Файл2_ТТН": {<br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===Заголовок документа===<br />
<br />
Параметры заголовка документа условно можно разделить на две группы:<br />
* Предопределенные параметры<br />
** NAME – наименование документа “Накладная”<br />
** XSLT_CONVERTER – необязательный, техническое имя XSLT для запасного конвертера 3.01->5.01. Если пустое, то имя конвертера вычисляется на основе (Тип_Подтип_Версия).<br />
** FILE_FORMAT_TYPE – тип документа “ЭДОНакл”<br />
** FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"<br />
** FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”<br />
** FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"<br />
** FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"<br />
**NAME – отображаемое имя документа, “Накладная”<br />
* Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:<br />
**DATE – дата документа <br />
**TIME – время документа, по умолчанию 00.00.00<br />
**ID - уникальный идентификатор, обычно номер документа<br />
**NUMBER - номер документа<br />
**WAERS - код валюты<br />
**SUM_TAX_FREE - сумма без налога<br />
**SUM - сумма<br />
**TAX_SUM - сумма налога<br />
**AMOUNT - количество<br />
**WEIGHT_GROSS - вес брутто<br />
**WEIGHT_NET - вес нетто<br />
**WEIGHT_UNIT_NAME - единица измерения веса<br />
<br />
Значение параметра для заголовка может иметь тип: <br />
*Field – поле ABAP объекта<br />
*String – строка<br />
<br />
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.<br />
<br />
===PARAM (ИнфПолФХЖ1)===<br />
<br />
Для заголовка, также можно добавить параметры следующей структуры:<br />
* PARAM массив параметров с типом Param<br />
** [массив значений]<br />
*** [имя параметра]<br />
**** [массив NAME + VALUE]<br />
***** Имя (NAME или VALUE)<br />
***** Значение<br />
***** Тип<br />
<br />
<div style="border: 1px dashed;"><br />
пример параметров для заголовка документа<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"PARAM": {<br />
"Тип": "Param",<br />
"Значение": {<br />
"Отправитель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправитель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-WAERK",<br />
"Тип": "Field"<br />
}<br />
],<br />
"Получатель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Получатель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field"<br />
}<br />
],<br />
"ИнфПередТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПередТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПередТабл N 00 от 01.01.1999 Контракт 123 от 01.01.2017",<br />
"Тип": "String"<br />
}<br />
],<br />
"ИнфПослеТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПослеТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПослеТабл N 00 от 01.01.1999",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===LINKS===<br />
<br />
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.<br />
<br />
Структура:<br />
* LINKS тип Links<br />
** [значение] - массив документов оснований<br />
*** [название документа]<br />
**** [набор полей структуры S_XML_LINK_DOC], к примеру:<br />
***** NAME - наименование документа<br />
***** TYPE - тип документа<br />
***** NUMBER - номер документа<br />
***** DATE - дата документа<br />
<br />
<div style="border: 1px dashed;"><br />
массив LINKS связанных документов (документов оснований)<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"LINKS": {<br />
"Тип": "Links",<br />
"Значение": {<br />
"Заказ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "H_DOC-GROUND",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "ЗаказВх",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "H_DOC-TRANSP_DATE1",<br />
"Тип": "Field_Date"<br />
}<br />
],<br />
"ТранНакл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ТранНакл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM2",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "01.01.1900",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===FACE===<br />
<br />
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.<br />
<br />
Структура:<br />
* FACE тип Face<br />
** [значение] - массив ролей<br />
*** [название роли], например Отправитель<br />
**** [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:<br />
***** GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ<br />
***** GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.<br />
***** GET_WERKS_BANK_BY_WERKS - данные банка для завода<br />
***** GET_KUNNR_BANK_BY_KUNNR - данные банка для customer<br />
***** GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)<br />
**** [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)<br />
**** [тип] - тип поля:<br />
***** Field - объекта словаря ABAP<br />
***** String - фиксированная строка<br />
***** Method - метод класса получения данных <br />
***** Concat_Field - строка получаемая конкатенацией строк<br />
***** ClassField - глобальное значение класса<br />
**** [подтип] - подтип типа:<br />
***** указание класса для типа Method<br />
***** указание поля в которое объединяются строки для Concat_Field<br />
<br />
<div style="border: 1px dashed;"><br />
массив FACE для отправителя<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"FACE": {<br />
"Тип": "Face",<br />
"Значение": {<br />
"Отправитель": [<br />
{<br />
"Имя": "ID",<br />
"Значение": "VBDKL-BUKRS", //номер БЕ<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "INN",<br />
"Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "KPP",<br />
"Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKPO",<br />
"Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKOPF",<br />
"Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKDP",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME1", //наименование организации первая строка<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "COUNTRY_CODE",<br />
"Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "ADR_TEXT",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "ADR_TYPE",<br />
"Значение": "Юридический",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "POST_CODE",<br />
"Значение": "ADDR1_SP-POST_CODE1",<br />
"Тип": "Concat_Field",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "CITY",<br />
"Значение": "ADDR1_SP-CITY1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "STREET",<br />
"Значение": "ADDR1_SP-STREET",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "HOUSE",<br />
"Значение": "ADDR1_SP-HOUSE_NUM1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "PHONE",<br />
"Значение": "ADDR1_SP-TEL_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FAX",<br />
"Значение": "ADDR1_SP-FAX_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "EMAIL",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_NAME",<br />
"Значение": "SP_BANK-NAME",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_BIK",<br />
"Значение": "SP_BANK-BIK",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_CORACC",<br />
"Значение": "GR_CURRENT_DATA->BANK_CORACC",<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "BANK_ACC",<br />
"Значение": "SP_BANK-ACC_NUM",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"BANK_CITY": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "BANK_CITY",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "GR_HIGHER_DATA->BANK_CITY",<br />
"Тип": "ClassField"<br />
}<br />
]<br />
}<br />
}<br />
] <br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===ITEMS===<br />
<br />
Позиции документа отражаются в массиве ITEMS, описываемом структурой /SBIS/S_XML.<br />
<br />
Структура ITEMS:<br />
* ITEMS тип Items<br />
** [значение]<br />
*** [указание на таблицу позиций программы печати]<br />
**** [маппинг полей таблицы позиций программы печати в /SBIS/S_XML]<br />
***** [имя] - имя поля из структуры /SBIS/S_XML<br />
***** [значение] - имя поля из структуры программы печати<br />
***** [тип] - тип поля<br />
****** String - фиксированная строка<br />
****** ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:<br />
******* ItemField_Matnr - удаляет лидирующие нули у номера материала<br />
******* ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя<br />
******* ItemField_Unitcode - преобразует имя единицы измерения в код<br />
**** [параметры ИнфПолФХЖ2] - тип Param, имя+значение:<br />
***** [имя параметра]<br />
****** [имя] - NAME или VALUE<br />
****** [значение] - значение параметра<br />
****** [тип] - тип параметра:<br />
******* String - фиксированная строка<br />
******* Field - поле структуры залоговка<br />
******* ItemField - поле структуры позиции<br />
<br />
<div style="border: 1px dashed;"><br />
пример массива позиций ITEMS для программы печати <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"ITEMS": {<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [ //указание на массив ITEMS из программы печати<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "POSNUM", //маппинг полей структуры ITEMS в /SBIS/S_XML<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "ID",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField_Matnr" //использование модификатора преобразования<br />
},<br />
{<br />
"Имя": "PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "AMOUNT",<br />
"Значение": "LFIMG",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "UNIT_NAME",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitlongname"<br />
},<br />
{<br />
"Имя": "UNIT_CODE",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitcode"<br />
},<br />
{<br />
"Имя": "SUM_TAX_FREE",<br />
"Значение": "NETWR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "SUM",<br />
"Значение": "WRBTR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_SUM",<br />
"Значение": "VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_TYPE",<br />
"Значение": "процент",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TAX_RATE",<br />
"Значение": "ST_VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "EXCISE_SUM",<br />
"Значение": "",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_NET",<br />
"Значение": "NTGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_GROSS",<br />
"Значение": "BRGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_UNIT_NAME",<br />
"Значение": "GEWEI",<br />
"Тип": "ItemField_Unitname"<br />
},<br />
{<br />
"Имя": "PACK_NAME",<br />
"Значение": "MAGRV",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_AMOUNT",<br />
"Значение": "PLACES",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_SIZE",<br />
"Значение": "IN1PL",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"НомерПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НомерПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"НаименованиеПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НаименованиеПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"ДатаПоказаний": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ДатаПоказаний",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field_Date"<br />
}<br />
]<br />
}<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==PRINT_SEND, PRINT_PRINT==<br />
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.<br />
<br />
Структура:<br />
* [PRINT_SEND\PRINT_PRINT]<br />
** [значение] - массив значений<br />
*** print_program - программа печати<br />
*** print_form - точка входа в программу печати<br />
*** tnapr-sform - печатная форма<br />
*** nast-kappl - приложение<br />
*** nast-parvw - роль партнера <br />
*** nast-nacha - тип обмена (1 - вывод на печать, 8 - электронная отправка)<br />
*** nast-kschl - тип сообщения<br />
*** nast-objtype - тип объекта<br />
*** nast-spras - язык<br />
<br />
<div style="border: 1px dashed;"><br />
пример PRINT_SEND и PRINT_PRINT для программы печати J_3RV_DELIV_PDF с точкой входа ENTRY, печатной формой J_3RV_T12_PDF<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"PRINT_PRINT": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "1"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
},<br />
{<br />
"Имя": "nast-dimme",<br />
"Значение": "X"<br />
}<br />
]<br />
},<br />
"PRINT_SEND": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "8"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3521
SAPPER SETTINGS - Настройки выгрузки
2018-07-05T05:50:34Z
<p>Чижов Виталий: /* Заголовок документа (/SBIS/S_XML) */</p>
<hr />
<div>=Настройки выгрузки=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME структуры S_API2_PACKET. <br />
Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутренние структуры SAPPER, на основании которых формируются XML документы.<br />
<br />
Структура настроек выгрузки:<br />
*ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)<br />
*ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
*ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)<br />
*assign_program – программа печати, J_3RV_DELIV_PDF<br />
*ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета<br />
*PRINT_SEND - параметры программы печати в режиме формирования XML<br />
*PRINT_PRINT - параметры программы печати в режиме печати<br />
*FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
** [параметры заголовка документа]<br />
** PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС. <br />
** FACE - массив ролей участников документооборота<br />
** LINKS - массив ссылок на связанные документы (документы основания)<br />
** ITEMS - массив позиций документа<br />
*** PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС<br />
<br />
==FILE==<br />
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).<br />
<br />
<div style="border: 1px dashed;"><br />
пример структуры файла DO_* с двумя файлами выгрузки Накладная и ТТН<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA"<br />
},<br />
"ПолучениеДанных_Метод": {<br />
"Значение": "/SBIS/PRINT_NAST"<br />
},<br />
"ПолучениеДанных_XSLT": {<br />
"Значение": "/SBIS/DOC301"<br />
},<br />
"assign_program": {<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
"ОтправительПакета_Роль": {<br />
"Значение": "Отправитель"<br />
},<br />
"ПолучательПакета_Роль": {<br />
"Значение": "Получатель"<br />
},<br />
"FILE": {<br />
"Файл1_Накладная": {<br />
},<br />
"Файл2_ТТН": {<br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===Заголовок документа===<br />
<br />
Параметры заголовка документа условно можно разделить на две группы:<br />
* Предопределенные параметры<br />
** NAME – наименование документа “Накладная”<br />
** XSLT_CONVERTER – необязательный, техническое имя XSLT для запасного конвертера 3.01->5.01. Если пустое, то имя конвертера вычисляется на основе (Тип_Подтип_Версия).<br />
** FILE_FORMAT_TYPE – тип документа “ЭДОНакл”<br />
** FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"<br />
** FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”<br />
** FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"<br />
** FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"<br />
**NAME – отображаемое имя документа, “Накладная”<br />
* Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:<br />
**DATE – дата документа <br />
**TIME – время документа, по умолчанию 00.00.00<br />
**ID - уникальный идентификатор, обычно номер документа<br />
**NUMBER - номер документа<br />
**WAERS - код валюты<br />
**SUM_TAX_FREE - сумма без налога<br />
**SUM - сумма<br />
**TAX_SUM - сумма налога<br />
**AMOUNT - количество<br />
**WEIGHT_GROSS - вес брутто<br />
**WEIGHT_NET - вес нетто<br />
**WEIGHT_UNIT_NAME - единица измерения веса<br />
<br />
Значение параметра для заголовка может иметь тип: <br />
*Field – поле ABAP объекта<br />
*String – строка<br />
<br />
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.<br />
<br />
===PARAM (ИнфПолФХЖ1)===<br />
<br />
Для заголовка, также можно добавить параметры следующей структуры:<br />
* PARAM массив параметров с типом Param<br />
** [массив значений]<br />
*** [имя параметра]<br />
**** [массив NAME + VALUE]<br />
***** Имя (NAME или VALUE)<br />
***** Значение<br />
***** Тип<br />
<br />
<div style="border: 1px dashed;"><br />
пример параметров для заголовка документа<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"PARAM": {<br />
"Тип": "Param",<br />
"Значение": {<br />
"Отправитель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправитель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-WAERK",<br />
"Тип": "Field"<br />
}<br />
],<br />
"Получатель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Получатель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field"<br />
}<br />
],<br />
"ИнфПередТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПередТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПередТабл N 00 от 01.01.1999 Контракт 123 от 01.01.2017",<br />
"Тип": "String"<br />
}<br />
],<br />
"ИнфПослеТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПослеТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПослеТабл N 00 от 01.01.1999",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===LINKS===<br />
<br />
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.<br />
<br />
Структура:<br />
* LINKS тип Links<br />
** [значение] - массив документов оснований<br />
*** [название документа]<br />
**** [набор полей структуры S_XML_LINK_DOC], к примеру:<br />
***** NAME - наименование документа<br />
***** TYPE - тип документа<br />
***** NUMBER - номер документа<br />
***** DATE - дата документа<br />
<br />
<div style="border: 1px dashed;"><br />
массив LINKS связанных документов (документов оснований)<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"LINKS": {<br />
"Тип": "Links",<br />
"Значение": {<br />
"Заказ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "H_DOC-GROUND",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "ЗаказВх",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "H_DOC-TRANSP_DATE1",<br />
"Тип": "Field_Date"<br />
}<br />
],<br />
"ТранНакл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ТранНакл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM2",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "01.01.1900",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===FACE===<br />
<br />
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.<br />
<br />
Структура:<br />
* FACE тип Face<br />
** [значение] - массив ролей<br />
*** [название роли], например Отправитель<br />
**** [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:<br />
***** GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ<br />
***** GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.<br />
***** GET_WERKS_BANK_BY_WERKS - данные банка для завода<br />
***** GET_KUNNR_BANK_BY_KUNNR - данные банка для customer<br />
***** GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)<br />
**** [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)<br />
**** [тип] - тип поля:<br />
***** Field - объекта словаря ABAP<br />
***** String - фиксированная строка<br />
***** Method - метод класса получения данных <br />
***** Concat_Field - строка получаемая конкатенацией строк<br />
***** ClassField - глобальное значение класса<br />
**** [подтип] - подтип типа:<br />
***** указание класса для типа Method<br />
***** указание поля в которое объединяются строки для Concat_Field<br />
<br />
<div style="border: 1px dashed;"><br />
массив FACE для отправителя<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"FACE": {<br />
"Тип": "Face",<br />
"Значение": {<br />
"Отправитель": [<br />
{<br />
"Имя": "ID",<br />
"Значение": "VBDKL-BUKRS", //номер БЕ<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "INN",<br />
"Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "KPP",<br />
"Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKPO",<br />
"Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKOPF",<br />
"Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKDP",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME1", //наименование организации первая строка<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "COUNTRY_CODE",<br />
"Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "ADR_TEXT",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "ADR_TYPE",<br />
"Значение": "Юридический",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "POST_CODE",<br />
"Значение": "ADDR1_SP-POST_CODE1",<br />
"Тип": "Concat_Field",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "CITY",<br />
"Значение": "ADDR1_SP-CITY1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "STREET",<br />
"Значение": "ADDR1_SP-STREET",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "HOUSE",<br />
"Значение": "ADDR1_SP-HOUSE_NUM1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "PHONE",<br />
"Значение": "ADDR1_SP-TEL_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FAX",<br />
"Значение": "ADDR1_SP-FAX_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "EMAIL",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_NAME",<br />
"Значение": "SP_BANK-NAME",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_BIK",<br />
"Значение": "SP_BANK-BIK",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_CORACC",<br />
"Значение": "GR_CURRENT_DATA->BANK_CORACC",<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "BANK_ACC",<br />
"Значение": "SP_BANK-ACC_NUM",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"BANK_CITY": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "BANK_CITY",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "GR_HIGHER_DATA->BANK_CITY",<br />
"Тип": "ClassField"<br />
}<br />
]<br />
}<br />
}<br />
] <br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===ITEMS (S_XML_DOC)===<br />
<br />
Позиции документа отражаются в массиве ITEMS, описываемом структурой /SBIS/S_XML.<br />
<br />
Структура ITEMS:<br />
* ITEMS тип Items<br />
** [значение]<br />
*** [указание на таблицу позиций программы печати]<br />
**** [маппинг полей таблицы позиций программы печати в /SBIS/S_XML]<br />
***** [имя] - имя поля из структуры /SBIS/S_XML<br />
***** [значение] - имя поля из структуры программы печати<br />
***** [тип] - тип поля<br />
****** String - фиксированная строка<br />
****** ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:<br />
******* ItemField_Matnr - удаляет лидирующие нули у номера материала<br />
******* ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя<br />
******* ItemField_Unitcode - преобразует имя единицы измерения в код<br />
**** [параметры ИнфПолФХЖ2] - тип Param, имя+значение:<br />
***** [имя параметра]<br />
****** [имя] - NAME или VALUE<br />
****** [значение] - значение параметра<br />
****** [тип] - тип параметра:<br />
******* String - фиксированная строка<br />
******* Field - поле структуры залоговка<br />
******* ItemField - поле структуры позиции<br />
<br />
<div style="border: 1px dashed;"><br />
пример массива позиций ITEMS для программы печати <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"ITEMS": {<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [ //указание на массив ITEMS из программы печати<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "POSNUM", //маппинг полей структуры ITEMS в /SBIS/S_XML<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "ID",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField_Matnr" //использование модификатора преобразования<br />
},<br />
{<br />
"Имя": "PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "AMOUNT",<br />
"Значение": "LFIMG",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "UNIT_NAME",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitlongname"<br />
},<br />
{<br />
"Имя": "UNIT_CODE",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitcode"<br />
},<br />
{<br />
"Имя": "SUM_TAX_FREE",<br />
"Значение": "NETWR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "SUM",<br />
"Значение": "WRBTR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_SUM",<br />
"Значение": "VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_TYPE",<br />
"Значение": "процент",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TAX_RATE",<br />
"Значение": "ST_VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "EXCISE_SUM",<br />
"Значение": "",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_NET",<br />
"Значение": "NTGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_GROSS",<br />
"Значение": "BRGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_UNIT_NAME",<br />
"Значение": "GEWEI",<br />
"Тип": "ItemField_Unitname"<br />
},<br />
{<br />
"Имя": "PACK_NAME",<br />
"Значение": "MAGRV",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_AMOUNT",<br />
"Значение": "PLACES",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_SIZE",<br />
"Значение": "IN1PL",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"НомерПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НомерПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"НаименованиеПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НаименованиеПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"ДатаПоказаний": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ДатаПоказаний",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field_Date"<br />
}<br />
]<br />
}<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==PRINT_SEND, PRINT_PRINT==<br />
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.<br />
<br />
Структура:<br />
* [PRINT_SEND\PRINT_PRINT]<br />
** [значение] - массив значений<br />
*** print_program - программа печати<br />
*** print_form - точка входа в программу печати<br />
*** tnapr-sform - печатная форма<br />
*** nast-kappl - приложение<br />
*** nast-parvw - роль партнера <br />
*** nast-nacha - тип обмена (1 - вывод на печать, 8 - электронная отправка)<br />
*** nast-kschl - тип сообщения<br />
*** nast-objtype - тип объекта<br />
*** nast-spras - язык<br />
<br />
<div style="border: 1px dashed;"><br />
пример PRINT_SEND и PRINT_PRINT для программы печати J_3RV_DELIV_PDF с точкой входа ENTRY, печатной формой J_3RV_T12_PDF<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"PRINT_PRINT": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "1"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
},<br />
{<br />
"Имя": "nast-dimme",<br />
"Значение": "X"<br />
}<br />
]<br />
},<br />
"PRINT_SEND": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "8"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3512
СБИС Сапёр - Настройка
2018-05-18T11:16:59Z
<p>Чижов Виталий: /* СБИС робот, автоматизация отправки документов и обновления статусов */</p>
<hr />
<div>=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
<br />
==Запустить модуль==<br />
Действие: SE38 -> /sbis/sapper или транзакция /n/SBIS/SAPPER<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Введение=<br />
При разработке SAPPER основной задачей являлось создать тиражируемое решение, которое будет легко разворачиваться на любой версии SAP и решать задачи клиента без программирования - на уровне настроек. Для достижения этой цели почти весь функционал SAPPER сделан настраиваемым. Настройки SAPPER хранятся в таблице /SBIS/SETTINGS.<br />
<br />
Сами настройки можно представить как иерархическую структуру параметров типа ключ значение.<br />
<br />
Редактирование настроек можно осуществить двумя способами:<br />
# с помощью транзакции /n/SBIS/SETTINGS (ветка SPRO -> Integration with other SAP Components -> SBIS Sapper -> Settings).<br />
# с помощью JSON файлов в последующем конвертирующихся и импортирующихся в /SBIS/SETTINGS. Данный способ на текущий момент является более удобным и наглядным. Далее в инструкции все примеры настроек показаны в виде JSON объектов.<br />
<br />
==Структура настроек /SBIS/SETTINGS==<br />
*SBIS - Общие настройки модуля, протокол обмена, справочники<br />
**ACCORDION - Настройки аккордеона<br />
*LO_* - Настройки для построения списков исходящих документов для отправки<br />
*DO_* - Настройки выгрузки исходящих документов, название класса и программ печати отвечающих за формирование<br />
**PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
**PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
**FILE - массив настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых электронных документов <br />
*UI_* - настройки загрузки электронных документов в SAP (создания SAP документов, сериализации XML файла в параметры BAPI)<br />
**FILE - массив настроек маппинга XML в параметры BAPI. Количество элементов FILE соответствует количеству документов SAP создаваемых из данного электронного документа.<br />
<br />
=Настройка отправки электронных документов=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие пакеты документов (их варианты) мы хотим отправлять и какие программы использует SAP для печати этих документов)<br />
# Настроить ACCORDION - перечислить все варианты отправляемых пакетов документов ([[SAPPER SETTINGS - Общие]]).<br />
# Для каждого варианта пакета документов настроить показ списка ([[SAPPER SETTINGS - Настройки списков]]).<br />
# Для каждого входящего в пакет документа SAP настроить параметры формирования из него электронных документов ([[SAPPER SETTINGS - Настройки выгрузки]]).<br />
<br />
==Алгоритм отправки==<br />
# Показ списка записей для отправки<br />
## на настройках аккордеона смотрим имя настройки LO_<br />
## из таблицы настроек LO_ получаем имя класса отвечающего за показ списка<br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета читаем настройки DO_<br />
## вызываем класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом при помощи другого XSLT приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
=Настройка загрузки электронных документов (cоздание документа в SAP)=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие документы SAP должны создаваться из каких электронных документов и какими методами (BAPI или BATCH INPUT))<br />
## На данный момент поддерживается создание документов в SAP из электронных документов: счет-фактура, накладная.<br />
# Для электронного документа настроить параметры создания из него документов SAP ([[SAPPER SETTINGS - Настройки загрузки]]).<br />
<br />
==Алгоритм загрузки==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем с помощью другого XSLT в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
=== Настройки аккордеона ===<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
=== Настройки реестров ===<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
=== Настройки маппинга для программ печати ===<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
=== Настройки загрузки ===<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
=== Настройки справочников ===<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
===Обновление FM смартформы===<br />
В случае изменения смартформы и перегенерации ее функционального модуля, можно инициировать автоматическое обновление настроек в таблице с помощью программы /SBIS/UPDATE_SMARTFORM_FM.<br />
<br />
===Сброс номера, даты\времени последнего прочитанного события (только для пакета /SBIS/EJOURNAL)===<br />
С помощью программы /SBIS/RESET_U_SETTINGS или транзакции /n/SBIS/RESET_USET, можно сбросить последнее прочитанное событие и установить произвольные дату и время для текущего пользователя.<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов и отправки документов =<br />
== Автоматическое обновление статусов ==<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного SAP-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Зайдите в SAP под учетной записью только что созданного пользователя (пп.2). Запустите СБИС Сапер. Авторизуйтесь. Сохраните пароль СБИС-кабинета. Под этим логином и паролем СБИС-кабинета будет происходить обновление статусов.<br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
== СБИС робот, автоматизация отправки документов и обновления статусов ==<br />
Для более гибкой организации автоматической обработки статусов, отправки документов, можно использовать функционал SBIS ROBOT.<br />
Для настройки следует добавить в настроечный раздел SBIS следующие параметры:<br />
<source lang=JSON> <br />
"SBIS_ROBOT": {<br />
"Значение": [<br />
{<br />
"Имя": "/SBIS/PR_UPDATE_DOC_STATUS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "/SBIS/PR_SEND_ALL",<br />
"Значение": "SALES"<br />
}<br />
]<br />
}<br />
</source><br />
Параметр SBIS_ROBOT содержит имя программы, которая будет запускаться и вариант в поле значение, с которым программа будет исполняться. <br />
В поле значение можно указать:<br />
#единственный вариант, к примеру, "SALES", <br />
#множество вариантов разделенные запятой, "SALES, SALES1, SALES2",<br />
#"*" - все доступные варианты программы. <br />
Обратите внимание, что имя варианта в SAP не должно содержать пробелов, в противном случае вариант будет проигнорирован.<br />
<br />
Возможные стандартные программы:<br />
#/SBIS/PR_UPDATE_DOC_STATUS служит для автоматической обработки статусов. Так как у программы есть обертка рассмотренная выше, требуется настроить вариант без выхода сессии.<br />
#/SBIS/PR_SEND_ALL используется для автоматической отправки реестров документов, подразумевает гибкую настройку варианта отправки. <br />
##Обязательно следует указать реестр отправляемых документов, даты и исключить статус “Отправлен”, чтобы не переотправлять уже отправленные документы, если такие попадут в выборку или же, наоборот, ограничить только по статусу "Не отправлен", а также организационные единицы. <br />
[[Файл:Скриншот_12.03.2018_08-42-39-259.png]]<br />
<br />
Запуск транзакции /SBIS/ROBOT осуществляется с помощью *.bat файла. По настройке *.bat файла смотрите пункт обновление статусов.<br />
Журналирование осуществляется с помощью стандартного функционала логирования приложений (SLG1) объект /SBIS/ подобъект ROBOT.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3456
SAPPER работа с SAP Workflow
2018-04-06T13:53:49Z
<p>Чижов Виталий: /* Реализация BAdI */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[SAPPER работа с SAP Workflow#Состав пакета /SBIS/WORKFLOW|Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
=Пример=<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
==Создать WF==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
==Реализация BAdI==<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
DATA cx_root TYPE REF TO cx_root. "объявляем исключение<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis. "класс для работы с WF<br />
<br />
CREATE OBJECT lc_wf. "создаем экземпляр класса для работы с WF<br />
<br />
IF is_document-type = 'ДокОтгрВх'. "условие отбора документов<br />
CALL METHOD lc_wf->event_api2_packet "вызываем метод инициирующий запуск экземпляра WF<br />
EXPORTING<br />
is_api2_packet = is_document. "на входе строка таблицы документов<br />
ENDIF.<br />
<br />
CATCH cx_root INTO cx_root. "ловим исключительную ситуацию<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск экземпляра WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT, EXECUTE_ACTION).<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3455
SAPPER работа с SAP Workflow
2018-04-06T13:14:55Z
<p>Чижов Виталий: /* Реализация BAdI */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[SAPPER работа с SAP Workflow#Состав пакета /SBIS/WORKFLOW|Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
=Пример=<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
==Создать WF==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
==Реализация BAdI==<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document. "объявляем указатель строки таблицы документов<br />
DATA cx_root TYPE REF TO cx_root. "объявляем исключение<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis. "класс для работы с WF<br />
<br />
CREATE OBJECT lc_wf. "создаем экземпляр класса для работы с WF<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'. "условие отбора документов<br />
CALL METHOD lc_wf->event_api2_packet "вызываем метод инициирующий запуск экземпляра WF<br />
EXPORTING<br />
is_api2_packet = <fs_doc>. "на входе строка таблицы документов<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root. "ловим исключительную ситуацию<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск экземпляра WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT, EXECUTE_ACTION).<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3454
SAPPER работа с SAP Workflow
2018-04-06T12:23:40Z
<p>Чижов Виталий: /* Состав пакета /SBIS/WORKFLOW */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[SAPPER работа с SAP Workflow#Состав пакета /SBIS/WORKFLOW|Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
=Пример=<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
==Создать WF==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
==Реализация BAdI==<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document. "объявляем указатель строки таблицы документов<br />
DATA cx_root TYPE REF TO cx_root. "объявляем исключение<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis. "класс для работы с WF<br />
<br />
CREATE OBJECT lc_wf. "создаем экземпляр класса для работы с WF<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'. "условие отбора документов<br />
CALL METHOD lc_wf->event_api2_packet "вызываем метод инициирующий запуск экземпляра WF<br />
EXPORTING<br />
is_api2_packet = <fs_doc>. "на входе строка таблицы документов<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root. "ловим исключительную ситуацию<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск экземпляра WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT, EXECUTE_ACTION).<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3453
SAPPER работа с SAP Workflow
2018-04-06T12:23:12Z
<p>Чижов Виталий: /* Как это работает */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[SAPPER работа с SAP Workflow#Состав пакета /SBIS/WORKFLOW|Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
=Пример=<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
==Создать WF==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
==Реализация BAdI==<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document. "объявляем указатель строки таблицы документов<br />
DATA cx_root TYPE REF TO cx_root. "объявляем исключение<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis. "класс для работы с WF<br />
<br />
CREATE OBJECT lc_wf. "создаем экземпляр класса для работы с WF<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'. "условие отбора документов<br />
CALL METHOD lc_wf->event_api2_packet "вызываем метод инициирующий запуск экземпляра WF<br />
EXPORTING<br />
is_api2_packet = <fs_doc>. "на входе строка таблицы документов<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root. "ловим исключительную ситуацию<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT, EXECUTE_ACTION).<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3452
SAPPER работа с SAP Workflow
2018-04-06T12:22:43Z
<p>Чижов Виталий: /* Как это работает */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[SAPPER работа с SAP Workflow#Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
=Пример=<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
==Создать WF==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
==Реализация BAdI==<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document. "объявляем указатель строки таблицы документов<br />
DATA cx_root TYPE REF TO cx_root. "объявляем исключение<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis. "класс для работы с WF<br />
<br />
CREATE OBJECT lc_wf. "создаем экземпляр класса для работы с WF<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'. "условие отбора документов<br />
CALL METHOD lc_wf->event_api2_packet "вызываем метод инициирующий запуск экземпляра WF<br />
EXPORTING<br />
is_api2_packet = <fs_doc>. "на входе строка таблицы документов<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root. "ловим исключительную ситуацию<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT, EXECUTE_ACTION).<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3451
SAPPER работа с SAP Workflow
2018-04-06T12:22:00Z
<p>Чижов Виталий: /* Реализация BAdI */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
=Пример=<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
==Создать WF==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
==Реализация BAdI==<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document. "объявляем указатель строки таблицы документов<br />
DATA cx_root TYPE REF TO cx_root. "объявляем исключение<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis. "класс для работы с WF<br />
<br />
CREATE OBJECT lc_wf. "создаем экземпляр класса для работы с WF<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'. "условие отбора документов<br />
CALL METHOD lc_wf->event_api2_packet "вызываем метод инициирующий запуск экземпляра WF<br />
EXPORTING<br />
is_api2_packet = <fs_doc>. "на входе строка таблицы документов<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root. "ловим исключительную ситуацию<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT, EXECUTE_ACTION).<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3450
SAPPER работа с SAP Workflow
2018-04-06T12:16:34Z
<p>Чижов Виталий: </p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
=Пример=<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
==Создать WF==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
==Реализация BAdI==<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT, EXECUTE_ACTION).<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3449
SAPPER работа с SAP Workflow
2018-04-06T12:15:47Z
<p>Чижов Виталий: </p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
==Пример==<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
===Создать WF===<br />
[[Файл:WF_2_1.png|right]]<br />
====Основные контейнеры====<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
====Вызываемое событие====<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
====Событие проверки дубликатов====<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
====Событие получения PDF====<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
====Согласование====<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
====Событие Утвердить\Отклонить====<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Реализация BAdI==<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT, EXECUTE_ACTION).<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3448
SAPPER работа с SAP Workflow
2018-04-06T12:14:06Z
<p>Чижов Виталий: </p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
==Пример==<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
===Создать WF===<br />
[[Файл:WF_2_1.png|right]]<br />
====Основные контейнеры====<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
====Вызываемое событие====<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
====Событие проверки дубликатов====<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
====Событие получения PDF====<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
====Согласование====<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
====Событие Утвердить\Отклонить====<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
===Реализация BAdI==<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT).<br />
* Для обработки входящего потока документов можно использовать BAdI метод ON_READ_CHANGES (см. точку расширения /SBIS/ES_SAPPER). Метод реализует обработку события чтения изменений по кнопке "Обновить статусы".<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
* Контейнеры используемые в WF:<br />
** IS_API2_PACKET - importing контейнер содержащий структуру с данными API2_PACKET (соблюсти наименование обязательно)<br />
** контейнер класса<br />
<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3447
SAPPER работа с SAP Workflow
2018-04-06T12:12:12Z
<p>Чижов Виталий: </p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
=Как это работает=<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
==Пример==<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
===Создать WF===<br />
===Схема согласования и основные элементы===<br />
[[Файл:WF_2_1.png|right]]<br />
====Основные контейнеры====<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
====Вызываемое событие====<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
====Событие проверки дубликатов====<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
====Событие получения PDF====<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
====Согласование====<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
====Событие Утвердить\Отклонить====<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT).<br />
* Для обработки входящего потока документов можно использовать BAdI метод ON_READ_CHANGES (см. точку расширения /SBIS/ES_SAPPER). Метод реализует обработку события чтения изменений по кнопке "Обновить статусы".<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
* Контейнеры используемые в WF:<br />
** IS_API2_PACKET - importing контейнер содержащий структуру с данными API2_PACKET (соблюсти наименование обязательно)<br />
** контейнер класса<br />
<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3446
SAPPER работа с SAP Workflow
2018-04-06T12:11:36Z
<p>Чижов Виталий: </p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
==Как это работает===<br />
<br />
В SAPPER есть класс /SBIS/CL_WF_SBIS реализующий интерфейс WF (IF_WORKFLOW), с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов (см. [[Состав пакета /SBIS/WORKFLOW]]).<br />
<br />
===Пример===<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем /SBIS/CL_WF_SBIS=>APPROVE для утверждения в СБИС, /SBIS/CL_WF_SBIS=>REJECT для отклонения или /SBIS/CL_WF_SBIS=>EXECUTE_ACTION для других действий.<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
====Создать WF====<br />
====Схема согласования и основные элементы====<br />
[[Файл:WF_2_1.png|right]]<br />
=====Основные контейнеры=====<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
=====Вызываемое событие=====<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
=====Событие проверки дубликатов=====<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
=====Событие получения PDF=====<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=====Согласование=====<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
=====Событие Утвердить\Отклонить=====<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT).<br />
* Для обработки входящего потока документов можно использовать BAdI метод ON_READ_CHANGES (см. точку расширения /SBIS/ES_SAPPER). Метод реализует обработку события чтения изменений по кнопке "Обновить статусы".<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
* Контейнеры используемые в WF:<br />
** IS_API2_PACKET - importing контейнер содержащий структуру с данными API2_PACKET (соблюсти наименование обязательно)<br />
** контейнер класса<br />
<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3445
SAPPER работа с SAP Workflow
2018-04-06T12:07:55Z
<p>Чижов Виталий: /* Состав пакета /SBIS/WORKFLOW */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
SAPPER позволяет инициировать WF по событию СБИС, или инициировать событие СБИС по событию WF. Например запустить WF при получении входящего документа, или утвердить / отклонить электронный документ по событию WF. Вариантов применения может быть множество.<br />
<br />
===Как это работает===<br />
<br />
В SAPPER есть класс .... реализующий интерфейс WF (IF....) с помощью которого можно создать экземпляр WF. А для инициализации из WF события СБИС в этом же классе есть несколько соответствующих методов.<br />
<br />
===Пример===<br />
Рассмотрим на примере процедуру создания WF для согласования входящего документа.<br />
<br />
Сценарий:<br />
Экземпляр WF должен создастся автоматически при обновлении статусов (Пользователь в интерфейсе SAPPER нажимает на кнопку "Обновить статусы" или робот запускает соответствующий метод).<br />
При согласовании в WF документ должен утвердиться в СБИС, соответственно при отклонении должно произойти автоматическое отклонение документа в СБИС.<br />
<br />
Алгоритм работы:<br />
# При обработке события получения документа инициализируем событие EVENT. Передаем в него данные документа (S_API2_PACKET)<br />
# По событию EVENT запускается экземпляр WF <br />
# Проверка в фоне наличия уже существующих WF, чтобы не создавать дубликаты (по UUID пакета).<br />
# Скачиваем PDF и прикладываем к экземпляру WF, чтобы можно было ознакомиться с электронным документом.<br />
# Вызываем блок согласования пакета<br />
# В зависимости от решения вызываем SBIS-WF->APPROVE для утверждения в СБИС, вввв для отлонения или ЫЫЫЫ для других действий.<br />
<br />
<br />
Настройка:<br />
# Создать WF<br />
# Реализовать BAdI<br />
# Включить реализацию BAdI<br />
<br />
====Создать WF====<br />
<br />
==Схема согласования и основные элементы==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
* EXECUTE_ACTION - метод, позволяющий выполнить произвольное действие. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT).<br />
* Для обработки входящего потока документов можно использовать BAdI метод ON_READ_CHANGES (см. точку расширения /SBIS/ES_SAPPER). Метод реализует обработку события чтения изменений по кнопке "Обновить статусы".<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
* Контейнеры используемые в WF:<br />
** IS_API2_PACKET - importing контейнер содержащий структуру с данными API2_PACKET (соблюсти наименование обязательно)<br />
** контейнер класса<br />
<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3443
SAPPER работа с SAP Workflow
2018-04-06T11:11:31Z
<p>Чижов Виталий: /* Согласования входящего пакета документов */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
Реализация SBIS SAPPER для работы с WF позволяет при получении входящих документов в SAPPER инициировать WF в SAP, используя вызов события через точку расширения BAdI. В процессе выполнения WF в SAP можно утверждать или отклонять входящие документы согласно маршруту согласования, что будет отражено в личном кабинете СБИС как события утверждения или отклонения документов.<br />
<br />
В качестве примера рассмотрим типовой процесс согласования входящих документов, иллюстрирующий особенности реализации. <br />
<br />
Пользователь, находясь, в интерфейсе SAPPER нажимает на кнопку "Обновить статусы", реализация BAdI вызывает событие инициирующее WF, состоящее из двух основных этапов: получить PDF документ вложений пакета и согласование. В зависимости от выбора действия на этапе Согласования документы будут отклонены или утверждены в ЛК СБИС.<br />
<br />
=Согласование входящего пакета документов=<br />
==Алгоритм работы WF==<br />
# Инициализация события EVENT на API2 пакете<br />
# Проверка наличия существующих WF с данным UUID пакета в фоне<br />
## Получение номера инициализирующего события<br />
## Проверка ключа UUID + номер WF на вхождение в таблицу /SBIS/STATUS_WF <br />
## Если вхождение найдено, то событие EXIT<br />
## Если не найдено, событие GO <br />
# Если событие GO<br />
# Вызов метода получения PDF<br />
# Вызов блока согласования пакета<br />
## Если Утвердить<br />
## Получить текст согласования, иначе взять текст по умолчанию<br />
## Выполнить Утвердить<br />
## Если Отклонить<br />
## Получить текст отклонения, иначе взять текст по умолчанию<br />
## Выполнить Отклонить<br />
# Выполнение завершено<br />
# Если событие EXIT, то завершить выполнение<br />
<br />
==Схема согласования и основные элементы==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT).<br />
* Для обработки входящего потока документов можно использовать BAdI метод ON_READ_CHANGES (см. точку расширения /SBIS/ES_SAPPER). Метод реализует обработку события чтения изменений по кнопке "Обновить статусы".<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
* Контейнеры используемые в WF:<br />
** IS_API2_PACKET - importing контейнер содержащий структуру с данными API2_PACKET (соблюсти наименование обязательно)<br />
** контейнер класса<br />
<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3442
SAPPER работа с SAP Workflow
2018-04-06T11:11:18Z
<p>Чижов Виталий: /* Алгоритм */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
Реализация SBIS SAPPER для работы с WF позволяет при получении входящих документов в SAPPER инициировать WF в SAP, используя вызов события через точку расширения BAdI. В процессе выполнения WF в SAP можно утверждать или отклонять входящие документы согласно маршруту согласования, что будет отражено в личном кабинете СБИС как события утверждения или отклонения документов.<br />
<br />
В качестве примера рассмотрим типовой процесс согласования входящих документов, иллюстрирующий особенности реализации. <br />
<br />
Пользователь, находясь, в интерфейсе SAPPER нажимает на кнопку "Обновить статусы", реализация BAdI вызывает событие инициирующее WF, состоящее из двух основных этапов: получить PDF документ вложений пакета и согласование. В зависимости от выбора действия на этапе Согласования документы будут отклонены или утверждены в ЛК СБИС.<br />
<br />
=Согласования входящего пакета документов=<br />
==Алгоритм работы WF==<br />
# Инициализация события EVENT на API2 пакете<br />
# Проверка наличия существующих WF с данным UUID пакета в фоне<br />
## Получение номера инициализирующего события<br />
## Проверка ключа UUID + номер WF на вхождение в таблицу /SBIS/STATUS_WF <br />
## Если вхождение найдено, то событие EXIT<br />
## Если не найдено, событие GO <br />
# Если событие GO<br />
# Вызов метода получения PDF<br />
# Вызов блока согласования пакета<br />
## Если Утвердить<br />
## Получить текст согласования, иначе взять текст по умолчанию<br />
## Выполнить Утвердить<br />
## Если Отклонить<br />
## Получить текст отклонения, иначе взять текст по умолчанию<br />
## Выполнить Отклонить<br />
# Выполнение завершено<br />
# Если событие EXIT, то завершить выполнение<br />
<br />
==Схема согласования и основные элементы==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT).<br />
* Для обработки входящего потока документов можно использовать BAdI метод ON_READ_CHANGES (см. точку расширения /SBIS/ES_SAPPER). Метод реализует обработку события чтения изменений по кнопке "Обновить статусы".<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
* Контейнеры используемые в WF:<br />
** IS_API2_PACKET - importing контейнер содержащий структуру с данными API2_PACKET (соблюсти наименование обязательно)<br />
** контейнер класса<br />
<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3441
SAPPER работа с SAP Workflow
2018-04-06T11:09:22Z
<p>Чижов Виталий: /* Введение */</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
Реализация SBIS SAPPER для работы с WF позволяет при получении входящих документов в SAPPER инициировать WF в SAP, используя вызов события через точку расширения BAdI. В процессе выполнения WF в SAP можно утверждать или отклонять входящие документы согласно маршруту согласования, что будет отражено в личном кабинете СБИС как события утверждения или отклонения документов.<br />
<br />
В качестве примера рассмотрим типовой процесс согласования входящих документов, иллюстрирующий особенности реализации. <br />
<br />
Пользователь, находясь, в интерфейсе SAPPER нажимает на кнопку "Обновить статусы", реализация BAdI вызывает событие инициирующее WF, состоящее из двух основных этапов: получить PDF документ вложений пакета и согласование. В зависимости от выбора действия на этапе Согласования документы будут отклонены или утверждены в ЛК СБИС.<br />
<br />
=Согласования входящего пакета документов=<br />
==Алгоритм==<br />
# Инициализация события EVENT на API2 пакете<br />
# Проверка наличия существующих WF с данным UUID пакета в фоне<br />
## Получение номера инициализирующего события<br />
## Проверка ключа UUID + номер WF на вхождение в таблицу /SBIS/STATUS_WF <br />
## Если вхождение найдено, то событие EXIT<br />
## Если не найдено, событие GO <br />
# Если событие GO<br />
# Вызов метода получения PDF<br />
# Вызов блока согласования пакета<br />
## Если Утвердить<br />
## Получить текст согласования, иначе взять текст по умолчанию<br />
## Выполнить Утвердить<br />
## Если Отклонить<br />
## Получить текст отклонения, иначе взять текст по умолчанию<br />
## Выполнить Отклонить<br />
# Выполнение завершено<br />
# Если событие EXIT, то завершить выполнение<br />
<br />
==Схема согласования и основные элементы==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT).<br />
* Для обработки входящего потока документов можно использовать BAdI метод ON_READ_CHANGES (см. точку расширения /SBIS/ES_SAPPER). Метод реализует обработку события чтения изменений по кнопке "Обновить статусы".<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
* Контейнеры используемые в WF:<br />
** IS_API2_PACKET - importing контейнер содержащий структуру с данными API2_PACKET (соблюсти наименование обязательно)<br />
** контейнер класса<br />
<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&diff=3440
Заглавная страница
2018-04-06T11:05:08Z
<p>Чижов Виталий: </p>
<hr />
<div>[[:Категория:СБИС|СБИС]]<br />
*[[:Категория:СБИС Коннект|СБИС Коннект]]<br />
*[[:Категория:1С|1С]]<br />
**[[Настройка_внешней_обработки_СБИС_для_1С_8.х|Настройка внешней обработки СБИС для 1С 8.х]]<br />
**[[Внешний_интерфейс_обработки_-_API|Внешний интерфейс обработки - API]]<br />
**[[Поддерживаемые_конфигурации_1С|Поддерживаемые конфигурации 1С]]<br />
**[[Типовые_проблемы_с_внешней_обработкой|Типовые проблемы с внешней обработкой]]<br />
**[[Минимальные_права_пользователя_1С_для_работы_внешней_обработки|Минимальные права пользователя 1С для работы внешней обработки СБИС]]<br />
*[[:Категория:SAP|SAP]]<br />
**[[Варианты_интеграции_с_SAP|Варианты интеграции с SAP]]<br />
**[[СБИС_Сапёр|СБИС Сапёр - модуль для интеграции с SAP]]<br />
**[[СБИС_Сапёр_-_Установка|СБИС Сапёр - Установка]]<br />
**[[СБИС_Сапёр_-_Настройка|СБИС Сапёр - Настройка]]<br />
***[[SAPPER_SETTINGS_-_Общие|СБИС Сапёр - общие настройки]]<br />
***[[SAPPER_SETTINGS_-_Настройки_списков|СБИС Сапёр - настройки списков]]<br />
***[[SAPPER_SETTINGS_-_Настройки_выгрузки|СБИС Сапёр - настройки выгрузки]]<br />
***[[SAPPER_SETTINGS_-_Настройки_загрузки|СБИС Сапёр - настройки загрузки]]<br />
**[[SAPPER_работа_с_SAP_Workflow|СБИС Сапёр - настройка работы с SAP Workflow]]<br />
**[[SBIS_SAPPER_-_integration_module_for_SAP|SBIS SAPPER - integration module for SAP]]<br />
**[[SBIS_SAPPER_-_Installation|SBIS SAPPER - Installation]]<br />
*[[:Категория:SBIS_API3|API3]]<br />
<br />
*[[:Категория:Raspberry Pi|Raspberry Pi]] <br />
*[[:Категория:ESP32|ESP32]]<br />
<br />
<br />
<br />
== Некоторые полезные ресурсы ==<br />
* [//meta.wikimedia.org/wiki/Help:Contents/ru Cправочное руководство];<br />
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];<br />
* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_SAP_Workflow&diff=3439
SAPPER работа с SAP Workflow
2018-04-06T11:04:46Z
<p>Чижов Виталий: Новая страница: «=Введение= Настроить маршруты согласования входящих документов можно используя стандар…»</p>
<hr />
<div>=Введение=<br />
Настроить маршруты согласования входящих документов можно используя стандартный функционал СБИС или SAP Workflow. Далее для краткости будем обозначать SAP Workflow как WF, элемент (этап) (workitem) - WI. <br />
<br />
Реализация SBIS SAPPER для работы с WF позволяет при получении входящих документов в SAPPER инициировать WF в SAP, используя вызов события через точку расширения BAdI. В процессе выполнения WF в SAP можно утверждать или отклонять входящие документы согласно маршруту согласования, что будет отражено в личном кабинете СБИС как события утверждения или отклонения документов.<br />
<br />
В качестве примера рассмотрим типовой процесс согласования входящих документов, иллюстрирующий особенности реализации. <br />
<br />
Пользователь, находясь, в интерфейсе SAPPER нажимает на кнопку "Обновить статусы", реализация BAdI вызывает событие инициирующее WF, состоящее из двух основных этапов: получить PDF документ вложений пакета и согласование. В зависимости от выбора действия на этапе Согласования документ будут отклонены или утверждены в ЛК СБИС.<br />
<br />
=Согласования входящего пакета документов=<br />
==Алгоритм==<br />
# Инициализация события EVENT на API2 пакете<br />
# Проверка наличия существующих WF с данным UUID пакета в фоне<br />
## Получение номера инициализирующего события<br />
## Проверка ключа UUID + номер WF на вхождение в таблицу /SBIS/STATUS_WF <br />
## Если вхождение найдено, то событие EXIT<br />
## Если не найдено, событие GO <br />
# Если событие GO<br />
# Вызов метода получения PDF<br />
# Вызов блока согласования пакета<br />
## Если Утвердить<br />
## Получить текст согласования, иначе взять текст по умолчанию<br />
## Выполнить Утвердить<br />
## Если Отклонить<br />
## Получить текст отклонения, иначе взять текст по умолчанию<br />
## Выполнить Отклонить<br />
# Выполнение завершено<br />
# Если событие EXIT, то завершить выполнение<br />
<br />
==Схема согласования и основные элементы==<br />
[[Файл:WF_2_1.png|right]]<br />
===Основные контейнеры===<br />
* is_api2_packet - импорт, тип данных /SBIS/S_API2_PACKET<br />
* cl_cont - контейнер класса /SBIS/CL_WF_SBIS<br />
<br />
===Вызываемое событие===<br />
Инициализирующее событие EVENT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_EVT_OBJECT& -> &CL_CONT&<br />
* &EVENT_API2_PACKET& -> &IS_API2_PACKET&<br />
* &_EVT_CREATOR& -> &_WF_INITIATOR&<br />
<br />
===Событие проверки дубликатов===<br />
Обработка в фоновом режиме метода CHECK_DUPLICATES класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
Завершающие события:<br />
* EXIT<br />
* GO<br />
<br />
===Событие получения PDF===<br />
Синхронная обработка метода GET_PDF_PACKET или GET_PDF_ATTACHMENTS класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
===Согласование===<br />
Стандартный этап согласования с двумя возможностями: <br />
* Утвердить<br />
* Отклонить<br />
<br />
===Событие Утвердить\Отклонить===<br />
Синхронная обработка метода APPROVE или REJECT класса /SBIS/CL_WF_SBIS<br />
<br />
Схема потока данных:<br />
* &_WORKITEM.WORKITEMID& -> &IV_WORKITEM_ID&<br />
* &IS_API2_PACKET& -> &IS_API2_PACKET&<br />
<br />
=Состав пакета /SBIS/WORKFLOW=<br />
* Класс /SBIS/CL_WF_SBIS<br />
* Таблица /SBIS/STATUS_WF - связь UUID пакета с номером WF <br />
<br />
Основные методы класса /SBIS/CL_WF_SBIS:<br />
* EVENT_API2_PACKET - метод события EVENT, инициализирующего запуск WF<br />
* CHECK_DUPLICATES - метод проверки на наличие уже запущенных WF с тем же самым пакетом. Данный метод может исполняться в фоне.<br />
* GET_PDF_PACKET - метод получения PDF документа для пакета (все документы пакета в одном файле). Данный метод не может выполнятся в фоне. <br />
* GET_PDF_ATTACHMENTS - метод получения PDF документа для вложений (каждый документ отдельным файлом). Данный метод не может выполнятся в фоне.<br />
* APPROVE - метод Утверждения пакета. Данный метод не может выполнятся в фоне.<br />
* REJECT - метод Отклонения пакета. Данный метод не может выполнятся в фоне.<br />
<br />
События класса /SBIS/CL_WF_SBIS:<br />
* EVENT - используется для инициализации WF<br />
* GO - продолжение обработки<br />
* EXIT - завершение обработки<br />
<br />
=Рекомендации по настройке и работе=<br />
* Пользователь, должен быть авторизован в SAPPER при использовании методов, работающих с транспортной средой до личного кабинета (методы GET_PDF_*, APPROVE, REJECT).<br />
* Для обработки входящего потока документов можно использовать BAdI метод ON_READ_CHANGES (см. точку расширения /SBIS/ES_SAPPER). Метод реализует обработку события чтения изменений по кнопке "Обновить статусы".<br />
* В процессе обработки событий читаются все реестры документов в СБИС, поэтому следует ограничить выборку только по входящим, к примеру, ДокОтгрВх ([https://sbis.ru/help/integration/catalog/guide/#1 список типов документов]).<br />
* Контейнеры используемые в WF:<br />
** IS_API2_PACKET - importing контейнер содержащий структуру с данными API2_PACKET (соблюсти наименование обязательно)<br />
** контейнер класса<br />
<br />
<div style="border: 1px dashed;"><br />
пример реализации метода BAdI /SBIS/IF_SAPPER_BADI~ON_READ_CHANGES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=ABAP><br />
METHOD /sbis/if_sapper_badi~on_read_changes.<br />
TRY.<br />
FIELD-SYMBOLS <fs_doc> LIKE LINE OF it_document.<br />
DATA cx_root TYPE REF TO cx_root.<br />
DATA lc_wf TYPE REF TO /sbis/cl_wf_sbis.<br />
<br />
CREATE OBJECT lc_wf.<br />
<br />
LOOP AT it_document ASSIGNING <fs_doc> WHERE type = 'ДокОтгрВх'.<br />
CALL METHOD lc_wf->event_api2_packet<br />
EXPORTING<br />
is_api2_packet = <fs_doc>.<br />
ENDLOOP.<br />
<br />
CATCH cx_root INTO cx_root.<br />
DATA lv_msg_ext TYPE string.<br />
CALL METHOD cx_root->get_text<br />
RECEIVING<br />
result = lv_msg_ext.<br />
MESSAGE lv_msg_ext TYPE 'E' DISPLAY LIKE 'S'.<br />
ENDTRY.<br />
ENDMETHOD.<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:WF_2_1.png&diff=3428
Файл:WF 2 1.png
2018-04-06T10:06:49Z
<p>Чижов Виталий: </p>
<hr />
<div></div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:WF_2.png&diff=3427
Файл:WF 2.png
2018-04-06T10:05:27Z
<p>Чижов Виталий: Чижов Виталий загрузил новую версию Файл:WF 2.png</p>
<hr />
<div>Схема согласования документов</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:WF_2.png&diff=3426
Файл:WF 2.png
2018-04-06T10:03:18Z
<p>Чижов Виталий: Чижов Виталий загрузил новую версию Файл:WF 2.png</p>
<hr />
<div>Схема согласования документов</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&diff=3423
Заглавная страница
2018-04-06T10:01:03Z
<p>Чижов Виталий: </p>
<hr />
<div>[[:Категория:СБИС|СБИС]]<br />
*[[:Категория:СБИС Коннект|СБИС Коннект]]<br />
*[[:Категория:1С|1С]]<br />
**[[Настройка_внешней_обработки_СБИС_для_1С_8.х|Настройка внешней обработки СБИС для 1С 8.х]]<br />
**[[Внешний_интерфейс_обработки_-_API|Внешний интерфейс обработки - API]]<br />
**[[Поддерживаемые_конфигурации_1С|Поддерживаемые конфигурации 1С]]<br />
**[[Типовые_проблемы_с_внешней_обработкой|Типовые проблемы с внешней обработкой]]<br />
**[[Минимальные_права_пользователя_1С_для_работы_внешней_обработки|Минимальные права пользователя 1С для работы внешней обработки СБИС]]<br />
*[[:Категория:SAP|SAP]]<br />
**[[Варианты_интеграции_с_SAP|Варианты интеграции с SAP]]<br />
**[[СБИС_Сапёр|СБИС Сапёр - модуль для интеграции с SAP]]<br />
**[[СБИС_Сапёр_-_Установка|СБИС Сапёр - Установка]]<br />
**[[СБИС_Сапёр_-_Настройка|СБИС Сапёр - Настройка]]<br />
***[[SAPPER_SETTINGS_-_Общие|СБИС Сапёр - общие настройки]]<br />
***[[SAPPER_SETTINGS_-_Настройки_списков|СБИС Сапёр - настройки списков]]<br />
***[[SAPPER_SETTINGS_-_Настройки_выгрузки|СБИС Сапёр - настройки выгрузки]]<br />
***[[SAPPER_SETTINGS_-_Настройки_загрузки|СБИС Сапёр - настройки загрузки]]<br />
**[[SAPPER_работа_с_WORKFLOW|СБИС Сапёр - настройка работы с SAP Workflow]]<br />
**[[SBIS_SAPPER_-_integration_module_for_SAP|SBIS SAPPER - integration module for SAP]]<br />
**[[SBIS_SAPPER_-_Installation|SBIS SAPPER - Installation]]<br />
*[[:Категория:SBIS_API3|API3]]<br />
<br />
*[[:Категория:Raspberry Pi|Raspberry Pi]] <br />
*[[:Категория:ESP32|ESP32]]<br />
<br />
<br />
<br />
== Некоторые полезные ресурсы ==<br />
* [//meta.wikimedia.org/wiki/Help:Contents/ru Cправочное руководство];<br />
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];<br />
* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&diff=3420
Заглавная страница
2018-04-06T10:00:02Z
<p>Чижов Виталий: </p>
<hr />
<div>[[:Категория:СБИС|СБИС]]<br />
*[[:Категория:СБИС Коннект|СБИС Коннект]]<br />
*[[:Категория:1С|1С]]<br />
**[[Настройка_внешней_обработки_СБИС_для_1С_8.х|Настройка внешней обработки СБИС для 1С 8.х]]<br />
**[[Внешний_интерфейс_обработки_-_API|Внешний интерфейс обработки - API]]<br />
**[[Поддерживаемые_конфигурации_1С|Поддерживаемые конфигурации 1С]]<br />
**[[Типовые_проблемы_с_внешней_обработкой|Типовые проблемы с внешней обработкой]]<br />
**[[Минимальные_права_пользователя_1С_для_работы_внешней_обработки|Минимальные права пользователя 1С для работы внешней обработки СБИС]]<br />
*[[:Категория:SAP|SAP]]<br />
**[[Варианты_интеграции_с_SAP|Варианты интеграции с SAP]]<br />
**[[СБИС_Сапёр|СБИС Сапёр - модуль для интеграции с SAP]]<br />
**[[СБИС_Сапёр_-_Установка|СБИС Сапёр - Установка]]<br />
**[[СБИС_Сапёр_-_Настройка|СБИС Сапёр - Настройка]]<br />
***[[SAPPER_SETTINGS_-_Общие|СБИС Сапёр - общие настройки]]<br />
***[[SAPPER_SETTINGS_-_Настройки_списков|СБИС Сапёр - настройки списков]]<br />
***[[SAPPER_SETTINGS_-_Настройки_выгрузки|СБИС Сапёр - настройки выгрузки]]<br />
***[[SAPPER_SETTINGS_-_Настройки_загрузки|СБИС Сапёр - настройки загрузки]]<br />
**[[SAPPER_WORKFLOW|СБИС Сапёр - настройка работы с SAP Workflow]]<br />
**[[SBIS_SAPPER_-_integration_module_for_SAP|SBIS SAPPER - integration module for SAP]]<br />
**[[SBIS_SAPPER_-_Installation|SBIS SAPPER - Installation]]<br />
*[[:Категория:SBIS_API3|API3]]<br />
<br />
*[[:Категория:Raspberry Pi|Raspberry Pi]] <br />
*[[:Категория:ESP32|ESP32]]<br />
<br />
<br />
<br />
== Некоторые полезные ресурсы ==<br />
* [//meta.wikimedia.org/wiki/Help:Contents/ru Cправочное руководство];<br />
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];<br />
* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:WF_2.png&diff=3411
Файл:WF 2.png
2018-04-06T05:28:04Z
<p>Чижов Виталий: Схема согласования документов</p>
<hr />
<div>Схема согласования документов</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3385
СБИС Сапёр - Настройка
2018-03-27T05:47:21Z
<p>Чижов Виталий: /* СБИС робот, автоматизация отправки документов и обновления статусов */</p>
<hr />
<div>=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
<br />
==Запустить модуль==<br />
Действие: SE38 -> /sbis/sapper или транзакция /n/SBIS/SAPPER<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Введение=<br />
При разработке SAPPER основной задачей являлось создать тиражируемое решение, которое будет легко разворачиваться на любой версии SAP и решать задачи клиента без программирования - на уровне настроек. Для достижения этой цели почти весь функционал SAPPER сделан настраиваемым. Настройки SAPPER хранятся в таблице /SBIS/SETTINGS.<br />
<br />
Сами настройки можно представить как иерархическую структуру параметров типа ключ значение.<br />
<br />
Редактирование настроек можно осуществить двумя способами:<br />
# с помощью транзакции /n/SBIS/SETTINGS (ветка SPRO -> Integration with other SAP Components -> SBIS Sapper -> Settings).<br />
# с помощью JSON файлов в последующем конвертирующихся и импортирующихся в /SBIS/SETTINGS. Данный способ на текущий момент является более удобным и наглядным. Далее в инструкции все примеры настроек показаны в виде JSON объектов.<br />
<br />
==Структура настроек /SBIS/SETTINGS==<br />
*SBIS - Общие настройки модуля, протокол обмена, справочники<br />
**ACCORDION - Настройки аккордеона<br />
*LO_* - Настройки для построения списков исходящих документов для отправки<br />
*DO_* - Настройки выгрузки исходящих документов, название класса и программ печати отвечающих за формирование<br />
**PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
**PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
**FILE - массив настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых электронных документов <br />
*UI_* - настройки загрузки электронных документов в SAP (создания SAP документов, сериализации XML файла в параметры BAPI)<br />
**FILE - массив настроек маппинга XML в параметры BAPI. Количество элементов FILE соответствует количеству документов SAP создаваемых из данного электронного документа.<br />
<br />
=Настройка отправки электронных документов=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие пакеты документов (их варианты) мы хотим отправлять и какие программы использует SAP для печати этих документов)<br />
# Настроить ACCORDION - перечислить все варианты отправляемых пакетов документов ([[SAPPER SETTINGS - Общие]]).<br />
# Для каждого варианта пакета документов настроить показ списка ([[SAPPER SETTINGS - Настройки списков]]).<br />
# Для каждого входящего в пакет документа SAP настроить параметры формирования из него электронных документов ([[SAPPER SETTINGS - Настройки выгрузки]]).<br />
<br />
==Алгоритм отправки==<br />
# Показ списка записей для отправки<br />
## на настройках аккордеона смотрим имя настройки LO_<br />
## из таблицы настроек LO_ получаем имя класса отвечающего за показ списка<br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета читаем настройки DO_<br />
## вызываем класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом при помощи другого XSLT приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
=Настройка загрузки электронных документов (cоздание документа в SAP)=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие документы SAP должны создаваться из каких электронных документов и какими методами (BAPI или BATCH INPUT))<br />
## На данный момент поддерживается создание документов в SAP из электронных документов: счет-фактура, накладная.<br />
# Для электронного документа настроить параметры создания из него документов SAP ([[SAPPER SETTINGS - Настройки загрузки]]).<br />
<br />
==Алгоритм загрузки==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем с помощью другого XSLT в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
=== Настройки аккордеона ===<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
=== Настройки реестров ===<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
=== Настройки маппинга для программ печати ===<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
=== Настройки загрузки ===<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
=== Настройки справочников ===<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
===Обновление FM смартформы===<br />
В случае изменения смартформы и перегенерации ее функционального модуля, можно инициировать автоматическое обновление настроек в таблице с помощью программы /SBIS/UPDATE_SMARTFORM_FM.<br />
<br />
===Сброс номера, даты\времени последнего прочитанного события (только для пакета /SBIS/EJOURNAL)===<br />
С помощью программы /SBIS/RESET_U_SETTINGS или транзакции /n/SBIS/RESET_USET, можно сбросить последнее прочитанное событие и установить произвольные дату и время для текущего пользователя.<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов и отправки документов =<br />
== Автоматическое обновление статусов ==<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного SAP-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Зайдите в SAP под учетной записью только что созданного пользователя (пп.2). Запустите СБИС Сапер. Авторизуйтесь. Сохраните пароль СБИС-кабинета. Под этим логином и паролем СБИС-кабинета будет происходить обновление статусов.<br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
== СБИС робот, автоматизация отправки документов и обновления статусов ==<br />
Для более гибкой организации автоматической обработки статусов, отправки документов, можно использовать функционал SBIS ROBOT.<br />
Для настройки следует добавить в настроечный раздел SBIS следующие параметры:<br />
<source lang=JSON> <br />
"SBIS_ROBOT": {<br />
"Значение": [<br />
{<br />
"Имя": "/SBIS/PR_UPDATE_DOC_STATUS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "/SBIS/PR_SEND_ALL",<br />
"Значение": "SALES"<br />
}<br />
]<br />
}<br />
</source><br />
Параметр SBIS_ROBOT содержит имя программы, которая будет запускаться и вариант в поле значение, с которым программа будет исполняться. <br />
В поле значение можно указать:<br />
#единственный вариант, к примеру, "SALES", <br />
#множество вариантов разделенные запятой, "SALES, SALES1, SALES2",<br />
#"*" - все доступные варианты программы. <br />
Обратите внимание, что имя варианта в SAP не должно содержать пробелов, в противном случае вариант будет проигнорирован.<br />
<br />
Возможные стандартные программы:<br />
#/SBIS/PR_UPDATE_DOC_STATUS служит для автоматической обработки статусов, наличие вариантов не подразумевается. Для данной программы есть отдельная обертка рассмотренная выше.<br />
#/SBIS/PR_SEND_ALL используется для автоматической отправки реестров документов, подразумевает гибкую настройку варианта отправки. <br />
##Обязательно следует указать реестр отправляемых документов, даты и исключить статус “Отправлен”, чтобы не переотправлять уже отправленные документы, если такие попадут в выборку или же, наоборот, ограничить только по статусу "Не отправлен", а также организационные единицы. <br />
[[Файл:Скриншот_12.03.2018_08-42-39-259.png]]<br />
<br />
Запуск транзакции /SBIS/ROBOT осуществляется с помощью *.bat файла. По настройке *.bat файла смотрите пункт обновление статусов.<br />
Журналирование осуществляется с помощью стандартного функционала логирования приложений (SLG1) объект /SBIS/ подобъект ROBOT.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3384
SAPPER SETTINGS - Настройки загрузки
2018-03-19T04:56:22Z
<p>Чижов Виталий: /* FILE */</p>
<hr />
<div>=Настройка загрузки=<br />
На основании входящего электронного документа в SAP можно создать документ, используя:<br />
* метод создания с помощью пакетного ввода (BATCH IPNUT)<br />
* BAPI<br />
<br />
Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.<br />
<br />
На данный момент поддерживается создание документов из электронных документов:<br />
* счет-фактура<br />
* накладная<br />
<br />
Верхний уровень настройки имеет следующее представление:<br />
#UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"<br />
#FILE – массив, содержащий перечень создаваемых документов<br />
<br />
Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню. <br />
<br />
[[Файл:Контекстное_меню_загрузки.png|контекстное меню загрузки в SAP]]<br />
<br />
<div style="border: 1px dashed;"><br />
пример файла загрузки с массивом FILE со списком создаваемых документов<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"UPLOAD_DATA_XSLT": {<br />
"Значение": "/SBIS/DOC301_XML_TO_ABAP"<br />
},<br />
"FILE": {<br />
"Значение": [<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==FILE==<br />
<br />
Массив FILE содержит список создаваемых документов и имеет структуру:<br />
* [имя] - идентификатор пункта меню загрузки<br />
* [значение] - набор настроек для загрузки<br />
** DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов<br />
** MENU_TEXT - отображаемое имя в списке контекстного меню<br />
** DOC_TYPE - тип документа из справочника типов документов DOC_TYPE<br />
** UPLOAD_DATA_CLASS_NAME - наименование класса создания документов<br />
** UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:<br />
**: CREATE_BAPI_DOC - создание документа используя BAPI<br />
**: CREATE_BATCH_DOC - создание документа используя пакетный ввод<br />
** MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры<br />
** FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ<br />
** FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика<br />
** TRANSACTION_NAME - наименование транзакции или BAPI<br />
** POSITION_NUMBER_INCREASE - инкремент позиции<br />
** RESULT - поле получения результата выполнения (номера документа)<br />
*** [имя] - переменная или указание на сообщение:<br />
***: переменная API2_PACKET, в которую кладется результат - для BAPI<br />
***: MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):<br />
***:: PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln<br />
***:: PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln<br />
***:: GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr<br />
***:: INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr<br />
***:: INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr<br />
***:: INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr<br />
***:: INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr<br />
***:: INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr<br />
*** [тип] - тип переменной значения результата<br />
*** [значение] - переменная с результатом<br />
** [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода<br />
*** CTU_PARAMS_DISMODE - режим запуска<br />
*** CTU_PARAMS_UPDMODE - режим обновления<br />
*** CTU_PARAMS_CATTMODE - режим CATT<br />
*** CTU_PARAMS_DEFSIZE - стандартный размер экрана или размер текущего экрана<br />
*** CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы<br />
*** CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)<br />
*** CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)<br />
** [массив заполнения входных данных]<br />
**: BAPI <br />
**: BATCH<br />
<br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": "X"<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (BAPI)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BAPI_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BAPI_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "BAPI_PO_CREATE1"<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10"<br />
},<br />
{<br />
"Имя": "RESULT",<br />
"Значение": [<br />
{<br />
"Имя": "BELNR",<br />
"Тип": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": "EXPPURCHASEORDER"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BAPI",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br><br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (ПакВвод)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BATCH_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BATCH_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DISMODE",<br />
"Значение": "E" //остановить создание, если есть ошибка и показать экран<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_UPDMODE",<br />
"Значение": "S" //синхронное выполнение (COMMIT AND WAIT)<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_CATTMODE",<br />
"Значение": " " //не используя CATT<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DEFSIZE",<br />
"Значение": "" //текущий размер экрана<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_RACOMMIT",<br />
"Значение": "X" //COMMIT WORK не останавливает обработки<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBINPT",<br />
"Значение": " " //системное поле sy-binpt не заполнено<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBIEND",<br />
"Значение": " " //системное поле sy-binpt не заполняется после конца обработки<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "ME21N" //транзакция<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10" //инкремент позиции<br />
},<br />
{<br />
"Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение<br />
"Значение": [<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|06|017|MSGV2"<br />
},<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|MEPO|013|MSGV2"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BATCH",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BAPI===<br />
<br />
Структура массива значений BAPI:<br />
* [имя] - имя параметра<br />
* [тип] - тип параметра<br />
*: Fmstructure - структура<br />
*: Fmfield - поле<br />
*: Fmtable - таблица<br />
*: Field - поле<br />
*: String - строка<br />
* [подтип] - подтип параметра<br />
*: Export - входная структура для BAPI<br />
*: Import - выходная структура для BAPI<br />
*: Table - таблица BAPI<br />
* [формат] - указание на ABAP тип<br />
* [массив значений] <br />
** [имя] - имя поля структуры<br />
** [значение] - значение<br />
** [тип] - тип значения<br />
**: Field - поле<br />
**: String - строка<br />
**: Classfield - поле класса<br />
** [подтип]<br />
**: Export<br />
**: Import<br />
** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)<br />
<br />
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.<br />
<br />
[[Файл:BAPI_PO_CREATE1_0.png]]<br />
[[Файл:BAPI_PO_CREATE1_1.png]]<br />
[[Файл:BAPI_PO_CREATE1_2.png]]<br />
<br />
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "POHEADER",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADER",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "IR_INPUT_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "NB",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "IR_INPUT_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "IR_INPUT_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": "DATE"<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "IR_INPUT_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "IR_INPUT_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POHEADERX",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADERX",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "NO_PRICE_FROM_PO",<br />
"Тип": "Fmfield",<br />
"Подтип": "Export",<br />
"Формат": "CHAR01",<br />
"Значение": [<br />
{<br />
"Имя": "*",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "ID",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "WERKS",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "LGORT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "D",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "DATE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "EXPPURCHASEORDER",<br />
"Тип": "Fmfield",<br />
"Подтип": "Import",<br />
"Формат": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "RETURN",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIRET2",<br />
"Значение": ""<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BATCH===<br />
<br />
Структура пакетного ввода состоит из набора массивов последовательно заполняемых экранов транзакции:<br />
* [массив значений] - набор структур экранов<br />
** [имя] - название блока<br />
** [тип] - тип обработки блока:<br />
**: Header - /SBIS/CL_MAPPING->PARSE_BATCH_HEADER<br />
**: Items - /SBIS/CL_MAPPING->PARSE_BATCH_ITEMS<br />
** [массив значение блока] - маппинг структуры экрана<br />
*** [имя] - имя поля<br />
*** [значение] - значение поля<br />
*** [тип] - тип поля:<br />
***: String - фиксированная строка<br />
***: Field - поле<br />
***: ClassField - поле класса<br />
*** [подтип] - подтип:<br />
***: Bdcdynpro<br />
***: Bdcfield<br />
*** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE) или использовать логические переходы между блоками:<br />
***: IF<br />
***: ENDIF<br />
***: IFNOT<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения вызова транзакции ME21N для создания заказа на закупку с помощью пакетного ввода<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "HEADER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BSART",<br />
"Значение": "IR_DATA->BSART",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-SUPERFIELD",<br />
"Значение": "IR_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BEDAT",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABHDT9",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKORG",<br />
"Значение": "IR_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKGRP",<br />
"Значение": "IR_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-BUKRS",<br />
"Значение": "IR_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4001BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-NAME1(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EBELP(01)",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EMATN(01)",<br />
"Значение": "IR_DATA->ID",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-MENGE(01)",<br />
"Значение": "IR_DATA->AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-EEIND(01)",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-NETPR(01)",<br />
"Значение": "IR_DATA->PRICE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-NAME1(01)",<br />
"Значение": "IR_DATA->WERKS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-LGOBE(01)",<br />
"Значение": "IR_DATA->LGORT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT5",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT7",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-REPOS",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-MWSKZ",<br />
"Значение": "IR_DATA->MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT6",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1313-UEBTO",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-BWTAR",<br />
"Значение": "IR_DATA->BWTAR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-UEBTK",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IF"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=DTC_WLSE",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OPTI",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=PICK",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/04",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OKAY",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/09",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IFNOT"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%#AUTOTEXT001",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
}<br />
]<br />
}<br />
},<br />
{<br />
"Имя": "UNDO_FILTER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211UNDOFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4002BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3383
SAPPER SETTINGS - Настройки загрузки
2018-03-19T04:55:48Z
<p>Чижов Виталий: /* FILE */</p>
<hr />
<div>=Настройка загрузки=<br />
На основании входящего электронного документа в SAP можно создать документ, используя:<br />
* метод создания с помощью пакетного ввода (BATCH IPNUT)<br />
* BAPI<br />
<br />
Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.<br />
<br />
На данный момент поддерживается создание документов из электронных документов:<br />
* счет-фактура<br />
* накладная<br />
<br />
Верхний уровень настройки имеет следующее представление:<br />
#UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"<br />
#FILE – массив, содержащий перечень создаваемых документов<br />
<br />
Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню. <br />
<br />
[[Файл:Контекстное_меню_загрузки.png|контекстное меню загрузки в SAP]]<br />
<br />
<div style="border: 1px dashed;"><br />
пример файла загрузки с массивом FILE со списком создаваемых документов<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"UPLOAD_DATA_XSLT": {<br />
"Значение": "/SBIS/DOC301_XML_TO_ABAP"<br />
},<br />
"FILE": {<br />
"Значение": [<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==FILE==<br />
<br />
Массив FILE содержит список создаваемых документов и имеет структуру:<br />
* [имя] - идентификатор пункта меню загрузки<br />
* [значение] - набор настроек для загрузки<br />
** DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов<br />
** MENU_TEXT - отображаемое имя в списке контекстного меню<br />
** DOC_TYPE - тип документа из справочника типов документов DOC_TYPE<br />
** UPLOAD_DATA_CLASS_NAME - наименование класса создания документов<br />
** UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:<br />
**: CREATE_BAPI_DOC - создание документа используя BAPI<br />
**: CREATE_BATCH_DOC - создание документа используя пакетный ввод<br />
** MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры<br />
** FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ<br />
** FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика<br />
** TRANSACTION_NAME - наименование транзакции или BAPI<br />
** POSITION_NUMBER_INCREASE - инкремент позиции<br />
** RESULT - поле получения результата выполнения (номера документа)<br />
*** [имя] - переменная или указание на сообщение:<br />
***: переменная API2_PACKET, в которую кладется результат - для BAPI<br />
***: MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):<br />
***:: PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln<br />
***:: PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln<br />
****: GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr<br />
*** [тип] - тип переменной значения результата<br />
*** [значение] - переменная с результатом<br />
** [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода<br />
*** CTU_PARAMS_DISMODE - режим запуска<br />
*** CTU_PARAMS_UPDMODE - режим обновления<br />
*** CTU_PARAMS_CATTMODE - режим CATT<br />
*** CTU_PARAMS_DEFSIZE - стандартный размер экрана или размер текущего экрана<br />
*** CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы<br />
*** CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)<br />
*** CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)<br />
** [массив заполнения входных данных]<br />
**: BAPI <br />
**: BATCH<br />
<br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": "X"<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (BAPI)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BAPI_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BAPI_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "BAPI_PO_CREATE1"<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10"<br />
},<br />
{<br />
"Имя": "RESULT",<br />
"Значение": [<br />
{<br />
"Имя": "BELNR",<br />
"Тип": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": "EXPPURCHASEORDER"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BAPI",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br><br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (ПакВвод)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BATCH_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BATCH_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DISMODE",<br />
"Значение": "E" //остановить создание, если есть ошибка и показать экран<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_UPDMODE",<br />
"Значение": "S" //синхронное выполнение (COMMIT AND WAIT)<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_CATTMODE",<br />
"Значение": " " //не используя CATT<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DEFSIZE",<br />
"Значение": "" //текущий размер экрана<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_RACOMMIT",<br />
"Значение": "X" //COMMIT WORK не останавливает обработки<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBINPT",<br />
"Значение": " " //системное поле sy-binpt не заполнено<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBIEND",<br />
"Значение": " " //системное поле sy-binpt не заполняется после конца обработки<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "ME21N" //транзакция<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10" //инкремент позиции<br />
},<br />
{<br />
"Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение<br />
"Значение": [<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|06|017|MSGV2"<br />
},<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|MEPO|013|MSGV2"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BATCH",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BAPI===<br />
<br />
Структура массива значений BAPI:<br />
* [имя] - имя параметра<br />
* [тип] - тип параметра<br />
*: Fmstructure - структура<br />
*: Fmfield - поле<br />
*: Fmtable - таблица<br />
*: Field - поле<br />
*: String - строка<br />
* [подтип] - подтип параметра<br />
*: Export - входная структура для BAPI<br />
*: Import - выходная структура для BAPI<br />
*: Table - таблица BAPI<br />
* [формат] - указание на ABAP тип<br />
* [массив значений] <br />
** [имя] - имя поля структуры<br />
** [значение] - значение<br />
** [тип] - тип значения<br />
**: Field - поле<br />
**: String - строка<br />
**: Classfield - поле класса<br />
** [подтип]<br />
**: Export<br />
**: Import<br />
** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)<br />
<br />
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.<br />
<br />
[[Файл:BAPI_PO_CREATE1_0.png]]<br />
[[Файл:BAPI_PO_CREATE1_1.png]]<br />
[[Файл:BAPI_PO_CREATE1_2.png]]<br />
<br />
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "POHEADER",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADER",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "IR_INPUT_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "NB",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "IR_INPUT_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "IR_INPUT_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": "DATE"<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "IR_INPUT_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "IR_INPUT_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POHEADERX",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADERX",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "NO_PRICE_FROM_PO",<br />
"Тип": "Fmfield",<br />
"Подтип": "Export",<br />
"Формат": "CHAR01",<br />
"Значение": [<br />
{<br />
"Имя": "*",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "ID",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "WERKS",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "LGORT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "D",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "DATE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "EXPPURCHASEORDER",<br />
"Тип": "Fmfield",<br />
"Подтип": "Import",<br />
"Формат": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "RETURN",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIRET2",<br />
"Значение": ""<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BATCH===<br />
<br />
Структура пакетного ввода состоит из набора массивов последовательно заполняемых экранов транзакции:<br />
* [массив значений] - набор структур экранов<br />
** [имя] - название блока<br />
** [тип] - тип обработки блока:<br />
**: Header - /SBIS/CL_MAPPING->PARSE_BATCH_HEADER<br />
**: Items - /SBIS/CL_MAPPING->PARSE_BATCH_ITEMS<br />
** [массив значение блока] - маппинг структуры экрана<br />
*** [имя] - имя поля<br />
*** [значение] - значение поля<br />
*** [тип] - тип поля:<br />
***: String - фиксированная строка<br />
***: Field - поле<br />
***: ClassField - поле класса<br />
*** [подтип] - подтип:<br />
***: Bdcdynpro<br />
***: Bdcfield<br />
*** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE) или использовать логические переходы между блоками:<br />
***: IF<br />
***: ENDIF<br />
***: IFNOT<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения вызова транзакции ME21N для создания заказа на закупку с помощью пакетного ввода<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "HEADER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BSART",<br />
"Значение": "IR_DATA->BSART",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-SUPERFIELD",<br />
"Значение": "IR_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BEDAT",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABHDT9",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKORG",<br />
"Значение": "IR_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKGRP",<br />
"Значение": "IR_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-BUKRS",<br />
"Значение": "IR_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4001BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-NAME1(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EBELP(01)",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EMATN(01)",<br />
"Значение": "IR_DATA->ID",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-MENGE(01)",<br />
"Значение": "IR_DATA->AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-EEIND(01)",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-NETPR(01)",<br />
"Значение": "IR_DATA->PRICE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-NAME1(01)",<br />
"Значение": "IR_DATA->WERKS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-LGOBE(01)",<br />
"Значение": "IR_DATA->LGORT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT5",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT7",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-REPOS",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-MWSKZ",<br />
"Значение": "IR_DATA->MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT6",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1313-UEBTO",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-BWTAR",<br />
"Значение": "IR_DATA->BWTAR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-UEBTK",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IF"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=DTC_WLSE",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OPTI",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=PICK",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/04",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OKAY",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/09",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IFNOT"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%#AUTOTEXT001",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
}<br />
]<br />
}<br />
},<br />
{<br />
"Имя": "UNDO_FILTER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211UNDOFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4002BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3382
SAPPER SETTINGS - Настройки загрузки
2018-03-19T04:54:52Z
<p>Чижов Виталий: /* FILE */</p>
<hr />
<div>=Настройка загрузки=<br />
На основании входящего электронного документа в SAP можно создать документ, используя:<br />
* метод создания с помощью пакетного ввода (BATCH IPNUT)<br />
* BAPI<br />
<br />
Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.<br />
<br />
На данный момент поддерживается создание документов из электронных документов:<br />
* счет-фактура<br />
* накладная<br />
<br />
Верхний уровень настройки имеет следующее представление:<br />
#UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"<br />
#FILE – массив, содержащий перечень создаваемых документов<br />
<br />
Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню. <br />
<br />
[[Файл:Контекстное_меню_загрузки.png|контекстное меню загрузки в SAP]]<br />
<br />
<div style="border: 1px dashed;"><br />
пример файла загрузки с массивом FILE со списком создаваемых документов<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"UPLOAD_DATA_XSLT": {<br />
"Значение": "/SBIS/DOC301_XML_TO_ABAP"<br />
},<br />
"FILE": {<br />
"Значение": [<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==FILE==<br />
<br />
Массив FILE содержит список создаваемых документов и имеет структуру:<br />
* [имя] - идентификатор пункта меню загрузки<br />
* [значение] - набор настроек для загрузки<br />
** DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов<br />
** MENU_TEXT - отображаемое имя в списке контекстного меню<br />
** DOC_TYPE - тип документа из справочника типов документов DOC_TYPE<br />
** UPLOAD_DATA_CLASS_NAME - наименование класса создания документов<br />
** UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:<br />
**: CREATE_BAPI_DOC - создание документа используя BAPI<br />
**: CREATE_BATCH_DOC - создание документа используя пакетный ввод<br />
** MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры<br />
** FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ<br />
** FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика<br />
** TRANSACTION_NAME - наименование транзакции или BAPI<br />
** POSITION_NUMBER_INCREASE - инкремент позиции<br />
** RESULT - поле получения результата выполнения (номера документа)<br />
*** [имя] - переменная или указание на сообщение:<br />
***: переменная API2_PACKET, в которую кладется результат - для BAPI<br />
***: MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):<br />
****: PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln<br />
****: PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln<br />
****: GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr<br />
*** [тип] - тип переменной значения результата<br />
*** [значение] - переменная с результатом<br />
** [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода<br />
*** CTU_PARAMS_DISMODE - режим запуска<br />
*** CTU_PARAMS_UPDMODE - режим обновления<br />
*** CTU_PARAMS_CATTMODE - режим CATT<br />
*** CTU_PARAMS_DEFSIZE - стандартный размер экрана или размер текущего экрана<br />
*** CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы<br />
*** CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)<br />
*** CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)<br />
** [массив заполнения входных данных]<br />
**: BAPI <br />
**: BATCH<br />
<br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": "X"<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (BAPI)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BAPI_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BAPI_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "BAPI_PO_CREATE1"<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10"<br />
},<br />
{<br />
"Имя": "RESULT",<br />
"Значение": [<br />
{<br />
"Имя": "BELNR",<br />
"Тип": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": "EXPPURCHASEORDER"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BAPI",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br><br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (ПакВвод)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BATCH_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BATCH_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DISMODE",<br />
"Значение": "E" //остановить создание, если есть ошибка и показать экран<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_UPDMODE",<br />
"Значение": "S" //синхронное выполнение (COMMIT AND WAIT)<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_CATTMODE",<br />
"Значение": " " //не используя CATT<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DEFSIZE",<br />
"Значение": "" //текущий размер экрана<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_RACOMMIT",<br />
"Значение": "X" //COMMIT WORK не останавливает обработки<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBINPT",<br />
"Значение": " " //системное поле sy-binpt не заполнено<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBIEND",<br />
"Значение": " " //системное поле sy-binpt не заполняется после конца обработки<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "ME21N" //транзакция<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10" //инкремент позиции<br />
},<br />
{<br />
"Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение<br />
"Значение": [<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|06|017|MSGV2"<br />
},<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|MEPO|013|MSGV2"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BATCH",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BAPI===<br />
<br />
Структура массива значений BAPI:<br />
* [имя] - имя параметра<br />
* [тип] - тип параметра<br />
*: Fmstructure - структура<br />
*: Fmfield - поле<br />
*: Fmtable - таблица<br />
*: Field - поле<br />
*: String - строка<br />
* [подтип] - подтип параметра<br />
*: Export - входная структура для BAPI<br />
*: Import - выходная структура для BAPI<br />
*: Table - таблица BAPI<br />
* [формат] - указание на ABAP тип<br />
* [массив значений] <br />
** [имя] - имя поля структуры<br />
** [значение] - значение<br />
** [тип] - тип значения<br />
**: Field - поле<br />
**: String - строка<br />
**: Classfield - поле класса<br />
** [подтип]<br />
**: Export<br />
**: Import<br />
** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)<br />
<br />
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.<br />
<br />
[[Файл:BAPI_PO_CREATE1_0.png]]<br />
[[Файл:BAPI_PO_CREATE1_1.png]]<br />
[[Файл:BAPI_PO_CREATE1_2.png]]<br />
<br />
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "POHEADER",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADER",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "IR_INPUT_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "NB",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "IR_INPUT_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "IR_INPUT_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": "DATE"<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "IR_INPUT_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "IR_INPUT_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POHEADERX",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADERX",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "NO_PRICE_FROM_PO",<br />
"Тип": "Fmfield",<br />
"Подтип": "Export",<br />
"Формат": "CHAR01",<br />
"Значение": [<br />
{<br />
"Имя": "*",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "ID",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "WERKS",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "LGORT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "D",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "DATE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "EXPPURCHASEORDER",<br />
"Тип": "Fmfield",<br />
"Подтип": "Import",<br />
"Формат": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "RETURN",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIRET2",<br />
"Значение": ""<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BATCH===<br />
<br />
Структура пакетного ввода состоит из набора массивов последовательно заполняемых экранов транзакции:<br />
* [массив значений] - набор структур экранов<br />
** [имя] - название блока<br />
** [тип] - тип обработки блока:<br />
**: Header - /SBIS/CL_MAPPING->PARSE_BATCH_HEADER<br />
**: Items - /SBIS/CL_MAPPING->PARSE_BATCH_ITEMS<br />
** [массив значение блока] - маппинг структуры экрана<br />
*** [имя] - имя поля<br />
*** [значение] - значение поля<br />
*** [тип] - тип поля:<br />
***: String - фиксированная строка<br />
***: Field - поле<br />
***: ClassField - поле класса<br />
*** [подтип] - подтип:<br />
***: Bdcdynpro<br />
***: Bdcfield<br />
*** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE) или использовать логические переходы между блоками:<br />
***: IF<br />
***: ENDIF<br />
***: IFNOT<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения вызова транзакции ME21N для создания заказа на закупку с помощью пакетного ввода<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "HEADER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BSART",<br />
"Значение": "IR_DATA->BSART",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-SUPERFIELD",<br />
"Значение": "IR_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BEDAT",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABHDT9",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKORG",<br />
"Значение": "IR_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKGRP",<br />
"Значение": "IR_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-BUKRS",<br />
"Значение": "IR_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4001BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-NAME1(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EBELP(01)",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EMATN(01)",<br />
"Значение": "IR_DATA->ID",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-MENGE(01)",<br />
"Значение": "IR_DATA->AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-EEIND(01)",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-NETPR(01)",<br />
"Значение": "IR_DATA->PRICE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-NAME1(01)",<br />
"Значение": "IR_DATA->WERKS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-LGOBE(01)",<br />
"Значение": "IR_DATA->LGORT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT5",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT7",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-REPOS",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-MWSKZ",<br />
"Значение": "IR_DATA->MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT6",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1313-UEBTO",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-BWTAR",<br />
"Значение": "IR_DATA->BWTAR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-UEBTK",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IF"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=DTC_WLSE",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OPTI",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=PICK",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/04",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OKAY",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/09",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IFNOT"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%#AUTOTEXT001",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
}<br />
]<br />
}<br />
},<br />
{<br />
"Имя": "UNDO_FILTER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211UNDOFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4002BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3381
SAPPER SETTINGS - Настройки загрузки
2018-03-19T04:54:18Z
<p>Чижов Виталий: /* FILE */</p>
<hr />
<div>=Настройка загрузки=<br />
На основании входящего электронного документа в SAP можно создать документ, используя:<br />
* метод создания с помощью пакетного ввода (BATCH IPNUT)<br />
* BAPI<br />
<br />
Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.<br />
<br />
На данный момент поддерживается создание документов из электронных документов:<br />
* счет-фактура<br />
* накладная<br />
<br />
Верхний уровень настройки имеет следующее представление:<br />
#UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"<br />
#FILE – массив, содержащий перечень создаваемых документов<br />
<br />
Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню. <br />
<br />
[[Файл:Контекстное_меню_загрузки.png|контекстное меню загрузки в SAP]]<br />
<br />
<div style="border: 1px dashed;"><br />
пример файла загрузки с массивом FILE со списком создаваемых документов<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"UPLOAD_DATA_XSLT": {<br />
"Значение": "/SBIS/DOC301_XML_TO_ABAP"<br />
},<br />
"FILE": {<br />
"Значение": [<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==FILE==<br />
<br />
Массив FILE содержит список создаваемых документов и имеет структуру:<br />
* [имя] - идентификатор пункта меню загрузки<br />
* [значение] - набор настроек для загрузки<br />
** DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов<br />
** MENU_TEXT - отображаемое имя в списке контекстного меню<br />
** DOC_TYPE - тип документа из справочника типов документов DOC_TYPE<br />
** UPLOAD_DATA_CLASS_NAME - наименование класса создания документов<br />
** UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:<br />
**: CREATE_BAPI_DOC - создание документа используя BAPI<br />
**: CREATE_BATCH_DOC - создание документа используя пакетный ввод<br />
** MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры<br />
** FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ<br />
** FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика<br />
** TRANSACTION_NAME - наименование транзакции или BAPI<br />
** POSITION_NUMBER_INCREASE - инкремент позиции<br />
** RESULT - поле получения результата выполнения (номера документа)<br />
*** [имя] - переменная или указание на сообщение:<br />
**** переменная API2_PACKET, в которую кладется результат - для BAPI<br />
***: MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):<br />
****: PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln<br />
****: PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln<br />
****: GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr<br />
****: INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr<br />
*** [тип] - тип переменной значения результата<br />
*** [значение] - переменная с результатом<br />
** [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода<br />
*** CTU_PARAMS_DISMODE - режим запуска<br />
*** CTU_PARAMS_UPDMODE - режим обновления<br />
*** CTU_PARAMS_CATTMODE - режим CATT<br />
*** CTU_PARAMS_DEFSIZE - стандартный размер экрана или размер текущего экрана<br />
*** CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы<br />
*** CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)<br />
*** CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)<br />
** [массив заполнения входных данных]<br />
**: BAPI <br />
**: BATCH<br />
<br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": "X"<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (BAPI)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BAPI_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BAPI_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "BAPI_PO_CREATE1"<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10"<br />
},<br />
{<br />
"Имя": "RESULT",<br />
"Значение": [<br />
{<br />
"Имя": "BELNR",<br />
"Тип": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": "EXPPURCHASEORDER"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BAPI",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br><br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (ПакВвод)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BATCH_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BATCH_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DISMODE",<br />
"Значение": "E" //остановить создание, если есть ошибка и показать экран<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_UPDMODE",<br />
"Значение": "S" //синхронное выполнение (COMMIT AND WAIT)<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_CATTMODE",<br />
"Значение": " " //не используя CATT<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DEFSIZE",<br />
"Значение": "" //текущий размер экрана<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_RACOMMIT",<br />
"Значение": "X" //COMMIT WORK не останавливает обработки<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBINPT",<br />
"Значение": " " //системное поле sy-binpt не заполнено<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBIEND",<br />
"Значение": " " //системное поле sy-binpt не заполняется после конца обработки<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "ME21N" //транзакция<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10" //инкремент позиции<br />
},<br />
{<br />
"Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение<br />
"Значение": [<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|06|017|MSGV2"<br />
},<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|MEPO|013|MSGV2"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BATCH",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BAPI===<br />
<br />
Структура массива значений BAPI:<br />
* [имя] - имя параметра<br />
* [тип] - тип параметра<br />
*: Fmstructure - структура<br />
*: Fmfield - поле<br />
*: Fmtable - таблица<br />
*: Field - поле<br />
*: String - строка<br />
* [подтип] - подтип параметра<br />
*: Export - входная структура для BAPI<br />
*: Import - выходная структура для BAPI<br />
*: Table - таблица BAPI<br />
* [формат] - указание на ABAP тип<br />
* [массив значений] <br />
** [имя] - имя поля структуры<br />
** [значение] - значение<br />
** [тип] - тип значения<br />
**: Field - поле<br />
**: String - строка<br />
**: Classfield - поле класса<br />
** [подтип]<br />
**: Export<br />
**: Import<br />
** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)<br />
<br />
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.<br />
<br />
[[Файл:BAPI_PO_CREATE1_0.png]]<br />
[[Файл:BAPI_PO_CREATE1_1.png]]<br />
[[Файл:BAPI_PO_CREATE1_2.png]]<br />
<br />
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "POHEADER",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADER",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "IR_INPUT_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "NB",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "IR_INPUT_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "IR_INPUT_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": "DATE"<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "IR_INPUT_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "IR_INPUT_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POHEADERX",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADERX",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "NO_PRICE_FROM_PO",<br />
"Тип": "Fmfield",<br />
"Подтип": "Export",<br />
"Формат": "CHAR01",<br />
"Значение": [<br />
{<br />
"Имя": "*",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "ID",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "WERKS",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "LGORT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "D",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "DATE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "EXPPURCHASEORDER",<br />
"Тип": "Fmfield",<br />
"Подтип": "Import",<br />
"Формат": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "RETURN",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIRET2",<br />
"Значение": ""<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BATCH===<br />
<br />
Структура пакетного ввода состоит из набора массивов последовательно заполняемых экранов транзакции:<br />
* [массив значений] - набор структур экранов<br />
** [имя] - название блока<br />
** [тип] - тип обработки блока:<br />
**: Header - /SBIS/CL_MAPPING->PARSE_BATCH_HEADER<br />
**: Items - /SBIS/CL_MAPPING->PARSE_BATCH_ITEMS<br />
** [массив значение блока] - маппинг структуры экрана<br />
*** [имя] - имя поля<br />
*** [значение] - значение поля<br />
*** [тип] - тип поля:<br />
***: String - фиксированная строка<br />
***: Field - поле<br />
***: ClassField - поле класса<br />
*** [подтип] - подтип:<br />
***: Bdcdynpro<br />
***: Bdcfield<br />
*** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE) или использовать логические переходы между блоками:<br />
***: IF<br />
***: ENDIF<br />
***: IFNOT<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения вызова транзакции ME21N для создания заказа на закупку с помощью пакетного ввода<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "HEADER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BSART",<br />
"Значение": "IR_DATA->BSART",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-SUPERFIELD",<br />
"Значение": "IR_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BEDAT",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABHDT9",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKORG",<br />
"Значение": "IR_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKGRP",<br />
"Значение": "IR_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-BUKRS",<br />
"Значение": "IR_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4001BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-NAME1(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EBELP(01)",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EMATN(01)",<br />
"Значение": "IR_DATA->ID",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-MENGE(01)",<br />
"Значение": "IR_DATA->AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-EEIND(01)",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-NETPR(01)",<br />
"Значение": "IR_DATA->PRICE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-NAME1(01)",<br />
"Значение": "IR_DATA->WERKS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-LGOBE(01)",<br />
"Значение": "IR_DATA->LGORT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT5",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT7",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-REPOS",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-MWSKZ",<br />
"Значение": "IR_DATA->MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT6",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1313-UEBTO",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-BWTAR",<br />
"Значение": "IR_DATA->BWTAR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-UEBTK",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IF"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=DTC_WLSE",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OPTI",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=PICK",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/04",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OKAY",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/09",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IFNOT"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%#AUTOTEXT001",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
}<br />
]<br />
}<br />
},<br />
{<br />
"Имя": "UNDO_FILTER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211UNDOFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4002BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3380
SAPPER SETTINGS - Настройки загрузки
2018-03-19T04:52:16Z
<p>Чижов Виталий: /* FILE */</p>
<hr />
<div>=Настройка загрузки=<br />
На основании входящего электронного документа в SAP можно создать документ, используя:<br />
* метод создания с помощью пакетного ввода (BATCH IPNUT)<br />
* BAPI<br />
<br />
Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.<br />
<br />
На данный момент поддерживается создание документов из электронных документов:<br />
* счет-фактура<br />
* накладная<br />
<br />
Верхний уровень настройки имеет следующее представление:<br />
#UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"<br />
#FILE – массив, содержащий перечень создаваемых документов<br />
<br />
Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню. <br />
<br />
[[Файл:Контекстное_меню_загрузки.png|контекстное меню загрузки в SAP]]<br />
<br />
<div style="border: 1px dashed;"><br />
пример файла загрузки с массивом FILE со списком создаваемых документов<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"UPLOAD_DATA_XSLT": {<br />
"Значение": "/SBIS/DOC301_XML_TO_ABAP"<br />
},<br />
"FILE": {<br />
"Значение": [<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==FILE==<br />
<br />
Массив FILE содержит список создаваемых документов и имеет структуру:<br />
* [имя] - идентификатор пункта меню загрузки<br />
* [значение] - набор настроек для загрузки<br />
** DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов<br />
** MENU_TEXT - отображаемое имя в списке контекстного меню<br />
** DOC_TYPE - тип документа из справочника типов документов DOC_TYPE<br />
** UPLOAD_DATA_CLASS_NAME - наименование класса создания документов<br />
** UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:<br />
**: CREATE_BAPI_DOC - создание документа используя BAPI<br />
**: CREATE_BATCH_DOC - создание документа используя пакетный ввод<br />
** MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры<br />
** FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ<br />
** FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика<br />
** TRANSACTION_NAME - наименование транзакции или BAPI<br />
** POSITION_NUMBER_INCREASE - инкремент позиции<br />
** RESULT - поле получения результата выполнения (номера документа)<br />
*** [имя] - переменная или указание на сообщение:<br />
**** переменная API2_PACKET, в которую кладется результат - для BAPI<br />
**** MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):<br />
***** PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln<br />
***** PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln<br />
***** GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr<br />
*** [тип] - тип переменной значения результата<br />
*** [значение] - переменная с результатом<br />
** [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода<br />
*** CTU_PARAMS_DISMODE - режим запуска<br />
*** CTU_PARAMS_UPDMODE - режим обновления<br />
*** CTU_PARAMS_CATTMODE - режим CATT<br />
*** CTU_PARAMS_DEFSIZE - стандартный размер экрана или размер текущего экрана<br />
*** CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы<br />
*** CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)<br />
*** CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)<br />
** [массив заполнения входных данных]<br />
*** BAPI <br />
*** BATCH<br />
<br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": "X"<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (BAPI)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BAPI_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BAPI_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "BAPI_PO_CREATE1"<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10"<br />
},<br />
{<br />
"Имя": "RESULT",<br />
"Значение": [<br />
{<br />
"Имя": "BELNR",<br />
"Тип": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": "EXPPURCHASEORDER"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BAPI",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br><br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (ПакВвод)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BATCH_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BATCH_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DISMODE",<br />
"Значение": "E" //остановить создание, если есть ошибка и показать экран<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_UPDMODE",<br />
"Значение": "S" //синхронное выполнение (COMMIT AND WAIT)<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_CATTMODE",<br />
"Значение": " " //не используя CATT<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DEFSIZE",<br />
"Значение": "" //текущий размер экрана<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_RACOMMIT",<br />
"Значение": "X" //COMMIT WORK не останавливает обработки<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBINPT",<br />
"Значение": " " //системное поле sy-binpt не заполнено<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBIEND",<br />
"Значение": " " //системное поле sy-binpt не заполняется после конца обработки<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "ME21N" //транзакция<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10" //инкремент позиции<br />
},<br />
{<br />
"Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение<br />
"Значение": [<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|06|017|MSGV2"<br />
},<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|MEPO|013|MSGV2"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BATCH",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BAPI===<br />
<br />
Структура массива значений BAPI:<br />
* [имя] - имя параметра<br />
* [тип] - тип параметра<br />
** Fmstructure - структура<br />
** Fmfield - поле<br />
** Fmtable - таблица<br />
** Field - поле<br />
** String - строка<br />
* [подтип] - подтип параметра<br />
** Export - входная структура для BAPI<br />
** Import - выходная структура для BAPI<br />
** Table - таблица BAPI<br />
* [формат] - указание на ABAP тип<br />
* [массив значений] <br />
** [имя] - имя поля структуры<br />
** [значение] - значение<br />
** [тип] - тип значения<br />
*** Field - поле<br />
*** String - строка<br />
*** Classfield - поле класса<br />
** [подтип]<br />
*** Export<br />
*** Import<br />
** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)<br />
<br />
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.<br />
<br />
[[Файл:BAPI_PO_CREATE1_0.png]]<br />
[[Файл:BAPI_PO_CREATE1_1.png]]<br />
[[Файл:BAPI_PO_CREATE1_2.png]]<br />
<br />
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "POHEADER",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADER",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "IR_INPUT_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "NB",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "IR_INPUT_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "IR_INPUT_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": "DATE"<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "IR_INPUT_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "IR_INPUT_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POHEADERX",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADERX",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "NO_PRICE_FROM_PO",<br />
"Тип": "Fmfield",<br />
"Подтип": "Export",<br />
"Формат": "CHAR01",<br />
"Значение": [<br />
{<br />
"Имя": "*",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "ID",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "WERKS",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "LGORT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "D",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "DATE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "EXPPURCHASEORDER",<br />
"Тип": "Fmfield",<br />
"Подтип": "Import",<br />
"Формат": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "RETURN",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIRET2",<br />
"Значение": ""<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BATCH===<br />
<br />
Структура пакетного ввода состоит из набора массивов последовательно заполняемых экранов транзакции:<br />
* [массив значений] - набор структур экранов<br />
** [имя] - название блока<br />
** [тип] - тип обработки блока:<br />
*** Header - /SBIS/CL_MAPPING->PARSE_BATCH_HEADER<br />
*** Items - /SBIS/CL_MAPPING->PARSE_BATCH_ITEMS<br />
** [массив значение блока] - маппинг структуры экрана<br />
*** [имя] - имя поля<br />
*** [значение] - значение поля<br />
*** [тип] - тип поля:<br />
**** String - фиксированная строка<br />
**** Field - поле<br />
**** ClassField - поле класса<br />
*** [подтип] - подтип:<br />
**** Bdcdynpro<br />
**** Bdcfield<br />
*** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE) или использовать логические переходы между блоками:<br />
**** IF<br />
**** ENDIF<br />
**** IFNOT<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения вызова транзакции ME21N для создания заказа на закупку с помощью пакетного ввода<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "HEADER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BSART",<br />
"Значение": "IR_DATA->BSART",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-SUPERFIELD",<br />
"Значение": "IR_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BEDAT",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABHDT9",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKORG",<br />
"Значение": "IR_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKGRP",<br />
"Значение": "IR_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-BUKRS",<br />
"Значение": "IR_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4001BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-NAME1(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EBELP(01)",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EMATN(01)",<br />
"Значение": "IR_DATA->ID",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-MENGE(01)",<br />
"Значение": "IR_DATA->AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-EEIND(01)",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-NETPR(01)",<br />
"Значение": "IR_DATA->PRICE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-NAME1(01)",<br />
"Значение": "IR_DATA->WERKS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-LGOBE(01)",<br />
"Значение": "IR_DATA->LGORT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT5",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT7",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-REPOS",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-MWSKZ",<br />
"Значение": "IR_DATA->MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT6",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1313-UEBTO",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-BWTAR",<br />
"Значение": "IR_DATA->BWTAR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-UEBTK",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IF"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=DTC_WLSE",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OPTI",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=PICK",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/04",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OKAY",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/09",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IFNOT"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%#AUTOTEXT001",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
}<br />
]<br />
}<br />
},<br />
{<br />
"Имя": "UNDO_FILTER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211UNDOFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4002BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3379
SAPPER SETTINGS - Настройки загрузки
2018-03-19T04:51:12Z
<p>Чижов Виталий: /* Настройка загрузки */</p>
<hr />
<div>=Настройка загрузки=<br />
На основании входящего электронного документа в SAP можно создать документ, используя:<br />
* метод создания с помощью пакетного ввода (BATCH IPNUT)<br />
* BAPI<br />
<br />
Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.<br />
<br />
На данный момент поддерживается создание документов из электронных документов:<br />
* счет-фактура<br />
* накладная<br />
<br />
Верхний уровень настройки имеет следующее представление:<br />
#UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"<br />
#FILE – массив, содержащий перечень создаваемых документов<br />
<br />
Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню. <br />
<br />
[[Файл:Контекстное_меню_загрузки.png|контекстное меню загрузки в SAP]]<br />
<br />
<div style="border: 1px dashed;"><br />
пример файла загрузки с массивом FILE со списком создаваемых документов<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"UPLOAD_DATA_XSLT": {<br />
"Значение": "/SBIS/DOC301_XML_TO_ABAP"<br />
},<br />
"FILE": {<br />
"Значение": [<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==FILE==<br />
<br />
Массив FILE содержит список создаваемых документов и имеет структуру:<br />
* [имя] - идентификатор пункта меню загрузки<br />
* [значение] - набор настроек для загрузки<br />
** DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов<br />
** MENU_TEXT - отображаемое имя в списке контекстного меню<br />
** DOC_TYPE - тип документа из справочника типов документов DOC_TYPE<br />
** UPLOAD_DATA_CLASS_NAME - наименование класса создания документов<br />
** UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:<br />
*** CREATE_BAPI_DOC - создание документа используя BAPI<br />
*** CREATE_BATCH_DOC - создание документа используя пакетный ввод<br />
** MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры<br />
** FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ<br />
** FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика<br />
** TRANSACTION_NAME - наименование транзакции или BAPI<br />
** POSITION_NUMBER_INCREASE - инкремент позиции<br />
** RESULT - поле получения результата выполнения (номера документа)<br />
*** [имя] - переменная или указание на сообщение:<br />
**** переменная API2_PACKET, в которую кладется результат - для BAPI<br />
**** MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):<br />
***** PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln<br />
***** PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln<br />
***** GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr<br />
*** [тип] - тип переменной значения результата<br />
*** [значение] - переменная с результатом<br />
** [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода<br />
*** CTU_PARAMS_DISMODE - режим запуска<br />
*** CTU_PARAMS_UPDMODE - режим обновления<br />
*** CTU_PARAMS_CATTMODE - режим CATT<br />
*** CTU_PARAMS_DEFSIZE - стандартный размер экрана или размер текущего экрана<br />
*** CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы<br />
*** CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)<br />
*** CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)<br />
** [массив заполнения входных данных]<br />
*** BAPI <br />
*** BATCH<br />
<br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": "X"<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (BAPI)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BAPI_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BAPI_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "BAPI_PO_CREATE1"<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10"<br />
},<br />
{<br />
"Имя": "RESULT",<br />
"Значение": [<br />
{<br />
"Имя": "BELNR",<br />
"Тип": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": "EXPPURCHASEORDER"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BAPI",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br><br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (ПакВвод)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BATCH_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BATCH_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DISMODE",<br />
"Значение": "E" //остановить создание, если есть ошибка и показать экран<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_UPDMODE",<br />
"Значение": "S" //синхронное выполнение (COMMIT AND WAIT)<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_CATTMODE",<br />
"Значение": " " //не используя CATT<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DEFSIZE",<br />
"Значение": "" //текущий размер экрана<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_RACOMMIT",<br />
"Значение": "X" //COMMIT WORK не останавливает обработки<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBINPT",<br />
"Значение": " " //системное поле sy-binpt не заполнено<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBIEND",<br />
"Значение": " " //системное поле sy-binpt не заполняется после конца обработки<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "ME21N" //транзакция<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10" //инкремент позиции<br />
},<br />
{<br />
"Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение<br />
"Значение": [<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|06|017|MSGV2"<br />
},<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|MEPO|013|MSGV2"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BATCH",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BAPI===<br />
<br />
Структура массива значений BAPI:<br />
* [имя] - имя параметра<br />
* [тип] - тип параметра<br />
** Fmstructure - структура<br />
** Fmfield - поле<br />
** Fmtable - таблица<br />
** Field - поле<br />
** String - строка<br />
* [подтип] - подтип параметра<br />
** Export - входная структура для BAPI<br />
** Import - выходная структура для BAPI<br />
** Table - таблица BAPI<br />
* [формат] - указание на ABAP тип<br />
* [массив значений] <br />
** [имя] - имя поля структуры<br />
** [значение] - значение<br />
** [тип] - тип значения<br />
*** Field - поле<br />
*** String - строка<br />
*** Classfield - поле класса<br />
** [подтип]<br />
*** Export<br />
*** Import<br />
** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)<br />
<br />
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.<br />
<br />
[[Файл:BAPI_PO_CREATE1_0.png]]<br />
[[Файл:BAPI_PO_CREATE1_1.png]]<br />
[[Файл:BAPI_PO_CREATE1_2.png]]<br />
<br />
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "POHEADER",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADER",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "IR_INPUT_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "NB",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "IR_INPUT_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "IR_INPUT_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": "DATE"<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "IR_INPUT_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "IR_INPUT_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POHEADERX",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADERX",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "NO_PRICE_FROM_PO",<br />
"Тип": "Fmfield",<br />
"Подтип": "Export",<br />
"Формат": "CHAR01",<br />
"Значение": [<br />
{<br />
"Имя": "*",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "ID",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "WERKS",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "LGORT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "D",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "DATE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "EXPPURCHASEORDER",<br />
"Тип": "Fmfield",<br />
"Подтип": "Import",<br />
"Формат": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "RETURN",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIRET2",<br />
"Значение": ""<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BATCH===<br />
<br />
Структура пакетного ввода состоит из набора массивов последовательно заполняемых экранов транзакции:<br />
* [массив значений] - набор структур экранов<br />
** [имя] - название блока<br />
** [тип] - тип обработки блока:<br />
*** Header - /SBIS/CL_MAPPING->PARSE_BATCH_HEADER<br />
*** Items - /SBIS/CL_MAPPING->PARSE_BATCH_ITEMS<br />
** [массив значение блока] - маппинг структуры экрана<br />
*** [имя] - имя поля<br />
*** [значение] - значение поля<br />
*** [тип] - тип поля:<br />
**** String - фиксированная строка<br />
**** Field - поле<br />
**** ClassField - поле класса<br />
*** [подтип] - подтип:<br />
**** Bdcdynpro<br />
**** Bdcfield<br />
*** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE) или использовать логические переходы между блоками:<br />
**** IF<br />
**** ENDIF<br />
**** IFNOT<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения вызова транзакции ME21N для создания заказа на закупку с помощью пакетного ввода<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "HEADER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BSART",<br />
"Значение": "IR_DATA->BSART",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-SUPERFIELD",<br />
"Значение": "IR_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BEDAT",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABHDT9",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKORG",<br />
"Значение": "IR_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKGRP",<br />
"Значение": "IR_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-BUKRS",<br />
"Значение": "IR_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4001BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-NAME1(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EBELP(01)",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EMATN(01)",<br />
"Значение": "IR_DATA->ID",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-MENGE(01)",<br />
"Значение": "IR_DATA->AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-EEIND(01)",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-NETPR(01)",<br />
"Значение": "IR_DATA->PRICE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-NAME1(01)",<br />
"Значение": "IR_DATA->WERKS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-LGOBE(01)",<br />
"Значение": "IR_DATA->LGORT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT5",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT7",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-REPOS",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-MWSKZ",<br />
"Значение": "IR_DATA->MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT6",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1313-UEBTO",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-BWTAR",<br />
"Значение": "IR_DATA->BWTAR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-UEBTK",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IF"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=DTC_WLSE",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OPTI",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=PICK",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/04",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OKAY",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/09",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IFNOT"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%#AUTOTEXT001",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
}<br />
]<br />
}<br />
},<br />
{<br />
"Имя": "UNDO_FILTER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211UNDOFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4002BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%B2&diff=3378
SAPPER SETTINGS - Настройки списков
2018-03-16T12:48:09Z
<p>Чижов Виталий: /* GET_CHILD_VBFA */</p>
<hr />
<div>=Настройка списков=<br />
<br />
Настройки списков отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета электронных документов)<br />
<br />
Файл с настройками LO_* списка содержит информацию о классе получения списка документов, общих настройках для реестра в СБИС, такие как регламент, название реестра, указание на файл выгрузки самого документа DO_*, запрос списка связанных документов, исключения из выборки. В зависимости от версии BASIS системы различаются принципы построения списков – использование статических методов выборки или построение динамического select’a. За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс". Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
Структура настройки списков:<br />
* [основные параметры, см. ниже]<br />
* [ЗапросСпискаСвязанныхДокументов] (тип List) - массив параметров для получения списка связанных документов<br />
** [Метод класса для построения списка связанных документов] - в качестве значения передается список параметров<br />
<br />
==Общие параметры для версий 700 и 740==<br />
<br />
*ПолучениеДанных_Класс – класс получения данных для построения списка документов<br />
*Реестр1С_Название, Реестр1С_Тип – классификаторы пакета документов<br />
*РеестрСБИС_Тип – тип входящего реестра СБИС<br />
*Регламент_Название – название регламета СБИС<br />
*Реестр_СБИС – название входящего реестра СБИС<br />
*НазваниеДокумента – отображаемое название документа<br />
*ИсклСторноДатаСовпадает – исключение сторно документа из списка, если дата совпадает<br />
*ИсклСторноДатаНеСовпадает – исключение сторно документа из списка, если дата не совпадает<br />
*ИсклСторноМесяцСовпадает – исключение сторно документа из списка, если месяц совпадает<br />
*ИсклСторноМесяцНеСовпадает – исключение сторно документа из списка, если месяц не совпадает<br />
<br />
==Построение запроса получения списка документов==<br />
<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS >= 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса вызывается непосредственно в модуле и изменение запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов получается таблица, содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек, которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - имя настройки выгрузки документа DO_* указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа и ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ, от которого строится список и который есть всегда (иначе пакет не сформируется), в нашем случае это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Содержимое пакета документов, которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
==BASIS 7.00 (/SBIS/CL_SAP_DATA_700)==<br />
<br />
Для изменения выборки документов требуется наследовать стандартный класс получения данных и изменить метод GET_LIST_API2_PACKET.<br />
#ПолучениеДанныхВложения – указание на документ выгрузки DO_*<br />
#ЗапросСпискаСвязанныхДокументов – содержит ссылки на документы-вложения, в поле Имя указывается метод класса для получения связанных документов. Также указывается имя документа для отображения и связанный файл получения вложения DO_*.<br />
<br />
Варианты параметра "ПолучениеДанных_Класс":<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Для списка связанных методов, можно использовать следующие методы классов:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
<div style="border: 1px dashed;"><br />
пример LO_РеализацияТоваров версии 700 с получением связанного документа счет-фактура<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA_700_LIKP" //класс получения данных<br />
},<br />
"Реестр1С_Название": {<br />
"Значение": "Реализация товаров"<br />
},<br />
"Реестр1С_Тип": {<br />
"Значение": "'РеализацияТоваров'"<br />
},<br />
"РеестрСБИС_Тип": {<br />
"Значение": "'ДокОтгрИсх,НакладнаяИсх,Исходящие'"<br />
},<br />
"Регламент_Название": {<br />
"Значение": "Реализация"<br />
},<br />
"Реестр_СБИС": {<br />
"Значение": "ДокОтгрИсх"<br />
},<br />
"НазваниеДокумента": {<br />
"Значение": "Накладная"<br />
},<br />
"ПолучениеДанныхВложения": {<br />
"Значение": "DO_DP_TOVTORGPR_1175010" //указание на выгрузку документа DO_*<br />
},<br />
"РеестрПоУмолчанию": {<br />
"Значение": "'1'"<br />
},<br />
"ЗапросСпискаСвязанныхДокументов": {<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "GET_CHILD_VBFA_SFAKT", //метод класса получения данных<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "ПолучениеДанныхВложения",<br />
"Значение": "DO_ON_SCHFDOPPR_1115125" //указание на выгрузку документа DO_*<br />
}<br />
]<br />
}<br />
]<br />
},<br />
"ИсклСторноДатаСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноДатаНеСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноМесяцСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноМесяцНеСовпадает": {<br />
"Значение": "X"<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==BASIS 7.40 (/SBIS/CL_SAP_DATA_740)==<br />
<br />
Списки документов строятся на основании динамического select’а.<br />
Текст запроса содержится в параметрах:<br />
*ЗапросСпискаДокументов – содержит тип запроса: select, select_groupby, select_distinct. <br />
**Тело запрос разбито на 5 подстрок длиной 255 символов, а именно:<br />
***ЗапросСпискаДокументов_select_1 ... ЗапросСпискаДокументов_select_5<br />
***ЗапросСпискаДокументов_from_1 ... ЗапросСпискаДокументов_from_5<br />
***ЗапросСпискаДокументов_groupby_1 ... ЗапросСпискаДокументов_groupby_5 <br />
***ЗапросСпискаДокументов_having_1 ... ЗапросСпискаДокументов_having_5<br />
***ЗапросСпискаДокументов_where_1 ... ЗапросСпискаДокументов_where_5<br />
*ЗапросСпискаСвязанныхДокументов – массив настроек отвечающий за добавление связанных документов. Для каждой записи будет выполнен поиск всех указанных документов. <br />
<br />
===Запрос Списка Связанных Документов===<br />
====GET_CHILD_VBFA====<br />
Метод GET_CHILD_VBFA позволяет взять связанный через VBFA документ. <br />
<br />
Список настроек выглядит как динамический select c параметрами (тело запрос разбито на подстроки длиной 255 символов):<br />
*ЗапросСпискаСвязанныхДокументов_select_1 ... ЗапросСпискаСвязанныхДокументов_select_5<br />
*ЗапросСпискаСвязанныхДокументов_from_1 ... ЗапросСпискаСвязанныхДокументов_from_5<br />
*ЗапросСпискаСвязанныхДокументов_where_1 ... ЗапросСпискаСвязанныхДокументов_where_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_select_1 ... ЗапросСпискаСвязанныхДокументовСторно_select_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_from_1 ... ЗапросСпискаСвязанныхДокументовСторно_from_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_where_1 ... ЗапросСпискаСвязанныхДокументовСторно_where_5 <br />
<br />
<div style="border: 1px dashed;"><br />
пример запроса списка связанных документов для версии 740 через GET_CHILD_VBFA <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "GET_CHILD_VBFA", //метод класса получения данных<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_1",<br />
"Значение": "'DO_ON_SCHFDOPPR_1115125' as ini_name, vbrk~bukrs AS bukrs, vbfa~vbeln AS belnr, "<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_2",<br />
"Значение": "vbrk~vbeln AS xblnr, vbrk~fkdat AS date, vbfa~waers AS waers,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_3",<br />
"Значение": "( vbrk~netwr + vbrk~mwsbk ) AS sum,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_4",<br />
"Значение": "( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_5",<br />
"Значение": "vbtyp_n AS subtype"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_1",<br />
"Значение": "vbfa AS vbfa"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_2",<br />
"Значение": "INNER JOIN vbrk AS vbrk ON vbfa~vbeln = vbrk~vbeln"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_3",<br />
"Значение": "INNER JOIN kna1 AS kna1 ON vbrk~kunrg = kna1~kunnr"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_where_1",<br />
"Значение": "vbelv = @is_list_base_doc-belnr AND vbfa~vbtyp_n IN ('M', 'O', 'P')"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_20170716",<br />
"Значение": "'DO_ON_SCHFDOPPR_1115125' as ini_name, vbrk~bukrs AS bukrs, vbfa~vbeln AS belnr, bkpf~belnr AS xblnr, vbrk~fkdat AS date, vbfa~waers AS waers, ( vbrk~netwr + vbrk~mwsbk ) AS sum, ( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name, vbtyp_n AS subtype"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_20170716",<br />
"Значение": "vbfa AS vbfa INNER JOIN vbrk AS vbrk ON vbfa~vbeln = vbrk~vbeln INNER JOIN kna1 AS kna1 ON vbrk~kunrg = kna1~kunnr INNER JOIN bkpf as bkpf ON bkpf~bukrs = vbrk~bukrs AND bkpf~awkey = vbrk~vbeln AND bkpf~awtyp = 'VBRK'"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_where_20170716",<br />
"Значение": "vbfa~vbtyp_n IN ('M', 'N', 'O', 'P') AND vbelv = @is_list_base_doc-belnr"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_select_1",<br />
"Значение": "vbrk~vbeln AS belnr, vbrk~fkdat AS date"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_from_1",<br />
"Значение": "vbfa AS vbfa INNER JOIN vbrk AS vbrk ON vbfa~vbelv = vbrk~vbeln OR vbfa~vbeln = vbrk~vbeln"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_1",<br />
"Значение": "( vbfa~vbtyp_v = 'M' AND vbfa~vbtyp_n = 'N' AND vbfa~vbeln = @ls_list_related_doc-belnr )"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_2",<br />
"Значение": "OR ( vbfa~vbtyp_n = 'N' AND vbfa~vbtyp_v = 'M' AND vbfa~vbelv = @ls_list_related_doc-belnr )"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_3",<br />
"Значение": "AND vbrk~vbeln <> @ls_list_related_doc-belnr"<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
====GET_SELF====<br />
Метод GET_SELF позволяет взять тот же документ, но использовать другую программу печати. В этом случае параметры передаются в структуру S_LIST_DOC. <br />
<br />
<div style="border: 1px dashed;"><br />
пример запроса списка связанных документов для версии 740 через GET_SELF <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "GET_SELF",<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "doc_ini_name",<br />
"Значение": "DO_ON_SCHFDOPPR_1115125"<br />
},<br />
{<br />
"Имя": "doc_bukrs",<br />
"Значение": "bukrs"<br />
},<br />
{<br />
"Имя": "doc_gjahr",<br />
"Значение": "gjahr"<br />
},<br />
{<br />
"Имя": "doc_belnr",<br />
"Значение": "belnr"<br />
},<br />
{<br />
"Имя": "doc_xblnr",<br />
"Значение": "param1"<br />
},<br />
{<br />
"Имя": "doc_date",<br />
"Значение": "date"<br />
},<br />
{<br />
"Имя": "doc_sum",<br />
"Значение": "sum"<br />
},<br />
{<br />
"Имя": "doc_waers",<br />
"Значение": "waers"<br />
},<br />
{<br />
"Имя": "doc_user_name",<br />
"Значение": "user_name"<br />
},<br />
{<br />
"Имя": "doc_partner_name",<br />
"Значение": "partner_name"<br />
},<br />
{<br />
"Имя": "doc_org_name",<br />
"Значение": "org_name"<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%B2&diff=3377
SAPPER SETTINGS - Настройки списков
2018-03-16T12:46:25Z
<p>Чижов Виталий: /* GET_CHILD_VBFA */</p>
<hr />
<div>=Настройка списков=<br />
<br />
Настройки списков отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета электронных документов)<br />
<br />
Файл с настройками LO_* списка содержит информацию о классе получения списка документов, общих настройках для реестра в СБИС, такие как регламент, название реестра, указание на файл выгрузки самого документа DO_*, запрос списка связанных документов, исключения из выборки. В зависимости от версии BASIS системы различаются принципы построения списков – использование статических методов выборки или построение динамического select’a. За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс". Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
Структура настройки списков:<br />
* [основные параметры, см. ниже]<br />
* [ЗапросСпискаСвязанныхДокументов] (тип List) - массив параметров для получения списка связанных документов<br />
** [Метод класса для построения списка связанных документов] - в качестве значения передается список параметров<br />
<br />
==Общие параметры для версий 700 и 740==<br />
<br />
*ПолучениеДанных_Класс – класс получения данных для построения списка документов<br />
*Реестр1С_Название, Реестр1С_Тип – классификаторы пакета документов<br />
*РеестрСБИС_Тип – тип входящего реестра СБИС<br />
*Регламент_Название – название регламета СБИС<br />
*Реестр_СБИС – название входящего реестра СБИС<br />
*НазваниеДокумента – отображаемое название документа<br />
*ИсклСторноДатаСовпадает – исключение сторно документа из списка, если дата совпадает<br />
*ИсклСторноДатаНеСовпадает – исключение сторно документа из списка, если дата не совпадает<br />
*ИсклСторноМесяцСовпадает – исключение сторно документа из списка, если месяц совпадает<br />
*ИсклСторноМесяцНеСовпадает – исключение сторно документа из списка, если месяц не совпадает<br />
<br />
==Построение запроса получения списка документов==<br />
<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS >= 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса вызывается непосредственно в модуле и изменение запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов получается таблица, содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек, которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - имя настройки выгрузки документа DO_* указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа и ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ, от которого строится список и который есть всегда (иначе пакет не сформируется), в нашем случае это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Содержимое пакета документов, которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
==BASIS 7.00 (/SBIS/CL_SAP_DATA_700)==<br />
<br />
Для изменения выборки документов требуется наследовать стандартный класс получения данных и изменить метод GET_LIST_API2_PACKET.<br />
#ПолучениеДанныхВложения – указание на документ выгрузки DO_*<br />
#ЗапросСпискаСвязанныхДокументов – содержит ссылки на документы-вложения, в поле Имя указывается метод класса для получения связанных документов. Также указывается имя документа для отображения и связанный файл получения вложения DO_*.<br />
<br />
Варианты параметра "ПолучениеДанных_Класс":<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Для списка связанных методов, можно использовать следующие методы классов:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
<div style="border: 1px dashed;"><br />
пример LO_РеализацияТоваров версии 700 с получением связанного документа счет-фактура<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA_700_LIKP" //класс получения данных<br />
},<br />
"Реестр1С_Название": {<br />
"Значение": "Реализация товаров"<br />
},<br />
"Реестр1С_Тип": {<br />
"Значение": "'РеализацияТоваров'"<br />
},<br />
"РеестрСБИС_Тип": {<br />
"Значение": "'ДокОтгрИсх,НакладнаяИсх,Исходящие'"<br />
},<br />
"Регламент_Название": {<br />
"Значение": "Реализация"<br />
},<br />
"Реестр_СБИС": {<br />
"Значение": "ДокОтгрИсх"<br />
},<br />
"НазваниеДокумента": {<br />
"Значение": "Накладная"<br />
},<br />
"ПолучениеДанныхВложения": {<br />
"Значение": "DO_DP_TOVTORGPR_1175010" //указание на выгрузку документа DO_*<br />
},<br />
"РеестрПоУмолчанию": {<br />
"Значение": "'1'"<br />
},<br />
"ЗапросСпискаСвязанныхДокументов": {<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "GET_CHILD_VBFA_SFAKT", //метод класса получения данных<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "ПолучениеДанныхВложения",<br />
"Значение": "DO_ON_SCHFDOPPR_1115125" //указание на выгрузку документа DO_*<br />
}<br />
]<br />
}<br />
]<br />
},<br />
"ИсклСторноДатаСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноДатаНеСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноМесяцСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноМесяцНеСовпадает": {<br />
"Значение": "X"<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==BASIS 7.40 (/SBIS/CL_SAP_DATA_740)==<br />
<br />
Списки документов строятся на основании динамического select’а.<br />
Текст запроса содержится в параметрах:<br />
*ЗапросСпискаДокументов – содержит тип запроса: select, select_groupby, select_distinct. <br />
**Тело запрос разбито на 5 подстрок длиной 255 символов, а именно:<br />
***ЗапросСпискаДокументов_select_1 ... ЗапросСпискаДокументов_select_5<br />
***ЗапросСпискаДокументов_from_1 ... ЗапросСпискаДокументов_from_5<br />
***ЗапросСпискаДокументов_groupby_1 ... ЗапросСпискаДокументов_groupby_5 <br />
***ЗапросСпискаДокументов_having_1 ... ЗапросСпискаДокументов_having_5<br />
***ЗапросСпискаДокументов_where_1 ... ЗапросСпискаДокументов_where_5<br />
*ЗапросСпискаСвязанныхДокументов – массив настроек отвечающий за добавление связанных документов. Для каждой записи будет выполнен поиск всех указанных документов. <br />
<br />
===Запрос Списка Связанных Документов===<br />
====GET_CHILD_VBFA====<br />
Метод GET_CHILD_VBFA позволяет взять связанный через VBFA документ. <br />
<br />
Список настроек выглядит как динамический select c параметрами (тело запрос разбито на 5 подстрок длиной 255 символов, дополнительно выделена выборка сторнированных документов):<br />
*ЗапросСпискаСвязанныхДокументов_select_1 ... ЗапросСпискаСвязанныхДокументов_select_5<br />
*ЗапросСпискаСвязанныхДокументов_from_1 ... ЗапросСпискаСвязанныхДокументов_from_5<br />
*ЗапросСпискаСвязанныхДокументов_where_1 ... ЗапросСпискаСвязанныхДокументов_where_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_select_1 ... ЗапросСпискаСвязанныхДокументовСторно_select_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_from_1 ... ЗапросСпискаСвязанныхДокументовСторно_from_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_where_1 ... ЗапросСпискаСвязанныхДокументовСторно_where_5 <br />
<br />
<div style="border: 1px dashed;"><br />
пример запроса списка связанных документов для версии 740 через GET_CHILD_VBFA <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "GET_CHILD_VBFA", //метод класса получения данных<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_1",<br />
"Значение": "'DO_ON_SCHFDOPPR_1115125' as ini_name, vbrk~bukrs AS bukrs, vbfa~vbeln AS belnr, "<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_2",<br />
"Значение": "vbrk~vbeln AS xblnr, vbrk~fkdat AS date, vbfa~waers AS waers,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_3",<br />
"Значение": "( vbrk~netwr + vbrk~mwsbk ) AS sum,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_4",<br />
"Значение": "( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_5",<br />
"Значение": "vbtyp_n AS subtype"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_1",<br />
"Значение": "vbfa AS vbfa"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_2",<br />
"Значение": "INNER JOIN vbrk AS vbrk ON vbfa~vbeln = vbrk~vbeln"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_3",<br />
"Значение": "INNER JOIN kna1 AS kna1 ON vbrk~kunrg = kna1~kunnr"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_where_1",<br />
"Значение": "vbelv = @is_list_base_doc-belnr AND vbfa~vbtyp_n IN ('M', 'O', 'P')"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_20170716",<br />
"Значение": "'DO_ON_SCHFDOPPR_1115125' as ini_name, vbrk~bukrs AS bukrs, vbfa~vbeln AS belnr, bkpf~belnr AS xblnr, vbrk~fkdat AS date, vbfa~waers AS waers, ( vbrk~netwr + vbrk~mwsbk ) AS sum, ( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name, vbtyp_n AS subtype"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_20170716",<br />
"Значение": "vbfa AS vbfa INNER JOIN vbrk AS vbrk ON vbfa~vbeln = vbrk~vbeln INNER JOIN kna1 AS kna1 ON vbrk~kunrg = kna1~kunnr INNER JOIN bkpf as bkpf ON bkpf~bukrs = vbrk~bukrs AND bkpf~awkey = vbrk~vbeln AND bkpf~awtyp = 'VBRK'"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_where_20170716",<br />
"Значение": "vbfa~vbtyp_n IN ('M', 'N', 'O', 'P') AND vbelv = @is_list_base_doc-belnr"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_select_1",<br />
"Значение": "vbrk~vbeln AS belnr, vbrk~fkdat AS date"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_from_1",<br />
"Значение": "vbfa AS vbfa INNER JOIN vbrk AS vbrk ON vbfa~vbelv = vbrk~vbeln OR vbfa~vbeln = vbrk~vbeln"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_1",<br />
"Значение": "( vbfa~vbtyp_v = 'M' AND vbfa~vbtyp_n = 'N' AND vbfa~vbeln = @ls_list_related_doc-belnr )"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_2",<br />
"Значение": "OR ( vbfa~vbtyp_n = 'N' AND vbfa~vbtyp_v = 'M' AND vbfa~vbelv = @ls_list_related_doc-belnr )"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_3",<br />
"Значение": "AND vbrk~vbeln <> @ls_list_related_doc-belnr"<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
====GET_SELF====<br />
Метод GET_SELF позволяет взять тот же документ, но использовать другую программу печати. В этом случае параметры передаются в структуру S_LIST_DOC. <br />
<br />
<div style="border: 1px dashed;"><br />
пример запроса списка связанных документов для версии 740 через GET_SELF <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "GET_SELF",<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "doc_ini_name",<br />
"Значение": "DO_ON_SCHFDOPPR_1115125"<br />
},<br />
{<br />
"Имя": "doc_bukrs",<br />
"Значение": "bukrs"<br />
},<br />
{<br />
"Имя": "doc_gjahr",<br />
"Значение": "gjahr"<br />
},<br />
{<br />
"Имя": "doc_belnr",<br />
"Значение": "belnr"<br />
},<br />
{<br />
"Имя": "doc_xblnr",<br />
"Значение": "param1"<br />
},<br />
{<br />
"Имя": "doc_date",<br />
"Значение": "date"<br />
},<br />
{<br />
"Имя": "doc_sum",<br />
"Значение": "sum"<br />
},<br />
{<br />
"Имя": "doc_waers",<br />
"Значение": "waers"<br />
},<br />
{<br />
"Имя": "doc_user_name",<br />
"Значение": "user_name"<br />
},<br />
{<br />
"Имя": "doc_partner_name",<br />
"Значение": "partner_name"<br />
},<br />
{<br />
"Имя": "doc_org_name",<br />
"Значение": "org_name"<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&diff=3376
Заглавная страница
2018-03-16T12:42:51Z
<p>Чижов Виталий: </p>
<hr />
<div>[[:Категория:СБИС|СБИС]]<br />
*[[:Категория:СБИС Коннект|СБИС Коннект]]<br />
*[[:Категория:1С|1С]]<br />
**[[Настройка_внешней_обработки_СБИС_для_1С_8.х|Настройка внешней обработки СБИС для 1С 8.х]]<br />
**[[Внешний_интерфейс_обработки_-_API|Внешний интерфейс обработки - API]]<br />
**[[Поддерживаемые_конфигурации_1С|Поддерживаемые конфигурации 1С]]<br />
**[[Типовые_проблемы_с_внешней_обработкой|Типовые проблемы с внешней обработкой]]<br />
**[[Минимальные_права_пользователя_1С_для_работы_внешней_обработки|Минимальные права пользователя 1С для работы внешней обработки СБИС]]<br />
*[[:Категория:SAP|SAP]]<br />
**[[Варианты_интеграции_с_SAP|Варианты интеграции с SAP]]<br />
**[[СБИС_Сапёр|СБИС Сапёр - модуль для интеграции с SAP]]<br />
**[[СБИС_Сапёр_-_Установка|СБИС Сапёр - Установка]]<br />
**[[СБИС_Сапёр_-_Настройка|СБИС Сапёр - Настройка]]<br />
***[[SAPPER_SETTINGS_-_Общие|СБИС Сапёр - общие настройки]]<br />
***[[SAPPER_SETTINGS_-_Настройки_списков|СБИС Сапёр - настройки списков]]<br />
***[[SAPPER_SETTINGS_-_Настройки_выгрузки|СБИС Сапёр - настройки выгрузки]]<br />
***[[SAPPER_SETTINGS_-_Настройки_загрузки|СБИС Сапёр - настройки загрузки]]<br />
**[[SBIS_SAPPER_-_integration_module_for_SAP|SBIS SAPPER - integration module for SAP]]<br />
**[[SBIS_SAPPER_-_Installation|SBIS SAPPER - Installation]]<br />
*[[:Категория:SBIS_API3|API3]]<br />
<br />
*[[:Категория:Raspberry Pi|Raspberry Pi]] <br />
*[[:Категория:ESP32|ESP32]]<br />
<br />
<br />
<br />
== Некоторые полезные ресурсы ==<br />
* [//meta.wikimedia.org/wiki/Help:Contents/ru Cправочное руководство];<br />
* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];<br />
* [//www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9E%D0%B1%D1%89%D0%B8%D0%B5&diff=3375
SAPPER SETTINGS - Общие
2018-03-16T12:39:47Z
<p>Чижов Виталий: /* SBIS_ROBOT */</p>
<hr />
<div>[[Категория:SAPPER]]<br />
[[Категория:SAP]]<br />
<br />
=SBIS=<br />
*Раздел настроек SBIS содержит общие настройки SAPPER:<br />
<br />
Структура:<br />
<br />
*EXCHANGE_CLASS - имя класса реализующего интерфейс обмена с SBIS<br />
*ASYNC_GROUP_SERVER – значение группы серверов для асинхронного обмена данными<br />
*DOC_TYPE – Настройки средств просмотра созданных документов SAP<br />
*NDS_CODE - Соответствие ставок НДС ФНС, значению ставки НДС SAP<br />
*CONVERT_XSLT_NAME_TO_FIO_TYPE – Параметры представления названия субъекта предпринимательской деятельности физ лиц (ЧП, ПБЮЛ и тп)<br />
*SBIS_ROBOT – настройки автоматической отправки и получения статусов<br />
*ACCORDION – настройки меню SAPPER - аккордеона<br />
<br />
<div style="border: 1px dashed;"><br />
Пример структуры раздела настроек SBIS<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"EXCHANGE_CLASS": {<br />
"Значение": "/SBIS/CL_EXCHANGE_SDK" //имя класса обмена, доступны варианты /SBIS/CL_EXCHANGE_EXTSDK, /SBIS/CL_EXCHANGE_SDK, /SBIS/CL_EXCHANGE_FILE<br />
},<br />
"FILTER_FM_NAME": {<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301", // имя FM реализующего экран фильтра по умолчанию<br />
"Подтип": "Parameter"<br />
},<br />
"ASYNC_GROUP_SERVER": {<br />
"Значение": "" // название группы серверов для асинхронного запуска<br />
},<br />
"DOC_TYPE": {<br />
"Значение": []<br />
},<br />
"NDS_CODE_INCOMING": {<br />
"Значение": []<br />
},<br />
"CONVERT_XSLT_NAME_TO_FIO_TYPE": {<br />
"Значение": []<br />
},<br />
"SBIS_ROBOT": {<br />
"Значение": []<br />
},<br />
"ACCORDION": {<br />
"Тип": "List",<br />
"Значение": []<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==DOC_TYPE==<br />
<br />
Настройки средств просмотра созданных документов SAP. Содержит массив настроек, каждая запись которого определяет как (с помощью какой транзакции) показывать документ SAP.<br />
<br />
Используется для открытия документа SAP из SAPPER. В момент открытия данные открываемого документа лежат в структуре S_API2_PACKET.<br />
<br />
Структура записи:<br />
* [Код типа документа SAP и его название]<br />
** VIEW_DOCUMENT - имя транзакции для просмотра<br />
*** [настройки заполнения селекционного экрана транзакции, [имя поля] = [источник данных в API2_PACKET]]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример DOC_TYPE для заказа показываемого транзакцией ME23N. В ME23N необходимо в параметр BES передать номер показываемого документа. Номер показываемого документа лежит в поле BELNR структуры S_API2_PACKET<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"DOC_TYPE": {<br />
"Значение": [<br />
{<br />
"Имя": "IC", //тип документа<br />
"Тип": "Заказ", // представление типа документа в SAPPER<br />
"Значение": [<br />
{<br />
"Имя": "VIEW_DOCUMENT",<br />
"Тип": "ME23N", //транзакция просмотра<br />
"Значение": [<br />
{<br />
<br />
"Имя": "BES", - поле селекционного экрана транзакции ME23N<br />
"Значение": "BELNR" - поле S_API2_PACKET <br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source></div></div><br />
<br />
Используемые коды документов SAP:<br />
<br />
* IC (ME23N)- Заказ<br />
* IJ (/SBIS/MIGO_DIALOG) - Накладная<br />
* IM (MIR4) - Счет-фактура<br />
<br />
==NDS_CODE== <br />
<br />
Соответствие ставок НДС ФНС, значению ставки НДС SAP. Содержит массив значений следующего вида:<br />
* [Ставка НДС ФНС]<br />
* [Направление обмена] - INBOUND\OUTBOUND (входящий\исходящий НДС), в данный момент используется только INBOUND<br />
* [Значение ставки НДС SAP]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример NDS_CODE для ставки НДС 18%<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"NDS_CODE": {<br />
"Значение": [<br />
{<br />
"Имя": "18", //вариант обозначения ставки НДС<br />
"Тип": "INBOUND", //направление обмена INBOUND\OUTBOUND<br />
"Значение": "PC" //код ставки НДС в SAP<br />
},<br />
{<br />
"Имя": "18%",<br />
"Тип": "INBOUND",<br />
"Значение": "PC"<br />
}<br />
] <br />
}<br />
</source></div></div><br />
<br />
==CONVERT_XSLT_NAME_TO_FIO_TYPE==<br />
<br />
Параметры представления названия субъекта предпринимательской деятельности физ лиц (ЧП, ПБЮЛ и тп). Используется для корректного отображения ФИО субъекта деятельности, если в ФИО хранится название предпринимательской деятельности, к примеру, "ИП Иванов Иван Иванович". Для преобразования используется метод класса /SBIS/CL_CORE->CONVERT_XSLT_NAME_TO_FIO<br />
<br />
Структура параметра:<br />
* [имя определения]<br />
* [тип определения]<br />
* [значение]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример CONVERT_XSLT_NAME_TO_FIO_TYPE со списком возможных значений<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"CONVERT_XSLT_NAME_TO_FIO_TYPE": {<br />
"Значение": [<br />
{<br />
"Имя": "TERMS",<br />
"Тип": "String",<br />
"Значение": "ип,чп,индивидуальный предприниматель,адвокат,нотариус,предприниматель без образования юридического лица,пбоюл,предприниматель"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==SBIS_ROBOT==<br />
Раздел настройки для автоматической отправки и получения статусов, содержит массив значений следующей структуры:<br />
* [имя вызываемой программы]<br />
* [вариант]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример SBIS_ROBOT для настройки автоматической отправки документов с фильтром по варианту SALES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"SBIS_ROBOT": {<br />
"Значение": [<br />
{<br />
"Имя": "/SBIS/PR_SEND_ALL_SDK",<br />
"Значение": "SALES"<br />
}<br />
]<br />
}<br />
}<br />
</source></div></div><br />
<br />
Подробнее о функционале по [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.A1.D0.91.D0.98.D0.A1_.D1.80.D0.BE.D0.B1.D0.BE.D1.82.2C_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2_.D0.B8_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2 ссылке].<br />
<br />
==ACCORDION==<br />
<br />
Меню (аккордеон) в SBIS SAPPER динамический.<br />
[[Файл:Accordion.png|right|Аккордеон]]<br />
Содержимое меню является двухуровневым иерархическим списком.<br />
<br />
Раздел (папка) аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_SEND_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
* ASYNC_PROCESSING - "X" выполнять асинхронно, иначе синхронно<br />
<br />
Для аккордеона могут быть использованы следующие предустановленные пункты - Полученные, Отправленные, Ответы контрагентов - показывающие соответствующие разделы СБИС.<br />
<br />
<div style="border: 1px dashed;"><br />
Пример аккордеона с папками Полученные, Отправленные, Ответы контрагентов, Продажи с пунктом Реализация Товаров<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ACCORDION": {<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "Полученные",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Полученные"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_INBOX"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_INBOX_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
} <br />
]<br />
},<br />
{<br />
"Имя": "Отправленные",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправленные"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_OUTBOX"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_OUTBOX_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "Ответы контрагентов",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Ответы контрагентов"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_RESPONSE"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_RESPONSE_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "Продажа",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Продажа"<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "LO_РеализацияТоваров",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Реализация товаров"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_API2_PACKET"<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_SAP_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_302",<br />
"Подтип": "Range"<br />
},<br />
{<br />
"Имя": "ASYNC_PROCESSING",<br />
"Значение": ""<br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div></div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9E%D0%B1%D1%89%D0%B8%D0%B5&diff=3374
SAPPER SETTINGS - Общие
2018-03-16T12:33:00Z
<p>Чижов Виталий: /* SBIS_ROBOT */</p>
<hr />
<div>[[Категория:SAPPER]]<br />
[[Категория:SAP]]<br />
<br />
=SBIS=<br />
*Раздел настроек SBIS содержит общие настройки SAPPER:<br />
<br />
Структура:<br />
<br />
*EXCHANGE_CLASS - имя класса реализующего интерфейс обмена с SBIS<br />
*ASYNC_GROUP_SERVER – значение группы серверов для асинхронного обмена данными<br />
*DOC_TYPE – Настройки средств просмотра созданных документов SAP<br />
*NDS_CODE - Соответствие ставок НДС ФНС, значению ставки НДС SAP<br />
*CONVERT_XSLT_NAME_TO_FIO_TYPE – Параметры представления названия субъекта предпринимательской деятельности физ лиц (ЧП, ПБЮЛ и тп)<br />
*SBIS_ROBOT – настройки автоматической отправки и получения статусов<br />
*ACCORDION – настройки меню SAPPER - аккордеона<br />
<br />
<div style="border: 1px dashed;"><br />
Пример структуры раздела настроек SBIS<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"EXCHANGE_CLASS": {<br />
"Значение": "/SBIS/CL_EXCHANGE_SDK" //имя класса обмена, доступны варианты /SBIS/CL_EXCHANGE_EXTSDK, /SBIS/CL_EXCHANGE_SDK, /SBIS/CL_EXCHANGE_FILE<br />
},<br />
"FILTER_FM_NAME": {<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301", // имя FM реализующего экран фильтра по умолчанию<br />
"Подтип": "Parameter"<br />
},<br />
"ASYNC_GROUP_SERVER": {<br />
"Значение": "" // название группы серверов для асинхронного запуска<br />
},<br />
"DOC_TYPE": {<br />
"Значение": []<br />
},<br />
"NDS_CODE_INCOMING": {<br />
"Значение": []<br />
},<br />
"CONVERT_XSLT_NAME_TO_FIO_TYPE": {<br />
"Значение": []<br />
},<br />
"SBIS_ROBOT": {<br />
"Значение": []<br />
},<br />
"ACCORDION": {<br />
"Тип": "List",<br />
"Значение": []<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==DOC_TYPE==<br />
<br />
Настройки средств просмотра созданных документов SAP. Содержит массив настроек, каждая запись которого определяет как (с помощью какой транзакции) показывать документ SAP.<br />
<br />
Используется для открытия документа SAP из SAPPER. В момент открытия данные открываемого документа лежат в структуре S_API2_PACKET.<br />
<br />
Структура записи:<br />
* [Код типа документа SAP и его название]<br />
** VIEW_DOCUMENT - имя транзакции для просмотра<br />
*** [настройки заполнения селекционного экрана транзакции, [имя поля] = [источник данных в API2_PACKET]]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример DOC_TYPE для заказа показываемого транзакцией ME23N. В ME23N необходимо в параметр BES передать номер показываемого документа. Номер показываемого документа лежит в поле BELNR структуры S_API2_PACKET<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"DOC_TYPE": {<br />
"Значение": [<br />
{<br />
"Имя": "IC", //тип документа<br />
"Тип": "Заказ", // представление типа документа в SAPPER<br />
"Значение": [<br />
{<br />
"Имя": "VIEW_DOCUMENT",<br />
"Тип": "ME23N", //транзакция просмотра<br />
"Значение": [<br />
{<br />
<br />
"Имя": "BES", - поле селекционного экрана транзакции ME23N<br />
"Значение": "BELNR" - поле S_API2_PACKET <br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source></div></div><br />
<br />
Используемые коды документов SAP:<br />
<br />
* IC (ME23N)- Заказ<br />
* IJ (/SBIS/MIGO_DIALOG) - Накладная<br />
* IM (MIR4) - Счет-фактура<br />
<br />
==NDS_CODE== <br />
<br />
Соответствие ставок НДС ФНС, значению ставки НДС SAP. Содержит массив значений следующего вида:<br />
* [Ставка НДС ФНС]<br />
* [Направление обмена] - INBOUND\OUTBOUND (входящий\исходящий НДС), в данный момент используется только INBOUND<br />
* [Значение ставки НДС SAP]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример NDS_CODE для ставки НДС 18%<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"NDS_CODE": {<br />
"Значение": [<br />
{<br />
"Имя": "18", //вариант обозначения ставки НДС<br />
"Тип": "INBOUND", //направление обмена INBOUND\OUTBOUND<br />
"Значение": "PC" //код ставки НДС в SAP<br />
},<br />
{<br />
"Имя": "18%",<br />
"Тип": "INBOUND",<br />
"Значение": "PC"<br />
}<br />
] <br />
}<br />
</source></div></div><br />
<br />
==CONVERT_XSLT_NAME_TO_FIO_TYPE==<br />
<br />
Параметры представления названия субъекта предпринимательской деятельности физ лиц (ЧП, ПБЮЛ и тп). Используется для корректного отображения ФИО субъекта деятельности, если в ФИО хранится название предпринимательской деятельности, к примеру, "ИП Иванов Иван Иванович". Для преобразования используется метод класса /SBIS/CL_CORE->CONVERT_XSLT_NAME_TO_FIO<br />
<br />
Структура параметра:<br />
* [имя определения]<br />
* [тип определения]<br />
* [значение]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример CONVERT_XSLT_NAME_TO_FIO_TYPE со списком возможных значений<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"CONVERT_XSLT_NAME_TO_FIO_TYPE": {<br />
"Значение": [<br />
{<br />
"Имя": "TERMS",<br />
"Тип": "String",<br />
"Значение": "ип,чп,индивидуальный предприниматель,адвокат,нотариус,предприниматель без образования юридического лица,пбоюл,предприниматель"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==SBIS_ROBOT==<br />
Раздел настройки для автоматической отправки и получения статусов, содержит массив значений следующей структуры:<br />
* [имя вызываемой программы]<br />
* [вариант] - возможно указание конкретного варианта, списка вариантов разделенного запятой и выбор всех вариантов значение "*"<br />
<br />
<div style="border: 1px dashed;"><br />
Пример SBIS_ROBOT для настройки автоматической отправки документов с фильтром по варианту SALES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"SBIS_ROBOT": {<br />
"Значение": [<br />
{<br />
"Имя": "/SBIS/PR_SEND_ALL_SDK",<br />
"Значение": "SALES"<br />
}<br />
]<br />
}<br />
}<br />
</source></div></div><br />
<br />
Подробнее о функционале по [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.A1.D0.91.D0.98.D0.A1_.D1.80.D0.BE.D0.B1.D0.BE.D1.82.2C_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2_.D0.B8_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2 ссылке].<br />
<br />
==ACCORDION==<br />
<br />
Меню (аккордеон) в SBIS SAPPER динамический.<br />
[[Файл:Accordion.png|right|Аккордеон]]<br />
Содержимое меню является двухуровневым иерархическим списком.<br />
<br />
Раздел (папка) аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_SEND_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
* ASYNC_PROCESSING - "X" выполнять асинхронно, иначе синхронно<br />
<br />
Для аккордеона могут быть использованы следующие предустановленные пункты - Полученные, Отправленные, Ответы контрагентов - показывающие соответствующие разделы СБИС.<br />
<br />
<div style="border: 1px dashed;"><br />
Пример аккордеона с папками Полученные, Отправленные, Ответы контрагентов, Продажи с пунктом Реализация Товаров<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ACCORDION": {<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "Полученные",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Полученные"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_INBOX"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_INBOX_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
} <br />
]<br />
},<br />
{<br />
"Имя": "Отправленные",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправленные"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_OUTBOX"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_OUTBOX_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "Ответы контрагентов",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Ответы контрагентов"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_RESPONSE"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_RESPONSE_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "Продажа",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Продажа"<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "LO_РеализацияТоваров",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Реализация товаров"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_API2_PACKET"<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_SAP_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_302",<br />
"Подтип": "Range"<br />
},<br />
{<br />
"Имя": "ASYNC_PROCESSING",<br />
"Значение": ""<br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div></div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9E%D0%B1%D1%89%D0%B8%D0%B5&diff=3373
SAPPER SETTINGS - Общие
2018-03-16T12:32:39Z
<p>Чижов Виталий: /* SBIS_ROBOT */</p>
<hr />
<div>[[Категория:SAPPER]]<br />
[[Категория:SAP]]<br />
<br />
=SBIS=<br />
*Раздел настроек SBIS содержит общие настройки SAPPER:<br />
<br />
Структура:<br />
<br />
*EXCHANGE_CLASS - имя класса реализующего интерфейс обмена с SBIS<br />
*ASYNC_GROUP_SERVER – значение группы серверов для асинхронного обмена данными<br />
*DOC_TYPE – Настройки средств просмотра созданных документов SAP<br />
*NDS_CODE - Соответствие ставок НДС ФНС, значению ставки НДС SAP<br />
*CONVERT_XSLT_NAME_TO_FIO_TYPE – Параметры представления названия субъекта предпринимательской деятельности физ лиц (ЧП, ПБЮЛ и тп)<br />
*SBIS_ROBOT – настройки автоматической отправки и получения статусов<br />
*ACCORDION – настройки меню SAPPER - аккордеона<br />
<br />
<div style="border: 1px dashed;"><br />
Пример структуры раздела настроек SBIS<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"EXCHANGE_CLASS": {<br />
"Значение": "/SBIS/CL_EXCHANGE_SDK" //имя класса обмена, доступны варианты /SBIS/CL_EXCHANGE_EXTSDK, /SBIS/CL_EXCHANGE_SDK, /SBIS/CL_EXCHANGE_FILE<br />
},<br />
"FILTER_FM_NAME": {<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301", // имя FM реализующего экран фильтра по умолчанию<br />
"Подтип": "Parameter"<br />
},<br />
"ASYNC_GROUP_SERVER": {<br />
"Значение": "" // название группы серверов для асинхронного запуска<br />
},<br />
"DOC_TYPE": {<br />
"Значение": []<br />
},<br />
"NDS_CODE_INCOMING": {<br />
"Значение": []<br />
},<br />
"CONVERT_XSLT_NAME_TO_FIO_TYPE": {<br />
"Значение": []<br />
},<br />
"SBIS_ROBOT": {<br />
"Значение": []<br />
},<br />
"ACCORDION": {<br />
"Тип": "List",<br />
"Значение": []<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==DOC_TYPE==<br />
<br />
Настройки средств просмотра созданных документов SAP. Содержит массив настроек, каждая запись которого определяет как (с помощью какой транзакции) показывать документ SAP.<br />
<br />
Используется для открытия документа SAP из SAPPER. В момент открытия данные открываемого документа лежат в структуре S_API2_PACKET.<br />
<br />
Структура записи:<br />
* [Код типа документа SAP и его название]<br />
** VIEW_DOCUMENT - имя транзакции для просмотра<br />
*** [настройки заполнения селекционного экрана транзакции, [имя поля] = [источник данных в API2_PACKET]]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример DOC_TYPE для заказа показываемого транзакцией ME23N. В ME23N необходимо в параметр BES передать номер показываемого документа. Номер показываемого документа лежит в поле BELNR структуры S_API2_PACKET<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"DOC_TYPE": {<br />
"Значение": [<br />
{<br />
"Имя": "IC", //тип документа<br />
"Тип": "Заказ", // представление типа документа в SAPPER<br />
"Значение": [<br />
{<br />
"Имя": "VIEW_DOCUMENT",<br />
"Тип": "ME23N", //транзакция просмотра<br />
"Значение": [<br />
{<br />
<br />
"Имя": "BES", - поле селекционного экрана транзакции ME23N<br />
"Значение": "BELNR" - поле S_API2_PACKET <br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source></div></div><br />
<br />
Используемые коды документов SAP:<br />
<br />
* IC (ME23N)- Заказ<br />
* IJ (/SBIS/MIGO_DIALOG) - Накладная<br />
* IM (MIR4) - Счет-фактура<br />
<br />
==NDS_CODE== <br />
<br />
Соответствие ставок НДС ФНС, значению ставки НДС SAP. Содержит массив значений следующего вида:<br />
* [Ставка НДС ФНС]<br />
* [Направление обмена] - INBOUND\OUTBOUND (входящий\исходящий НДС), в данный момент используется только INBOUND<br />
* [Значение ставки НДС SAP]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример NDS_CODE для ставки НДС 18%<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"NDS_CODE": {<br />
"Значение": [<br />
{<br />
"Имя": "18", //вариант обозначения ставки НДС<br />
"Тип": "INBOUND", //направление обмена INBOUND\OUTBOUND<br />
"Значение": "PC" //код ставки НДС в SAP<br />
},<br />
{<br />
"Имя": "18%",<br />
"Тип": "INBOUND",<br />
"Значение": "PC"<br />
}<br />
] <br />
}<br />
</source></div></div><br />
<br />
==CONVERT_XSLT_NAME_TO_FIO_TYPE==<br />
<br />
Параметры представления названия субъекта предпринимательской деятельности физ лиц (ЧП, ПБЮЛ и тп). Используется для корректного отображения ФИО субъекта деятельности, если в ФИО хранится название предпринимательской деятельности, к примеру, "ИП Иванов Иван Иванович". Для преобразования используется метод класса /SBIS/CL_CORE->CONVERT_XSLT_NAME_TO_FIO<br />
<br />
Структура параметра:<br />
* [имя определения]<br />
* [тип определения]<br />
* [значение]<br />
<br />
<div style="border: 1px dashed;"><br />
Пример CONVERT_XSLT_NAME_TO_FIO_TYPE со списком возможных значений<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"CONVERT_XSLT_NAME_TO_FIO_TYPE": {<br />
"Значение": [<br />
{<br />
"Имя": "TERMS",<br />
"Тип": "String",<br />
"Значение": "ип,чп,индивидуальный предприниматель,адвокат,нотариус,предприниматель без образования юридического лица,пбоюл,предприниматель"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==SBIS_ROBOT==<br />
Раздел настройки для автоматической отправки и получения статусов, содержит массив значений следующей структуры:<br />
* [имя вызываемой программы]<br />
* [вариант] - возможно указание конкретного варианта, списка вариантов разделенного запятой и выбор всех вариантов значение "*"<br />
<br />
<div style="border: 1px dashed;"><br />
Пример SBIS_ROBOT для настройки автоматической отправки документов с фильтром по варианту SALES<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"SBIS_ROBOT": {<br />
"Значение": [<br />
{<br />
"Имя": "/SBIS/PR_SEND_ALL_SDK",<br />
"Значение": "SALES"<br />
}<br />
]<br />
}<br />
}<br />
</source></div></div><br />
<br />
Подробнее по [http://wiki.razgovorov.ru/index.php/%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0#.D0.A1.D0.91.D0.98.D0.A1_.D1.80.D0.BE.D0.B1.D0.BE.D1.82.2C_.D0.B0.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.B4.D0.BE.D0.BA.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D0.BE.D0.B2_.D0.B8_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D1.81.D1.82.D0.B0.D1.82.D1.83.D1.81.D0.BE.D0.B2 ссылке].<br />
<br />
==ACCORDION==<br />
<br />
Меню (аккордеон) в SBIS SAPPER динамический.<br />
[[Файл:Accordion.png|right|Аккордеон]]<br />
Содержимое меню является двухуровневым иерархическим списком.<br />
<br />
Раздел (папка) аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* ITEMS (тип list) - список вложенных пунктов (код, параметры)<br />
<br />
Пункт аккордеона должен содержать параметры:<br />
* NAME - название пункта<br />
* CONTENT_CLASS - имя класса отвечающего за построение дерева списка в SAPPER<br />
* EXCHANGE_SEND_CLASS - имя класса отвечающего за способ обмена документами с СБИС<br />
* VIEW_CLASS - имя класса отвечающего за просмотр пакета<br />
* PAGE_SIZE - количество пакетов на странице<br />
* FILTER_FM_NAME - имя FM для установки фильтра в списке<br />
* ASYNC_PROCESSING - "X" выполнять асинхронно, иначе синхронно<br />
<br />
Для аккордеона могут быть использованы следующие предустановленные пункты - Полученные, Отправленные, Ответы контрагентов - показывающие соответствующие разделы СБИС.<br />
<br />
<div style="border: 1px dashed;"><br />
Пример аккордеона с папками Полученные, Отправленные, Ответы контрагентов, Продажи с пунктом Реализация Товаров<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ACCORDION": {<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "Полученные",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Полученные"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_INBOX"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_INBOX_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
} <br />
]<br />
},<br />
{<br />
"Имя": "Отправленные",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправленные"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_OUTBOX"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_OUTBOX_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "Ответы контрагентов",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Ответы контрагентов"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_RESPONSE"<br />
},<br />
{<br />
"Имя": "EXCHANGE_SEND_CLASS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_RESPONSE_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_301",<br />
"Подтип": "Parameter"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "Продажа",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Продажа"<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "LO_РеализацияТоваров",<br />
"Значение": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Реализация товаров"<br />
},<br />
{<br />
"Имя": "CONTENT_CLASS",<br />
"Значение": "/SBIS/CL_TREE_API2_PACKET"<br />
},<br />
{<br />
"Имя": "VIEW_CLASS",<br />
"Значение": "/SBIS/CL_VIEW_SAP_PACKET"<br />
},<br />
{<br />
"Имя": "PAGE_SIZE",<br />
"Значение": "20"<br />
},<br />
{<br />
"Имя": "FILTER_FM_NAME",<br />
"Значение": "/SBIS/FM_FILTER_SCREEN_302",<br />
"Подтип": "Range"<br />
},<br />
{<br />
"Имя": "ASYNC_PROCESSING",<br />
"Значение": ""<br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div></div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3372
СБИС Сапёр - Настройка
2018-03-16T12:30:15Z
<p>Чижов Виталий: /* Настройка отправки электронных документов */</p>
<hr />
<div>=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
<br />
==Запустить модуль==<br />
Действие: SE38 -> /sbis/sapper или транзакция /n/SBIS/SAPPER<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Введение=<br />
При разработке SAPPER основной задачей являлось создать тиражируемое решение, которое будет легко разворачиваться на любой версии SAP и решать задачи клиента без программирования - на уровне настроек. Для достижения этой цели почти весь функционал SAPPER сделан настраиваемым. Настройки SAPPER хранятся в таблице /SBIS/SETTINGS.<br />
<br />
Сами настройки можно представить как иерархическую структуру параметров типа ключ значение.<br />
<br />
Редактирование настроек можно осуществить двумя способами:<br />
# с помощью транзакции /n/SBIS/SETTINGS (ветка SPRO -> Integration with other SAP Components -> SBIS Sapper -> Settings).<br />
# с помощью JSON файлов в последующем конвертирующихся и импортирующихся в /SBIS/SETTINGS. Данный способ на текущий момент является более удобным и наглядным. Далее в инструкции все примеры настроек показаны в виде JSON объектов.<br />
<br />
==Структура настроек /SBIS/SETTINGS==<br />
*SBIS - Общие настройки модуля, протокол обмена, справочники<br />
**ACCORDION - Настройки аккордеона<br />
*LO_* - Настройки для построения списков исходящих документов для отправки<br />
*DO_* - Настройки выгрузки исходящих документов, название класса и программ печати отвечающих за формирование<br />
**PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
**PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
**FILE - массив настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых электронных документов <br />
*UI_* - настройки загрузки электронных документов в SAP (создания SAP документов, сериализации XML файла в параметры BAPI)<br />
**FILE - массив настроек маппинга XML в параметры BAPI. Количество элементов FILE соответствует количеству документов SAP создаваемых из данного электронного документа.<br />
<br />
=Настройка отправки электронных документов=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие пакеты документов (их варианты) мы хотим отправлять и какие программы использует SAP для печати этих документов)<br />
# Настроить ACCORDION - перечислить все варианты отправляемых пакетов документов ([[SAPPER SETTINGS - Общие]]).<br />
# Для каждого варианта пакета документов настроить показ списка ([[SAPPER SETTINGS - Настройки списков]]).<br />
# Для каждого входящего в пакет документа SAP настроить параметры формирования из него электронных документов ([[SAPPER SETTINGS - Настройки выгрузки]]).<br />
<br />
==Алгоритм отправки==<br />
# Показ списка записей для отправки<br />
## на настройках аккордеона смотрим имя настройки LO_<br />
## из таблицы настроек LO_ получаем имя класса отвечающего за показ списка<br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета читаем настройки DO_<br />
## вызываем класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом при помощи другого XSLT приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
=Настройка загрузки электронных документов (cоздание документа в SAP)=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие документы SAP должны создаваться из каких электронных документов и какими методами (BAPI или BATCH INPUT))<br />
## На данный момент поддерживается создание документов в SAP из электронных документов: счет-фактура, накладная.<br />
# Для электронного документа настроить параметры создания из него документов SAP ([[SAPPER SETTINGS - Настройки загрузки]]).<br />
<br />
==Алгоритм загрузки==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем с помощью другого XSLT в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
=== Настройки аккордеона ===<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
=== Настройки реестров ===<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
=== Настройки маппинга для программ печати ===<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
=== Настройки загрузки ===<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
=== Настройки справочников ===<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
===Обновление FM смартформы===<br />
В случае изменения смартформы и перегенерации ее функционального модуля, можно инициировать автоматическое обновление настроек в таблице с помощью программы /SBIS/UPDATE_SMARTFORM_FM.<br />
<br />
===Сброс номера, даты\времени последнего прочитанного события (только для пакета /SBIS/EJOURNAL)===<br />
С помощью программы /SBIS/RESET_U_SETTINGS или транзакции /n/SBIS/RESET_USET, можно сбросить последнее прочитанное событие и установить произвольные дату и время для текущего пользователя.<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов и отправки документов =<br />
== Автоматическое обновление статусов ==<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного SAP-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Зайдите в SAP под учетной записью только что созданного пользователя (пп.2). Запустите СБИС Сапер. Авторизуйтесь. Сохраните пароль СБИС-кабинета. Под этим логином и паролем СБИС-кабинета будет происходить обновление статусов.<br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
== СБИС робот, автоматизация отправки документов и обновления статусов ==<br />
Для более гибкой организации автоматической обработки статусов, отправки документов, можно использовать функционал SBIS ROBOT.<br />
Для настройки следует добавить в настроечный раздел SBIS следующие параметры:<br />
<source lang=JSON> <br />
"SBIS_ROBOT": {<br />
"Значение": [<br />
{<br />
"Имя": "/SBIS/PR_UPDATE_DOC_STATUS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "/SBIS/PR_SEND_ALL_SDK",<br />
"Значение": "SALES"<br />
}<br />
]<br />
}<br />
</source><br />
Параметр SBIS_ROBOT содержит имя программы, которая будет запускаться и вариант в поле значение, с которым программа будет исполняться. <br />
В поле значение можно указать:<br />
#единственный вариант, к примеру, "SALES", <br />
#множество вариантов разделенные запятой, "SALES, SALES1, SALES2",<br />
#"*" - все доступные варианты программы. <br />
Обратите внимание, что имя варианта в SAP не должно содержать пробелов, в противном случае вариант будет проигнорирован.<br />
<br />
Возможные стандартные программы:<br />
#/SBIS/PR_UPDATE_DOC_STATUS служит для автоматической обработки статусов, наличие вариантов не подразумевается. Для данной программы есть отдельная обертка рассмотренная выше.<br />
#/SBIS/PR_SEND_ALL_SDK используется для автоматической отправки реестров документов, подразумевает гибкую настройку варианта отправки. <br />
##Обязательно следует указать реестр отправляемых документов, даты и исключить статус “Отправлен”, чтобы не переотправлять уже отправленные документы, если такие попадут в выборку или же, наоборот, ограничить только по статусу "Не отправлен", а также организационные единицы. <br />
[[Файл:Скриншот_12.03.2018_08-42-39-259.png]]<br />
<br />
Запуск транзакции /SBIS/ROBOT осуществляется с помощью *.bat файла. По настройке *.bat файла смотрите пункт обновление статусов.<br />
Журналирование осуществляется с помощью стандартного функционала логирования приложений (SLG1) объект /SBIS/ подобъект ROBOT.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3371
СБИС Сапёр - Настройка
2018-03-16T12:29:16Z
<p>Чижов Виталий: /* Настройка загрузки электронных документов (cоздание документа в SAP) */</p>
<hr />
<div>=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
<br />
==Запустить модуль==<br />
Действие: SE38 -> /sbis/sapper или транзакция /n/SBIS/SAPPER<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Введение=<br />
При разработке SAPPER основной задачей являлось создать тиражируемое решение, которое будет легко разворачиваться на любой версии SAP и решать задачи клиента без программирования - на уровне настроек. Для достижения этой цели почти весь функционал SAPPER сделан настраиваемым. Настройки SAPPER хранятся в таблице /SBIS/SETTINGS.<br />
<br />
Сами настройки можно представить как иерархическую структуру параметров типа ключ значение.<br />
<br />
Редактирование настроек можно осуществить двумя способами:<br />
# с помощью транзакции /n/SBIS/SETTINGS (ветка SPRO -> Integration with other SAP Components -> SBIS Sapper -> Settings).<br />
# с помощью JSON файлов в последующем конвертирующихся и импортирующихся в /SBIS/SETTINGS. Данный способ на текущий момент является более удобным и наглядным. Далее в инструкции все примеры настроек показаны в виде JSON объектов.<br />
<br />
==Структура настроек /SBIS/SETTINGS==<br />
*SBIS - Общие настройки модуля, протокол обмена, справочники<br />
**ACCORDION - Настройки аккордеона<br />
*LO_* - Настройки для построения списков исходящих документов для отправки<br />
*DO_* - Настройки выгрузки исходящих документов, название класса и программ печати отвечающих за формирование<br />
**PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
**PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
**FILE - массив настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых электронных документов <br />
*UI_* - настройки загрузки электронных документов в SAP (создания SAP документов, сериализации XML файла в параметры BAPI)<br />
**FILE - массив настроек маппинга XML в параметры BAPI. Количество элементов FILE соответствует количеству документов SAP создаваемых из данного электронного документа.<br />
<br />
=Настройка отправки электронных документов=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие пакеты документов (их варианты) мы хотим отправлять и какие программы использует SAP для печати этих документов)<br />
# Настроить ACCORDION - перечислить все варианты отправляемых пакетов документов.<br />
# Для каждого варианта пакета документов настроить показ списка<br />
# Для каждого входящего в пакет документа SAP настроить параметры формирования из него электронных документов.<br />
<br />
==Настройка аккордеона==<br />
<br />
Детальный разбор с примером по ссылке [[SAPPER SETTINGS - Общие]].<br />
<br />
==Алгоритм отправки==<br />
# Показ списка записей для отправки<br />
## на настройках аккордеона смотрим имя настройки LO_<br />
## из таблицы настроек LO_ получаем имя класса отвечающего за показ списка<br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета читаем настройки DO_<br />
## вызываем класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом при помощи другого XSLT приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Настройка списков==<br />
<br />
Детальный разбор с примером по ссылке [[SAPPER SETTINGS - Настройки списков]].<br />
<br />
==Настройка выгрузки==<br />
<br />
Детальный разбор с примером по ссылке [[SAPPER SETTINGS - Настройки выгрузки]].<br />
<br />
=Настройка загрузки электронных документов (cоздание документа в SAP)=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие документы SAP должны создаваться из каких электронных документов и какими методами (BAPI или BATCH INPUT))<br />
## На данный момент поддерживается создание документов в SAP из электронных документов: счет-фактура, накладная.<br />
# Для электронного документа настроить параметры создания из него документов SAP ([[SAPPER SETTINGS - Настройки загрузки]]).<br />
<br />
==Алгоритм загрузки==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем с помощью другого XSLT в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
=== Настройки аккордеона ===<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
=== Настройки реестров ===<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
=== Настройки маппинга для программ печати ===<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
=== Настройки загрузки ===<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
=== Настройки справочников ===<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
===Обновление FM смартформы===<br />
В случае изменения смартформы и перегенерации ее функционального модуля, можно инициировать автоматическое обновление настроек в таблице с помощью программы /SBIS/UPDATE_SMARTFORM_FM.<br />
<br />
===Сброс номера, даты\времени последнего прочитанного события (только для пакета /SBIS/EJOURNAL)===<br />
С помощью программы /SBIS/RESET_U_SETTINGS или транзакции /n/SBIS/RESET_USET, можно сбросить последнее прочитанное событие и установить произвольные дату и время для текущего пользователя.<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов и отправки документов =<br />
== Автоматическое обновление статусов ==<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного SAP-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Зайдите в SAP под учетной записью только что созданного пользователя (пп.2). Запустите СБИС Сапер. Авторизуйтесь. Сохраните пароль СБИС-кабинета. Под этим логином и паролем СБИС-кабинета будет происходить обновление статусов.<br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
== СБИС робот, автоматизация отправки документов и обновления статусов ==<br />
Для более гибкой организации автоматической обработки статусов, отправки документов, можно использовать функционал SBIS ROBOT.<br />
Для настройки следует добавить в настроечный раздел SBIS следующие параметры:<br />
<source lang=JSON> <br />
"SBIS_ROBOT": {<br />
"Значение": [<br />
{<br />
"Имя": "/SBIS/PR_UPDATE_DOC_STATUS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "/SBIS/PR_SEND_ALL_SDK",<br />
"Значение": "SALES"<br />
}<br />
]<br />
}<br />
</source><br />
Параметр SBIS_ROBOT содержит имя программы, которая будет запускаться и вариант в поле значение, с которым программа будет исполняться. <br />
В поле значение можно указать:<br />
#единственный вариант, к примеру, "SALES", <br />
#множество вариантов разделенные запятой, "SALES, SALES1, SALES2",<br />
#"*" - все доступные варианты программы. <br />
Обратите внимание, что имя варианта в SAP не должно содержать пробелов, в противном случае вариант будет проигнорирован.<br />
<br />
Возможные стандартные программы:<br />
#/SBIS/PR_UPDATE_DOC_STATUS служит для автоматической обработки статусов, наличие вариантов не подразумевается. Для данной программы есть отдельная обертка рассмотренная выше.<br />
#/SBIS/PR_SEND_ALL_SDK используется для автоматической отправки реестров документов, подразумевает гибкую настройку варианта отправки. <br />
##Обязательно следует указать реестр отправляемых документов, даты и исключить статус “Отправлен”, чтобы не переотправлять уже отправленные документы, если такие попадут в выборку или же, наоборот, ограничить только по статусу "Не отправлен", а также организационные единицы. <br />
[[Файл:Скриншот_12.03.2018_08-42-39-259.png]]<br />
<br />
Запуск транзакции /SBIS/ROBOT осуществляется с помощью *.bat файла. По настройке *.bat файла смотрите пункт обновление статусов.<br />
Журналирование осуществляется с помощью стандартного функционала логирования приложений (SLG1) объект /SBIS/ подобъект ROBOT.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=%D0%A1%D0%91%D0%98%D0%A1_%D0%A1%D0%B0%D0%BF%D1%91%D1%80_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0&diff=3370
СБИС Сапёр - Настройка
2018-03-16T12:28:48Z
<p>Чижов Виталий: /* Настройка загрузки электронных документов (cоздание документа в SAP) */</p>
<hr />
<div>=Проверка готовности к настройке=<br />
==Подготовительные действия==<br />
* Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль<br />
* Авторизоваться в СБИС через браузер<br />
* Установить СБИС SDK<br />
<br />
==Запустить модуль==<br />
Действие: SE38 -> /sbis/sapper или транзакция /n/SBIS/SAPPER<br />
<br />
Результат: Откроется окно авторизации<br />
<br />
Проблемы:<br />
* Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).<br />
* Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.<br />
<br />
==Авторизоваться в модуле==<br />
<br />
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.<br />
<br />
Результат: Откроется главное окно SBIS SAPPER<br />
<br />
Проблемы:<br />
* В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна). <br />
Необходимо вручную загрузить настройки se38 - /sbis/update_settings<br />
<br />
=Введение=<br />
При разработке SAPPER основной задачей являлось создать тиражируемое решение, которое будет легко разворачиваться на любой версии SAP и решать задачи клиента без программирования - на уровне настроек. Для достижения этой цели почти весь функционал SAPPER сделан настраиваемым. Настройки SAPPER хранятся в таблице /SBIS/SETTINGS.<br />
<br />
Сами настройки можно представить как иерархическую структуру параметров типа ключ значение.<br />
<br />
Редактирование настроек можно осуществить двумя способами:<br />
# с помощью транзакции /n/SBIS/SETTINGS (ветка SPRO -> Integration with other SAP Components -> SBIS Sapper -> Settings).<br />
# с помощью JSON файлов в последующем конвертирующихся и импортирующихся в /SBIS/SETTINGS. Данный способ на текущий момент является более удобным и наглядным. Далее в инструкции все примеры настроек показаны в виде JSON объектов.<br />
<br />
==Структура настроек /SBIS/SETTINGS==<br />
*SBIS - Общие настройки модуля, протокол обмена, справочники<br />
**ACCORDION - Настройки аккордеона<br />
*LO_* - Настройки для построения списков исходящих документов для отправки<br />
*DO_* - Настройки выгрузки исходящих документов, название класса и программ печати отвечающих за формирование<br />
**PRINT_PRINT - параметры программы печати необходимые для вывода на печать<br />
**PRINT_SEND - параметры программы печати необходимые для формирования XML<br />
**FILE - массив настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых электронных документов <br />
*UI_* - настройки загрузки электронных документов в SAP (создания SAP документов, сериализации XML файла в параметры BAPI)<br />
**FILE - массив настроек маппинга XML в параметры BAPI. Количество элементов FILE соответствует количеству документов SAP создаваемых из данного электронного документа.<br />
<br />
=Настройка отправки электронных документов=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие пакеты документов (их варианты) мы хотим отправлять и какие программы использует SAP для печати этих документов)<br />
# Настроить ACCORDION - перечислить все варианты отправляемых пакетов документов.<br />
# Для каждого варианта пакета документов настроить показ списка<br />
# Для каждого входящего в пакет документа SAP настроить параметры формирования из него электронных документов.<br />
<br />
==Настройка аккордеона==<br />
<br />
Детальный разбор с примером по ссылке [[SAPPER SETTINGS - Общие]].<br />
<br />
==Алгоритм отправки==<br />
# Показ списка записей для отправки<br />
## на настройках аккордеона смотрим имя настройки LO_<br />
## из таблицы настроек LO_ получаем имя класса отвечающего за показ списка<br />
## выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.<br />
## показываем список документов в виде alv_tree<br />
# Открыли окно предпросмотра<br />
## для каждого документа пакета читаем настройки DO_<br />
## вызываем класс формирования документа (далее описан сценарий по умолчанию)<br />
## вызываем программу печати.<br />
## в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга<br />
## получаем необходимые для формирования XML значения<br />
## при помощи XSLT формируем сначала шаблон XML с данными, потом при помощи другого XSLT приводим его к нужному формату<br />
## запрашиваем HTML для визуализации сформированного XML<br />
## показываем HTML<br />
# Нажали кнопку отправить<br />
## при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС<br />
<br />
==Настройка списков==<br />
<br />
Детальный разбор с примером по ссылке [[SAPPER SETTINGS - Настройки списков]].<br />
<br />
==Настройка выгрузки==<br />
<br />
Детальный разбор с примером по ссылке [[SAPPER SETTINGS - Настройки выгрузки]].<br />
<br />
=Настройка загрузки электронных документов (cоздание документа в SAP)=<br />
Упрощенно процедуру настройки можно свести к следующей последовательности действий:<br />
# Заполнить опросный лист (определиться какие документы SAP должны создаваться из каких электронных документов и какими методами (BAPI или BATCH INPUT))<br />
## На данный момент поддерживается создание документов в SAP из электронных документов: счет-фактура, накладная.<br />
# Для электронного документа настроить параметры создания из него документов SAP [[SAPPER SETTINGS - Настройки загрузки]].<br />
<br />
==Алгоритм загрузки==<br />
# Открыли окно предпросмотра<br />
## по идентификаторам XML вложений запрашиваем HTML визуалиазции<br />
## показываем HTML<br />
# Открыли окно загрузки<br />
## скачиваем XML<br />
## при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем с помощью другого XSLT в структуру SAP<br />
## показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)<br />
## предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)<br />
# Нажали кнопку загрузить<br />
## по данным таблицы настроек конвертируем структуру SAP в параметры BAPI<br />
## выполняем BAPI<br />
<br />
=Базовый комплект настроек=<br />
<br />
В базовый комплект настроек входит: <br />
<br />
=== Настройки аккордеона ===<br />
* Полученные<br />
* Отправленные<br />
* Ответы контрагентов<br />
* Продажа<br />
** Реализация товаров<br />
** Реализация услуг<br />
** Корректировочные счета-фактуры<br />
** Неотфактурованные<br />
** Акт-сверки дебиторов<br />
** Акт-сверки кредиторов<br />
<br />
=== Настройки реестров ===<br />
<br />
* Реализация товаров - список пакетов документов ( Накладная + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Накладная SD, Фактура SD. Исключены сторно документы.<br />
* Реализация услуг - список пакетов документов ( Акт + Фактура ). Данный пакет строится на основе цепочки документов SAP: Заказ SD, Фактура SD.<br />
* Корректировочные счета-фактуры - список пакетов документов ( Корректировочный счет-фактура ). Данный пакет строится на основе документов SAP: Корректировочный счет-фактура SD.<br />
* Неотфактурованные - список накладных по которым не сформированы фактуры.<br />
* Акт сверки дебиторов - список дебиторов от которых можно построить акт сверки<br />
* Акт сверки кредиторов - список кредиторов от которых можно построить акт сверки<br />
<br />
=== Настройки маппинга для программ печати ===<br />
<br />
'''J_3RV_DELIV_PDF''' программа печати накладной SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V2'<br />
nast-parvw = 'WE'<br />
nast-nacha = '8'<br />
nast-kschl = 'LD00'<br />
nast-objtype = 'LIKP'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_INV_A''' программа печати фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RD00'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_TORG12_BIL''' программа печати акта выполненных работ на основе данных счет-фактуры SD<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RDRU'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''J_3RV_CORRINV_A''' - программа печати корректировочных счетов-фактур<br />
<br />
Параметры запуска:<br />
<br />
<source lang="abap"><br />
print_form = 'ENTRY'<br />
nast-kappl = 'V3'<br />
nast-parvw = 'RE'<br />
nast-nacha = '8'<br />
nast-kschl = 'RUKF'<br />
nast-objtype = 'VBRK'<br />
nast-spras = 'R'<br />
</source><br />
<br />
'''/SBIS/AKT_SVERKI_D''' - копия программы формирования акта сверки дебиторов.<br />
<br />
'''/SBIS/AKT_SVERKI_K''' - копия программы формирования акта сверки кредиторов.<br />
<br />
=== Настройки загрузки ===<br />
Для загрузки документов в систему SAP из реестра "Полученные" созданы настройки загрузки.<br />
#ТОРГ-12 КНД 1175004 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
#Счет-фактура КНД 1115125 версия 5.01: <br />
##заказ на закупку (пакетный ввод, транзакция ME21N);<br />
##поступление материалов (пакетный ввод, транзакция MIGO);<br />
##счет-фактура (пакетный ввод, транзакция MIR7);<br />
##заказ на закупку (BAPI_PO_CREATE1);<br />
##поступление материалов (BAPI_GOODSMVT_CREATE);<br />
<br />
=== Настройки справочников ===<br />
В стандартные настройки включены справочники видов документов и кодов НДС.<br />
<br />
=Утилиты=<br />
===SAPPER TEST MODE===<br />
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X<br />
<br />
===Ручная загрузка настроек===<br />
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.<br />
<br />
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01. <br />
<br />
Просто указываем путь к файлу CSV и нажимаем Выполнить.<br />
<br />
В результате загрузки вы увидите таблицу загруженных настроек.<br />
<br />
Проблемы:<br />
* Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251<br />
<br />
===Обновление FM смартформы===<br />
В случае изменения смартформы и перегенерации ее функционального модуля, можно инициировать автоматическое обновление настроек в таблице с помощью программы /SBIS/UPDATE_SMARTFORM_FM.<br />
<br />
===Сброс номера, даты\времени последнего прочитанного события (только для пакета /SBIS/EJOURNAL)===<br />
С помощью программы /SBIS/RESET_U_SETTINGS или транзакции /n/SBIS/RESET_USET, можно сбросить последнее прочитанное событие и установить произвольные дату и время для текущего пользователя.<br />
<br />
=Пользовательский интерфейс и кастомизация=<br />
==Интерфейсы==<br />
===ГФ /SBIS/RFC – Набор RFC функций===<br />
====Общее назначение====<br />
<br />
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя.. <br />
====ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.====<br />
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения списка документов.<br />
}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=IS_FILTER || Описание=Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п.<br />
}}<br />
{{Шаблон:РазделТаблицыОписанияМетода<br />
| Название=TABLES}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода<br />
| Название=GET_LIST_PACKET || Описание=Список пакетов документов<br />
}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки====<br />
Функциональный модуль предназначен для получения XML вложения в пакет.<br />
<br />
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Код раздела настроек содержащих параметры необходимые для получения данных документа.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IS_DOC_KEY || Описание=Уникальный идентификатор документа}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=EXPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_PACKET || Описание=Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ES_XML_ATTACHEMENT || Описание=Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС.}}<br />
<br />
|}<br />
<br />
====ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона====<br />
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.<br />
<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Название группы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Название подгруппы параметров}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя параметра}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=ET_SETTINGS || Описание=Таблица со списком параметров}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона====<br />
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода|| Название=IMPORTING}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_INI_NAME || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARENT || Описание=Параметр для ограничения списка удаляемых параметров.}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IV_PARAM_NAME || Описание=Имя удаляемого параметра.}}<br />
|}<br />
<br />
====ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона====<br />
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек.<br />
В таблице ниже представлен локальный интерфейс модуля.<br />
<br />
{{Шаблон:ШапкаТаблицыОписанияМетода|}}<br />
{{Шаблон:РазделТаблицыОписанияМетода||Название=TABLE}}<br />
{{Шаблон:СтрокаТаблицыОписанияМетода|| Название=IT_SETTINGS || Описание=Список настроек которые надо добавить/обновить.}}<br />
|}<br />
<br />
<br />
===Класс /SBIS/CL_SAP_DATA - получение данных SAP===<br />
<br />
====Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###INN - ИНН<br />
###KPP - КПП<br />
###OKPO - ОКПО<br />
###OKDP - ОКДП<br />
###NAME - наименование<br />
###FULL_NAME - полное наименование<br />
###POST_CODE - почтовый индекс<br />
###REGION_CODE - код региона<br />
###CITY - город<br />
###DISTRICT - район<br />
###VILLAGE - нас. пункт<br />
###STREET - улица<br />
###HOUSE - дом<br />
###OFFICE - офис, квартира<br />
###COUNTRY_CODE - код страны<br />
###PHONE - телефон<br />
###FAX - факс<br />
###EMAIL - адрес эл. почты<br />
<br />
====Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
====Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)====<br />
#Входные параметры<br />
##IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.<br />
##IR_CLASS - тип OBJECT, необязательный параметр.<br />
##IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
#Выходные параметры<br />
##CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:<br />
###ID - код организации<br />
###BANK_NAME - наим. банка<br />
###BANK_BIK - БИК<br />
###BANK_ACC - расч. счет<br />
###BANK_CORACC - корр. счет<br />
###BANK_CITY - город банка<br />
<br />
==Доработка программы печати==<br />
<br />
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.<br />
<br />
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.<br />
<br />
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.<br />
<br />
<source lang=ABAP><br />
<br />
**************************************************************<br />
* TENSOR SBIS EDO *<br />
**************************************************************<br />
try.<br />
data cx_root type ref to cx_root.<br />
data lv_not_print type c value ''.<br />
data cl_mapping type ref to /sbis/cl_mapping.<br />
create object cl_mapping.<br />
call method cl_mapping->calc_doc<br />
exporting<br />
is_nast = nast<br />
importing<br />
ev_not_print = lv_not_print.<br />
if lv_not_print = 'X'.<br />
exit.<br />
endif.<br />
catch cx_root into cx_root.<br />
endtry.<br />
</source><br />
<br />
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.<br />
<br />
В ряде случаев этого может быть не достаточно. <br />
<br />
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.<br />
<br />
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться [[Вызов SBIS SAPPER из программ печати|здесь]].<br />
<br />
=Алгоритм выгрузки документов из SAP в СБИС для последующей отправки=<br />
[[Файл:AddonSbisForSAPout_cheme1.png|200px|thumb|right|Алгоритм выгрузки в СБИС документов SAP из интерфейса СБИС]]<br />
<br />
=Алгоритм загрузки документов в SAP из СБИС=<br />
[[Файл:AddonSbisForSAPupload_cheme1.png|200px|thumb|right|Алгоритм загрузки документов в SAP из интерфейса СБИС]]<br />
<br />
==Назначение документа==<br />
<br />
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP. <br />
<br />
==Область применения документа==<br />
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.<br />
<br />
==Общее назначение системы==<br />
<br />
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.<br />
<br />
==Глоссарий==<br />
<br />
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.<br />
<br />
*'''Служебные документы''' -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.<br />
*'''Формализованный документ''' - Структурированный документ (XML-формат)<br />
*'''Неформализованный документ''' - Неструктурированный документ (произвольный файл, например, в формате PDF)<br />
*'''ЭДО''' - Электронный документооборот<br />
*'''Документ / Вложение''' - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)<br />
*'''Пакет документов''' - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.<br />
<br />
*'''ЭП Электронная подпись''' - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе<br />
*'''Техническая ЭП''' - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.<br />
* ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД <br />
*'''БЕ''' - Код балансовой единицы в системе SAP<br />
*'''ГФ''' - Группа функций, объект системы SAP<br />
*'''ФМ''' - Функциональный модуль, объект системы SAP<br />
*'''БО''' - Бизнес-объект SAP<br />
*'''СЭ''' - Селекционный экран, экран выбора данных<br />
<br />
<br />
= Настройка автоматического обновления статусов и отправки документов =<br />
== Автоматическое обновление статусов ==<br />
Помимо возможности обновления статусов документов через кнопку Сапера 'Обновить статусы', существует возможность автоматического периодического обновления статусов. Для этого существует транзакция /SBIS/UPDATE_STATUS, которую можно запускать через windows-планировщик.<br />
<br />
Настройка:<br />
#На компьютере должны быть установлены Windows, SBIS SDK, SAP GUI.<br />
#Создайте отдельного SAP-пользователя с правами только на запуск транзакции /SBIS/UPDATE_STATUS, т.к. пароль этого пользователя будет храниться в открытом виде в bat-файле.<br />
#Создайте bat файл, например C:\sbis_update_status.bat<br />
##В файле укажите путь к файлу sapshcut.exe и параметры его запуска (SID системы sap, мандант, имя пользователя, пароль и код транзакции).<br />
##Пример кода bat файла:<source lang=BAT><br />
"C:\Program Files (x86)\SAP\FrontEnd\SAPgui\sapshcut.exe" /system=SID /client=001 /user=SAP* /pw=06071992 /command=/sbis/update_status<br />
</source><br />
#Зайдите в SAP под учетной записью только что созданного пользователя (пп.2). Запустите СБИС Сапер. Авторизуйтесь. Сохраните пароль СБИС-кабинета. Под этим логином и паролем СБИС-кабинета будет происходить обновление статусов.<br />
#Создайте задачу для Планировщика заданий Windows.<br />
##Меню: Пуск - Стандартные - Служебные - Планировщик заданий.<br />
##Выберите пункт меню Создать задачу.<br />
##Задайте имя, описание, например, sbis_update_status.<br />
##Задайте триггер, например Ежедневно, в 06-00.<br />
##Задайте действие, например Запуск программы, и укажите путь к bat-файлу, например C:\sbis_update_status.bat.<br />
##Сохраните задание по кнопке ОК.<br />
##Протестируйте, нажав Выполнить.<br />
<br />
== СБИС робот, автоматизация отправки документов и обновления статусов ==<br />
Для более гибкой организации автоматической обработки статусов, отправки документов, можно использовать функционал SBIS ROBOT.<br />
Для настройки следует добавить в настроечный раздел SBIS следующие параметры:<br />
<source lang=JSON> <br />
"SBIS_ROBOT": {<br />
"Значение": [<br />
{<br />
"Имя": "/SBIS/PR_UPDATE_DOC_STATUS",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "/SBIS/PR_SEND_ALL_SDK",<br />
"Значение": "SALES"<br />
}<br />
]<br />
}<br />
</source><br />
Параметр SBIS_ROBOT содержит имя программы, которая будет запускаться и вариант в поле значение, с которым программа будет исполняться. <br />
В поле значение можно указать:<br />
#единственный вариант, к примеру, "SALES", <br />
#множество вариантов разделенные запятой, "SALES, SALES1, SALES2",<br />
#"*" - все доступные варианты программы. <br />
Обратите внимание, что имя варианта в SAP не должно содержать пробелов, в противном случае вариант будет проигнорирован.<br />
<br />
Возможные стандартные программы:<br />
#/SBIS/PR_UPDATE_DOC_STATUS служит для автоматической обработки статусов, наличие вариантов не подразумевается. Для данной программы есть отдельная обертка рассмотренная выше.<br />
#/SBIS/PR_SEND_ALL_SDK используется для автоматической отправки реестров документов, подразумевает гибкую настройку варианта отправки. <br />
##Обязательно следует указать реестр отправляемых документов, даты и исключить статус “Отправлен”, чтобы не переотправлять уже отправленные документы, если такие попадут в выборку или же, наоборот, ограничить только по статусу "Не отправлен", а также организационные единицы. <br />
[[Файл:Скриншот_12.03.2018_08-42-39-259.png]]<br />
<br />
Запуск транзакции /SBIS/ROBOT осуществляется с помощью *.bat файла. По настройке *.bat файла смотрите пункт обновление статусов.<br />
Журналирование осуществляется с помощью стандартного функционала логирования приложений (SLG1) объект /SBIS/ подобъект ROBOT.<br />
<br />
=Правила ведения разработки на проекте=<br />
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.<br />
==Именование объектов словаря==<br />
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы. <br />
<br />
Таблица 3 Именование объектов словаря<br />
{|class="wikitable"<br />
!Объект репозитория<br />
!Длина имени<br />
!Маска<br />
|-<br />
|Домены||30||/SBIS/DM_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Элементы данных||30||/SBIS/ED_[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Структуры||30||/SBIS/S_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Типы таблиц||30||/SBIS/T_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Таблицы БД||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
<br />
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц <br />
|-<br />
|Ракурсы||16||/SBIS/V_[<ff>][<XXXXXXXX>] <br />
|-<br />
|Search-Help||30||/SBIS/SH_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект блокировок||16||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Группа функций||26||/SBIS/GF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Функциональные Модули||30||/SBIS/FM_ [<ff>]_[<XXXXXXXX>] <br />
<br />
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Программы, include||40||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Пулы модулей||40||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы||30||/SBIS/CL_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Интерфейсы||30||/SBIS/IF_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Транзакции||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Smartforms/SAPScript||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Классы сообщений||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Классы разработок||30||/SBIS/[<ff>]_[<XXXXXXXX>]<br />
|-<br />
|Реализация BAdi (новый/старый)||30/20||/SBIS/[<имя определения BAdi>]<br />
|-<br />
|Проекты SAP-расширений||8||/SBIS/[<XXXXXXXX>] <br />
|-<br />
|SET/GET-параметры||20||/SBIS/[<ff>][<XXXXXXXX>] <br />
|-<br />
|Append – структуры в стандартных таблицах||30||/SBIS/A_[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Поля в append-структурах стандартных таблиц||15||Z[<XXXXXXXX>] <br />
|-<br />
|Меню областей||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|Объект полномочий||30||/SBIS/[<ff>]_[<XXXXXXXX>] <br />
|-<br />
|}<br />
<br />
Для именования остальных объектов репозитария используется маска формирования имени:<br />
<br />
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:<br />
<br />
*<ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;<br />
*<ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;<br />
*<XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;<br />
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.<br />
<br />
==Именование переменных кода==<br />
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP.<br />
Таблица 4 Именование объектов и переменных программ<br />
{| class="wikitable"<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
!<br />
!Объект<br />
!Префикс<br />
|-<br />
|Class<br />
|cl_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Parameter<br />
|p_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Push Button<br />
|pb_<br />
|<br />
|Radio Button <br />
|rb_<br />
|<br />
|Select Option<br />
|so_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Table type<br />
|tt_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Type<br />
|ty_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Constant<br />
|gc_<br />
|<br />
|Local Constant<br />
|lc_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Field Symbol<br />
|gfs_<br />
|<br />
|Local Field Symbol<br />
|lfs_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Structure<br />
|gs_<br />
|<br />
|Local Structure<br />
|ls_<br />
|<br />
|Importing Structure<br />
|is_<br />
|<br />
|Changing Structure <br />
|cs_<br />
|<br />
|Exporting Structure<br />
|es_<br />
|-<br />
|Global Variable<br />
|gv_<br />
|<br />
|Local Variable<br />
|lv_<br />
|<br />
|Importing Variable<br />
|iv_<br />
|<br />
|Changing Variable<br />
|cv_<br />
|<br />
|Exporting Variable<br />
|ev_<br />
|-<br />
|Global Internal Table<br />
|gt_<br />
|<br />
|Local Internal Table<br />
|lt_<br />
|<br />
|Importing Internal Table<br />
|it_<br />
|<br />
|Changing Internal Table<br />
|ct_<br />
|<br />
|Exporting Internal Table<br />
|et_<br />
|-<br />
|Global Range<br />
|gt_rng_<br />
|<br />
|Local Range<br />
|lt_rng_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|-<br />
|Global Reference<br />
|gr_<br />
|<br />
|Local Reference<br />
|lr_<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|<br />
|}<br />
<br />
<br />
=Языковая поддержка=<br />
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:<br />
* Английский<br />
* Русский<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3367
SAPPER SETTINGS - Настройки загрузки
2018-03-16T10:42:49Z
<p>Чижов Виталий: /* FILE */</p>
<hr />
<div>=Настройка загрузки=<br />
На основании входящего электронного документа в SAP можно создать документ, используя:<br />
* метод создания с помощью пакетного ввода (BATCH IPNUT)<br />
* BAPI<br />
<br />
Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.<br />
<br />
На данный момент поддерживается создание документов из электронных документов:<br />
* счет-фактура<br />
* накладная<br />
<br />
Верхний уровень настройки имеет следующее представление:<br />
#UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"<br />
#FILE – массив, содержащий перечень создаваемых документов<br />
<br />
Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню. <br />
<br />
[[Файл:Контекстное_меню_загрузки.png|контекстное меню загрузки в SAP]]<br />
<br />
<div style="border: 1px dashed;"><br />
пример файла загрузки с массивом FILE со списком создаваемых документов<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"UPLOAD_DATA_XSLT": {<br />
"Значение": "/SBIS/DOC301_XML_TO_ABAP"<br />
},<br />
"FILE": {<br />
"Значение": [<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BAPI",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==FILE==<br />
<br />
Массив FILE содержит список создаваемых документов и имеет структуру:<br />
* [имя] - идентификатор пункта меню загрузки<br />
* [значение] - набор настроек для загрузки<br />
** DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов<br />
** MENU_TEXT - отображаемое имя в списке контекстного меню<br />
** DOC_TYPE - тип документа из справочника типов документов DOC_TYPE<br />
** UPLOAD_DATA_CLASS_NAME - наименование класса создания документов<br />
** UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:<br />
*** CREATE_BAPI_DOC - создание документа используя BAPI<br />
*** CREATE_BATCH_DOC - создание документа используя пакетный ввод<br />
** MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры<br />
** FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ<br />
** FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика<br />
** TRANSACTION_NAME - наименование транзакции или BAPI<br />
** POSITION_NUMBER_INCREASE - инкремент позиции<br />
** RESULT - поле получения результата выполнения (номера документа)<br />
*** [имя] - переменная или указание на сообщение:<br />
**** переменная API2_PACKET, в которую кладется результат - для BAPI<br />
**** MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):<br />
***** PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln<br />
***** PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln<br />
***** GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr<br />
*** [тип] - тип переменной значения результата<br />
*** [значение] - переменная с результатом<br />
** [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода<br />
*** CTU_PARAMS_DISMODE - режим запуска<br />
*** CTU_PARAMS_UPDMODE - режим обновления<br />
*** CTU_PARAMS_CATTMODE - режим CATT<br />
*** CTU_PARAMS_DEFSIZE - стандартный размер экрана или размер текущего экрана<br />
*** CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы<br />
*** CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)<br />
*** CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)<br />
** [массив заполнения входных данных]<br />
*** BAPI <br />
*** BATCH<br />
<br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": "X"<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (BAPI)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BAPI_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BAPI_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "BAPI_PO_CREATE1"<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10"<br />
},<br />
{<br />
"Имя": "RESULT",<br />
"Значение": [<br />
{<br />
"Имя": "BELNR",<br />
"Тип": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": "EXPPURCHASEORDER"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BAPI",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br><br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (ПакВвод)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BATCH_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BATCH_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DISMODE",<br />
"Значение": "E" //остановить создание, если есть ошибка и показать экран<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_UPDMODE",<br />
"Значение": "S" //синхронное выполнение (COMMIT AND WAIT)<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_CATTMODE",<br />
"Значение": " " //не используя CATT<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DEFSIZE",<br />
"Значение": "" //текущий размер экрана<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_RACOMMIT",<br />
"Значение": "X" //COMMIT WORK не останавливает обработки<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBINPT",<br />
"Значение": " " //системное поле sy-binpt не заполнено<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBIEND",<br />
"Значение": " " //системное поле sy-binpt не заполняется после конца обработки<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "ME21N" //транзакция<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10" //инкремент позиции<br />
},<br />
{<br />
"Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение<br />
"Значение": [<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|06|017|MSGV2"<br />
},<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|MEPO|013|MSGV2"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BATCH",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BAPI===<br />
<br />
Структура массива значений BAPI:<br />
* [имя] - имя параметра<br />
* [тип] - тип параметра<br />
** Fmstructure - структура<br />
** Fmfield - поле<br />
** Fmtable - таблица<br />
** Field - поле<br />
** String - строка<br />
* [подтип] - подтип параметра<br />
** Export - входная структура для BAPI<br />
** Import - выходная структура для BAPI<br />
** Table - таблица BAPI<br />
* [формат] - указание на ABAP тип<br />
* [массив значений] <br />
** [имя] - имя поля структуры<br />
** [значение] - значение<br />
** [тип] - тип значения<br />
*** Field - поле<br />
*** String - строка<br />
*** Classfield - поле класса<br />
** [подтип]<br />
*** Export<br />
*** Import<br />
** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)<br />
<br />
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.<br />
<br />
[[Файл:BAPI_PO_CREATE1_0.png]]<br />
[[Файл:BAPI_PO_CREATE1_1.png]]<br />
[[Файл:BAPI_PO_CREATE1_2.png]]<br />
<br />
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "POHEADER",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADER",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "IR_INPUT_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "NB",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "IR_INPUT_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "IR_INPUT_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": "DATE"<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "IR_INPUT_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "IR_INPUT_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POHEADERX",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADERX",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "NO_PRICE_FROM_PO",<br />
"Тип": "Fmfield",<br />
"Подтип": "Export",<br />
"Формат": "CHAR01",<br />
"Значение": [<br />
{<br />
"Имя": "*",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "ID",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "WERKS",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "LGORT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "D",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "DATE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "EXPPURCHASEORDER",<br />
"Тип": "Fmfield",<br />
"Подтип": "Import",<br />
"Формат": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "RETURN",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIRET2",<br />
"Значение": ""<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BATCH===<br />
<br />
Структура пакетного ввода состоит из набора массивов последовательно заполняемых экранов транзакции:<br />
* [массив значений] - набор структур экранов<br />
** [имя] - название блока<br />
** [тип] - тип обработки блока:<br />
*** Header - /SBIS/CL_MAPPING->PARSE_BATCH_HEADER<br />
*** Items - /SBIS/CL_MAPPING->PARSE_BATCH_ITEMS<br />
** [массив значение блока] - маппинг структуры экрана<br />
*** [имя] - имя поля<br />
*** [значение] - значение поля<br />
*** [тип] - тип поля:<br />
**** String - фиксированная строка<br />
**** Field - поле<br />
**** ClassField - поле класса<br />
*** [подтип] - подтип:<br />
**** Bdcdynpro<br />
**** Bdcfield<br />
*** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE) или использовать логические переходы между блоками:<br />
**** IF<br />
**** ENDIF<br />
**** IFNOT<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения вызова транзакции ME21N для создания заказа на закупку с помощью пакетного ввода<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "HEADER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BSART",<br />
"Значение": "IR_DATA->BSART",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-SUPERFIELD",<br />
"Значение": "IR_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BEDAT",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABHDT9",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKORG",<br />
"Значение": "IR_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKGRP",<br />
"Значение": "IR_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-BUKRS",<br />
"Значение": "IR_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4001BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-NAME1(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EBELP(01)",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EMATN(01)",<br />
"Значение": "IR_DATA->ID",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-MENGE(01)",<br />
"Значение": "IR_DATA->AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-EEIND(01)",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-NETPR(01)",<br />
"Значение": "IR_DATA->PRICE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-NAME1(01)",<br />
"Значение": "IR_DATA->WERKS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-LGOBE(01)",<br />
"Значение": "IR_DATA->LGORT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT5",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT7",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-REPOS",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-MWSKZ",<br />
"Значение": "IR_DATA->MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT6",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1313-UEBTO",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-BWTAR",<br />
"Значение": "IR_DATA->BWTAR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-UEBTK",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IF"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=DTC_WLSE",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OPTI",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=PICK",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/04",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OKAY",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/09",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IFNOT"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%#AUTOTEXT001",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
}<br />
]<br />
}<br />
},<br />
{<br />
"Имя": "UNDO_FILTER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211UNDOFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4002BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3366
SAPPER SETTINGS - Настройки загрузки
2018-03-16T10:25:03Z
<p>Чижов Виталий: /* Настройка загрузки */</p>
<hr />
<div>=Настройка загрузки=<br />
На основании входящего электронного документа в SAP можно создать документ, используя:<br />
* метод создания с помощью пакетного ввода (BATCH IPNUT)<br />
* BAPI<br />
<br />
Настройки загрузки сгруппированы в файлы, которые начинаются с префикса UI_, после префикса следует идентификатор документа, к примеру, ЭДОНакл_1175010_5_01.<br />
<br />
На данный момент поддерживается создание документов из электронных документов:<br />
* счет-фактура<br />
* накладная<br />
<br />
Верхний уровень настройки имеет следующее представление:<br />
#UPLOAD_DATA_XSLT – указание XSLT преобразования входящего XML в ABAP структуру, чаще всего используется "/SBIS/DOC301_XML_TO_ABAP"<br />
#FILE – массив, содержащий перечень создаваемых документов<br />
<br />
Внутри массива FILE может быть перечислено несколько создаваемых документов, которые будут отображаться в всплывающем меню. <br />
<br />
[[Файл:Контекстное_меню_загрузки.png|контекстное меню загрузки в SAP]]<br />
<br />
<div style="border: 1px dashed;"><br />
пример файла загрузки с массивом FILE со списком создаваемых документов<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"UPLOAD_DATA_XSLT": {<br />
"Значение": "/SBIS/DOC301_XML_TO_ABAP"<br />
},<br />
"FILE": {<br />
"Значение": [<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_INCOMING_INVOICE_BATCH",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "MENU_CREATE_GOODS_RECEIPT_BAPI",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==FILE==<br />
<br />
Массив FILE содержит список создаваемых документов и имеет структуру:<br />
* [имя] - идентификатор пункта меню загрузки<br />
* [значение] - набор настроек для загрузки<br />
** DEFAULT - значение по умолчанию для создания документа по кнопке Загрузить в SAP на экране отображения пакетов документов<br />
** MENU_TEXT - отображаемое имя в списке контекстного меню<br />
** DOC_TYPE - тип документа из справочника типов документов DOC_TYPE<br />
** UPLOAD_DATA_CLASS_NAME - наименование класса создания документов<br />
** UPLOAD_DATA_METHOD_NAME - указание метода класса создания документов:<br />
*** CREATE_BAPI_DOC - создание документа используя BAPI<br />
*** CREATE_BATCH_DOC - создание документа используя пакетный ввод<br />
** MISSED_FIELDS_FUNCTION_NAME - указание ФМ для вызова экрана заполнения дополнительных полей, например, экран сопоставления номенклатуры<br />
** FACE_ROLE_TO_GET_BUKRS - сторона обмена содержащая данные для БЕ<br />
** FACE_ROLE_TO_GET_LIFNR - сторона обмена содержащая данные для поставщика<br />
** TRANSACTION_NAME - наименование транзакции или BAPI<br />
** POSITION_NUMBER_INCREASE - инкремент позиции<br />
** RESULT - поле получения результата выполнения (номера документа)<br />
*** [имя] - переменная или указание на сообщение:<br />
**** переменная API2_PACKET, в которую кладется результат - для BAPI<br />
**** MSGTYP_MSGID_MSGNR - для BATCH. Требуется указать сообщение в [значении], в котором вернется результат (может быть несколько вариантов):<br />
***** PURCHASE ORDER msgtyp='S' msgid='06' msgnr='017' msgv2=ebeln<br />
***** PURCHASE ORDER msgtyp='S' msgid='MEPO' msgnr='013' msgv2=ebeln<br />
***** GOODS RECEIPT msgtyp='S' msgid='MIGO' msgnr='012' msgv1=mblnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='388' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='391' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='399' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='437' msgv1=belnr<br />
***** INVOICE msgtyp='S' msgid='M8' msgnr='438' msgv1=belnr<br />
*** [тип] - тип переменной значения результата<br />
*** [значение] - переменная с результатом<br />
** [набор параметров для запуска транзакции] - набор параметров структуры CTU_PARAMS для запуска транзакции при использовании пакетного ввода<br />
*** CTU_PARAMS_DISMODE - режим запуска<br />
*** CTU_PARAMS_UPDMODE - режим обновления<br />
*** CTU_PARAMS_CATTMODE - режим CATT<br />
*** CTU_PARAMS_DEFSIZE - стандартный размер экрана <br />
*** CTU_PARAMS_RACOMMIT - COMMIT WORK останавливает или не останавливает работы<br />
*** CTU_PARAMS_NOBINPT - управление переменной пакетного ввода (заполнять по умолчанию)<br />
*** CTU_PARAMS_NOBIEND - управление переменной пакетного ввода (заполнять после обработки)<br />
** [массив заполнения входных данных]<br />
*** BAPI <br />
*** BATCH<br />
<br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BAPI результат возвращается в BELNR из переменной EXPPURCHASEORDER с типом BAPIMEPOHEADER-PO_NUMBER<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BAPI",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": "X"<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (BAPI)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BAPI_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BAPI_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "BAPI_PO_CREATE1"<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10"<br />
},<br />
{<br />
"Имя": "RESULT",<br />
"Значение": [<br />
{<br />
"Имя": "BELNR",<br />
"Тип": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": "EXPPURCHASEORDER"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BAPI",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br><br />
<div style="border: 1px dashed;"><br />
пример FILE для создания заказа на закупку через BATCH, вызывается транзакция ME21N с опциями запуска, результат возвращается в сообщении с описанным типом<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "MENU_CREATE_PURCHASE_ORDER_BATCH",<br />
"Значение": [<br />
{<br />
"Имя": "DEFAULT",<br />
"Значение": ""<br />
},<br />
{<br />
"Имя": "MENU_TEXT",<br />
"Значение": "Создать Заказ (ПакВвод)"<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "IC"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_CLASS_NAME",<br />
"Значение": "/SBIS/CL_CREATE_SAP_DOCUMENTS"<br />
},<br />
{<br />
"Имя": "UPLOAD_DATA_METHOD_NAME",<br />
"Значение": "CREATE_BATCH_DOC"<br />
},<br />
{<br />
"Имя": "MISSED_FIELDS_FUNCTION_NAME",<br />
"Значение": "/SBIS/FM_CREATE_BATCH_PORDER",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_BUKRS",<br />
"Значение": "Получатель"<br />
},<br />
{<br />
"Имя": "FACE_ROLE_TO_GET_LIFNR",<br />
"Значение": "Отправитель"<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DISMODE",<br />
"Значение": "E" //остановить создание, если есть ошибка и показать экран<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_UPDMODE",<br />
"Значение": "S" //синхронное выполнение (COMMIT AND WAIT)<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_CATTMODE",<br />
"Значение": " " //не используя CATT<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_DEFSIZE",<br />
"Значение": "" //текущий размер экрана<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_RACOMMIT",<br />
"Значение": "X" //COMMIT WORK не останавливает обработки<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBINPT",<br />
"Значение": " " //системное поле sy-binpt не заполнено<br />
},<br />
{<br />
"Имя": "CTU_PARAMS_NOBIEND",<br />
"Значение": " " //системное поле sy-binpt не заполняется после конца обработки<br />
},<br />
{<br />
"Имя": "TRANSACTION_NAME",<br />
"Значение": "ME21N" //транзакция<br />
},<br />
{<br />
"Имя": "POSITION_NUMBER_INCREASE",<br />
"Значение": "10" //инкремент позиции<br />
},<br />
{<br />
"Имя": "RESULT", //для пакетного ввода результат лежит в разных системных сообщениях, здесь мы указываем тип, ид, номер и сообщение<br />
"Значение": [<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|06|017|MSGV2"<br />
},<br />
{<br />
"Имя": "MSGTYP_MSGID_MSGNR",<br />
"Значение": "S|MEPO|013|MSGV2"<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "BATCH",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Значение": []<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BAPI===<br />
<br />
Структура массива значений BAPI:<br />
* [имя] - имя параметра<br />
* [тип] - тип параметра<br />
** Fmstructure - структура<br />
** Fmfield - поле<br />
** Fmtable - таблица<br />
** Field - поле<br />
** String - строка<br />
* [подтип] - подтип параметра<br />
** Export - входная структура для BAPI<br />
** Import - выходная структура для BAPI<br />
** Table - таблица BAPI<br />
* [формат] - указание на ABAP тип<br />
* [массив значений] <br />
** [имя] - имя поля структуры<br />
** [значение] - значение<br />
** [тип] - тип значения<br />
*** Field - поле<br />
*** String - строка<br />
*** Classfield - поле класса<br />
** [подтип]<br />
*** Export<br />
*** Import<br />
** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE)<br />
<br />
Для каждого BAPI требуется описать маппинг всех необходимых входных и выходных структур в массиве BAPI. Рассмотрим на примере BAPI_PO_CREATE1.<br />
<br />
[[Файл:BAPI_PO_CREATE1_0.png]]<br />
[[Файл:BAPI_PO_CREATE1_1.png]]<br />
[[Файл:BAPI_PO_CREATE1_2.png]]<br />
<br />
В нашем примере требуется описать маппинг для входных структуры POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX и выходных EXPPURCHASEORDER, RETURN.<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения POHEADER, POHEADERX, NO_PRICE_FROM_PO, POITEM, POITEMX, POSCHEDULE, POSCHEDULEX, EXPPURCHASEORDER, RETURN для BAPI BAPI_PO_CREATE1 создание заказа на закупку<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "POHEADER",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADER",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "IR_INPUT_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "NB",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "IR_INPUT_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "IR_INPUT_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": "DATE"<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "IR_INPUT_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "IR_INPUT_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POHEADERX",<br />
"Тип": "Fmstructure",<br />
"Подтип": "Export",<br />
"Формат": "BAPIMEPOHEADERX",<br />
"Значение": [<br />
{<br />
"Имя": "COMP_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VENDOR",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DOC_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PURCH_ORG",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PUR_GROUP",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "NO_PRICE_FROM_PO",<br />
"Тип": "Fmfield",<br />
"Подтип": "Export",<br />
"Формат": "CHAR01",<br />
"Значение": [<br />
{<br />
"Имя": "*",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Export",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "POITEM",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEM",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "ID",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "WERKS",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "LGORT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "POITEMX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "",<br />
"Формат": "BAPIMEPOITEMX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MATERIAL",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "PLANT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "STGE_LOC",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "QUANTITY",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NET_PRICE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "NO_ROUNDING",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "TAX_CODE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "VAL_TYPE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "UNLIMITED_DLV",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "IR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GR_IND",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULE",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULE",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "D",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "DATE",<br />
"Тип": "Field",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "POSCHEDULEX",<br />
"Тип": "IR_INPUT_DATA->ITEMS",<br />
"Подтип": "Table",<br />
"Формат": "BAPIMEPOSCHEDULX",<br />
"Значение": [<br />
{<br />
"Имя": "PO_ITEM",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "Classfield",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SCHED_LINE",<br />
"Значение": "1",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DEL_DATCAT_EXT",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DELIVERY_DATE",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "EXPPURCHASEORDER",<br />
"Тип": "Fmfield",<br />
"Подтип": "Import",<br />
"Формат": "BAPIMEPOHEADER-PO_NUMBER",<br />
"Значение": []<br />
},<br />
{<br />
"Имя": "RETURN",<br />
"Тип": "Fmtable",<br />
"Подтип": "Table",<br />
"Формат": "BAPIRET2",<br />
"Значение": ""<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===BATCH===<br />
<br />
Структура пакетного ввода состоит из набора массивов последовательно заполняемых экранов транзакции:<br />
* [массив значений] - набор структур экранов<br />
** [имя] - название блока<br />
** [тип] - тип обработки блока:<br />
*** Header - /SBIS/CL_MAPPING->PARSE_BATCH_HEADER<br />
*** Items - /SBIS/CL_MAPPING->PARSE_BATCH_ITEMS<br />
** [массив значение блока] - маппинг структуры экрана<br />
*** [имя] - имя поля<br />
*** [значение] - значение поля<br />
*** [тип] - тип поля:<br />
**** String - фиксированная строка<br />
**** Field - поле<br />
**** ClassField - поле класса<br />
*** [подтип] - подтип:<br />
**** Bdcdynpro<br />
**** Bdcfield<br />
*** [формат] - использовать форматирование (/SBIS/CL_MAPPING->CONVERT_FIELD_TYPE) или использовать логические переходы между блоками:<br />
**** IF<br />
**** ENDIF<br />
**** IFNOT<br />
<br />
<div style="border: 1px dashed;"><br />
пример заполнения вызова транзакции ME21N для создания заказа на закупку с помощью пакетного ввода<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
{<br />
"Имя": "HEADER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BSART",<br />
"Значение": "IR_DATA->BSART",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-SUPERFIELD",<br />
"Значение": "IR_DATA->LIFNR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO_TOPLINE-BEDAT",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABHDT9",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKORG",<br />
"Значение": "IR_DATA->EKORG",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-EKGRP",<br />
"Значение": "IR_DATA->EKGRP",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1222-BUKRS",<br />
"Значение": "IR_DATA->BUKRS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": " 1",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4001BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1222-EKGRP",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
},<br />
{<br />
"Имя": "ITEMS",<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-NAME1(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EBELP(01)",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-EMATN(01)",<br />
"Значение": "IR_DATA->ID",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-MENGE(01)",<br />
"Значение": "IR_DATA->AMOUNT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-EEIND(01)",<br />
"Значение": "IR_DATA->DATE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-NETPR(01)",<br />
"Значение": "IR_DATA->PRICE",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": "POINTTOCOMMA"<br />
},<br />
{<br />
"Имя": "MEPO1211-NAME1(01)",<br />
"Значение": "IR_DATA->WERKS",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1211-LGOBE(01)",<br />
"Значение": "IR_DATA->LGORT",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT5",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT7",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-REPOS",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1317-MWSKZ",<br />
"Значение": "IR_DATA->MWSKZ",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=TABIDT6",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BSART",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "/00",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1313-UEBTO",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-BWTAR",<br />
"Значение": "IR_DATA->BWTAR",<br />
"Тип": "Field",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "MEPO1313-UEBTK",<br />
"Значение": "X",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IF"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=DTC_WLSE",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OPTI",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=PICK",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/04",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPMSSY0",<br />
"Значение": "0120",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=OKAY",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "09/09",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
},<br />
{<br />
"Имя": "GV_ITEMS_TABIX",<br />
"Значение": "1",<br />
"Тип": "ClassField",<br />
"Подтип": "String",<br />
"Формат": "IFNOT"<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211EDITFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO1211-EMATN(01)",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "DYN_6000-LIST",<br />
"Значение": "GV_ITEMS_TABIX",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSKBH",<br />
"Значение": "1500",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=ALV_B_FILT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%#AUTOTEXT001",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLSSEL",<br />
"Значение": "1104",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=CRET",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "%%DYN001-LOW",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "%%DYN001-LOW",<br />
"Значение": "GV_ITEMS_POS",<br />
"Тип": "ClassField",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "",<br />
"Значение": "",<br />
"Тип": "",<br />
"Подтип": "",<br />
"Формат": "ENDIF"<br />
}<br />
]<br />
}<br />
},<br />
{<br />
"Имя": "UNDO_FILTER",<br />
"Тип": "Header",<br />
"Значение": [<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEPO1211UNDOFILTER",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "SAPLMEGUI",<br />
"Значение": "0014",<br />
"Тип": "String",<br />
"Подтип": "Bdcdynpro",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_OKCODE",<br />
"Значение": "=MEV4002BUTTON",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
},<br />
{<br />
"Имя": "BDC_CURSOR",<br />
"Значение": "MEPO_TOPLINE-BEDAT",<br />
"Тип": "String",<br />
"Подтип": "Bdcfield",<br />
"Формат": ""<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8&diff=3365
SAPPER SETTINGS - Настройки выгрузки
2018-03-16T10:20:37Z
<p>Чижов Виталий: /* PARAM (ИнфПолФХЖ1) */</p>
<hr />
<div>=Настройки выгрузки=<br />
<br />
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME структуры S_API2_PACKET. <br />
Настройки выгрузки сгруппированы в файлы DO_*, которые содержат указание программы печати, класс получения данных, XSLT преобразование, данные отправителя и получателя, маппинг данных SAP во внутренние структуры SAPPER, на основании которых формируются XML документы.<br />
<br />
Структура настроек выгрузки:<br />
*ПолучениеДанных_Класс – класс получения данных документа (/SBIS/CL_SAP_DATA)<br />
*ПолучениеДанных_Метод – метод класса получения данных. Доступные варианты:<br />
** PRINT_NAST - через программу печати основанную на структуре NAST<br />
** EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT<br />
** PRINT_PROG - через любые ABAP программы<br />
*ПолучениеДанных_XSLT – XSLT преобразование для получения XML документа во внутреннем формате (/SBIS/DOC301)<br />
*assign_program – программа печати, J_3RV_DELIV_PDF<br />
*ОтправительПакета_Роль, ПолучательПакета_Роль – роли отправителя и получателя пакета<br />
*PRINT_SEND - параметры программы печати в режиме формирования XML<br />
*PRINT_PRINT - параметры программы печати в режиме печати<br />
*FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным программы печати. Каждый файл раздела содержит список данных, которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.<br />
** [параметры заголовка документа]<br />
** PARAM - дополнительные параметры на уровне заголовка документа, соответствуют ИнфПолФХЖ1 из формата ФНС. <br />
** FACE - массив ролей участников документооборота<br />
** LINKS - массив ссылок на связанные документы (документы основания)<br />
** ITEMS - массив позиций документа<br />
*** PARAM - дополнительные параметры на уровне позиций документа, соответствуют ИнфПолФХЖ2 из формата ФНС<br />
<br />
==FILE==<br />
Описание маппинга документов содержатся в массиве FILE. Массив может содержать несколько документов, которые будут формироваться на основании одной программы печати, это может быть использовано для формирования накладной и вместе с ней сопроводительного документа. Значения структур программы печати кладутся в структуры /SBIS/S_XML (для заголовка), /SBIS/S_XML_DOC (для позиций).<br />
<br />
<div style="border: 1px dashed;"><br />
пример структуры файла DO_* с двумя файлами выгрузки Накладная и ТТН<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA"<br />
},<br />
"ПолучениеДанных_Метод": {<br />
"Значение": "/SBIS/PRINT_NAST"<br />
},<br />
"ПолучениеДанных_XSLT": {<br />
"Значение": "/SBIS/DOC301"<br />
},<br />
"assign_program": {<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
"ОтправительПакета_Роль": {<br />
"Значение": "Отправитель"<br />
},<br />
"ПолучательПакета_Роль": {<br />
"Значение": "Получатель"<br />
},<br />
"FILE": {<br />
"Файл1_Накладная": {<br />
},<br />
"Файл2_ТТН": {<br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===Заголовок документа (/SBIS/S_XML)===<br />
<br />
Параметры заголовка документа условно можно разделить на две группы:<br />
* Предопределенные параметры<br />
** DOC_NAME – наименование документа “Накладная”<br />
** FILE_FORMAT_TYPE – тип документа “ЭДОНакл”<br />
** FILE_FORMAT_SUBTYPE – подтип докумета, КНД, "1175010"<br />
** FILE_FORMAT_VERSION – версия документа, по умолчанию из SAP “3.01”<br />
** FILE_PROG_VERSION – версия программы, по умолчанию "SAP NetConnector"<br />
** FILE_ID_FORM – номер визуализации формы, по умолчанию, "1С"<br />
** FILE_NAME – префикс имени создаваемого файла, "DP_TOVTORGPR_"<br />
**NAME – отображаемое имя документа, “Накладная”<br />
* Динамические параметры, зависящие от конкретного документа. Этот набор параметров ставит в соответствие выходную структуру заголовка программы печати H_DOC (для J_3RV_DELIV_PDF) и структуру /SBIS/S_XML, к примеру:<br />
**DATE – дата документа <br />
**TIME – время документа, по умолчанию 00.00.00<br />
**ID - уникальный идентификатор, обычно номер документа<br />
**NUMBER - номер документа<br />
**WAERS - код валюты<br />
**SUM_TAX_FREE - сумма без налога<br />
**SUM - сумма<br />
**TAX_SUM - сумма налога<br />
**AMOUNT - количество<br />
**WEIGHT_GROSS - вес брутто<br />
**WEIGHT_NET - вес нетто<br />
**WEIGHT_UNIT_NAME - единица измерения веса<br />
<br />
Значение параметра для заголовка может иметь тип: <br />
*Field – поле ABAP объекта<br />
*String – строка<br />
<br />
Для типов возможно применение внутренних преобразований с помощью добавления постфиксов, к примеру, Field_Date преобразует дату из формата ABAP в формат 00.00.0000, Field_WaersToCode преобразует валюту в кодовое значение валюты. Список доступных преобразований можно посмотреть в методе классе /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE.<br />
<br />
===PARAM (ИнфПолФХЖ1)===<br />
<br />
Для заголовка, также можно добавить параметры следующей структуры:<br />
* PARAM массив параметров с типом Param<br />
** [массив значений]<br />
*** [имя параметра]<br />
**** [массив NAME + VALUE]<br />
***** Имя (NAME или VALUE)<br />
***** Значение<br />
***** Тип<br />
<br />
<div style="border: 1px dashed;"><br />
пример параметров для заголовка документа<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"PARAM": {<br />
"Тип": "Param",<br />
"Значение": {<br />
"Отправитель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Отправитель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-WAERK",<br />
"Тип": "Field"<br />
}<br />
],<br />
"Получатель_Банковские_Данные": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "Получатель_Банковские_Данные",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field"<br />
}<br />
],<br />
"ИнфПередТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПередТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПередТабл N 00 от 01.01.1999 Контракт 123 от 01.01.2017",<br />
"Тип": "String"<br />
}<br />
],<br />
"ИнфПослеТабл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ИнфПослеТабл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ИнфПослеТабл N 00 от 01.01.1999",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===LINKS===<br />
<br />
В массиве LINKS можно указать ссылки на связанные документы, номер заказа, транспортную накладную и так далее. Массив описывается структурой S_XML_LINK_DOC.<br />
<br />
Структура:<br />
* LINKS тип Links<br />
** [значение] - массив документов оснований<br />
*** [название документа]<br />
**** [набор полей структуры S_XML_LINK_DOC], к примеру:<br />
***** NAME - наименование документа<br />
***** TYPE - тип документа<br />
***** NUMBER - номер документа<br />
***** DATE - дата документа<br />
<br />
<div style="border: 1px dashed;"><br />
массив LINKS связанных документов (документов оснований)<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"LINKS": {<br />
"Тип": "Links",<br />
"Значение": {<br />
"Заказ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "H_DOC-GROUND",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "ЗаказВх",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "H_DOC-TRANSP_DATE1",<br />
"Тип": "Field_Date"<br />
}<br />
],<br />
"ТранНакл": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ТранНакл",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TYPE",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "H_DOC-TRANSP_NUM2",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "DATE",<br />
"Значение": "01.01.1900",<br />
"Тип": "String"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===FACE===<br />
<br />
Маппинг данных ролей участников документооборота находится в массиве FACE, определяется структурой S_XML_FACE_FULL.<br />
<br />
Структура:<br />
* FACE тип Face<br />
** [значение] - массив ролей<br />
*** [название роли], например Отправитель<br />
**** [имя] - имя поля выходной структуры или метод получения данных класса, например, доступные методы класса /SBIS/CL_SAP_DATA:<br />
***** GET_BUKRS_BANK_BY_BUKRS - данные банка для БЕ<br />
***** GET_VKORG_BANK_BY_VKORG - данные банка для Сбытовой орг.<br />
***** GET_WERKS_BANK_BY_WERKS - данные банка для завода<br />
***** GET_KUNNR_BANK_BY_KUNNR - данные банка для customer<br />
***** GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)<br />
***** GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)<br />
**** [значение] - ссылка на значение входной таблицы (к примеру, H_DOC для ТОРГ-12)<br />
**** [тип] - тип поля:<br />
***** Field - объекта словаря ABAP<br />
***** String - фиксированная строка<br />
***** Method - метод класса получения данных <br />
***** Concat_Field - строка получаемая конкатенацией строк<br />
***** ClassField - глобальное значение класса<br />
**** [подтип] - подтип типа:<br />
***** указание класса для типа Method<br />
***** указание поля в которое объединяются строки для Concat_Field<br />
<br />
<div style="border: 1px dashed;"><br />
массив FACE для отправителя<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"FACE": {<br />
"Тип": "Face",<br />
"Значение": {<br />
"Отправитель": [<br />
{<br />
"Имя": "ID",<br />
"Значение": "VBDKL-BUKRS", //номер БЕ<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BY_BUKRS", //получение данных БЕ (инн и прочее) по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "GET_BUKRS_BANK_BY_BUKRS", //получение данных банка для БЕ по номеру БЕ, указанному в ID<br />
"Значение": "",<br />
"Тип": "Method",<br />
"Подтип": "/SBIS/CL_SAP_DATA"<br />
},<br />
{<br />
"Имя": "INN",<br />
"Значение": "H_DOC-SUPPLIERINN", //ссылка на ИНН из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "KPP",<br />
"Значение": "H_DOC-SUPPLIERKPP", //ссылка на КПП из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKPO",<br />
"Значение": "H_DOC-SUPPLIEROKPO", //ссылка на ОКПО из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKOPF",<br />
"Значение": "H_DOC-SUPPLIEROKOPF", //ссылка на ОКОПФ из выходной таблицы<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "OKDP",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME1", //наименование организации первая строка<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация второй строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация третьей строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace", //конкатенация четвертой строки наименования организации в поле NAME с добавлением пробела слева<br />
"Подтип": "NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME1",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME2",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME3",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "FULL_NAME",<br />
"Значение": "ADDR1_SP-NAME4",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "FULL_NAME"<br />
},<br />
{<br />
"Имя": "COUNTRY_CODE",<br />
"Значение": "GR_CURRENT_DATA->COUNTRY_CODE", //получение кода страны из глобальной переменной класса получения данных<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "ADR_TEXT",<br />
"Значение": "",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "ADR_TYPE",<br />
"Значение": "Юридический",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "POST_CODE",<br />
"Значение": "ADDR1_SP-POST_CODE1",<br />
"Тип": "Concat_Field",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "CITY",<br />
"Значение": "ADDR1_SP-CITY1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "STREET",<br />
"Значение": "ADDR1_SP-STREET",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "HOUSE",<br />
"Значение": "ADDR1_SP-HOUSE_NUM1",<br />
"Тип": "Concat_Field_AddLeftSpace",<br />
"Подтип": "ADR_TEXT"<br />
},<br />
{<br />
"Имя": "PHONE",<br />
"Значение": "ADDR1_SP-TEL_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "FAX",<br />
"Значение": "ADDR1_SP-FAX_NUMBER",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "EMAIL",<br />
"Значение": "",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_NAME",<br />
"Значение": "SP_BANK-NAME",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_BIK",<br />
"Значение": "SP_BANK-BIK",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "BANK_CORACC",<br />
"Значение": "GR_CURRENT_DATA->BANK_CORACC",<br />
"Тип": "ClassField"<br />
},<br />
{<br />
"Имя": "BANK_ACC",<br />
"Значение": "SP_BANK-ACC_NUM",<br />
"Тип": "Field"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"BANK_CITY": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "BANK_CITY",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "GR_HIGHER_DATA->BANK_CITY",<br />
"Тип": "ClassField"<br />
}<br />
]<br />
}<br />
}<br />
] <br />
}<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
===ITEMS (S_XML_DOC)===<br />
<br />
Позиции документа отражаются в массиве ITEMS, описываемом структурой /SBIS/S_XML.<br />
<br />
Структура ITEMS:<br />
* ITEMS тип Items<br />
** [значение]<br />
*** [указание на таблицу позиций программы печати]<br />
**** [маппинг полей таблицы позиций программы печати в /SBIS/S_XML]<br />
***** [имя] - имя поля из структуры /SBIS/S_XML<br />
***** [значение] - имя поля из структуры программы печати<br />
***** [тип] - тип поля<br />
****** String - фиксированная строка<br />
****** ItemField, список возможных модификаторов можно посмотреть в методе класса /SBIS/CL_MAPPING->CONVERT_FIELD_TYPE, к примеру:<br />
******* ItemField_Matnr - удаляет лидирующие нули у номера материала<br />
******* ItemField_Unitlongname - преобразует имя единицу измерения в длинное имя<br />
******* ItemField_Unitcode - преобразует имя единицы измерения в код<br />
**** [параметры ИнфПолФХЖ2] - тип Param, имя+значение:<br />
***** [имя параметра]<br />
****** [имя] - NAME или VALUE<br />
****** [значение] - значение параметра<br />
****** [тип] - тип параметра:<br />
******* String - фиксированная строка<br />
******* Field - поле структуры залоговка<br />
******* ItemField - поле структуры позиции<br />
<br />
<div style="border: 1px dashed;"><br />
пример массива позиций ITEMS для программы печати <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
"ITEMS": {<br />
"Тип": "Items",<br />
"Значение": {<br />
"ITEMS": [ //указание на массив ITEMS из программы печати<br />
{<br />
"Имя": "NUMBER",<br />
"Значение": "POSNUM", //маппинг полей структуры ITEMS в /SBIS/S_XML<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "ID",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField_Matnr" //использование модификатора преобразования<br />
},<br />
{<br />
"Имя": "PRICE",<br />
"Значение": "PRICE",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "AMOUNT",<br />
"Значение": "LFIMG",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "UNIT_NAME",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitlongname"<br />
},<br />
{<br />
"Имя": "UNIT_CODE",<br />
"Значение": "MSEHI",<br />
"Тип": "ItemField_Unitcode"<br />
},<br />
{<br />
"Имя": "SUM_TAX_FREE",<br />
"Значение": "NETWR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "SUM",<br />
"Значение": "WRBTR",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_SUM",<br />
"Значение": "VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "TAX_TYPE",<br />
"Значение": "процент",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "TAX_RATE",<br />
"Значение": "ST_VAT",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "EXCISE_SUM",<br />
"Значение": "",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_NET",<br />
"Значение": "NTGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_GROSS",<br />
"Значение": "BRGEW",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "WEIGHT_UNIT_NAME",<br />
"Значение": "GEWEI",<br />
"Тип": "ItemField_Unitname"<br />
},<br />
{<br />
"Имя": "PACK_NAME",<br />
"Значение": "MAGRV",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_AMOUNT",<br />
"Значение": "PLACES",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PACK_SIZE",<br />
"Значение": "IN1PL",<br />
"Тип": "ItemField"<br />
},<br />
{<br />
"Имя": "PARAM", //свободные параметры<br />
"Тип": "Param",<br />
"Значение": {<br />
"НомерПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НомерПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "MATNR",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"НаименованиеПУ": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "НаименованиеПУ",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "ARKTX",<br />
"Тип": "ItemField"<br />
}<br />
],<br />
"ДатаПоказаний": [<br />
{<br />
"Имя": "NAME",<br />
"Значение": "ДатаПоказаний",<br />
"Тип": "String"<br />
},<br />
{<br />
"Имя": "VALUE",<br />
"Значение": "H_DOC-ERDAT",<br />
"Тип": "Field_Date"<br />
}<br />
]<br />
}<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==PRINT_SEND, PRINT_PRINT==<br />
Массивы PRINT_PRINT и PRINT_SEND содержат параметры программы печати в режиме печати и в режиме формирования XML, соответственно. По сути это маппинг части ключевых полей таблицы NAST.<br />
<br />
Структура:<br />
* [PRINT_SEND\PRINT_PRINT]<br />
** [значение] - массив значений<br />
*** print_program - программа печати<br />
*** print_form - точка входа в программу печати<br />
*** tnapr-sform - печатная форма<br />
*** nast-kappl - приложение<br />
*** nast-parvw - роль партнера <br />
*** nast-nacha - тип обмена (1 - вывод на печать, 8 - электронная отправка)<br />
*** nast-kschl - тип сообщения<br />
*** nast-objtype - тип объекта<br />
*** nast-spras - язык<br />
<br />
<div style="border: 1px dashed;"><br />
пример PRINT_SEND и PRINT_PRINT для программы печати J_3RV_DELIV_PDF с точкой входа ENTRY, печатной формой J_3RV_T12_PDF<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"PRINT_PRINT": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "1"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
},<br />
{<br />
"Имя": "nast-dimme",<br />
"Значение": "X"<br />
}<br />
]<br />
},<br />
"PRINT_SEND": {<br />
"Значение": [<br />
{<br />
"Имя": "print_program",<br />
"Значение": "J_3RV_DELIV_PDF"<br />
},<br />
{<br />
"Имя": "print_form",<br />
"Значение": "ENTRY"<br />
},<br />
{<br />
"Имя": "tnapr-sform",<br />
"Значение": "J_3RV_T12_PDF"<br />
},<br />
{<br />
"Имя": "nast-kappl",<br />
"Значение": "V2"<br />
},<br />
{<br />
"Имя": "nast-parvw",<br />
"Значение": "WE"<br />
},<br />
{<br />
"Имя": "nast-nacha",<br />
"Значение": "8"<br />
},<br />
{<br />
"Имя": "nast-kschl",<br />
"Значение": "LD00"<br />
},<br />
{<br />
"Имя": "nast-objtype",<br />
"Значение": "LIKP"<br />
},<br />
{<br />
"Имя": "nast-spras",<br />
"Значение": "R"<br />
}<br />
]<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
[[Категория:SAP]]<br />
[[Категория:SAPPER]]</div>
Чижов Виталий
http://wiki.razgovorov.ru/index.php?title=SAPPER_SETTINGS_-_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%B2&diff=3364
SAPPER SETTINGS - Настройки списков
2018-03-16T10:16:34Z
<p>Чижов Виталий: /* GET_SELF */</p>
<hr />
<div>=Настройка списков=<br />
<br />
Настройки списков отвечают за:<br />
* формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры<br />
* состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета электронных документов)<br />
<br />
Файл с настройками LO_* списка содержит информацию о классе получения списка документов, общих настройках для реестра в СБИС, такие как регламент, название реестра, указание на файл выгрузки самого документа DO_*, запрос списка связанных документов, исключения из выборки. В зависимости от версии BASIS системы различаются принципы построения списков – использование статических методов выборки или построение динамического select’a. За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс". Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах. <br />
<br />
Структура настройки списков:<br />
* [основные параметры, см. ниже]<br />
* [ЗапросСпискаСвязанныхДокументов] (тип List) - массив параметров для получения списка связанных документов<br />
** [Метод класса для построения списка связанных документов] - в качестве значения передается список параметров<br />
<br />
==Общие параметры для версий 700 и 740==<br />
<br />
*ПолучениеДанных_Класс – класс получения данных для построения списка документов<br />
*Реестр1С_Название, Реестр1С_Тип – классификаторы пакета документов<br />
*РеестрСБИС_Тип – тип входящего реестра СБИС<br />
*Регламент_Название – название регламета СБИС<br />
*Реестр_СБИС – название входящего реестра СБИС<br />
*НазваниеДокумента – отображаемое название документа<br />
*ИсклСторноДатаСовпадает – исключение сторно документа из списка, если дата совпадает<br />
*ИсклСторноДатаНеСовпадает – исключение сторно документа из списка, если дата не совпадает<br />
*ИсклСторноМесяцСовпадает – исключение сторно документа из списка, если месяц совпадает<br />
*ИсклСторноМесяцНеСовпадает – исключение сторно документа из списка, если месяц не совпадает<br />
<br />
==Построение запроса получения списка документов==<br />
<br />
Список документов получается путем выполнения запроса к базе данных, для BASIS >= 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса вызывается непосредственно в модуле и изменение запроса осуществляется наследованием класса и переопределением необходимых методов.<br />
<br />
В результате выполнения запросов получается таблица, содержащая список документов SAP необходимых для формирования пакета документов.<br />
<br />
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:<br />
* Идентификатор базового документа (нужен для группировки пакета)<br />
** BUKRS<br />
** GJAHR<br />
** BELNR - номер документа<br />
* Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)<br />
** XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.<br />
* Идентификатор настроек, которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)<br />
** INI_NAME - имя настройки выгрузки документа DO_* указывается явно в запросе<br />
* Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]<br />
** DATE<br />
** SUM<br />
** WAERS<br />
** PARTNER_NAME<br />
** ORG_NAME<br />
** USER_NAME<br />
* Дополнительные реквизиты которые можно использовать в отборе при необходимости<br />
** PARAM1<br />
** PARAM2<br />
** PARAM3<br />
* Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе<br />
** STATUS_NAME<br />
** STATUS_CODE<br />
** STATUS_NOTE<br />
** STATUS_MSG<br />
** STATUS_MSG_DETAIL<br />
<br />
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа и ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов. <br />
<br />
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ, от которого строится список и который есть всегда (иначе пакет не сформируется), в нашем случае это будет накладная.<br />
В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:<br />
{|{| class="wikitable"<br />
!|BELNR||XBELNR||INI_NAME<br />
|-<br />
|0080000227||0080000227||'DP_TOVTORGPR_1175010'<br />
|-<br />
|0080000227||0090000244||'ON_SCHFDOPPR_1115125'<br />
|}<br />
<br />
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Содержимое пакета документов, которое будет отправлено можно посмотреть в окне просмотра.<br />
<br />
==BASIS 7.00 (/SBIS/CL_SAP_DATA_700)==<br />
<br />
Для изменения выборки документов требуется наследовать стандартный класс получения данных и изменить метод GET_LIST_API2_PACKET.<br />
#ПолучениеДанныхВложения – указание на документ выгрузки DO_*<br />
#ЗапросСпискаСвязанныхДокументов – содержит ссылки на документы-вложения, в поле Имя указывается метод класса для получения связанных документов. Также указывается имя документа для отображения и связанный файл получения вложения DO_*.<br />
<br />
Варианты параметра "ПолучениеДанных_Класс":<br />
*/SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD<br />
*/SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ<br />
*/SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)<br />
*/SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы<br />
<br />
Для списка связанных методов, можно использовать следующие методы классов:<br />
* GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD<br />
* GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD<br />
<br />
<div style="border: 1px dashed;"><br />
пример LO_РеализацияТоваров версии 700 с получением связанного документа счет-фактура<br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"ПолучениеДанных_Класс": {<br />
"Значение": "/SBIS/CL_SAP_DATA_700_LIKP" //класс получения данных<br />
},<br />
"Реестр1С_Название": {<br />
"Значение": "Реализация товаров"<br />
},<br />
"Реестр1С_Тип": {<br />
"Значение": "'РеализацияТоваров'"<br />
},<br />
"РеестрСБИС_Тип": {<br />
"Значение": "'ДокОтгрИсх,НакладнаяИсх,Исходящие'"<br />
},<br />
"Регламент_Название": {<br />
"Значение": "Реализация"<br />
},<br />
"Реестр_СБИС": {<br />
"Значение": "ДокОтгрИсх"<br />
},<br />
"НазваниеДокумента": {<br />
"Значение": "Накладная"<br />
},<br />
"ПолучениеДанныхВложения": {<br />
"Значение": "DO_DP_TOVTORGPR_1175010" //указание на выгрузку документа DO_*<br />
},<br />
"РеестрПоУмолчанию": {<br />
"Значение": "'1'"<br />
},<br />
"ЗапросСпискаСвязанныхДокументов": {<br />
"Тип": "List",<br />
"Значение": [<br />
{<br />
"Имя": "GET_CHILD_VBFA_SFAKT", //метод класса получения данных<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "ПолучениеДанныхВложения",<br />
"Значение": "DO_ON_SCHFDOPPR_1115125" //указание на выгрузку документа DO_*<br />
}<br />
]<br />
}<br />
]<br />
},<br />
"ИсклСторноДатаСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноДатаНеСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноМесяцСовпадает": {<br />
"Значение": "X"<br />
},<br />
"ИсклСторноМесяцНеСовпадает": {<br />
"Значение": "X"<br />
}<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
==BASIS 7.40 (/SBIS/CL_SAP_DATA_740)==<br />
<br />
Списки документов строятся на основании динамического select’а.<br />
Текст запроса содержится в параметрах:<br />
*ЗапросСпискаДокументов – содержит тип запроса: select, select_groupby, select_distinct. <br />
**Тело запрос разбито на 5 подстрок длиной 255 символов, а именно:<br />
***ЗапросСпискаДокументов_select_1 ... ЗапросСпискаДокументов_select_5<br />
***ЗапросСпискаДокументов_from_1 ... ЗапросСпискаДокументов_from_5<br />
***ЗапросСпискаДокументов_groupby_1 ... ЗапросСпискаДокументов_groupby_5 <br />
***ЗапросСпискаДокументов_having_1 ... ЗапросСпискаДокументов_having_5<br />
***ЗапросСпискаДокументов_where_1 ... ЗапросСпискаДокументов_where_5<br />
*ЗапросСпискаСвязанныхДокументов – массив настроек отвечающий за добавление связанных документов. Для каждой записи будет выполнен поиск всех указанных документов. <br />
<br />
===Запрос Списка Связанных Документов===<br />
====GET_CHILD_VBFA====<br />
GET_CHILD_VBFA позволяет взять связанный через VBFA документ. <br />
<br />
Список настроек выглядит как динамический select c параметрами (тело запрос разбито на 5 подстрок длиной 255 символов, дополнительно выделена выборка сторнированных документов):<br />
*ЗапросСпискаСвязанныхДокументов_select_1 ... ЗапросСпискаСвязанныхДокументов_select_5<br />
*ЗапросСпискаСвязанныхДокументов_from_1 ... ЗапросСпискаСвязанныхДокументов_from_5<br />
*ЗапросСпискаСвязанныхДокументов_where_1 ... ЗапросСпискаСвязанныхДокументов_where_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_select_1 ... ЗапросСпискаСвязанныхДокументовСторно_select_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_from_1 ... ЗапросСпискаСвязанныхДокументовСторно_from_5<br />
*ЗапросСпискаСвязанныхДокументовСторно_where_1 ... ЗапросСпискаСвязанныхДокументовСторно_where_5 <br />
<br />
<div style="border: 1px dashed;"><br />
пример запроса списка связанных документов для версии 740 через GET_CHILD_VBFA <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "GET_CHILD_VBFA", //метод класса получения данных<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_1",<br />
"Значение": "'DO_ON_SCHFDOPPR_1115125' as ini_name, vbrk~bukrs AS bukrs, vbfa~vbeln AS belnr, "<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_2",<br />
"Значение": "vbrk~vbeln AS xblnr, vbrk~fkdat AS date, vbfa~waers AS waers,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_3",<br />
"Значение": "( vbrk~netwr + vbrk~mwsbk ) AS sum,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_4",<br />
"Значение": "( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name,"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_5",<br />
"Значение": "vbtyp_n AS subtype"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_1",<br />
"Значение": "vbfa AS vbfa"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_2",<br />
"Значение": "INNER JOIN vbrk AS vbrk ON vbfa~vbeln = vbrk~vbeln"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_3",<br />
"Значение": "INNER JOIN kna1 AS kna1 ON vbrk~kunrg = kna1~kunnr"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_where_1",<br />
"Значение": "vbelv = @is_list_base_doc-belnr AND vbfa~vbtyp_n IN ('M', 'O', 'P')"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_select_20170716",<br />
"Значение": "'DO_ON_SCHFDOPPR_1115125' as ini_name, vbrk~bukrs AS bukrs, vbfa~vbeln AS belnr, bkpf~belnr AS xblnr, vbrk~fkdat AS date, vbfa~waers AS waers, ( vbrk~netwr + vbrk~mwsbk ) AS sum, ( kna1~name1 && kna1~name2 && kna1~name3 && kna1~name4 ) AS partner_name, vbtyp_n AS subtype"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_from_20170716",<br />
"Значение": "vbfa AS vbfa INNER JOIN vbrk AS vbrk ON vbfa~vbeln = vbrk~vbeln INNER JOIN kna1 AS kna1 ON vbrk~kunrg = kna1~kunnr INNER JOIN bkpf as bkpf ON bkpf~bukrs = vbrk~bukrs AND bkpf~awkey = vbrk~vbeln AND bkpf~awtyp = 'VBRK'"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументов_where_20170716",<br />
"Значение": "vbfa~vbtyp_n IN ('M', 'N', 'O', 'P') AND vbelv = @is_list_base_doc-belnr"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_select_1",<br />
"Значение": "vbrk~vbeln AS belnr, vbrk~fkdat AS date"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_from_1",<br />
"Значение": "vbfa AS vbfa INNER JOIN vbrk AS vbrk ON vbfa~vbelv = vbrk~vbeln OR vbfa~vbeln = vbrk~vbeln"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_1",<br />
"Значение": "( vbfa~vbtyp_v = 'M' AND vbfa~vbtyp_n = 'N' AND vbfa~vbeln = @ls_list_related_doc-belnr )"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_2",<br />
"Значение": "OR ( vbfa~vbtyp_n = 'N' AND vbfa~vbtyp_v = 'M' AND vbfa~vbelv = @ls_list_related_doc-belnr )"<br />
},<br />
{<br />
"Имя": "ЗапросСпискаСвязанныхДокументовСторно_where_3",<br />
"Значение": "AND vbrk~vbeln <> @ls_list_related_doc-belnr"<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
====GET_SELF====<br />
Метод GET_SELF позволяет взять тот же документ, но использовать другую программу печати. В этом случае параметры передаются в структуру S_LIST_DOC. <br />
<br />
<div style="border: 1px dashed;"><br />
пример запроса списка связанных документов для версии 740 через GET_SELF <br />
<div class="mw-collapsible mw-collapsed" style="overflow: hidden;"><br />
<br><br />
<source lang=JSON><br />
{<br />
"Имя": "GET_SELF",<br />
"Значение": [<br />
{<br />
"Имя": "НазваниеДокумента",<br />
"Значение": "Счет-фактура"<br />
},<br />
{<br />
"Имя": "doc_ini_name",<br />
"Значение": "DO_ON_SCHFDOPPR_1115125"<br />
},<br />
{<br />
"Имя": "doc_bukrs",<br />
"Значение": "bukrs"<br />
},<br />
{<br />
"Имя": "doc_gjahr",<br />
"Значение": "gjahr"<br />
},<br />
{<br />
"Имя": "doc_belnr",<br />
"Значение": "belnr"<br />
},<br />
{<br />
"Имя": "doc_xblnr",<br />
"Значение": "param1"<br />
},<br />
{<br />
"Имя": "doc_date",<br />
"Значение": "date"<br />
},<br />
{<br />
"Имя": "doc_sum",<br />
"Значение": "sum"<br />
},<br />
{<br />
"Имя": "doc_waers",<br />
"Значение": "waers"<br />
},<br />
{<br />
"Имя": "doc_user_name",<br />
"Значение": "user_name"<br />
},<br />
{<br />
"Имя": "doc_partner_name",<br />
"Значение": "partner_name"<br />
},<br />
{<br />
"Имя": "doc_org_name",<br />
"Значение": "org_name"<br />
}<br />
]<br />
}<br />
</source><br />
</div><br />
</div><br />
<br />
<br />
<br />
<br />
<br />
<br />
[[Категория:SAPPER]]<br />
[[Категория:SAP]]</div>
Чижов Виталий