SAP IDoc 端口

Version 24.2.9039


SAP IDoc 端口


SAP IDoc 端口支持向各种 SAP 系统发送和接收 IDoc 文件。 它是一个数据容器,用于在 SAP 和另一个能够理解数据语法和语义的进程之间交换信息。

IDoc 端口可以使用以下方法连接到 SAP:

Windows

  • NetWeaver RFC SDK
  • Classic RFC SDK
  • 支持 Unicode 的 Classic RFC SDK
  • SOAP (仅支持发送)

Java

  • Java Connector (JCO)
  • SOAP (仅支持发送)

IDoc 端口支持收发原始 IDoc 或 IDoc XML 文件。

先决条件

如果在 发送接收 模式下使用 SAP IDoc 端口,则必须拥有一个实时 SAP IDoc 系统,并且从知行之桥到该系统有一条清晰的网络路径。还需要在机器上安装必要的依赖项。请按照以下说明选择连接类型。

注意:如果在 转换 模式下使用端口,则不需要这些先决条件。

使用 NetWeaver RFC SDK

NetWeaver RFC SDK 中的以下库必须放入知行之桥 www\bin\x64 文件夹(在 32 位操作系统上为 www\bin\x86):

  • sapnwrfc.dll
  • icudt30.dll
  • icuin30.dll
  • icuuc30.dll
  • libicudecnumber.dll
  • libsapucum.dll

注意

  • 根据安装的 SAP RFC SDK 的版本,.dll 名称可能会有所不同。 上面的例子适用于 3.0 版本。

  • 需要将“sapgw00”服务添加到列出的服务中,以便 NetWeaver SDK 连接在客户端计算机上工作。 可以将其添加到位于“C:\Windows\System32\drivers\etc\services”的服务文件中。

使用 Classic RFC SDK

非 Unicode 库不需要 librfc32.dll 以外的任何内容。 将 librfc32.dll 放入知行之桥 www\bin\x64 文件夹(在 32 位操作系统上为 www\bin\x86)。

注意:这些库在 x86 和 x64 中均提供,因此必须使用与进程所使用的平台相同的平台。 如果应用程序在 64 位版本的 Windows 上运行,则该进程是 64 位的。

使用支持 Unicode 的 Classic RFC SDK

SAP RFC SDK 中的以下库必须放入知行之桥 www\bin\x64 文件夹(在 32 位操作系统上为 www\bin\x86):

  • librfc32u.dll
  • icudt30.dll
  • icuin30.dll
  • icuuc30.dll

注意

  • 根据安装的 SAP RFC SDK 的版本,.dll 名称可能会有所不同。 上面的例子适用于 3.0 版本。

  • 这些库在 x86 和 x64 中提供,因此必须使用与进程所使用的平台相同的平台。 如果应用程序在 64 位版本的 Windows 上运行,则该进程是 64 位的。

使用 Java Connector

要使用 Java 端口,请将 sapjco3.jar 添加到 Java servlet 容器的“lib”文件夹中。

使用 SOAP

SOAP 只能用于“发送”IDoc 到 SAP。 必须使用不同的连接类型才能从 SAP“接收”IDoc。

注意:这需要在 SAP 系统上启用 SOAP 连接。

创建连接

要允许知行之桥发送或接收 SAP 数据,必须首先建立与 SAP 的连接。有两种方法可以建立此连接:

  • 将 SAP IDoc 端口添加到工作流。然后,在 设置 选项卡中,单击连接下拉列表旁边的 创建
  • 打开知行之桥设置 页面,然后打开 连接 选项卡。单击 添加,选择 SAP IDoc,然后单击 下一步

注意

  • 仅在首次创建连接时才需要登录过程。
  • 可在多个 SAP IDoc 端口中重复使用与 SAP IDoc 的连接。

输入连接配置

打开新的连接对话框后,为其指定一个名称,然后完成其他选项。

主机设置

建立 SAP 连接相关的设置。

  • 连接类型 连接到 SAP 的方法。 请参阅建立连接,了解更多信息
  • SAP 主机 目标 SAP 系统的主机名或 IP 地址。
  • 系统编号 用于定义目标 SAP 系统的编号。有效值为 0-99,通常设为 0。

