Подключение к SAP из рабочих процессов в Azure Logic Apps

Область применения: Azure Logic Apps (Потребление + Стандартный)

В этом многопартийном руководстве показано, как получить доступ к серверу SAP из рабочего процесса в Azure Logic Apps с помощью соединителя SAP. Операции соединителя SAP можно использовать для создания автоматизированных рабочих процессов, выполняемых при активации событий на сервере SAP или в других системах, а также для управления ресурсами на сервере SAP.

Рабочие процессы приложения логики "Стандартный" и "Потребление" предлагают управляемый соединитель SAP, размещенный и работающий в мультитенантной среде Azure. Стандартные рабочие процессы также предлагают встроенный соединитель SAP, размещенный и работающий в однотенантном Azure Logic Apps. Дополнительные сведения см . в техническом справочнике по соединителю.

Совместимость SAP

Соединитель SAP совместим со следующими типами систем SAP:

  • Локальные и облачные системы SAP на основе HANA, такие как S/4 HANA.

  • Классические локальные системы SAP, такие как R/3 и ECC.

SAP должна поддерживать подключаемую версию системы SAP. В противном случае возникшие проблемы могут оказаться неразрешимыми. Дополнительные сведения о версиях системы SAP и об их обслуживании см. в статье Матрица доступности продуктов SAP (PAM).

Соединитель SAP поддерживает следующие типы сообщений и интеграции данных на основе SAP NetWeaver:

  • Промежуточный документ (IDoc)

  • Программный интерфейс бизнес-приложений (BAPI)

  • Удаленный вызов функции (RFC) и транзакционный RFC (tRFC)

Соединитель SAP использует библиотеку SAP .NET Connector (NCo).

Чтобы использовать операции соединителя SAP, необходимо сначала пройти проверку подлинности подключения и иметь следующие параметры:

  • Вы можете указать имя пользователя и пароль.

  • Соединитель SAP поддерживает проверку подлинности с помощью SAP Secure Network Communications (SNC).

Вы можете использовать SNC для единого входа SAP NetWeaver или для возможностей безопасности из внешних продуктов. Если вы решили использовать SNC, ознакомьтесь с предварительными условиями SNC.

Технический справочник по соединителю

Соединитель SAP имеет разные версии, основанные на типе приложения логики и среде узла.

Приложение логики Среда Версия соединителя
Потребление Мультитенантные Azure Logic Apps Управляемый соединитель, который отображается в коллекции соединителей в разделе "Общая среда выполнения>". Дополнительные сведения см. в следующей документации:

- Справочник по управляемому соединителю SAP
- Управляемые соединители в Azure Logic Apps
Стандартные Azure Logic Apps с одним клиентом и Среда службы приложений версии 3 (только планы Windows) Управляемый соединитель, который отображается в коллекции соединителей в разделе "Общая среда выполнения" и встроенный соединитель, который отображается в коллекции соединителей в разделе "Среда выполнения>>в приложении" и является поставщиком услуг. Встроенный соединитель может напрямую обращаться к виртуальным сетям Azure с строка подключения без локального шлюза данных. Дополнительные сведения см. в следующей документации:

- Справочник по управляемому соединителю SAP
- Справочник по встроенным соединителям SAP

- Управляемые соединители в Azure Logic Apps
- Встроенные соединители в Azure Logic Apps

Различия соединителей

Встроенный соединитель SAP значительно отличается от управляемого соединителя SAP следующим образом:

  • Локальные подключения не требуют локального шлюза данных.

    Вместо этого встроенный соединитель SAP взаимодействует непосредственно с сервером SAP в интегрированной виртуальной сети, что позволяет избежать прыжков, задержки и точек сбоя для сетевого шлюза. Убедитесь, что вы отправляете или развертываете клиентские библиотеки SAP, не распространяемые с помощью приложения рабочего процесса приложения логики. Дополнительные сведения см . в руководстве по предварительным требованиям.

  • Поддерживаются полезные данные размером до 100 МБ, поэтому вам не нужно использовать универсальный код ресурса (URI) BLOB-объектов для больших запросов.

  • Конкретные действия доступны для вызова BAPI, вызова RFC и отправки IDoc. Эти выделенные действия обеспечивают лучший интерфейс для отслеживания состояния BAPIs, транзакций RFC и дедупликации IDoc и не используют старую модель обмена сообщениями SOAP Windows Communication Foundation (WCF).

    Действие Call BAPI включает до двух ответов с возвращаемым JSON, XML-ответом из вызываемого BAPI, фиксацией BAPI или ответом отката BAPI, а также при использовании автоматической фиксации. Эта возможность устраняет проблему с управляемым соединителем SAP, где результат автоматической фиксации не зафиксируется и наблюдается только через журналы.

  • Продолжительное время ожидания в течение 5 минут по сравнению с управляемым соединителем.

    Встроенный соединитель SAP не использует общую или глобальную инфраструктуру соединителей, что означает, что время ожидания превышает 5 минут по сравнению с управляемым соединителем SAP (две минуты). Длительные запросы работают без необходимости реализовать длительный шаблон действия запроса на основе веб-перехватчика.

  • По умолчанию встроенные операции соединителя SAP являются бессерверными. Однако для этих операций можно включить режим с отслеживанием состояния (сходство).

    В режиме с отслеживанием состояния встроенный соединитель SAP поддерживает конфигурации высокого уровня доступности и горизонтального масштабирования. По сравнению с управляемым соединителем SAP есть ограничения в отношении локального шлюза данных, ограниченного одним экземпляром триггеров и кластеров только в режиме отработки отказа для действий. Дополнительные сведения см. в статье об известных проблемах и ограничениях, связанных с управляемым соединителем SAP.

  • Для рабочих процессов приложения логики уровня "Стандартный" требуется использование клиентской библиотеки SAP NCo 3.1, а не версии SAP NCo 3.0. Дополнительные сведения см. в разделе Необходимые условия.

  • Рабочие процессы приложения логики уровня "Стандартный" предоставляют параметры приложения, в которых можно указать личный пароль среды безопасности (PSE) и PSE.

    Это изменение предотвращает отправку нескольких файлов PSE, которые не поддерживаются и приводят к сбоям подключения SAP. В рабочих процессах приложения логики потребления управляемый соединитель SAP позволяет указать эти значения с помощью параметров подключения, что позволило отправлять несколько файлов PSE и не поддерживается, вызывая сбои подключения SAP.

  • Создание действия схемы

    • Вы можете выбрать из нескольких типов операций, таких как BAPI, IDoc, RFC и tRFC, а также одно действие в управляемом соединителе SAP, которое использует параметр SapActionUris и средство выбора файловой системы.

    • Можно напрямую указать имя параметра в качестве настраиваемого значения. Например, можно указать параметр RFC Name из действия Call RFC . По сравнению с управляемым соединителем SAP необходимо указать сложное имя параметра URI действия.

    • По проектированию это действие не поддерживает создание нескольких схем для RFCs, BAPIs или IDocs в одном выполнении действия, которое поддерживает управляемый соединитель SAP. Это изменение возможностей теперь предотвращает попытки отправки большого количества содержимого в одном вызове.

Параметры соединителя

Наряду с простыми строковыми и числовыми входными данными соединитель SAP принимает следующие параметры таблицы (входные данные Type=ITAB):

  • Параметры направления таблицы — входные и выходные данные для старых выпусков SAP.
  • Изменения параметров, которые заменяют параметры направления таблицы для более новых выпусков SAP.
  • Параметры иерархической таблицы.

Известные проблемы и ограничения

