СБИС Сапёр - Настройка — различия между версиями
(→Настроить вызов программы печати и маппинг её данных(для каждой программы печати)) |
(→Настроить вызов программы печати и маппинг её данных(для каждой программы печати)) |
||
Строка 215: | Строка 215: | ||
− | Для маппинга данных точку прерывания | + | Для маппинга данных через отладку нужно поставить [[внешнюю]] точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign |
− | |||
− | |||
− | |||
− | |||
=Утилиты= | =Утилиты= |
Версия 09:41, 15 ноября 2017
Содержание
- 1 Загрузка / обновление модуля
- 2 Проверка готовности к настройке
- 3 Алгоритм работы
- 4 Таблица настроек /SBIS/SETTINGS
- 5 Настройка аккордеона
- 6 Настройка реестра (для каждого реестра)
- 7 Настроить вызов программы печати и маппинг её данных(для каждой программы печати)
- 8 Утилиты
- 9 Пользовательский интерфейс и кастомизация
- 9.1 Интерфейсы
- 9.1.1 ГФ /SBIS/RFC – Набор RFC функций
- 9.1.1.1 Общее назначение
- 9.1.1.2 ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.
- 9.1.1.3 ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки
- 9.1.1.4 ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона
- 9.1.1.5 ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона
- 9.1.1.6 ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона
- 9.1.2 Класс /SBIS/CL_SAP_DATA - получение данных SAP
- 9.1.2.1 Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)
- 9.1.2.2 Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)
- 9.1.2.3 Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)
- 9.1.2.4 Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)
- 9.1.2.5 Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)
- 9.1.2.6 Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)
- 9.1.2.7 Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)
- 9.1.2.8 Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)
- 9.1.1 ГФ /SBIS/RFC – Набор RFC функций
- 9.2 Доработка программы печати
- 9.1 Интерфейсы
- 10 Алгоритм выгрузки документов из SAP в СБИС для последующей отправки
- 11 Алгоритм загрузки документов в SAP из СБИС
- 12 Правила ведения разработки на проекте
- 13 Языковая поддержка
Загрузка / обновление модуля
- Распаковать архив с модулем на сервере разработки в DIR_TRANS (путь посмотреть можно в транзакции AL11)
- Запустить транзакцию STMS
- Import overview (F5)
- Выбрать систему куда импортируем
- Меню Extras -> Other requests -> Add
- Выбираем запрос (имя такое же как у архива)
- Import Request
Проверка готовности к настройке
Подготовительные действия
- Получить в Тензоре параметры подключения к СБИС - адрес сервиса, тестовый логин и пароль
- Авторизоваться в СБИС через браузер
- Установить СБИС SDK
Запустить модуль
Действие: SE38 -> /sbis/sapper
Результат: Откроется окно авторизации
Проблемы:
- Failed to create object SBIS.Docflow – Не установлен или не зарегистрирован SBIS SDK. Установите под админом SBIS SDK. После необходимо перезайти в SAP - закрыть все окна SAP Logon (включая разводящую страницу).
- Система пытается создать инстанцию управляющего элемента – ответить "Разрешить всегда" примерно на 10 вопросов – или один раз разрешить доступ в настройках.
Авторизоваться в модуле
Действие: Запустить модуль -> В окне авторизации указать адрес сервиса, настройки прокси, логин, пароль.
Результат: Откроется главное окно SBIS SAPPER
Проблемы:
- В окне аккордеона абракадабра – при импорте переноса возникла проблема с кодировкой (причина пока не понятна).
Необходимо вручную загрузить настройки se38 - /sbis/update_settings
Алгоритм работы
Отправка
- Показ списка записей для отправки
- таблице настроек получаем имя класса отвечающего за показ списка и
- выполняем запрос указанный в настройках,в результате получили список документов SAP от которых нужно будет сформировать электронные документы и идентификатор настроек описывающих формирование.
- показываем список документов в виде alv_tree
- Открыли окно предпросмотра
- для каждого документа пакета вызываем указанный в параметрах класс формирования документа (далее описан сценарий по умолчанию)
- вызываем программу печати указанную в настройках.
- в конце программы печати, когда все данные рассчитаны, передаем управление функции маппинга
- получаем необходимые для формирования XML значения
- при помощи XSLT формируем сначала шаблон XML с данными, потом приводим его к нужному формату
- запрашиваем HTML для визуализации сформированного XML
- показываем HTML
- Нажали кнопку отправить
- при помощи SDK асинхронно, многопоточно подписываем и отправляем сформированный пакет в ЛК СБИС
Загрузка
- Открыли окно предпросмотра
- по идентификаторам XML вложений запрашиваем HTML визуалиазции
- показываем HTML
- Открыли окно загрузки
- скачиваем XML
- при помощи XSLT приводим XML к XML шаблону с данными, шаблон с данными конвертируем в структуру SAP
- показываем универсальную форму загрузки, предзаполняем форму по известным данным (стороны, номенклатура)
- предоставляем интерфейс для дозаполнения неизвестных значений, необходимых для загрузки документа (в т.ч. сопоставление номенклатуры)
- Нажали кнопку загрузить
- по данным таблицы настроек конвертируем структуру SAP в параметры BAPI
- выполняем BAPI
Таблица настроек /SBIS/SETTINGS
Таблица /SBIS/SETTINGS содержит настройки необходимые для работы модуля.
Настройки записаны в виде иерархической структуры содержащей списки типа ключ значение.
Иерархическая структура содержит настройки:
- Общие настройки модуля (ключ SBIS)
- Настройки аккордеона (ключ SBIS.ACCORDION)
- Настройки выгрузки пакета документов (ключ [Название реестра в аккордионе])
- Запрос построения списка
- PRINT_PRINT - параметры программы печати необходимые для вывода на печать
- PRINT_SEND - параметры программы печати необходимые для формирования XML
- Настройки формирования XML файла (ключ [Код программы печати] или версия формата)
- массив FILE - настройки маппинга программы печати в XML, количество элементов FILE соответствует количеству формируемых этой настройкой XML
- Настройки сериализации XML файла в BADI (ключ [код BAPI + тип версия XML документа])
Настройка аккордеона
Аккордеон в SBIS.SAPPER динамический и строится на основании данных настроек. Для каждого клиента он выглядит по разному. Как минимум он содержит три предустановленных пункта "Полученные", "Отправленные" и "Ответы контрагентов", которые транслируют содержимое соответствующих реестров личного кабинета в SAP.
Настройки аккордеона в /SBIS/SETTINGS определяются ключем SBIS.ACCORDION и содержат двухуровневый иерархический список пунктов аккордеона.
Раздел аккордеона должен содержать параметры:
- NAME - название пункта
- ITEMS (тип list) - список вложенных пунктов (код, параметры)
Пункт аккордеона должен содержать параметры:
- NAME - название пункта
- CONTENT_CLASS - имя класса отвечающего за получение списка
- EXCHANGE_CLASS - имя класса отвечающего за способ обмена документами с СБИС
- VIEW_CLASS - имя класса отвечающего за просмотр пакета
- PAGE_SIZE - количество пакетов на странице
- FILTER_FM_NAME - имя FM для установки фильтра в списке
Настройка реестра (для каждого реестра)
Настройки реестра отвечают за:
- формирование списка документов которые видит пользователь перейдя в соответствующий раздел, в т.ч. ограничения видимости и фильтры
- состав отправляемых пакетов документов (какие документы SAP должны использоваться для формирования пакета эл.документов)
За формирование списка документов отвечает метод GET_LIST_API2_PACKET класса указанного в параметре "ПолучениеДанных_Класс"
Для разделов Продажа по умолчанию этим классом является /SBIS/CL_SAP_DATA_[700/740], он зависим от версии BASIS и поэтому поставляется в разных пакетах.
Настроить запрос
Список документов получается путем выполнения запроса к базе данных, для BASIS > 7.40 это динамический SELECT текст которого указан в настройках, для более ранних версий код запроса захардкожен непосредственно в модуле. И доработка запроса осуществляется наследованием класса и переопределением необходимых методов.
В результате выполнения запросов должна получиться таблица содержащая список документов SAP необходимых для формирования пакета документов.
Строка таблицы соответствует структуре /SBIS/S_LIST_DOC и содержит:
- Идентификатор базового документа (нужен для группировки пакета)
- BUKRS
- GJAHR
- BELNR - номер документа
- Идентификатор документа на данных которого будет формироваться электронный документ (может быть равен базовому)
- XBLNR - номер документа, пока предполагается что BUKRS и GJAHR такой же как у базового документа.
- Идентификатор настроек которые будут использоваться для формирования электронного документа (программа печати, параметры вызова, маппинг параметров программы печати)
- INI_NAME - код настроек из таблицы /SBIS/SETTINGS - указывается явно в запросе
- Реквизиты документа для отображения в списке - параметры для формирования названия документа, по умолчанию шаблон формирования имени документа следующий: [значение параметра НазваниеДокумента] №[XBLNR] от [DATE] на сумму [SUM][WAERS]
- DATE
- SUM
- WAERS
- PARTNER_NAME
- ORG_NAME
- USER_NAME
- Дополнительные реквизиты которые можно использовать в отборе при необходимости
- PARAM1
- PARAM2
- PARAM3
- Текущий статус документа - в select не заполняются, заполняются для каждой записи по данным таблицы /SBIS/STATUS_DOC, код реализован в том же классе
- STATUS_NAME
- STATUS_CODE
- STATUS_NOTE
- STATUS_MSG
- STATUS_MSG_DETAIL
Запись таблицы содержит данные основного документа и таблицу вложений - идентификатор документа + ключ таблицы настроек отвечающих за формирование XML файла. В общем виде одна запись таблицы содержит список программ печати необходимых для формирования пакета документов.
Предположим у нас есть комплект документов реализации состоящий из двух документов, накладной № 0080000227 и счет-фактуры № 0090000244 которые необходимо отправить одним пакетом. Основным документом является документ от которого строится список и который есть всегда (иначе пакет не сформируется) и в нашем случае пусть это будет накладная. В результате выполнения запроса должен получиться список пакетов реализации. Часть результирующей таблицы содержащей наш комплект должна выглядеть следующим образом:
BELNR | XBELNR | INI_NAME |
---|---|---|
0080000227 | 0080000227 | 'DP_TOVTORGPR_1175010' |
0080000227 | 0090000244 | 'ON_SCHFDOPPR_1115125' |
Если предположим, в пакет нужно добавить ещё один документ, например из накладной необходимо сформировать и отправить в этом же пакете ТТН, то в результат необходимо добавить ещё одну строку содержащую соответствующий код настроек. В общем виде можно сказать, что количество строк для пакета равно количеству вызовов программ печати необходимых для формирования форм документов комплекта. Стоит заменить, что конечный состав пакета документов не всегда по количеству равен документам которые пользователь видит в списке, т.к. данным одного вызова программы печати может быть за раз сформировано несколько электронных документов, например по данным фактуры можно сформировать сразу весь комплект. Реальной содержимое пакета документов которое будет отправлено можно посмотреть в окне просмотра.
BASIS 7.00 (/SBIS/CL_SAP_DATA_700)
Указать правильный класс для построения списка основного документа пакета в настройках списка документов - параметр "ПолучениеДанных_Класс". Основной документ - документ который всегда есть, от которого можно получить все документы пакета. Под документом пакета понимается документ передаваемый необходимый имеется
Варианты:
- /SBIS/CL_SAP_DATA_700_LIKP - возвращает накладные SD
- /SBIS/CL_SAP_DATA_700_VBRK - возвращает фактуры SD
- /SBIS/CL_SAP_DATA_700_VBRK_USL - возвращает фактуры SD на услуги - акты выполненных работ
- /SBIS/CL_SAP_DATA_700_LIKP_NF - возвращает неотфактурованные накладные SD (без фактур)
- /SBIS/CL_SAP_DATA_700_ERDK - возвращает документы печати из одноименной таблицы
Указать подчиненные документы и способ их получения: Варианты:
- GET_CHILD_VBFA_SFAKT - получить связанные с основным документом через таблицу VBFA счет-фактуры SD
- GET_CHILD_VBFA_NAKL - получить связанные с основным документом через таблицу VBFA накладные SD
BASIS 7.40 (/SBIS/CL_SAP_DATA_740)
Текст запроса содержится в параметрах:
- ЗапросСпискаДокументов - содержит тип запроса "select_groupby" или "select_having"
- ЗапросСпискаДокументов_select
- ЗапросСпискаДокументов_from
- ЗапросСпискаДокументов_groupby
- ЗапросСпискаДокументов_having
- ЗапросСпискаСвязанныхДокументов - массив настроек отвечающий за добавления связанных документов. Для каждой записи будет выполнен поиск всех указанных здесь документов. Доступные варианты:
- GET_CHILD_VBFA - взять связанный через VBFA документ
- GET_SELF - взять тот же документ, но использовать другую программу печати
Настроить вызов программы печати и маппинг её данных(для каждой программы печати)
После того как пользователь выбрал в списке пакет документов для отправки / просмотра, для каждой записи таблицы делается вызов программы формирования XML в соответствии с группой настроек указанной в поле INI_NAME. Данные настройки состоят:
- ПолучениеДанных_Класс" - имя класса формирующего данные (/SBIS/CL_SAP_DATA)
- ПолучениеДанных_Метод" - способ получения данных:
- PRINT_NAST - через программу печати основанную на структуре NAST
- EFG_PRINT - через программу печати выводимые с помощью FM EFG_PRINT
- PRINT_PROG - через любые ABAP программы
- ПолучениеДанных_XSLT - имя XSLT для первичной конвертации (/SBIS/DOC301)
- ОтправительПакета_Роль - какое лицо из документ берем на пакет в качестве отправителя ("Отправитель")
- ПолучательПакета_Роль - какое лицо из документ берем на пакет в качестве получателя ("Получатель")
- Регламент_Название - название регламента СБИС по которому будет запущен пакет документов. Можно не указывать.
- Реестр_СБИС - тип пакета СБИС, см.документацию по API / SDK
- PRINT_SEND - параметры программы печати в режиме формирования XML
- PRINT_PRINT - параметры программы печати в режиме печати
- FILE - настройки формирования XML файлов. Список файлов, которые необходимо создать по данным данной программы печати.Каждый файл раздела содержит список данных которые необходимы для формирования файла и их источников (имена глобальных объектов программы печати их содержащие). Настройка модуля в основном сводится к заполнению данного раздела.
Структура настроек раздела FILE:
- шапка документа, дата номер и т.п.
- FACE - стороны документа
- PARAM - дополнительных параметров документа
- LINKS - данные документов оснований - договор, заказ и т.п.
- ITEMS - табличная часть документа
- PARAM - дополнительные параметры строки табличной части
Пример параметров программы печати для PRINT_NAST
- print_program - имя программы печати, например "ZFUJI_SBIS_J_3RV_DELIV_PDF"
- print_form - точка входа, например "ENTRY"
- tnapr-sform - имя формуляра, например "ZVE20_ADOBE_V_TORG_12"
- nast-nacha - специфичный для PRINT_NAST параметр отвечающий за способ вывода, для печати = 1, для XML = 8
- nast-* - другие специфичные параметры PRINT_NAST
Для маппинга данных через отладку нужно поставить внешнюю точку прерывания в пакете /sbis/core - класс /sbis/mapping - метод call_doc - на первом assign
Утилиты
SAPPER TEST MODE
В процессе настройки удобно включить режим в котором в C:\TEMP выгружаются промежуточные XML файлы и логи SDK. Для этого в постоянные значения пользователя (Меню Система - Постоянные значения пользователя - Собственные данные - Параметры) необходимо добавить параметр /SBIS/TEST_MODE = X
Ручная загрузка настроек
После исправления JSON файла настроек его нужно сконвертировать в CSV и загрузить при помощи программы /SBIS/UPDATE_SETTINGS.
Необходимы права на объект полномочий /SBIS/0001, ACTVT=01.
Просто указываем путь к файлу CSV и нажимаем Выполнить.
В результате загрузки вы увидите таблицу загруженных настроек.
Проблемы:
- Если вместо кирилицы видим кракозябры, значит проблема с кодировкой файла. Пробуем менять в CSV конвертере UTF-8 <-> WINDOWS-1251
Пользовательский интерфейс и кастомизация
Интерфейсы
ГФ /SBIS/RFC – Набор RFC функций
Общее назначение
Настоящая группа функций обеспечивает работу с SAP из интерфейса личного кабинета СБИС. Соединение осуществляется через SBIS Plugin установленный на рабочем месте пользователя..
ФМ /SBIS/RFC_GET_LIST_PACKET – Получение списка пакетов документов.
Функциональный модуль предназначен для получения списка пакетов документов который отражается в интерфейсе СБИС, пользователь из данного списка выбирает документы для последующей отправки. В таблице ниже представлен локальный интерфейс модуля.
Параметр | Описание |
---|---|
IMPORTING | |
IV_INI_NAME | Код раздела настроек содержащих параметры необходимые для получения списка документов. |
IS_FILTER | Структура содержащая параметры для ограничения выборки списка документов (период, контрагент, балансовая единица и т.п. |
TABLES | |
GET_LIST_PACKET | Список пакетов документов |
ФМ /SBIS/RFC_GET_ATTACHMENT – Данные отправки
Функциональный модуль предназначен для получения XML вложения в пакет.
Получает из таблицы настроек набор SQL запросов необходимых для построения списка пакетов документов. В таблице ниже представлен локальный интерфейс модуля.
Параметр | Описание |
---|---|
IMPORTING | |
IV_INI_NAME | Код раздела настроек содержащих параметры необходимые для получения данных документа. |
IS_DOC_KEY | Уникальный идентификатор документа |
EXPORTING | |
ES_XML_PACKET | Структура с описанием пакета, на основании данных данной структуры формируется описание пакета, актуально для первого вложения |
ES_XML_ATTACHEMENT | Структура с вложением, содержит описание формата, его версии и содержит XML файл взакодированный в BASE64. В общем случае передается XML универсального формата который в последующем конвертируется в формат ФНС. |
ФМ /SBIS/RFC_GET_PARAM – Получение списка настроек аддона
Функциональный модуль предназначен для получения списка параметров из таблицы настроек. Параметры метода служат для ограничения списка возвращаемых значений. Таблица настроек фильтруется по всем заполненным параметрам.
В таблице ниже представлен локальный интерфейс модуля.
Параметр | Описание |
---|---|
IMPORTING | |
IV_INI_NAME | Название группы параметров |
IV_PARENT | Название подгруппы параметров |
IV_PARAM_NAME | Имя параметра |
TABLE | |
ET_SETTINGS | Таблица со списком параметров |
ФМ /SBIS/RFC_DEL_PARAM – Удаление настроек аддона
Функциональный модуль предназначен для удаления настроек аддона, используется при администрировании настроек. В таблице ниже представлен локальный интерфейс модуля.
Параметр | Описание |
---|---|
IMPORTING | |
IV_INI_NAME | Параметр для ограничения списка удаляемых параметров. |
IV_PARENT | Параметр для ограничения списка удаляемых параметров. |
IV_PARAM_NAME | Имя удаляемого параметра. |
ФМ /SBIS/RFC_ADD_PARAM – Добавление настроек аддона
Функциональный модуль предназначен для добавления настроек аддона, используется при администрировании настроек. В таблице ниже представлен локальный интерфейс модуля.
Параметр | Описание |
---|---|
TABLE | |
IT_SETTINGS | Список настроек которые надо добавить/обновить. |
Класс /SBIS/CL_SAP_DATA - получение данных SAP
Метод GET_BUKRS_BY_BUKRS - Данные БЕ (ИНН КПП ОКПО Назв Адрес)
- Входные параметры
- IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.
- IR_CLASS - тип OBJECT, необязательный параметр.
- IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- Выходные параметры
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- INN - ИНН
- KPP - КПП
- OKPO - ОКПО
- OKDP - ОКДП
- NAME - наименование
- FULL_NAME - полное наименование
- POST_CODE - почтовый индекс
- REGION_CODE - код региона
- CITY - город
- DISTRICT - район
- VILLAGE - нас. пункт
- STREET - улица
- HOUSE - дом
- OFFICE - офис, квартира
- COUNTRY_CODE - код страны
- PHONE - телефон
- FAX - факс
- EMAIL - адрес эл. почты
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
Метод GET_VKORG_BY_VKORG - Данные СбОрг (ИНН КПП ОКПО Назв Адрес)
- Входные параметры
- IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.
- IR_CLASS - тип OBJECT, необязательный параметр.
- IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- Выходные параметры
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- INN - ИНН
- KPP - КПП
- OKPO - ОКПО
- OKDP - ОКДП
- NAME - наименование
- FULL_NAME - полное наименование
- POST_CODE - почтовый индекс
- REGION_CODE - код региона
- CITY - город
- DISTRICT - район
- VILLAGE - нас. пункт
- STREET - улица
- HOUSE - дом
- OFFICE - офис, квартира
- COUNTRY_CODE - код страны
- PHONE - телефон
- FAX - факс
- EMAIL - адрес эл. почты
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
Метод GET_WERKS_BY_WERKS - Данные Завода (ИНН КПП ОКПО Назв Адрес)
- Входные параметры
- IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.
- IR_CLASS - тип OBJECT, необязательный параметр.
- IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- Выходные параметры
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- INN - ИНН
- KPP - КПП
- OKPO - ОКПО
- OKDP - ОКДП
- NAME - наименование
- FULL_NAME - полное наименование
- POST_CODE - почтовый индекс
- REGION_CODE - код региона
- CITY - город
- DISTRICT - район
- VILLAGE - нас. пункт
- STREET - улица
- HOUSE - дом
- OFFICE - офис, квартира
- COUNTRY_CODE - код страны
- PHONE - телефон
- FAX - факс
- EMAIL - адрес эл. почты
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
Метод GET_KUNNR_BY_KUNNR - Данные Дебитора (ИНН КПП ОКПО Назв Адрес)
- Входные параметры
- IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.
- IR_CLASS - тип OBJECT, необязательный параметр.
- IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- Выходные параметры
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- INN - ИНН
- KPP - КПП
- OKPO - ОКПО
- OKDP - ОКДП
- NAME - наименование
- FULL_NAME - полное наименование
- POST_CODE - почтовый индекс
- REGION_CODE - код региона
- CITY - город
- DISTRICT - район
- VILLAGE - нас. пункт
- STREET - улица
- HOUSE - дом
- OFFICE - офис, квартира
- COUNTRY_CODE - код страны
- PHONE - телефон
- FAX - факс
- EMAIL - адрес эл. почты
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
Метод GET_BUKRS_BANK_BY_BUKRS - Данные БЕ (банк)
- Входные параметры
- IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.
- IR_CLASS - тип OBJECT, необязательный параметр.
- IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- Выходные параметры
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- BANK_NAME - наим. банка
- BANK_BIK - БИК
- BANK_ACC - расч. счет
- BANK_CORACC - корр. счет
- BANK_CITY - город банка
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
Метод GET_VKORG_BANK_BY_VKORG - Данные СбОрг (банк)
- Входные параметры
- IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.
- IR_CLASS - тип OBJECT, необязательный параметр.
- IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- Выходные параметры
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- BANK_NAME - наим. банка
- BANK_BIK - БИК
- BANK_ACC - расч. счет
- BANK_CORACC - корр. счет
- BANK_CITY - город банка
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
Метод GET_WERKS_BANK_BY_WERKS - Данные Завода (банк)
- Входные параметры
- IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.
- IR_CLASS - тип OBJECT, необязательный параметр.
- IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- Выходные параметры
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- BANK_NAME - наим. банка
- BANK_BIK - БИК
- BANK_ACC - расч. счет
- BANK_CORACC - корр. счет
- BANK_CITY - город банка
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
Метод GET_KUNNR_BANK_BY_KUNNR - Данные Дебитора (банк)
- Входные параметры
- IS_SETTINGS - тип /SBIS/S_SETTINGS, необязательный параметр.
- IR_CLASS - тип OBJECT, необязательный параметр.
- IR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- Выходные параметры
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
- ID - код организации
- BANK_NAME - наим. банка
- BANK_BIK - БИК
- BANK_ACC - расч. счет
- BANK_CORACC - корр. счет
- BANK_CITY - город банка
- CR_DATA - тип DATA (/SBIS/S_XML_FACE_FULL), необязательный параметр. Поля:
Доработка программы печати
Для формирование XML документа ИМ использует имеющиеся программы печати. Данная методика позволяет избежать дублирования алгоритма формирования документа.
В простейшем случае доработка сводится к добавлению к в программу печати (или её копию) вызова метода ИМ который завершает программу печати после формирования электронного документа.
Пример вызова ИМ для формирования электронного документа. Данный код необходимо добавить непосредственно перед вызовом формуляра.
**************************************************************
* TENSOR SBIS EDO *
**************************************************************
try.
data cx_root type ref to cx_root.
data lv_not_print type c value ''.
data cl_mapping type ref to /sbis/cl_mapping.
create object cl_mapping.
call method cl_mapping->calc_doc
exporting
is_nast = nast
importing
ev_not_print = lv_not_print.
if lv_not_print = 'X'.
exit.
endif.
catch cx_root into cx_root.
endtry.
С интеграционным модулем поставляются примеры стандартных программ печати в которые добавлен вызов ИМ.
В ряде случаев этого может быть не достаточно.
Генерация электронного документа использует в качестве данных значения рассчитанные программой печати. Иногда название контрагента, его ИНН и КПП выводятся в печатной форме одной строкой и как правило в программе печати они хранятся в одной переменной, а для формирования электронного документа они нужны по раздельности. Поэтому для каждой программы печати проводится анализ, каких данных в ней не хватает, после чего в текст программы вносятся соответствующие изменения.
Если у Вас Z-программы печати, в которых используются подпрограммы, BADI, или логика вынесена в формуляр, то вызов SAPPER чуть более сложный. С примерами можно ознакомиться здесь.
Алгоритм выгрузки документов из SAP в СБИС для последующей отправки
Алгоритм загрузки документов в SAP из СБИС
Назначение документа
Документ представляет собой техническое описание порядка установки, настройки и расширения стандартного функционала SBIS for SAP.
Область применения документа
Настоящий документ предназначен для описания технических аспектов внедрения продукта SBIS for SAP. Документ может использоваться для постановки задач техническим специалистам по внедрению и расширению функциональности Системы.
Общее назначение системы
Система предназначена для автоматизации процессов обмена электронными юридически значимыми документами.
Глоссарий
Настоящий раздел содержит полный список сокращений и определений, используемых в документе.
- Служебные документы -Файлы, предусмотренные регламентом документооборота, содержащие описание процесса отправки и получения.
- Формализованный документ - Структурированный документ (XML-формат)
- Неформализованный документ - Неструктурированный документ (произвольный файл, например, в формате PDF)
- ЭДО - Электронный документооборот
- Документ / Вложение - Документ, полученный от контрагента или направляемый ему, отражающий факты проведения финансовых операций с контрагентом, выполнения каких-либо работ или оказания услуг, поставки каких либо * ТМЦ (например, Счёт-фактура, Накладная Торг-12, Акт приёма/сдачи работ и т.п.)
- Пакет документов - Комплект Документов, полученных от контрагента или направляемых ему, необходимых для проведения финансовой операции с контрагентом.
- ЭП Электронная подпись - реквизит электронного документа, предназначенный для защиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа электронной цифровой подписи и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе
- Техническая ЭП - ЭП, которая применяется для подписания технических документов (технологических уведомлений) в процессе обмена через ОЭД.
- ИМ, IM Интеграционный модуль (Integration Module) - компонент Системы, отвечающий за обмен сообщениями между SAP-системой Заказчика и ОЭД
- БЕ - Код балансовой единицы в системе SAP
- ГФ - Группа функций, объект системы SAP
- ФМ - Функциональный модуль, объект системы SAP
- БО - Бизнес-объект SAP
- СЭ - Селекционный экран, экран выбора данных
Правила ведения разработки на проекте
Настоящий раздел содержит общие рекомендации к ведению разработки на проектах внедрения.
Именование объектов словаря
Настоящий раздел описывает концепцию наименований объектов словаря на стороне SAP системы.
Таблица 3 Именование объектов словаря
Объект репозитория | Длина имени | Маска |
---|---|---|
Домены | 30 | /SBIS/DM_[<ff>]_[<XXXXXXXX>] |
Элементы данных | 30 | /SBIS/ED_[<ff>]_[<XXXXXXXX>] |
Структуры | 30 | /SBIS/S_[<ff>]_[<XXXXXXXX>] |
Типы таблиц | 30 | /SBIS/T_[<ff>]_[<XXXXXXXX>] |
Таблицы БД | 16 | /SBIS/[<ff>][<XXXXXXXX>]
/SBIS/[<ff>][<XXXXXXXX>]T - для текстовых таблиц |
Ракурсы | 16 | /SBIS/V_[<ff>][<XXXXXXXX>] |
Search-Help | 30 | /SBIS/SH_[<ff>]_[<XXXXXXXX>] |
Объект блокировок | 16 | /SBIS/[<ff>][<XXXXXXXX>] |
Группа функций | 26 | /SBIS/GF_[<ff>]_[<XXXXXXXX>] |
Функциональные Модули | 30 | /SBIS/FM_ [<ff>]_[<XXXXXXXX>]
/SBIS/RFC_ [<ff>]_[<XXXXXXXX>] |
Программы, include | 40 | /SBIS/[<ff>]_[<XXXXXXXX>] |
Пулы модулей | 40 | /SBIS/[<ff>]_[<XXXXXXXX>] |
Классы | 30 | /SBIS/CL_[<ff>]_[<XXXXXXXX>] |
Интерфейсы | 30 | /SBIS/IF_[<ff>]_[<XXXXXXXX>] |
Транзакции | 20 | /SBIS/[<ff>][<XXXXXXXX>] |
Smartforms/SAPScript | 30 | /SBIS/[<ff>]_[<XXXXXXXX>] |
Классы сообщений | 20 | /SBIS/[<ff>][<XXXXXXXX>] |
Классы разработок | 30 | /SBIS/[<ff>]_[<XXXXXXXX>] |
Реализация BAdi (новый/старый) | 30/20 | /SBIS/[<имя определения BAdi>] |
Проекты SAP-расширений | 8 | /SBIS/[<XXXXXXXX>] |
SET/GET-параметры | 20 | /SBIS/[<ff>][<XXXXXXXX>] |
Append – структуры в стандартных таблицах | 30 | /SBIS/A_[<ff>]_[<XXXXXXXX>] |
Поля в append-структурах стандартных таблиц | 15 | Z[<XXXXXXXX>] |
Меню областей | 30 | /SBIS/[<ff>]_[<XXXXXXXX>] |
Объект полномочий | 30 | /SBIS/[<ff>]_[<XXXXXXXX>] |
Для именования остальных объектов репозитария используется маска формирования имени:
<ZZ>SBIS_[<ff>]_[<XXXXXXXX>] , где:
- <ZZ> - буква Z (или две буквы Z, например, для полей в append - структурах стандартных таблиц) в соответствии с соглашением о пространстве имен для клиента;
- <ff> - дополнительный квалификатор функциональности, опускается, в случае если объект принадлежит пакету ZCOMMON;
- <XXXXXXXX> - произвольный набор символов, возможно, но не обязательно, как-то отражающий физический или производственный смысл объекта на английском языке. Возможно использование цифр для отражения следующей логики: 1 - создание, 2 - редактирование, 3 – удаление;
Объекты, не попадающие под требование, должны именоваться исходя из здравого смысла.
Именование переменных кода
Настоящий раздел описывает систему именования объектов и переменных программ продукта на стороне SAP. Таблица 4 Именование объектов и переменных программ
Объект | Префикс | Объект | Префикс | Объект | Префикс | Объект | Префикс | Объект | Префикс | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Class | cl_ | ||||||||||||
Parameter | p_ | ||||||||||||
Push Button | pb_ | Radio Button | rb_ | Select Option | so_ | ||||||||
Table type | tt_ | ||||||||||||
Type | ty_ | ||||||||||||
Global Constant | gc_ | Local Constant | lc_ | ||||||||||
Global Field Symbol | gfs_ | Local Field Symbol | lfs_ | ||||||||||
Global Structure | gs_ | Local Structure | ls_ | Importing Structure | is_ | Changing Structure | cs_ | Exporting Structure | es_ | ||||
Global Variable | gv_ | Local Variable | lv_ | Importing Variable | iv_ | Changing Variable | cv_ | Exporting Variable | ev_ | ||||
Global Internal Table | gt_ | Local Internal Table | lt_ | Importing Internal Table | it_ | Changing Internal Table | ct_ | Exporting Internal Table | et_ | ||||
Global Range | gt_rng_ | Local Range | lt_rng_ | ||||||||||
Global Reference | gr_ | Local Reference | lr_ |
Языковая поддержка
Текущая версия системы должна поддерживать (работать без дополнительной настройки) следующие языки:
- Английский
- Русский