客户端身份验证

与建立 SAP 系统连接相关的设置。

  • 客户端 对 SAP 系统进行身份验证的客户端。
  • 用户 用于身份验证的用户名凭据。
  • 密码 指定用户的密码。

语言设置

有关语言的设置。

  • 语言 连接到 SAP 系统时要使用的语言。对于 SAP 系统使用的语言,此值应设置为 ISO 639-1。

网关

关于通过网关与 SAP 通信的设置。

  • 网关主机 要连接网关的主机名或 IP 地址。
  • 网关服务 要使用的网关服务。

登录负载均衡

关于以分组方式登录 SAP 系统并启用负载均衡的设置。

  • 消息服务器 负载均衡服务器名称。
  • 系统 ID SAP 系统 ID。
  • 登录组 负载平衡时要使用的组。

网络通信安全(SNC)

关于使用外部安全产品增强 SAP 连接安全性的设置。

  • SNC 名称 进行连接的计算机的 SNC 名称。
  • SNC 伙伴名称 该端口将要连接 SAP 系统的 SNC 名称。
  • SNC 保护质量等级 SNC 产品增加的保护质量等级。
  • SNC 库 外部安全产品库的路径。

单击测试连接以确保知行之桥可以使用提供的信息连接到 SAP。如果出现错误,请检查所有字段并重试。

单击添加连接以保存更改。

提示:如果正在转换 IDoc,则无需建立连接。

配置

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • 连接 从列表中选择一个连接。

选择操作

当将 SAP IDoc 端口添加到 工作流 时,必须选择端口应执行的操作。然后,设置 选项卡将更新以显示相关选项。

下表概述了可用的操作。单击表中的链接可访问每个操作的具体设置。

操作 说明
发送 特定于将 IDoc 文件发送到 SAP 的端口设置。
接收 特定于从 SAP 接收 IDoc 文件的端口设置。
转换 特定于翻译 IDoc 文件的端口设置。

自动化

自动化设置

关于端口自动处理文件的设置。

  • 发送 端口收到的文件是否自动发送。
  • 重试间隔 发送失败后进行重发的时间间隔。
  • 最大重试次数 发送失败的最大重试次数。

性能

与端口资源分配相关的设置。

  • 最大线程数 从线程池中消耗用于处理此端口上的文件的最大工作线程数。 如果设置,这将覆盖 设置 > 自动化 页面上的默认设置。
  • 最大文件数 分配给端口的每个线程发送的最大文件数。 如果设置,这将覆盖 设置 > 自动化 页面上的默认设置。

通知

与配置警报和服务等级协议 (SLA) 相关的设置。

端口邮件设置

在执行 SLA 之前,需要设置电子邮件警报以获取通知。 单击 配置通知 将打开一个新的浏览器窗口,转到 系统设置,可以在其中设置系统范围的警报。 有关详细信息,请参阅通知

服务等级协议 (SLA) 配置

SLA 能够配置期望工作流中的端口发送或接收的数量,并设置期望满足该数量的时间范围。 知行之桥在不满足 SLA 时发送电子邮件警告用户,并将 SLA 标记为 有风险,这意味着如果很快不满足 SLA,则会将其标记为 已违反。 这使用户有机会介入并确定未满足 SLA 的原因,并采取适当的措施。 如果在风险时间段结束时仍未满足 SLA,则将 SLA 标记为违反,并再次通知用户。

要定义 SLA,请单击 添加预期数量条件

  • 如果端口具有单独的发送和接收操作,请使用单选按钮指定 SLA 所属的方向。
  • 期待至少 设置为期望处理的最小交易数量(交易量),然后使用 字段指定时间范围。
  • 默认情况下,SLA 每天都有效。 要更改此设置,请取消选中每日,然后选中想要的一周中的几天的框。
  • 使用 将状态设置为“有风险” 来指示何时应将 SLA 标记为存在风险。
  • 默认情况下,在违反 SLA 之前不会发送通知。 要更改此设置,请选中 发送“有风险”通知

以下示例显示为预计周一至周五每天接收 1000 个文件的端口配置的 SLA。 如果尚未收到 1000 个文件,则会在该时间段结束前 1 小时发送风险通知。