Управляемый соединитель SAP

  • Соединитель SAP в настоящее время не поддерживает строки маршрутизатора SAP. Локальный шлюз данных должен существовать в виртуальной сети, где шлюз может напрямую связаться с системой SAP, которую требуется подключить.

  • Триггер SAP не поддерживает кластеры шлюза данных. В некоторых случаях отработки отказа узел шлюза данных, который обменивается данными с системой SAP, может отличаться от активного узла, что приводит к непредвиденному поведению.

    • Для сценариев отправки сообщений поддерживаются кластеры шлюза данных в режиме отработки отказа.

    • Действия SAP с отслеживанием состояния не поддерживают кластеры шлюза данных в режиме балансировки нагрузки. Взаимодействие с отслеживанием состояния должно оставаться на одном узле кластера шлюза данных. Используйте шлюз данных в режиме, отличном от кластера, или в кластере, настроенном только для отработки отказа. Например, к этим действиям относятся следующие действия:

      • Все действия, указывающие значение идентификатора сеанса
      • [BAPI] Commit transaction
      • [BAPI] Откат транзакции
      • [BAPI - RFC] Close stateful session
      • [BAPI - RFC] Create stateful session
  • В действии с именем метода вызова [BAPI] в SAP функция автоматической фиксации не зафиксирует изменения BAPI, если в объекте CallBapiResponse , возвращаемом действием, существует хотя бы одно предупреждение. Чтобы зафиксировать изменения BAPI, несмотря на предупреждения, выполните следующие действия.

    1. Создайте сеанс явным образом с помощью действия с именем [BAPI — RFC] Создание сеанса с отслеживанием состояния.
    2. В действии с именем метода вызова [BAPI] в SAP отключите функцию автоматической фиксации.
    3. Вместо этого вызовите действие с именем [BAPI] Зафиксировать транзакцию .

IP-подключения к серверу сообщений SAP (конфигурация с балансировкой нагрузки)

Если указать IP-адрес для подключения к серверу сообщений SAP, например подсистема балансировки нагрузки, подключение может завершиться ошибкой с сообщением об ошибке, аналогичным "имя узла SAPDBSERVER01.example.com неизвестно". Сервер сообщений указывает соединителю SAP использовать имя узла для подключения к внутреннему серверу приложений SAP или серверу за подсистемой балансировки нагрузки. Если DNS не удается разрешить имя узла, подключение завершается ошибкой.

Для этой проблемы существуют следующие обходные пути или решения.

  • Убедитесь, что клиент, выполняющий подключение, например компьютер с локальным шлюзом данных для соединителя SAP, может разрешить имена узлов, возвращаемые сервером сообщений.

  • В транзакции с именем RZ11 измените или добавьте параметр SAP с именем ms/lg_with_hostname=0.

Контекст проблемы или фон

SAP обновила соединитель .NET (NCo) до версии 3.1, что изменило способ, которым соединитель запрашивает подключения к серверным серверам с серверов сообщений. Теперь соединитель использует новый API для разрешения сервера приложений сервером сообщений, если только соединитель не будет принудительно использовать предыдущий API с помощью параметра ms/lg_with_hostname=0. Дополнительные сведения см. в статье о SAP KB 3305039 . Параметр IP-адреса SMLG не учитывается во время входа в группу входа.

Необходимые компоненты

  • Учетная запись и подписка Azure. Если у вас еще нет подписки Azure, получите бесплатную учетную запись Azure.

  • Сервер приложений SAP или сервер сообщений SAP, к которому требуется получить доступ из Azure Logic Apps.

    • Настройте сервер SAP и учетную запись пользователя, чтобы разрешить использование RFC.

      Дополнительные сведения о поддерживаемых типах учетных записей пользователей и минимальной требуемой авторизации для каждого типа действия (RFC, BAPI, IDoc) см. в следующей заметке SAP: 460089 — минимальные профили авторизации для внешних программ RFC.

    • Учетная запись пользователя SAP должна иметь доступ к RFC_METADATA группе функций и соответствующим модулям функций для следующих операций:

      Операции Доступ к функциональным модулям
      Действия с RFC RFC_GROUP_SEARCH и DD_LANGU_TO_ISOLA.
      Действия BAPI BAPI_TRANSACTION_COMMIT, , BAPI_TRANSACTION_ROLLBACK, SWO_QUERY_METHODSRPY_BOR_TREE_INITиSWO_QUERY_API_METHODS
      Действия IDoc IDOCTYPES_LIST_WITH_MESSAGES, IDOCTYPES_FOR_MESTYPE_READ, INBOUND_IDOCS_FOR_TID, OUTBOUND_IDOCS_FOR_TID, GET_STATUS_FROM_IDOCNR и IDOC_RECORD_READ
      Чтение действия таблицы SAP RFC BBP_RFC_READ_TABLE или RFC_READ_TABLE
      Предоставьте строгий минимальный доступ к серверу SAP для вашего соединения SAP RFC_METADATA_GET и RFC_METADATA_GET_TIMESTAMP.
  • Рабочий процесс приложения логики, из которого требуется получить доступ к серверу SAP.

  • По умолчанию встроенные операции соединителя SAP являются бессерверными. Сведения о выполнении этих операций в режиме с отслеживанием состояния см. в разделе "Включить режим с отслеживанием состояния" для встроенных соединителей без отслеживания состояния.

  • Чтобы использовать триггер управляемого или встроенного соединителя SAP с именем "При получении сообщения", выполните следующие задачи:

    • Настройте разрешения безопасности для шлюза SAP или список управления доступом (ACL). В диалоговом окне "Монитор шлюза" (T-Code SMGW), в котором отображаются файлы secinfo и reginfo, откройте меню Goto и выберите "Экспертные функции>внешнего обслуживания безопасности>файлов ACL".

      Необходимо задать следующие разрешения:

      P TP=LOGICAPP HOST=<on-premises-gateway-server-IP-address> ACCESS=*

      Эта строка представлена в следующем формате:

      P TP=<trading-partner-identifier-(program-name)-or-*-for-all-partners> HOST=<comma-separated-list-with-external-host-IP-or-network-names-that-can-register-the-program> ACCESS=<*-for-all-permissions-or-a-comma-separated-list-of-permissions>

      Если вы не настроите разрешения безопасности шлюза SAP, может появиться следующая ошибка:

      Регистрация tp Microsoft.PowerBI.EnterpriseGateway из имени узла <> не разрешена

      Дополнительные сведения см. в примечании SAP 1850230 — GW: “регистрация <ИД программы> не разрешена”.

    • Настройте ведение журнала безопасности шлюза SAP, чтобы упростить поиск проблем со списком управления доступом (ACL). Дополнительные сведения см. в разделе справки SAP, посвященном настройке ведения журнала шлюза.

    • В диалоговом окне Настройка подключений RFC (T-Code SM59) создайте подключение RFC типа TCP/IP. Убедитесь, что для типа активации задано значение "Зарегистрированная серверная программа". Задайте для параметра Тип соединения с целевой системой подключения RFC значение Юникод.

    • Если вы используете этот триггер SAP, где для параметра Формат IDOC задано значение FlatFile, с действием декодирования неструктурированного файла, то необходимо использовать свойство early_terminate_optional_fields в схеме неструктурированного файла, задав значение true.

      Это требование является обязательным, так как запись данных IDOC для неструктурированного файла, отправляемая службой SAP в вызове tRFC IDOC_INBOUND_ASYNCHRONOUS, не заполняется до полной длины поля SDATA. Azure Logic Apps предоставляет исходные данные IDOC неструктурированного файла без заполнения, то есть в том же виде, в котором они получены от SAP. Кроме того, при объединении триггера SAP с действием декодирования неструктурированных файлов схема, предоставляемая действию, должна соответствовать.

    • В рабочих процессах "Потребление" и "Стандартный" управляемый триггер SAP с именем " При получении сообщения" использует одно и то же расположение URI для продления и отмены подписки веб-перехватчика. Операция продления использует метод HTTP PATCH, а операция отмены подписки использует метод HTTP DELETE. Это поведение может привести к появлении операции продления в журнале триггера как операции отмены подписки, но операция все еще является продлением, поскольку триггер использует в качестве метода HTTP PATCH, а не DELETE.

      В стандартных рабочих процессах встроенный триггер SAP с именем "При получении сообщения" вместо этого использует триггер Функции Azure и отображает только фактические обратные вызовы из SAP.

    • Для триггера встроенного соединителя SAP с именем "При получении сообщения" необходимо включить интеграцию виртуальной сети и частные порты, следуя статье "Включение служебная шина и встроенных соединителей SAP для приложений логики с отслеживанием состояния в standard". Вы также можете запустить рабочий процесс в Visual Studio Code для локального запуска триггера. Требования к настройке Visual Studio Code и дополнительные сведения см. в статье "Создание рабочего процесса приложения логики "Стандартный" в однотенантном azure Logic Apps с помощью Visual Studio Code. Необходимо также настроить следующие переменные среды на компьютере, где устанавливается Visual Studio Code:

    • WEBSITE_PRIVATE_IP. Задайте для этой переменной среды значение 127.0.0.1 в качестве адреса localhost.
    • WEBSITE_PRIVATE_PORTS. Задайте для этого значения переменной среды два свободных и доступных для использования портов на локальном компьютере, разделяя значения запятыми (,), например 8080 8088.
  • Содержимое сообщения для отправки на сервер SAP, например пример файла IDoc. Это содержимое должно быть в формате XML и включать пространство имен действия SAP, которое требуется использовать. IDoc можно отправить с помощью схемы неструктурированных файлов, заключив их в оболочку XML.

  • В сценариях, когда вы хотите отправить IDocs из рабочего процесса приложения логики в SAP, измените режим обработки SAP с триггера по умолчанию немедленно , чтобы активировать фоновую программу , чтобы рабочий процесс не истек.

    Если ваша система SAP находится под нагрузкой, например, когда рабочий процесс отправляет пакет IDocs всех одновременно в SAP, время ожидания очередных вызовов IDoc. В режиме обработки по умолчанию система SAP блокирует входящий вызов для передачи IDoc до тех пор, пока IDoc не завершит обработку. В Azure Logic Apps действия рабочего процесса имеют 2-минутное время ожидания по умолчанию.

    Чтобы изменить режим обработки системы SAP, выполните следующие действия.

    1. В SAP найдите профиль партнера SAP и откройте параметры профилей партнеров. Код транзакции we20 (T-Code) можно использовать с префиксом /n.

    2. На вкладке "Параметры входящего трафика" в разделе "Обработка по модулю функции" измените параметр на "Триггер по фоновой программе" немедленно.

      Триггер по фоновой программе позволяет базовому вызову IDOC_INBOUND_ASYNCHRONOUS TRFC транспорта IDoc завершить немедленно, а не блокировать подключение, пока IDoc не завершит обработку. Однако этот параметр работает только в том случае, если IDoc не включает сегмент перезаписи express, для каждой заметки о поддержке SAP 1777090 — IDocs обрабатываются немедленно, несмотря на выбор параметра "Триггер по фоновой программе" в WE20 — SAP для меня.

    Дополнительные сведения см. на следующих ресурсах:

