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
对于单租户 Azure 逻辑应用中的标准工作流,请使用预览版 SAP 内置连接器直接访问受 Azure 虚拟网络保护的资源。 还可以使用其他内置连接器,使工作流直接访问本地资源,而无需使用本地数据网关。
若要使用 SAP 连接器,需要下载以下文件,并读取这些文件以上传到标准逻辑应用资源中。 有关详细信息,请参阅 SAP NCo 客户端库先决条件:
libicudecnumber.dll
rscp4n.dll
sapnco.dll
sapnco_utils.dll
若要从 SAP 进行 SNC,需要下载以下文件,并准备好将其上传到逻辑应用资源。 有关详细信息,请参阅 SNC 先决条件:
sapcrypto.dll
sapgenpse.exe
slcryptokernal.dll
将程序集上传到 Azure 门户
在 Azure 门户中,打开你的标准逻辑应用资源。
在逻辑应用菜单的“工作流”下,选择“程序集”。
在“程序集”窗格工具栏上,选择“添加”。
“添加程序集”窗格打开后,为“程序集类型”选择“客户端/SDK 程序集(.NET Framework)。
在“上传文件”下,添加上文所述已下载的必需文件:
SAP NCo
libicudecnumber.dll
rscp4n.dll
sapnco.dll
sapnco_utils.dll
CommonCryptoLib
sapcrypto.dll
sapgenpse.exe
slcryptokernal.dll
准备就绪后,选择“上传文件”。
如果程序集文件为 4 MB 或更小,则可以浏览并选择或拖放文件。 对于大于 4 MB 的文件,请执行以下步骤:
在逻辑应用菜单上的“开发工具”下,选择“高级工具”。
在“高级工具”页中,选择“Go”。
在“Kudu”工具栏上,打开“调试控制台”菜单,然后选择“CMD”。
打开以下文件夹:site>wwwroot
在文件夹结构工具栏上,选择加号 (+),然后选择“新建文件夹”。
创建以下文件夹和子文件夹:lib>builtinOperationSdks>net472
在 net472 文件夹中,上传大于 4 MB 的程序集文件。
SAP 触发器要求
Azure 门户中提供了名为“为触发器注册 SAP RFC 服务器”的预览版 SAP 内置连接器触发器,但在 Azure 中部署时,触发器当前无法接收来自 SAP 的调用。 若要触发触发器,可以在 Visual Studio Code 本地运行工作流。 有关 Visual Studio Code 的设置要求和详细信息,请参阅使用 Visual Studio Code 在单租户 Azure 逻辑应用中创建标准逻辑应用工作流。 还必须在安装 Visual Studio Code 的计算机上设置以下环境变量:
WEBSITE_PRIVATE_IP:将此环境变量值设置为 127.0.0.1 作为 localhost 地址。
WEBSITE_PRIVATE_PORTS:将此环境变量值设置为本地计算机上的两个空闲可用端口,用逗号 (,) 分隔这两个值,例如 8080,8088。
对于 ISE 中的消耗工作流,ISE 提供对受 Azure 虚拟网络保护的资源的访问权限,并提供其他 ISE 本机连接器,这些连接器让工作流无需使用本地数据网关即可直接访问本地资源。
ISE 资源将于 2024 年 8 月 31 日停用,因为它依赖于同时停用的 Azure 云服务(经典)。 请在停用日期之前将 ISE 中的任何逻辑应用导出到标准逻辑应用,以避免服务中断。 标准逻辑应用工作流在单租户 Azure 逻辑应用中运行,提供相同的功能以及其他内容。
从 2022 年 11 月 1 日开始,你无法再创建新的 ISE 资源。 但是,我们仍会为在此日期之前存在的 ISE 资源提供支持,一直到 2024 年 8 月 31 日为止。 有关更多信息,请参见以下资源:
ISE 停用 - 你需要了解的内容
适用于 Azure 逻辑应用的单租户与多租户和集成服务环境的比较情况
Azure 逻辑应用定价
将 ISE 工作流导出到标准逻辑应用
集成服务环境将于 2024 年 8 月 31 日停用 - 过渡到逻辑应用标准版
云服务(经典)部署模型将于 2024 年 8 月 31 日停用
如果还没有带有 blob 容器的 Azure 存储帐户,请使用 Azure 门户或 Azure 存储资源管理器创建一个容器。
在本地计算机上下载并安装最新的 SAP NCo 客户端库。 你应该有以下程序集 (.dll) 文件:
libicudecnumber.dll
rscp4n.dll
sapnco.dll
sapnco_utils.dll
在根文件夹中,创建一个包含这些程序集文件的 .zip 文件。 将包上传到 Azure 存储中的 blob 容器。
不要在 .zip 文件中使用子文件夹。 只有存档根文件夹中的程序集与 ISE 中的 SAP 连接器一起部署。
如果你使用 SNC,还需要将 SNC 程序集和二进制文件包含在同一 .zip 文件的根目录中。
有关详细信息,请查看 ISE 的 SNC 先决条件。
在 Azure 门户或 Azure 存储资源管理器中,浏览到上传 .zip 文件的容器位置。
复制容器位置的 URL。 请确保包含共享访问签名 (SAS) 令牌,以便对 SAS 令牌进行授权。 否则,SAP ISE 连接器的部署将失败。
在 ISE 中安装并部署 SAP 连接器。 有关详细信息,请参阅添加 ISE 连接器。
在 Azure 门户中,找到并打开 ISE。
在 ISE 菜单上,选择“托管连接器”>“添加”。 在连接器列表中,找到并选择“SAP”。
在“添加新的托管连接器”窗格的“SAP 包”框中,粘贴包含 SAP 程序集的 .zip 文件的 URL 。 同样,请确保包含 SAS 令牌。
选择“创建”以完成创建 ISE 连接器。
如果 SAP 实例和 ISE 位于不同的虚拟网络中,还需要将这些网络对等互连,以便它们连接在一起。 查看 ISE 的 SNC 先决条件。
获取从工作流连接时计划要使用的 SAP 应用程序、消息和网关服务器的 IP 地址。 网络名称解析不适用于 ISE 中的 SAP 连接。
获取从工作流连接时计划要使用的 SAP 应用程序、消息和网关服务器的端口号。 服务名称解析不适用于 ISE 中的 SAP 连接。
对于在多租户 Azure 逻辑应用中运行的消耗工作流,可以启用 SNC 进行身份验证,此操作仅适用于使用数据网关时。 在开始之前,请确保满足所有必要的先决条件和 SNC 先决条件。
在 Azure 门户中,打开设计器中的消耗型逻辑应用和工作流。
添加或编辑 SAP 托管连接器操作。
在 SAP 连接信息框中,提供以下必需的信息。 选择的“身份验证类型”会更改可用选项。
“SAP 用户名”和“SAP 密码”字段均为可选。 如果未提供用户名和密码,连接器将使用稍后步骤中提供的客户端证书进行身份验证。
若要启用 SNC,在 SAP 连接信息框中,提供以下必需的信息:
SNC 库
输入以下值之一:
- SNC 库的名称,例如 sapsnc.dll
- NCo 安装位置的相对路径,例如 .\security\sapsnc.dll
- NCo 安装位置的绝对路径,例如 c:\security\sapsnc.dll
SNC SSO
选择“使用 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) 必须包含此证书的匹配私钥,并且可能包含其他私有证书。 有关详细信息,请查看下一个参数。
输入 SNC 个人安全环境 (PSE) 作为 base64 编码的二进制文件。
- PSE 必须包含客户端证书的私钥,其中指纹与“SNC 证书”参数中的客户端证书的公钥相匹配。
- 尽管 PSE 可能包含多个客户端证书,但若要使用不同的客户端证书,请改为创建单独的工作流。
- 如果为标准逻辑应用资源使用多个 SNC 客户端证书,则必须为所有连接提供相同的 PSE。 PSE 必须包含每个和所有连接的客户端证书的匹配私钥。 必须将“SNC 证书”参数设置为与每个连接的特定私有证书相匹配。
对于在单租户 Azure 逻辑应用中运行的标准工作流,可以启用 SNC 进行身份验证。 在开始之前,请确保满足所有必要的先决条件和单租户的 SNC 先决条件。
在 Azure 门户中,打开你的标准逻辑应用资源。
若要指定 SNC 个人安全环境 (PSE) 和 PSE 密码,请执行以下步骤:
在逻辑应用资源菜单中的“设置”下,选择“配置” 。
在“应用程序设置”选项卡上,检查名为 SAP_PSE 和 SAP__PSE_Password 的设置是否已存在。 如果设置不存在,则必须添加这两个设置。 若要添加新设置,请选择“新应用程序设置”,提供以下必需的信息,然后为每个设置选择“确定”:
SAP_PSE
<PSE-value>
输入 SNC 个人安全环境 (PSE) 作为 base64 编码的二进制文件。
- PSE 必须包含客户端证书的私钥,其中指纹与“SNC 证书”参数中的客户端证书的公钥相匹配。
- 尽管 PSE 可能包含多个客户端证书,但若要使用不同的客户端证书,请改为创建单独的工作流。
- PSE 不得具有 PIN。 如果必要,使用 SAPGENPSE 实用工具将 PIN 设置为空。
- 如果为 ISE 使用多个 SNC 客户端证书,则必须为所有连接提供相同的 PSE。 PSE 必须包含每个和所有连接的客户端证书的匹配私钥。 必须将“SNC 证书”设置为与每个连接的特定私有证书相匹配。
SAP_PSE_Password
<PSE-password>
PSE 的密码(也称为 PIN)
对于在 ISE 中运行的消耗工作流,可以启用 SNC 进行身份验证。 在开始之前,请确保满足所有必要的先决条件和 ISE 的 SNC 先决条件。
在 Azure 门户的设计器中,打开你的 ISE 资源和逻辑应用工作流。
添加或编辑 ISE 版本控制 SAP 连接器操作。 确保 SAP 连接器操作显示“ISE”标签。
在 SAP 连接信息框中,提供以下必需的信息。 选择的“身份验证类型”会更改可用选项。
“SAP 用户名”和“SAP 密码”字段均为可选。 如果未提供用户名和密码,连接器将使用稍后步骤中提供的客户端证书进行身份验证。
若要启用 SNC,在 SAP 连接信息框中,提供以下必需的信息:
SNC 证书
按照以下指南输入 base64 编码格式的 SNC 客户端公共证书:
- 请勿包含 PEM 页眉或页脚。
- 请勿在此处输入专用证书,因为个人安全环境 (PSE) 可能包含多个专用证书。 但是,此“SNC 证书”参数标识此连接必须使用的证书。 有关详细信息,请查看下一个参数。
(PSE) 个人安全环境
按照以下指南输入 SNC PSE 作为 base64 编码的二进制文件:
- PSE 必须包含专用客户端证书,该证书的指纹与上一步中提供的公共客户端证书匹配。
- 尽管 PSE 可能包含多个客户端证书。 若要使用不同的客户端证书,请改为创建单独的工作流应用。
- PSE 不得具有 PIN。 如果必要,使用 SAPGENPSE 实用工具将 PIN 设置为空。
- 如果为 ISE 使用多个 SNC 客户端证书,则必须为所有连接提供相同的 PSE。 PSE 必须包含所有连接的客户端专用证书。 必须将客户端公共证书参数设置为与 ISE 中使用的每个连接的特定专用证书相匹配。
使用 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
Set-Content -Path $base64OutputPath -Value $base64String
Write-Output "Output written to $base64OutputPath"
将脚本保存为 pseConvert.ps1 文件,然后调用该脚本,例如:
.\pseConvert.ps1 -psePath "C:\Temp\SECUDIR\request.pse" -base64OutputPath "connectionInput.txt"
Output written to connectionInput.txt
如果未提供输出路径参数,则脚本到控制台的输出将包含换行符。 删除连接输入参数的 base 64 编码字符串的换行符。
设置并测试将 IDoc 从 SAP 发送到工作流
仅当使用逻辑应用工作流测试 SAP 配置时,才按照这些步骤操作。 生产环境需要其他配置。
若要将 IDoc 从 SAP 发送到工作流,需要满足以下最低配置:
创建 RFC 目标。
创建 ABAP 连接。
创建接收方端口。
创建发送方端口。
创建逻辑系统合作伙伴。
创建合作伙伴配置文件。
测试发送消息。
创建 RFC 目标
此目标将逻辑应用工作流标识为接收方端口。
在 SAP 中,打开“RFC 连接配置”设置。 可以使用带有 /n 前缀的 sm59 事务代码 (T-Code)。
选择“TCP/IP 连接”“创建”。
使用以下设置创建新 RFC 目标:
为“RFC 目标”输入名称。
在“技术设置”选项卡上,对于“激活类型”,选择“注册服务器程序” 。
为“程序 ID”输入一个值。 在 SAP 服务器中,使用此标识符来注册工作流的触发器。
SAP“程序 ID”区分大小写。 配置工作流和 SAP 服务器时,请确保“程序 ID”始终使用相同的大小写格式。 否则,当你尝试将 IDoc 发送到 SAP 时,可能会在 tRFC 监视器 (T-Code SM58) 中收到以下错误:
找不到函数 IDOC_INBOUND_ASYNCHRONOUS
不支持非 ABAP RFC 客户端(合作伙伴类型)
有关 SAP 的详细信息,请参阅以下说明(需要登录):
https://launchpad.support.sap.com/#/notes/2399329
https://launchpad.support.sap.com/#/notes/353597
在“Unicode”选项卡上,对于“与目标系统的通信类型”,选择“Unicode” 。
SAP .NET 客户端库仅支持 Unicode 字符编码。 如果在将 IDoc 从 SAP 发送到 Azure 逻辑应用时出现错误“不支持非 ABAP RFC 客户端(合作伙伴类型)”,请检查“与目标系统的通信类型”值是否设置为“Unicode”。
创建一个以名为“收到消息时”的 SAP 托管触发器启动的逻辑应用工作流,使用 Azure 逻辑应用注册新的“程序 ID”。
这样一来,保存工作流时,Azure 逻辑应用就会在 SAP 网关上注册“程序 ID”。
在工作流的触发器历史记录、本地数据网关 SAP 适配器日志(如适用)和 SAP 网关跟踪日志中检查注册状态。
在 SAP 网关监视器对话框 (T-Code SMGW) 中,在“已登录客户端”下,新注册显示为“已注册的服务器”。
若要测试连接,请在新“RFC 目标”下,选择“连接测试”。
创建 ABAP 连接
此目标将 SAP 系统标识为发送方端口。
在 SAP 中,打开“RFC 连接配置”设置。 可以使用带有 /n 前缀的 sm59 事务代码 (T-Code)。
选择“ABAP 连接”“创建”。
对于“RFC 目标”,输入测试 SAP 系统的标识符。
在“技术设置”中,将目标主机留空以创建与 SAP 系统的本地连接。
保存所做更改。
若要测试你的连接,请选择“连接测试”。
创建接收方端口
在 SAP 中,打开“IDOC 处理中的端口”设置。 可以使用带有 /n 前缀的 we21 事务代码 (T-Code)。
选择“端口”事务 RFC”“创建”。
在打开的设置框中,选择“自己的端口名”。 为测试端口输入一个名称。 保存更改。
在新接收方端口的设置中,对于“RFC 目标”,输入测试 RFC 目标的标识符。
保存更改。
创建发送方端口
在 SAP 中,打开“IDOC 处理中的端口”设置。 可以使用带有 /n 前缀的 we21 事务代码 (T-Code)。
选择“端口”事务 RFC”“创建”。
在打开的设置框中,选择“自己的端口名”。
对于测试端口,输入以 SAP 开头的名称 。 保存所做更改。
所有发送方端口名称必须以字母 SAP 开头,例如 SAPTEST 。
在新的发送方端口的设置中,对于 RFC 目标,输入 ABAP 连接的标识符。
保存更改。
创建逻辑系统合作伙伴
在 SAP 中,打开“更改视图“逻辑系统”: 概览”设置。 可以使用 bd54 事务代码 (T-Code)。
接受出现的以下警告消息:“注意: 该表是跨客户端的”
在显示现有逻辑系统的列表上方,选择“新条目”。
对于新的逻辑系统,请输入 Log.System 标识符和简短的名称描述 。 保存更改。
出现“工作台提示”时,通过提供描述来创建新请求,或者如果已经创建了请求,则跳过此步骤。
创建工作台请求后,将该请求链接到表更新请求。 若要确认表已更新,请保存所做的更改。
创建合作伙伴配置文件
对于生产环境,必须创建两个合作伙伴配置文件。 第一个配置文件用于发送方,即你的组织和 SAP 系统。 第二个配置文件用于接收方,即逻辑应用资源和工作流。
在 SAP 中,打开“合作伙伴配置文件”设置。 可以使用带有 /n 前缀的 we20 事务代码 (T-Code)。
在“合作伙伴配置文件”下,选择“合作伙伴类型 LS”“创建”。
使用以下设置创建新合作伙伴配置文件:
在 SAP 中,打开“IDoc 处理的测试工具”设置。 可以使用带有 /n 前缀的 we19 事务代码 (T-Code)。
在“测试模板”下,选择“通过消息类型”。 输入消息类型,例如 CREMAS。 选择“创建”。
对于消息“哪个 IDoc 类型?”,通过选择“继续”进行确认 。
选择“EDIDC”节点。 为接收方和发送方端口输入合适的值。 选择“继续”。
选择“标准出站处理”。
要启动出站 IDoc 处理,请选择“继续”。
当工具处理完以后,将显示“IDoc 已发送到 SAP 系统或外部程序”消息。
要检查是否存在处理错误,请使用前缀为“/n”的“sm58”事务代码 (T-Code)。
为常见 SAP 方案创建工作流
有关为常见 SAP 集成工作负载创建工作流的操作指南,请参阅以下步骤:
从 SAP 接收消息
从 SAP 接收 IDoc 数据包
向 SAP 发送 IDoc
为 SAP 中的项目生成架构
为高级 SAP 方案创建工作流
更改用于将数据发送到 SAP 的语言标头
单独确认事务并避免重复 IDoc
查找扩展错误日志(仅托管连接器)
如果使用 SAP 托管连接器,可以通过检查 SAP 适配器的扩展日志来查找完整的错误消息。 你还可以为 SAP 连接器启用扩展日志文件。
对于 2020 年 4 月或更早发布的本地数据网关,默认情况下禁用日志。
对于 2020 年 6 月及之后发布的本地数据网关,你可以在应用设置中启用网关日志。
默认的日志记录级别为“警告”。
如果在本地数据网关应用的“诊断”设置中启用了“附加日志记录”,则日志记录级别将提升至“信息”。
要将日志记录级别提升至“详细”,请在配置文件中更新以下设置。 通常,配置文件位于 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 逻辑应用使用本地数据网关,则可以为 SAP 连接器配置扩展日志文件。 你可以使用本地数据网关将 Windows 事件跟踪 (ETW) 事件重定向到包含在网关的日志记录 zip 文件中的轮换日志文件中。
你可以将网关的所有配置和服务日志从网关应用的设置导出到 .zip 文件中。
扩展日志记录处于始终启用状态时,可能会影响工作流的性能。 最佳做法是在完成问题分析和故障排除后关闭扩展日志文件。
捕获 ETW 事件
作为可选的高级日志记录任务,可以直接捕获 ETW 事件,然后在事件中心 Azure 诊断中使用数据,或者将数据收集到 Azure Monitor 日志。 有关详细信息,请参阅收集和存储数据的最佳做法。
若要处理生成的 ETL 文件,可以使用 PerfView,也可以编写自己的程序。 以下演练使用 PerfView:
在 PerfView 菜单中,选择“收集”“收集”以捕获事件。
在“其他提供程序”参数中,输入 *Microsoft-LobAdapter
以指定用于捕获 SAP 适配器事件的 SAP 提供程序。 如果未指定此信息,则跟踪只包含常规 ETW 事件。
保留其他默认设置。 如果需要,可以在“数据文件”参数中更改文件名或位置。
选择“开始收集”以开始跟踪。
重现问题或收集足够的分析数据后,请选择“停止收集”。
若要与另一方(如 Azure 支持工程师)共享你的数据,请压缩 ETL 文件。
查看跟踪的内容:
在 PerfView 中,选择“文件”“打开”,然后选择刚刚生成的 ETL 文件。
在 PerfView 侧栏中,ETL 文件下的“事件”部分。
在“筛选器”下,按 筛选以仅查看相关事件和网关进程。
如果你的标准逻辑应用资源已停止或禁用,请从工作流转到逻辑应用资源级别,然后选择“概览”。 在工具栏上选择“启动”。
返回到工作流级别。 在工作流菜单上,选择“概述”。 在工具栏上选择“运行”>“运行”以手动启动工作流。
若要触发工作流,请从 SAP 系统发送一条消息。
返回到工作流的“概览”窗格。 在“运行历史记录”下,查找工作流是否有任何新运行。
打开最近的运行,其中显示了手动运行。 查找并查看触发器输出部分。
将本地数据网关的 SAP 遥测发送到 Azure Application Insights
本地数据网关进行 2021 年 8 月更新之后,SAP 连接器操作可以将来自 SAP NCo 客户端库的遥测数据和来自 Microsoft SAP 适配器的跟踪发送到 Azure Monitor 中的 Application Insights 功能。 该遥测主要包含以下数据:
基于 SAP NCo 指标和监视器的指标和跟踪。
来自 Microsoft SAP 适配器的跟踪。
来自 SAP NCo 客户端库的指标和跟踪
指标是根据本地数据网关上资源的使用情况和可用性,在一段时间内可能会变化,也可能不会变化的数值。 这些指标可用于更好地了解系统运行状况并创建有关以下活动的警报:
系统健康状况下降。
异常事件。
系统负载过高。
此信息将发送到名为 customMetrics 的 Application Insights 表。 默认情况下,每隔 30 秒发送一次指标。
SAP NCo 指标和跟踪基于 SAP NCo 指标,特别是以下 NCo 类:
RfcDestinationMonitor。
RfcConnectionMonitor。
RfcServerMonitor。
RfcRepositoryMonitor。
有关每个类提供的指标的详细信息,请查看 SAP NCo 文档(需要登录)。
跟踪包含与指标一起使用的文本信息。 此信息将发送到名为 traces 的 Application Insights 表。 默认情况下,每隔 10 分钟发送一次跟踪。
为 Application Insights 设置 SAP 遥测
需要先创建并设置 Application Insights 资源,然后才能将网关安装的 SAP 遥测发送到 Application Insights。 有关详细信息,请查看以下文档:
创建 Application Insights 资源(经典)
基于工作区的 Application Insights 资源
若要实现将 SAP 遥测发送到 Application Insights,请执行以下步骤:
从以下位置下载 Microsoft.ApplicationInsights.EventSourceListener.dll 的 NuGet 包:。
将下载的文件添加到本地数据网关安装目录,例如“C:\Program Files\On-Premises Data Gateway”。
在本地数据网关安装目录中,检查 Microsoft.ApplicationInsights.dll 文件是否与添加的 Microsoft.ApplicationInsights.EventSourceListener.dll 文件具有相同的版本号 。 该网关当前使用版本 2.14.0。
在 ApplicationInsights.config 文件中,通过取消注释带有 元素的行来添加 Application Insights 检测密钥。 将占位符 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 Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
<Sources>
<Add Name="Microsoft-LobAdapter" Level="Verbose" />
</Sources>
</TelemetryModules>
</ApplicationInsights>
在 ApplicationInsights.config 文件中,可以根据要求更改 SAP 连接器操作所需的跟踪 值,例如:
<Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
<Sources>
<Add Name="Microsoft-LobAdapter" Level="Verbose" />
</Sources>
有关详细信息,请查看以下文档:
Level
值:Level
EventSource 跟踪
EventSource 事件
应用所做的更改后,重启本地数据网关服务。
在 Application Insights 中查看指标
在逻辑应用工作流中运行 SAP 操作后,可以查看发送到 Application Insights 的遥测。
在 Azure 门户中,打开 Application Insights 资源。
在资源菜单的“监视”下,选择“日志” 。
以下屏幕截图显示 Azure 门户中打开“日志”窗格的 Application Insights:
在“日志”窗格中,可以使用基于特定要求的 Kusto 查询语言 (KQL) 创建查询。
可以使用类似于以下示例查询的查询模式:
customMetrics
| extend DestinationName = tostring(customDimensions["DestinationName"])
| extend MetricType = tostring(customDimensions["MetricType"])
| where customDimensions contains "RfcDestinationMonitor"
| where name contains "MaxUsedCount"
运行查询后,查看结果。
以下屏幕截图显示示例查询的指标结果表:
MaxUsedCount 是“受监视目标同时使用的最大客户端连接数”,如 SAP NCo 文档(需要登录)中所述。 可以使用该值来了解同时打开的连接数。
“valueCount”列的每个读数显示为“2”,因为指标每隔 30 秒生成。 Application Insights 每分钟聚合一次这些指标。
DestinationName 列包含一个字符串,该字符串是 Microsoft SAP 适配器的内部名称。
为了更好地了解此远程函数调用 (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
来自 Microsoft SAP 适配器的跟踪
可以使用从 Microsoft SAP 适配器发送的跟踪来进行问题后分析,并查找任何现有的内部系统错误,这些错误可能会在 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"
以下屏幕截图显示示例查询的跟踪结果表:
为常见 SAP 方案创建示例工作流