建立连接

服务配置

除了以上的依赖关系,如果你的系统运行在 Linux 或 Mac OS X 上,以下服务必须添加到 %WINDIR%/system32/drivers/etc/services,或者 /etc/services。如果 SAP NetWeaver 已经安装在机器上,那么不需要进一步的操作。

Service Name Connector Number/Protocol
sapdp00 3200/tcp
sapdp01 3201/tcp
sapdp02 3202/tcp
sapdp03 3203/tcp
sapdp04 3204/tcp
sapdp05 3205/tcp
sapdp06 3206/tcp
sapdp07 3207/tcp
sapdp08 3208/tcp
sapdp09 3209/tcp
sapdp10 3210/tcp
sapdp11 3211/tcp
sapdp12 3212/tcp
sapdp13 3213/tcp
sapdp14 3214/tcp
sapdp15 3215/tcp
sapdp16 3216/tcp
sapdp17 3217/tcp
sapdp18 3218/tcp
sapdp19 3219/tcp
sapdp20 3220/tcp
sapdp21 3221/tcp
sapdp22 3222/tcp
sapdp23 3223/tcp
sapdp24 3224/tcp
sapdp25 3225/tcp
sapdp26 3226/tcp
sapdp27 3227/tcp
sapdp28 3228/tcp
sapdp29 3229/tcp
sapdp30 3230/tcp
sapdp31 3231/tcp
sapdp32 3232/tcp
sapdp33 3233/tcp
sapdp34 3234/tcp
sapdp35 3235/tcp
sapdp36 3236/tcp
sapdp37 3237/tcp
sapdp38 3238/tcp
sapdp39 3239/tcp
sapdp40 3240/tcp
sapdp41 3241/tcp
sapdp42 3242/tcp
sapdp43 3243/tcp
sapdp44 3244/tcp
sapdp45 3245/tcp
sapdp46 3246/tcp
sapdp47 3247/tcp
sapdp48 3248/tcp
sapdp49 3249/tcp
sapdp50 3250/tcp
sapdp51 3251/tcp
sapdp52 3252/tcp
sapdp53 3253/tcp
sapdp54 3254/tcp
sapdp55 3255/tcp
sapdp56 3256/tcp
sapdp57 3257/tcp
sapdp58 3258/tcp
sapdp59 3259/tcp
sapdp60 3260/tcp
sapdp61 3261/tcp
sapdp62 3262/tcp
sapdp63 3263/tcp
sapdp64 3264/tcp
sapdp65 3265/tcp
sapdp66 3266/tcp
sapdp67 3267/tcp
sapdp68 3268/tcp
sapdp69 3269/tcp
sapdp70 3270/tcp
sapdp71 3271/tcp
sapdp72 3272/tcp
sapdp73 3273/tcp
sapdp74 3274/tcp
sapdp75 3275/tcp
sapdp76 3276/tcp
sapdp77 3277/tcp
sapdp78 3278/tcp
sapdp79 3279/tcp
sapdp80 3280/tcp
sapdp81 3281/tcp
sapdp82 3282/tcp
sapdp83 3283/tcp
sapdp84 3284/tcp
sapdp85 3285/tcp
sapdp86 3286/tcp
sapdp87 3287/tcp
sapdp88 3288/tcp
sapdp89 3289/tcp
sapdp90 3290/tcp
sapdp91 3291/tcp
sapdp92 3292/tcp
sapdp93 3293/tcp
sapdp94 3294/tcp
sapdp95 3295/tcp
sapdp96 3296/tcp
sapdp97 3297/tcp
sapdp98 3298/tcp
sapdp99 3299/tcp
sapgw00 3300/tcp
sapgw01 3301/tcp
sapgw02 3302/tcp
sapgw03 3303/tcp
sapgw04 3304/tcp
sapgw05 3305/tcp
sapgw06 3306/tcp
sapgw07 3307/tcp
sapgw08 3308/tcp
sapgw09 3309/tcp
sapgw10 3310/tcp
sapgw11 3311/tcp
sapgw12 3312/tcp
sapgw13 3313/tcp
sapgw14 3314/tcp
sapgw15 3315/tcp
sapgw16 3316/tcp
sapgw17 3317/tcp
sapgw18 3318/tcp
sapgw19 3319/tcp
sapgw20 3320/tcp
sapgw21 3321/tcp
sapgw22 3322/tcp
sapgw23 3323/tcp
sapgw24 3324/tcp
sapgw25 3325/tcp
sapgw26 3326/tcp
sapgw27 3327/tcp
sapgw28 3328/tcp
sapgw29 3329/tcp
sapgw30 3330/tcp
sapgw31 3331/tcp
sapgw32 3332/tcp
sapgw33 3333/tcp
sapgw34 3334/tcp
sapgw35 3335/tcp
sapgw36 3336/tcp
sapgw37 3337/tcp
sapgw38 3338/tcp
sapgw39 3339/tcp
sapgw40 3340/tcp
sapgw41 3341/tcp
sapgw42 3342/tcp
sapgw43 3343/tcp
sapgw44 3344/tcp
sapgw45 3345/tcp
sapgw46 3346/tcp
sapgw47 3347/tcp
sapgw48 3348/tcp
sapgw49 3349/tcp
sapgw50 3350/tcp
sapgw51 3351/tcp
sapgw52 3352/tcp
sapgw53 3353/tcp
sapgw54 3354/tcp
sapgw55 3355/tcp
sapgw56 3356/tcp
sapgw57 3357/tcp
sapgw58 3358/tcp
sapgw59 3359/tcp
sapgw60 3360/tcp
sapgw61 3361/tcp
sapgw62 3362/tcp
sapgw63 3363/tcp
sapgw64 3364/tcp
sapgw65 3365/tcp
sapgw66 3366/tcp
sapgw67 3367/tcp
sapgw68 3368/tcp
sapgw69 3369/tcp
sapgw70 3370/tcp
sapgw71 3371/tcp
sapgw72 3372/tcp
sapgw73 3373/tcp
sapgw74 3374/tcp
sapgw75 3375/tcp
sapgw76 3376/tcp
sapgw77 3377/tcp
sapgw78 3378/tcp
sapgw79 3379/tcp
sapgw80 3380/tcp
sapgw81 3381/tcp
sapgw82 3382/tcp
sapgw83 3383/tcp
sapgw84 3384/tcp
sapgw85 3385/tcp
sapgw86 3386/tcp
sapgw87 3387/tcp
sapgw88 3388/tcp
sapgw89 3389/tcp
sapgw90 3390/tcp
sapgw91 3391/tcp
sapgw92 3392/tcp
sapgw93 3393/tcp
sapgw94 3394/tcp
sapgw95 3395/tcp
sapgw96 3396/tcp
sapgw97 3397/tcp
sapgw98 3398/tcp
sapgw99 3399/tcp