Предварительные требования к сетевому подключению

Для системы SAP требуется сетевое подключение от узла библиотеки SAP .NET Connector (NCo):

  • Для рабочих процессов приложения логики потребления в мультитенантных Azure Logic Apps локальный шлюз данных размещает библиотеку SAP .NET Connector (NCo). Если используется локальный кластер шлюза данных, для всех узлов кластера требуется сетевое подключение к системе SAP.

  • Для рабочих процессов приложения логики уровня "Стандартный" в однотенантных Azure Logic Apps ресурс приложения логики размещает библиотеку SAP .NET Connector (NCo). Таким образом, сам ресурс приложения логики должен включить интеграцию виртуальной сети, и эта виртуальная сеть должна иметь сетевое подключение к системе SAP.

Подключение к сети, необходимое системе SAP, включает следующие серверы и службы:

  • Сервер приложений SAP, служба диспетчера (для всех типов входа)

    Система SAP может включать несколько серверов приложений SAP. Узлу библиотеки SAP .NET Connector (NCo) требуется доступ ко всем серверам и их службам.

  • Сервер сообщений SAP, служба сообщений (для группы типа "Вход")

    Сервер и служба сообщений будут перенаправляться на одну или несколько служб диспетчера сервера приложений. Узлу библиотеки SAP .NET Connector (NCo) требуется доступ ко всем серверам и их службам.

  • Сервер шлюза SAP, служба шлюза

  • Сервер шлюза SAP, защищенная служба шлюза

    Подключение к сети, требуемое для системы SAP, также включает этот сервер и службу для использования с защищенными сетевыми коммуникациями (SNC).

Перенаправление запросов с сервера приложений, диспетчера на сервер шлюза служба шлюза автоматически выполняется в библиотеке СОЕДИНИТЕЛя SAP .NET (NCo). Это перенаправление происходит, даже если в параметрах подключения указаны только сведения о службе диспетчера сервера приложений.

Если вы используете подсистему балансировки нагрузки перед системой SAP, необходимо перенаправить все службы на соответствующие серверы. Дополнительные сведения о службах и портах SAP см. в статье Порты TCP/IP всех продуктов SAP.

Примечание.

Убедитесь, что вы включили сетевое подключение из узла библиотеки СОЕДИНИТЕЛя SAP .NET (NCo) и что необходимые порты открыты в брандмауэрах и группах безопасности сети. В противном случае возникают ошибки, такие как партнер, не достигнутый из компонента NI (сетевого интерфейса), и текст ошибки, например WSAECONNREFUSED: подключение отказано.

Предварительные требования клиентской библиотеки SAP NCo

Чтобы использовать соединитель SAP, необходимо установить клиентская библиотека NCo соединителя SAP для Microsoft .NET 3.1. В следующем списке описаны предварительные требования для клиентской библиотеки SAP NCo на основе рабочего процесса, в котором используется соединитель SAP:

  • Версия:

    • Для рабочих процессов приложения логики потребления, использующих локальный шлюз данных, убедитесь, что установлена последняя 64-разрядная версия , соединитель SAP для Microsoft .NET 3.1.3.0 для Windows 64bit (x64). Шлюз данных выполняется только в 64-разрядных системах. Установка неподдерживаемой 32-разрядной версии приводит к ошибке "плохого образа".

    • Для рабочих процессов приложения логики уровня "Стандартный" можно установить последнюю 64-разрядную или 32-разрядную версию для соединителя SAP (NCo 3.1) для Microsoft .NET 3.1.3.0, скомпилированной с платформа .NET Framework 4.6.2. Однако убедитесь, что установлена версия, соответствующая конфигурации в ресурсе приложения логики "Стандартный". Чтобы проверить версию, используемую приложением логики, выполните следующие действия.

      1. На портале Azure откройте свой ресурс приложения логики категории "Стандартный".

      2. В меню ресурсов приложения логики в разделе "Параметры" выберите "Конфигурация".

      3. На странице "Конфигурация" выберите вкладку "Общие параметры". В разделе "Параметры платформы" проверьте, задано ли значение платформы 64-разрядной или 32-разрядной.

      4. Обязательно установите версию соединителя SAP (NCo 3.1) для Microsoft .NET 3.1.3.0, скомпилированной с платформа .NET Framework 4.6.2, которая соответствует конфигурации платформы.

  • Из папки установки клиентской библиотеки по умолчанию скопируйте файлы сборки (.dll) в другое расположение в зависимости от сценария, как показано ниже. Кроме того, если вы используете только управляемый соединитель SAP, при установке клиентской библиотеки SAP NCo выберите регистрацию глобального кэша сборок. Встроенный соединитель SAP в настоящее время не поддерживает регистрацию GAC.

    • Для рабочего процесса потребления, работающего в мультитенантных Azure Logic Apps и использующего локальный шлюз данных, скопируйте следующие файлы сборки (.dll) в папку установки локального шлюза данных, например C:\Program Files\Локальный шлюз данных. Клиентская библиотека SAP NCo 3.0 содержит следующие сборки:

      • libicudecnumber.dll
      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

      Скопируйте файлы сборок в папку установки шлюза данных. В противном случае подключение SAP может завершиться ошибкой с сообщением об ошибке, проверьте сведения о учетной записи и (или) разрешения и повторите попытку. Вы можете устранить прочие проблемы с помощью средства просмотра журнала привязки сборок .NET. Это средство позволяет проверить, находятся ли файлы сборки в правильном расположении.

    • Для рабочих процессов уровня "Стандартный" скопируйте следующие файлы сборки (.dll) в расположение, откуда их можно передать в ресурс приложения логики или проект, где вы создаете рабочий процесс, либо в портал Azure, либо локально в Visual Studio Code соответственно. Клиентская библиотека SAP NCo 3.1 включает следующие сборки:

      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

Следующие связи существуют между клиентской библиотекой SAP NCo, платформа .NET Framework, средой выполнения .NET и шлюзом данных:

  • Адаптер Microsoft SAP и служба узла шлюза используют платформа .NET Framework 4.7.2.

  • SAP NCo для .NET Framework 4.0 работает с процессами, использующими среду выполнения .NET версий от 4.0 до 4.8.

  • SAP NCo для .NET Framework 2.0 работает с процессами, использующими среду выполнения .NET версий от 2.0 до 3.5, но более не работает с новейшей версией шлюза данных.

Предварительные требования SNC

Для рабочих процессов потребления в мультитенантных Azure Logic Apps, использующих локальный шлюз данных и при необходимости SNC, необходимо также настроить следующие параметры.

  • Убедитесь, что версия библиотеки SNC и ее зависимости совместимы с вашей средой SAP. Чтобы устранить неполадки совместимости библиотек, можно использовать локальный шлюз данных и журналы шлюза данных.

  • Убедитесь, что вы скопировали следующие файлы сборки (.dll) в клиентской библиотеке SAP NCo 3.0 в папку установки локального шлюза данных, например C:\Program Files\On-Premises Data Gateway.

    • libicudecnumber.dll
    • rscp4n.dll
    • sapnco.dll
    • sapnco_utils.dll
  • Для служебной программы SAPGENPSE необходимо специально использовать sapgenpse.exe.

  • Если вы предоставляете личную среду безопасности (PSE) с подключением, вам не нужно копировать и настраивать PSE и SECUDIR для локального шлюза данных.

  • Если вы включите SNC через внешний продукт безопасности, например sapseculib, Kerberos или NTLM, убедитесь, что библиотека SNC существует на том же компьютере, что и установка шлюза данных. Для этой задачи скопируйте двоичные файлы библиотеки SNC в ту же папку, что и установка шлюза данных на локальном компьютере, например C:\Program Files\Локальный шлюз данных.

    Примечание.

    На компьютере с установкой шлюза данных и библиотекой SNC не устанавливайте переменные среды для SNC_LIB и SNC_LIB_64. В противном случае эти переменные имеют приоритет над значением библиотеки SNC, передаваемым через соединитель.

  • Чтобы использовать SNC с единым входом (единый вход), убедитесь, что служба шлюза данных работает как пользователь, сопоставленный с пользователем SAP. Чтобы изменить учетную запись по умолчанию для учетной записи службы шлюза, выберите "Изменить учетную запись" и введите учетные данные пользователя.

    Снимок экрана: страница установщика локального шлюза данных и параметров службы с кнопкой изменения учетной записи службы шлюза.

Дополнительные сведения о включении SNC см. в статье Enable Secure Network Communications (SNC).

Предварительные требования к среде Azure Logic Apps

Для рабочего процесса потребления в мультитенантных Azure Logic Apps управляемый соединитель SAP интегрируется с системами SAP через локальный шлюз данных. Например, в сценариях, когда рабочий процесс отправляет сообщение в систему SAP, шлюз данных выступает в качестве клиента RFC и пересылает запросы, полученные от рабочего процесса в SAP. Аналогичным образом, в сценариях, когда рабочий процесс получает сообщение от SAP, шлюз данных выступает в качестве сервера RFC, который получает запросы от SAP и пересылает их в рабочий процесс.

  1. На хост-компьютере или виртуальной машине, существующей в той же виртуальной сети, что и система SAP, к которой вы подключаетесь, скачайте и установите локальный шлюз данных.

    Шлюз данных помогает безопасно получать доступ к локальным данным и ресурсам. Убедитесь, что используется поддерживаемая версия шлюза. Если у вас возникла проблема с шлюзом, попробуйте обновить его до последней версии, которая может содержать обновления для устранения проблемы.

  2. В портал Azure создайте ресурс шлюза Azure для локальной установки шлюза данных.

  3. На том же локальном компьютере, что и установка локального шлюза данных, скачайте и установите последнюю клиентную библиотеку SAP NCo.

  4. Для хост-компьютера с установкой локального шлюза данных настройте имена сетевых узлов и разрешения имен служб.

    • Чтобы использовать имена узлов или имена служб для подключений из Azure Logic Apps, необходимо настроить разрешение имен для каждого сервера SAP Application, Message и Шлюза вместе со своими службами:

      • В файле %windir%\System32\drivers\etc\hosts или на DNS-сервере, доступном для установки локального шлюза данных, настройте разрешение имен сетевого узла.

      • В файле %windir%\System32\drivers\etc\services настройте разрешение имен службы.

    • Если не планируется использовать для подключения имена узлов сети или имена служб, вместо них можно указывать IP-адреса узлов и номера портов служб.

    • Если у вас нет записи DNS для системы SAP, ознакомьтесь со следующим примером записи в файле hosts:

      10.0.1.9           sapserver                   # SAP single-instance system host IP by simple computer name
      10.0.1.9           sapserver.contoso.com       # SAP single-instance system host IP by fully qualified DNS name
      

      В следующем списке показан пример набора записей для файлов служб:

      sapdp00            3200/tcp              # SAP system instance 00 dialog (application) service port
      sapgw00            3300/tcp              # SAP system instance 00 gateway service port
      sapmsDV6           3601/tcp              # SAP system ID DV6 message service port
      

Включение безопасных сетевых подключений (SNC)