登录 SAP

连接 SAP 系统需要以下设置

  • SAP 主机 目标系统的主机名。主机名可以是 “hosts” 文件中定义的常规主机名,也可以是 “123.123.123.123” 这样的 IP 地址,或者是 “/H/hostname/S/connector/H/host/S/connector/… “ 这样的 SAProuter 地址。
  • 系统号定义目标系统的编号。有效范围为 0~99,但一般为 0。
  • 客户端 认证到 SAP 系统的客户端。
  • 用户 正在对 SAP 系统进行身份验证的用户。
  • 密码 验证用户的密码。

网关

通过网关连接到 SAP 时,请使用 高级 选项卡的 网关 部分中的选项。

负载均衡

要通过负载平衡登录,请在高级选项卡的登录负载平衡部分中设置属性。

安全网络通信 (SNC)

要启用安全网络通信,请选中 高级 选项卡的 安全网络通信 (SNC) 部分中的 启用 SNC 框。 将 SNC 库 设置为要用于连接 SAP 的 SNC 库的 .dll。

在文件命名策略中使用宏可以提高组织效率和对数据的上下文理解。 通过将宏合并到文件名中,可以动态地包含相关信息,例如标识符、时间戳和消息头信息,从而为每个文件提供有价值的上下文。 这有助于确保文件名反映对组织重要的详细信息。

知行之桥 支持这些宏,它们都使用以下语法:%Macro%