Для рабочего процесса потребления, работающего в мультитенантных Azure Logic Apps, можно включить SNC для проверки подлинности, которая применяется только при использовании шлюза данных. Перед началом работы убедитесь, что выполнены все необходимые условия и предварительные требования SNC.

  1. В портал Azure откройте приложение логики потребления и рабочий процесс в конструкторе.

  2. Добавление или изменение операции управляемого соединителя SAP.

  3. В поле сведений о подключении SAP укажите следующие необходимые сведения. Тип проверки подлинности, который вы выбираете, изменяет доступные параметры.

    Снимок экрана: параметры подключения SAP для потребления.

    Примечание.

    Поля "Имя пользователя SAP" и "Пароль SAP" являются необязательными. Если не указать имя пользователя и пароль, соединитель использует сертификат клиента на более позднем этапе для проверки подлинности.

  4. Чтобы включить SNC, в поле сведений о подключении к SAP укажите следующие необходимые сведения.

    Снимок экрана: параметры подключения SAP для SNC, включенные для использования.

    Параметр Описание
    Использование SNC Установите флажок.
    Библиотека SNC Введите одно из следующих значений:

    — Имя библиотеки SNC, например sapsnc.dll
    — Относительный путь к расположению установки NCo, например .\security\sapsnc.dll
    — абсолютный путь к расположению установки NCo, например c:\security\sapsnc.dll
    Единый вход SNC Выберите вход с помощью удостоверения SNC или входа с именем пользователя или паролем, предоставленным на уровне RFC.

    Как правило, удостоверение SNC используется для проверки подлинности вызывающего абонента. Вместо этого можно выбрать проверку подлинности с помощью имени пользователя и пароля, но это значение параметра по-прежнему зашифровано.
    Мое имя SNC В большинстве случаев это значение можно опустить. Установленное решение SNC обычно знает собственное имя SNC. В случае, если решение поддерживает несколько удостоверений, может потребоваться указать удостоверение, используемое для этого конкретного назначения или сервера.
    Имя партнера SNC Введите имя внутреннего SNC, например p:CN=DV3, OU=LA, O=MS, C=US.
    Качество защиты SNC Выберите качество обслуживания, используемое для связи SNC с данным назначением или сервером. Значение по умолчанию определяется серверной системой. Максимальное значение определяется продуктом безопасности, используемым для SNC.
    Сертификат SNC Введите открытый ключ в кодировке Base64, чтобы сертификат использовался для идентификации клиента в SAP.

    Примечание. Не включайте верхний или нижний колонтитул PEM.

    — Не введите закрытый ключ для сертификата клиента. Ваша личная среда безопасности (PSE) должна содержать соответствующий закрытый ключ для этого сертификата и может содержать другие закрытые сертификаты. Дополнительные сведения см. в следующем параметре.
    PSE Введите среду безопасности SNC (PSE) в качестве двоичного файла в кодировке Base64.

    — PSE должен содержать закрытый ключ для сертификата клиента, где отпечаток соответствует открытому ключу сертификата клиента в параметре сертификата SNC.

    — Хотя psE может содержать несколько сертификатов клиента, чтобы использовать разные сертификаты клиента, создайте отдельные рабочие процессы.

    — Если для ресурса приложения логики уровня "Стандартный" используется несколько сертификатов клиента SNC, необходимо предоставить один и тот же PSE для всех подключений. PsE должен содержать соответствующий закрытый ключ для сертификата клиента для каждого и всех подключений. Необходимо задать параметр сертификата SNC, чтобы он соответствовал конкретному частному сертификату для каждого подключения.
  5. Чтобы завершить создание подключения, нажмите кнопку "Создать".

    Если параметры заданы правильно, создается подключение. Если возникнет проблема с параметрами, в диалоговом окне создания подключения появится сообщение об ошибке. Чтобы устранить проблемы с параметром подключения, можно использовать установку локального шлюза данных и локальные журналы шлюза.

Преобразование двоичного файла PSE в формат в кодировке Base64

  1. Используйте скрипт PowerShell, например:

    Param ([Parameter(Mandatory=$true)][string]$psePath, [string]$base64OutputPath)
    $base64String = [convert]::ToBase64String((Get-Content -path $psePath -Encoding byte))
    if ($base64OutputPath -eq $null)
    {
        Write-Output $base64String
    }
    else
    {
        Set-Content -Path $base64OutputPath -Value $base64String
        Write-Output "Output written to $base64OutputPath"
    } 
    
  2. Сохраните скрипт в виде файла pseConvert.ps1 , а затем вызовите скрипт, например:

    .\pseConvert.ps1 -psePath "C:\Temp\SECUDIR\request.pse" -base64OutputPath "connectionInput.txt"
    Output written to connectionInput.txt 
    

    Если параметр выходного пути не указан, выходные данные скрипта в консоль содержат разрывы строк. Удалите разрывы строк в строке в кодировке base 64 для входного параметра подключения.

Настройка и проверка отправки IDocs из SAP в рабочий процесс

Чтобы отправить IDocs из SAP в рабочий процесс приложения логики, выполните следующие действия, чтобы настроить и проверить конфигурацию SAP с помощью рабочего процесса приложения логики. Эти действия применяются только к тестированию, так как для рабочих сред требуется дополнительная настройка.

Чтобы отправить IDocs из SAP в рабочий процесс, вам потребуется следующая минимальная конфигурация:

  1. Создайте назначение RFC.
  2. Создайте подключение ABAP.
  3. Создание порта получения.
  4. Создание порта отправки.
  5. Создание партнера логической системы.
  6. Создание профиля партнера.
  7. Тестирование отправки сообщений.

Создание назначения RFC

Это назначение определяет рабочий процесс приложения логики как порт получателя.

  1. В SAP откройте параметры конфигурации подключений RFC. С префиксом /n можно использовать код транзакции sm59 (T-Code).

  2. Выберите TCP/IP Connections (Подключения TCP/IP)>Create (Создать).

  3. Создайте новое назначение RFC со следующими параметрами:

    1. В поле Назначения RFC введите имя.

    2. На вкладке Technical Settings (Технические параметры) в поле Activation Type (Тип активации) выберите Registered Server Program (Зарегистрированная серверная программа).

    3. Введите значение для идентификатора программы. На сервере SAP триггер рабочего процесса регистрируется с помощью этого идентификатора.

      Внимание

      Идентификатор программы SAP учитывает регистр. Убедитесь, что при настройке рабочего процесса и сервера SAP последовательно используется тот же формат регистра для идентификатора программы. В противном случае при попытке отправить IDoc в SAP могут возникать следующие ошибки в мониторе tRFC (T-Code SM58):

      • Функция IDOC_INBOUND_ASYNCHRONOUS не найдена
      • Не-ABAP клиент RFC (тип партнера) не поддерживается

      Дополнительные сведения о SAP см. в следующих примечаниях (обязательно имя для входа):

    4. На вкладке Unicode (Юникод) в качестве Communication Type with Target System (Тип связи с целевой системой)выберите Unicode.

      Примечание.

      Клиентские библиотеки .NET SAP поддерживают только кодировку символов Юникод. Если при отправке идентификатора IDoc из SAP в Azure Logic Apps не поддерживается клиент RFC, отличный от ABAP RFC (типа партнера), убедитесь, что для типа связи с целевой системой задано значение Юникода.

  4. Сохранение изменений.

  5. Зарегистрируйте новый идентификатор программы в Azure Logic Apps, создав рабочий процесс приложения логики, который начинается с управляемого триггера SAP с именем "При получении сообщения".

    Таким образом, при сохранении рабочего процесса Azure Logic Apps регистрирует идентификатор программы в шлюзе SAP.

  6. В журнале триггеров рабочего процесса журналы локального шлюза данных SAP Adapter, если это применимо, и журналы трассировки шлюза SAP, проверьте состояние регистрации.

    В окне монитора шлюза SAP (T-Code SMGW) в разделе "Вошедший в систему клиенты" новая регистрация отображается как зарегистрированный сервер.

  7. Чтобы проверить подключение, в разделе нового назначения RFC выберите "Тест подключения".

Создание подключения ABAP

Это назначение определяет систему SAP как порт отправителя.

  1. В SAP откройте параметры конфигурации подключений RFC. С префиксом /n можно использовать код транзакции sm59 (T-Code).

  2. Выберите ABAP Connections (Подключения ABAP)>Create (Создать).

  3. Для назначения RFC введите идентификатор тестовой системы SAP.

  4. В технических параметрах оставьте целевой узел пустым, чтобы создать локальное подключение к системе SAP.

  5. Сохранение изменений.

  6. Чтобы проверить подключение, нажмите кнопку Connection Test (Проверить подключение).

Создание порта отправителя

  1. В SAP откройте параметры обработки портов в IDOC. Код транзакции we21 (T-Code) можно использовать с префиксом /n.

  2. Выберите Ports (Порты)>Transactional RFC (Транзакционный RFC)>Create (Создать).

  3. В открывшемся окне параметров выберите собственное имя порта.

  4. В качестве тестового порта введите Имя, которое начинается с SAP. Сохранение изменений.

    Все имена портов отправителя должны начинаться с букв SAP, например SAPTEST.

  5. В параметрах для нового порта отправителя в поле RFC destination (Назначение RFC) введите идентификатор своего назначения ABAP.

  6. Сохранение изменений.

Создание порта получателя

  1. В SAP откройте параметры обработки портов в IDOC. Код транзакции we21 (T-Code) можно использовать с префиксом /n.

  2. Выберите Ports (Порты)>Transactional RFC (Транзакционный RFC)>Create (Создать).

  3. В открывшемся окне параметров выберите собственное имя порта. Введите Имя для своего тестового порта. Сохранение изменений.

  4. В параметрах для нового порта получателя в поле назначение RFC введите идентификатор своего тестового назначения RFC.

  5. Сохранение изменений.

Создание партнера логической системы

  1. В SAP откройте представление изменений "Логические системы": параметры обзора . Можно использовать код транзакции bd54 (T-Code).

  2. Примите следующее предупреждение, которое отображается: внимание: таблица является межсайтовой.

  3. Над списком, в котором показаны существующие логические системы, выберите New Entries (Новые записи).

  4. Для новой логической системы введите идентификатор Log.System и краткое описание Name (Имени). Сохранение изменений.

  5. Когда появится Запрос Workbench, создайте новый запрос, указав описание или, если вы уже создали запрос, пропустите этот шаг.

  6. После создания запроса Workbench, свяжите этот запрос с запросом на обновление таблицы. Чтобы убедиться, что таблица была обновлена, сохраните изменения.

Создание профилей партнеров

Для рабочих сред необходимо создать следующие два профиля партнеров:

  • Один профиль отправителя, который является вашей организацией и системой SAP.
  • Один профиль для получателя, который является ресурсом приложения логики и рабочим процессом.
  1. В SAP откройте параметры профилей партнеров. Код транзакции we20 (T-Code) можно использовать с префиксом /n.

  2. В разделе Partner Profiles (Профили партнеров)выберите Partner Type LS (Тип партнера LS)>Create (Создать).

  3. Создайте новый профиль партнера со следующими параметрами:

    Параметр Description
    Партнер No. Введите идентификатор партнера логической системы.
    Часть. Тип Введите LS.
    Агент Введите идентификатор учетной записи пользователя SAP, используемой при регистрации идентификаторов программы для Azure Logic Apps или других систем, отличных от SAP.
  4. Сохранение изменений.

    Если вы не создали логического партнера системы, вы получите ошибку, введите допустимый номер партнера.

  5. В параметрах профиля партнера в разделе Outbound parmtrs. (Исходящие парам.)выберите Create outbound parameter (Создать исходящий параметр).

  6. Создайте исходящий параметр, выполнив следующие действия:

  7. Сохранение изменений.

Тестирование отправки сообщений

  1. В SAP откройте средство тестирования для обработки IDoc. Код транзакции we19 (T-Code) можно использовать с префиксом /n.

  2. В разделе "Шаблон для тестирования" выберите "Через тип сообщения". Введите тип сообщения, например CREMAS. Нажмите кнопку создания.

  3. Ответьте утвердительно на сообщение Which IDoc type? (Какой тип iDoc?), выбрав Continue (Продолжить).

  4. Выберите узел EDIDC. Введите соответствующие значения для портов получения и отправки. Выберите Продолжить.

  5. Выберите Standard Outbound Processing (Стандартная обработку исходящих).

  6. Чтобы начать обработку исходящих IDoc, нажмите кнопку Продолжить.

    Когда средство завершит обработку, появится сообщение IDoc, отправленное в систему SAP или внешнее сообщение программы .

  7. Чтобы проверить ошибки обработки, используйте код транзакции sm58 (T-Code) с префиксом /n.

Создание рабочих процессов для распространенных сценариев SAP

Инструкции по созданию рабочих процессов для распространенных рабочих нагрузок интеграции SAP см. в следующих шагах:

Создание рабочих процессов для расширенных сценариев SAP

Поиск расширенных журналов ошибок (только управляемый соединитель)

Если вы используете управляемый соединитель SAP, вы можете найти полные сообщения об ошибках, проверив расширенные журналы адаптера SAP. Кроме того, можно включить расширенный файл журнала для соединителя SAP.

  • Для выпусков локального шлюза данных с апреля 2020 и более ранних версий журналы по умолчанию отключены.

  • Для выпусков локальных шлюзов данных начиная с июня 2020 и более поздних версий можно включить журналы шлюза в параметрах приложения.

    • Уровень ведения журнала по умолчанию — Предупреждение.

    • Если включить Дополнительное ведение журнала в параметрах диагностики для локального приложения шлюза данных, уровень ведения журнала будет увеличен до Информационного.

    • Чтобы поднять уровень ведения журнала до уровня Подробный, обновите следующий параметр в файле конфигурации. Файл конфигурации обычно расположен здесь: C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

      <setting name="SapTraceLevel" serializeAs="String">
         <value>Verbose</value>
      </setting>
      

Настройка расширенного ведения журнала SAP в локальном шлюзе данных (только управляемый соединитель)

При использовании локального шлюза данных для Azure Logic Apps можно настроить расширенный файл журнала для соединителя SAP. Локальный шлюз данных можно использовать для перенаправления событий трассировки событий Windows (ETW) в файлы журнала, включенные в ZIP-файлы журналов вашего шлюза.

Вы можете экспортировать все журналы конфигурации и служб шлюза в ZIP-файл из параметров приложения шлюза.

Примечание.

Расширенное ведение журнала может повлиять на производительность рабочего процесса, если всегда включена. Рекомендуем отключить расширенные файлы журнала после завершения анализа и устранения неполадок.

Запись событий ETW

В качестве необязательной задачи расширенного ведения журнала можно напрямую записывать события ETW, а затем использовать данные в Диагностика Azure в центрах событий или собирать данные в журналы Azure Monitor. Дополнительные сведения см. в рекомендациях по сбору и хранению данных.

Для работы с полученными файлами ETL можно использовать PerfView или написать собственную программу. В следующем пошаговом руководстве используется PerfView:

  1. В меню PerfView выберите Collect (Собрать)>Collect, чтобы записать события.

  2. В параметре дополнительного поставщика введите *Microsoft-LobAdapter , чтобы указать поставщика SAP для записи событий адаптера SAP. Если эти сведения не указаны, трассировка включает только общие события ETW.

  3. Оставьте все остальные параметры по умолчанию. Если вы хотите, можно изменить имя файла или расположение в параметре файла данных.

  4. Выберите Start Collection (Начать сбор), чтобы начать трассировку.

  5. После того как вы воспроизвели возникшую проблемой или собрали достаточно данных анализа, выберите пункт Stop Collection (Остановить сбор).

  6. Чтобы предоставить общий доступ к данным другим сторонам, скажем, инженерам службы поддержки Azure, необходимо сжать ETL-файл.

  7. Чтобы просмотреть содержимое трассировки, выполните следующие действия:

    1. В PerfView щелкните File (Файл)>Open (Открыть) и выберите только что созданный файл ETL.

    2. В боковой панели PerfView раздел Events (События) в ETL-файле.

    3. В разделе Фильтр выберите фильтрацию по Microsoft-LobAdapter, чтобы просмотреть только нужные события и процессы шлюза.

Тестирование рабочего процесса

В зависимости от того, есть ли рабочий процесс потребления в мультитенантных Azure Logic Apps или стандартный рабочий процесс в Azure Logic Apps с одним клиентом, выполните соответствующие действия.

  1. Если ресурс приложения логики потребления еще не включен, в меню приложения логики выберите "Обзор". На панели инструментов щелкните Включить.

  2. На панели инструментов конструктора нажмите кнопку "Запустить триггер">, чтобы вручную запустить рабочий процесс.

  3. Чтобы активировать рабочий процесс, отправьте сообщение из системы SAP.

  4. Вернитесь к области обзора приложения логики. В разделе " Журнал запусков" найдите все новые запуски для рабочего процесса.

  5. Откройте последний запуск, в котором показан ручной запуск. Найдите и просмотрите раздел выходных данных триггера.