描述
ConnectorID 替换为端口的 ConnectorID。
Ext 替换为端口当前正在处理的文件的文件扩展名。
Filename 替换为端口当前正在处理的文件的文件名(包括扩展名)。
FilenameNoExt 替换为端口当前正在处理的文件的文件名(不带扩展名)。
MessageId 计算端口输出的消息的 MessageId。
RegexFilename:pattern 将正则表达式模式应用于端口当前正在处理的文件的文件名。
Header:headername 替换为端口正在处理的当前消息的目标消息头 (headername) 的值。
LongDate 以常规格式计算系统的当前日期时间(例如,2024 年 1 月 24 日星期三)。
ShortDate 以 yyyy-MM-dd 格式计算系统的当前日期时间(例如 2024-01-24)。
DateFormat:format 以指定格式(format)计算系统的当前日期时间。 有关可用的日期时间格式,请参阅示例日期格式
Vault:vaultitem 计算指定保管库项目的值。
ARCKEY 替换为外部消息存档的密钥。
CIMTYP 替换为用户定义的自定义扩展。
CREDAT 替换为 IDoc 的创建日期。
CRETIM 替换为 IDoc 的创建时间。
DIRECT 替换为 IDoc 的方向(指示 IDoc 是入站还是出站)。
DOCNUM 替换为分配给 IDoc 的唯一编号。
DOCREL 替换为 IDoc 的 SAP 版本号。
EXPRSS 计算 EXPRSS 标志的值。
IDOCTYP 计算 IDoc 基本类型的名称。
MANDT 替换为客户编号。
MESCOD 替换为消息代码。
MESFCT 替换为消息函数。
MESTYP 替换为消息类型。
OUTMOD 替换为输出模式。
RCVLAD 替换为收件人的逻辑地址。
RCVPFC 替换为接收者的合作伙伴功能。
RCVPOR 替换为接收器端口值。
RCVPRN 替换为接收方合作伙伴编号。
RCVPRT 替换为接收方伙伴类型。
RCVSAD 替换为收件人的地址。
REFGRP 替换为消息组(例如 EDI 消息组)。
REFINT 替换为传输文件(例如EDI Interchange)。
REFMES 对消息(如EDI消息)进行计算
SERIAL 替换为 EDI 序列化字段。
SNDLAD 替换为发送者的逻辑地址。
SNDPFC 替换为发送者的伙伴功能。
SNDPOR 替换为发送者的端口。
SNDPRN 替换为发件人的合作伙伴号码。
SNDPRT 替换为发件人的合作伙伴类型。
SNDSAD 替换为发件人的地址。
STATUS 替换为 IDoc 的状态。
STD 替换为指示 EDI 标准的标志。
STDMES 替换为 EDI 消息类型。
STDVRS 替换为 EDI 标准、版本和版本。
TABNAM 计算表结构的名称。
TEST 替换为测试标志的值。

示例

某些宏(例如 %Ext% 和 %ShortDate%)不需要参数,但其他宏则需要。 所有带有参数的宏都使用以下语法:%Macro:argument%

以下是带有参数的宏的一些示例:

  • %Header:headername%:其中 headername 是消息上消息头的名称。
  • %Header:mycustomheader% 解析为输入消息上设置的 mycustomheader 消息头的值。
  • %Header:ponum% 解析为输入消息上设置的 ponum 消息头的值。
  • %RegexFilename:pattern%:其中“pattern”是正则表达式模式。 例如,%RegexFilename:^([\w][A-Za-z]+)% 匹配并解析为文件名中的第一个单词,并且不区分大小写(test_file.xml解析为test) 。
  • %Vault:vaultitem%:其中 vaultitemvault 中项目的名称。 例如,%Vault:companyname%解析为存储在保管库中的companyname项的值。
  • %DateFormat:format%:其中 format 是可接受的日期格式(有关详细信息,请参阅示例日期格式)。 例如,%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%解析为文件上的日期和时间戳。

还可以创建更复杂的宏,如以下示例所示:

  • 将多个宏组合在一个文件名中:%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%
  • 包括宏之外的文本:MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%
  • 在宏中包含文本: %DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%