Включение ведения журнала и трассировки клиентской библиотеки SAP (NCo) (только встроенный соединитель)

При изучении проблем с этим компонентом можно настроить трассировку NCo на основе пользовательского текстового файла, которую может запросить служба поддержки SAP или Майкрософт. По умолчанию эта возможность отключена, так как включение этой трассировки может негативно повлиять на производительность и быстро использовать дисковое пространство узла приложения.

Эту возможность трассировки можно контролировать на уровне приложения, добавив следующие параметры:

  1. На портале Azure откройте свой ресурс приложения логики категории "Стандартный".

  2. В меню приложения логики в разделе "Параметры" выберите переменные среды, чтобы просмотреть параметры приложения.

  3. На странице переменных среды на вкладке "Параметры приложения" добавьте следующие параметры приложения:

    • SAP_RFC_TRACE_DIRECTORY: каталог, в котором хранятся файлы трассировки NCo, например C:\home\LogFiles\NCo.

    • SAP_RFC_TRACE_LEVEL. Уровень трассировки NCo с level4 в качестве предлагаемого значения для типичного подробного ведения журнала. Служба поддержки SAP или Майкрософт может запросить другой уровень трассировки.

      Примечание.

      Для рабочих процессов приложения логики уровня "Стандартный", использующих среду выполнения версии 1.69.0 или более поздней, можно включить ведение журнала для нескольких уровней трассировки, разделив каждый уровень трассировки запятыми (,).

      Чтобы найти версию среды выполнения рабочего процесса, выполните следующие действия.

      1. В портал Azure в меню рабочего процесса выберите "Обзор".
      2. В разделе Essentials найдите свойство Версии среды выполнения.
    • SAP_CPIC_TRACE_LEVEL: общий уровень трассировки интерфейса программирования для обмена данными (CPI-C) с подробным значением в качестве рекомендуемого значения для типичного подробного ведения журнала. Служба поддержки SAP или Майкрософт может запросить другой уровень трассировки.

    Дополнительные сведения о добавлении параметров приложения см. в разделе "Изменение параметров узла и приложения" для рабочих процессов приложения логики "Стандартный".

  4. Сохранение изменений. Этот шаг перезапускает приложение.

Доступные уровни трассировки

Уровни трассировки NCo

значение Описание
Level1 Уровень трассировки удаленных вызовов функций.
Level2 Уровень трассировки удаленных вызовов функций и вызовов метода общедоступного API.
Level3 Уровень трассировки удаленных вызовов функций, вызовов методов общедоступного API и внутренних вызовов метода API.
Level4 Уровень трассировки удаленных вызовов функций, вызовов общедоступных методов API, вызовов внутреннего метода API, шестнадцатеричных дампов для протокола RFC и сведений, связанных с сетью.
Блокировка Записывает данные в файлы трассировки, показывающие, когда потоки запрашивают, получают и освобождают блокировки объектов.
Метаданные Трассирует метаданные, участвующие в вызове удаленной функции для каждого вызова.
нет Уровень подавления всех выходных данных трассировки.
ParameterData Трассирует данные контейнера, отправленные и полученные во время каждого удаленного вызова функции.
Производительность Записывает данные в файлы трассировки, которые могут помочь в анализе проблем с производительностью.
PublicAPI Трассирует большинство методов общедоступного API, за исключением методов получения, наборов или связанных методов.
InternalAPI Трассирует большинство методов внутреннего API, за исключением методов получения, наборов или связанных методов.
RemoteFunctionCall Трассировка удаленных вызовов функций.
RfcData Трассирует байты, отправленные и полученные во время каждого удаленного вызова функции.
SessionProvider Трассирует все методы используемой в настоящее время реализации ISessionProvider.
SetValue Записывает сведения в файлы трассировки, касающиеся значений, заданных для параметров функций, полей структур или таблиц.

Уровни трассировки CPIC

значение Описание
Выключено Ведение журнала не
Базовая Базовое ведение журнала
Подробный Подробное ведение журнала
VerboseWithData Подробное ведение журнала со всеми дампами ответа сервера

Просмотр трассировки

  1. В меню ресурсов приложения логики "Стандартный" в разделе "Средства разработки" выберите "Расширенные инструменты> Go".

  2. На панели инструментов Kudu выберите CMD консоли>отладки.

  3. Перейдите в папку для параметра приложения с именем $SAP_RFC_TRACE_DIRECTORY.

    Новая папка с именем NCo или любое имя используемой папки отображается для значения параметра приложения C :\home\LogFiles\NCo, заданного ранее.

  4. Откройте папку $SAP_RFC_TRACE_DIRECTORY , содержащую следующие файлы:

    • Журналы трассировки NCo: файл с именем dev_nco_rfc.log, один или несколько файлов с именем nco_rfc_NNNN.log и один или несколько файлов с именем nco_rfc_NNNN.trc,где NNNN является идентификатором потока.

    • Журналы трассировки CPIC: один или несколько файлов с именем nco_cpic_NNNN.trc-файлы , где NNNN является идентификатором потока.

  5. Чтобы просмотреть содержимое в файле журнала или трассировки, нажмите кнопку "Изменить " рядом с файлом.

    Примечание.

    Если вы скачиваете файл журнала или трассировки, открытый рабочим процессом приложения логики и в данный момент используется, скачивание может привести к пустому файлу.

Включение трассировки Common Crypto Library (CCL) SAP (только встроенный соединитель)

Если при использовании проверки подлинности SNC необходимо изучить какие-либо проблемы с библиотекой шифрования, можно настроить трассировку CCL на основе пользовательского текстового файла. Эти журналы CCL можно использовать для устранения проблем с проверкой подлинности SNC или совместного использования с поддержкой Майкрософт или SAP при необходимости. По умолчанию эта возможность отключена, так как включение этой трассировки может негативно повлиять на производительность и быстро использовать дисковое пространство узла приложения.

Эту возможность трассировки можно контролировать на уровне приложения, добавив следующие параметры:

  1. На портале Azure откройте свой ресурс приложения логики категории "Стандартный".

  2. В меню ресурсов приложения логики "Стандартный" в разделе "Средства разработки" выберите "Расширенные инструменты> Go".

  3. На панели инструментов Kudu выберите CMD консоли>отладки.

  4. Перейдите в папку C:\home\site\wwwroot и создайте текстовый файл, например CCLPROFILE.txt.

    Дополнительные сведения о параметрах ведения журнала см. в 2338952 трассировки> SAP NOTE. В следующем примере приведен пример конфигурации трассировки:

    ccl/trace/directory=C:\home\LogFiles\CCLLOGS
    ccl/trace/level=4
    ccl/trace/rotatefilesize=10000000
    ccl/trace/rotatefilenumber=10
    
  5. В меню приложения логики в разделе "Параметры" выберите переменные среды, чтобы просмотреть параметры приложения.

  6. На странице переменных среды на вкладке "Параметры приложения" добавьте следующий параметр приложения:

    CCL_PROFILE: каталог, в котором был создан CCLPROFILE.txt, например C:\home\site\wwwroot\CCLPROFILE.txt.

  7. Сохранение изменений. Этот шаг перезапускает приложение.

Просмотр трассировки

  1. В меню ресурсов приложения логики "Стандартный" в разделе "Средства разработки" выберите "Расширенные инструменты> Go".

  2. На панели инструментов Kudu выберите CMD консоли>отладки.

  3. Перейдите к папке для параметра $ccl/trace/directory , который находится в файле CCLPROFILE.txt .

    Обычно файлы трассировки называются sec-Microsoft.Azure.Work-$processId.trc и sec-sapgenpse.exe-$processId.trc.

    Рабочий процесс приложения логики выполняет проверку подлинности SNC в виде двухэтапного процесса:

    1. Рабочий процесс приложения логики вызывает sapgenpse.exe для создания cred_v2 файла из PSE-файла.

      Трассировки, связанные с этим шагом, можно найти в файле с именем sec-sapgenpse.exe-$processId.trc.

    2. Рабочий процесс приложения логики проходит проверку подлинности доступа к серверу SAP, используя созданный файл cred_v2 с помощью клиентской библиотеки SAP, вызывающей общую криптотеку.

      Трассировки, связанные с этим шагом, можно найти в файле с именем sec-Microsoft.Azure.Work-$processId.trc.

Отправка данных телеметрии SAP для локального шлюза данных в Azure Application Insights

С обновлением за август 2021 г. для локального шлюза данных операции соединителя SAP могут отправлять данные телеметрии из клиентской библиотеки SAP NCo и трассировки из адаптера Microsoft SAP в Application Insights, которая является возможностью в Azure Monitor. Эти данные телеметрии в основном включают в себя следующее:

  • метрики и трассировки на основе метрик и мониторов SAP NCo;

  • трассировки из Microsoft SAP Adapter;

Метрики и трассировки из клиентской библиотеки SAP NCo

Метрики на основе SAP NCo — это числовые значения, которые могут отличаться в течение определенного периода времени на основе использования и доступности ресурсов в локальном шлюзе данных. Эти метрики можно использовать для лучшего понимания работоспособности системы и создания оповещений о следующих действиях:

  • Снижение работоспособности системы.
  • необычные события;
  • Тяжелая системная нагрузка.

Эти сведения отправляются в таблицу Application Insights с именем customMetrics. По умолчанию метрики отправляются каждые 30 секунд.

Трассировки на основе SAP NCo включают текстовые сведения, используемые с метриками. Эти сведения отправляются в таблицу Application Insights с именем трассировки. По умолчанию трассировки отправляются каждые 10 минут.

Метрики и трассировки SAP NCo основаны на метриках SAP NCo, а именно на следующих классах NCo:

  • RfcDestinationMonitor;
  • RfcConnectionMonitor;
  • RfcServerMonitor;
  • RfcRepositoryMonitor.

Дополнительные сведения о метриках, которые предоставляет каждый класс, см. в документации по SAP NCo (обязательному входу).

Настройка телеметрии SAP для Application Insights

Прежде чем можно будет отправлять данные телеметрии SAP для установленного шлюза в Application Insights, необходимо создать и настроить ресурс Application Insights. Дополнительные сведения см. в следующей документации:

Чтобы включить отправку данных телеметрии SAP в Application Insights, выполните следующие действия.

  1. Скачайте пакет NuGet для Microsoft.ApplicationInsights.EventSourceListener.dll из этого расположения: https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0.

  2. Добавьте скачанный файл в локальный каталог установки шлюза данных, например C:\Program Files\Локальный шлюз данных.

  3. В каталоге установки локального шлюза данных убедитесь, что номер версии файла Microsoft.ApplicationInsights.dll совпадает с номером версии добавленного вами файла Microsoft.ApplicationInsights.EventSourceListener.dll. В настоящее время шлюз использует версию 2.14.0.

  4. В файл ApplicationInsights.config добавьте свой ключ инструментирования Application Insights, раскомментировав строку с элементом <InstrumentationKey></InstrumentationKey>. Замените заполнитель your-Application-Insights-instrumentation-key собственным ключом, например:

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsights schemaVersion="2014-05-30" xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
       <!-- Uncomment this element and insert your Application Insights key to receive ETW telemetry about your gateway <InstrumentationKey>*your-instrumentation-key-placeholder*</InstrumentationKey> -->
       <TelemetryModules>
          <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
             <IsHeartbeatEnabled>false</IsHeartbeatEnabled>
          </Add>
          <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
             <Sources>
                <Add Name="Microsoft-LobAdapter" Level="Verbose" />
             </Sources>
          </Add>
       </TelemetryModules>
    </ApplicationInsights>
    
  5. В файле ApplicationInsights.config можно изменить необходимые значения трассировки Level для операций соединителя SAP в соответствии со своими требованиями, например:

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
       <Sources>
          <Add Name="Microsoft-LobAdapter" Level="Verbose" />
       </Sources>
    </Add>
    

    Дополнительные сведения см. в следующей документации:

  6. После применения изменений перезапустите службу локального шлюза данных.

Просмотр метрик в Application Insights

После выполнения операций SAP в рабочем процессе приложения логики можно просмотреть данные телеметрии, отправленные в Application Insights.

  1. На портале Azure откройте свой Application Insights ресурс.

  2. В меню ресурса в разделе Мониторинг щелкните Журналы.

    На следующем снимке экрана показан портал Azure с открытой областью Журналы Application Insights:

    Снимок экрана: портал Azure с application Insights, открытой на панели

  3. В области Журналы можно с помощью языка запросов KQL создать запрос, соответствующий вашим требованиям.

    Можно использовать шаблон запроса, аналогичный приведенному в следующем примере:

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | extend MetricType = tostring(customDimensions["MetricType"])
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    
  4. После выполнения запроса проверьте его результаты.

    На следующем снимке экрана показан пример таблицы результатов метрик для запроса:

    Снимок экрана: Application Insights с таблицей результатов метрик.

    • MaxUsedCount — это "максимальное количество клиентских подключений, которые одновременно использовались отслеживаемым назначением", как указано в документации SAP NCo (требуется вход). Это значение можно использовать, чтобы узнать количество одновременно открытых подключений.

    • Столбец valueCount отображает 2 для каждого чтения, так как метрики создаются через 30 секунд. Application Insights объединяет эти метрики на минуту.

    • Столбец DestinationName содержит строку символов, которая является внутренним именем Microsoft SAP Adapter.

      Чтобы лучше понять назначение этого удаленного вызова функции (RFC), используйте это значение с traces, например:

      customMetrics
      | extend DestinationName = tostring(customDimensions["DestinationName"])
      | join kind=inner (traces
         | extend DestinationName = tostring(customDimensions["DestinationName"]),
         AppServerHost = tostring(customDimensions["AppServerHost"]),
         SncMode = tostring(customDimensions["SncMode"]),
         SapClient = tostring(customDimensions["Client"])
         | where customDimensions contains "RfcDestinationMonitor"
         )
         on DestinationName , $left.DestinationName == $right.DestinationName
      | where customDimensions contains "RfcDestinationMonitor"
      | where name contains "MaxUsedCount"
      | project AppServerHost, SncMode, SapClient, name, valueCount, valueSum, valueMin, valueMax
      

Вы можете также создавать диаграммы метрик или оповещения, используя эти возможности в Application Insights, например:

Снимок экрана: Application Insights с результатами в формате диаграммы.

Трассировки из Microsoft SAP Adapter

Вы можете использовать трассировки из Microsoft SAP Adapter для выдачи результатов анализа и поиска внутренних системных ошибок, которые могут быть или не быть следствием операций соединителя SAP. Для этих трассировок message имеет значение "n\a", так как они поступают из более ранней платформы источников событий, которая предшествует Application Insights, например:

traces
| where message == "n/a"
| where severityLevel > 0
| extend ActivityId = tostring(customDimensions["ActivityId"])
| extend fullMessage = tostring(customDimensions["fullMessage"])
| extend shortMessage = tostring(customDimensions["shortMessage"])
| where ActivityId contains "8ad5952b-371e-4d80-b355-34e28df9b5d1"

На следующем снимке экрана показан пример таблицы результатов трассировок для запроса:

Снимок экрана: Application Insights с таблицей результатов трассировки.

Следующие шаги