设置适用于 SAP 的 ACL 连接器
必须先完成几项设置任务,然后才能使用适用于 SAP 的 ACL 连接器导入 SAP 数据。
在 SAP 系统上:
-
为 SAP 系统安装 SAP 连接器插件
-
为 SAP 连接器的用户配置 SAP 授权
-
在一台或多台 SAP 服务器上配置端口
在您打算使用适用于 SAP 的 ACL 连接器的本地计算机或网络服务器上:
-
安装 SAP GUI for Windows
-
配置 SAP 连接信息和凭据
您可以将 SAP 连接器与 Diligent One 中的机器人应用程序搭配使用,但前提条件是贵组织使用本地部署的机器人代理。SAP 连接器不能配置为与基于云的机器人代理一起使用。
说明
设置 SAP 连接器,并且如果适用,则 SNC(安全网络通信)和 SSO(单点登录)要求人员具有适当级别的技术专业知识。
除了基本 Analytics 订阅以外,SAP 连接器还需要额外的订阅授权。如果您没有所需的订阅授权,则无法连接到 SAP。
请联系您的客户代表,获取有关 SAP 连接器订阅的信息。
兼容 SAP 系统
适用于 SAP 的 ACL 连接器可与下列 SAP 系统一起使用:
- S/4HANA
- 在所有受支持的数据库平台(包括 SAP HANA)上运行的下列系统的所有增强级别:
- SAP ERP 6.0 (ECC 6.0)
- SAP CRM 7.0
- SAP SRM 7.0
- SAP SCM 7.0
- SAP EWM 7.0
兼容的 SAP SPAM/SAINT 版本
要为 SAP 系统安装 SAP 插件,必需的 SAP SPAM/SAINT 版本是 0053 或更高版本。
SAP SPAM 是 Support Package Manager。SAP SAINT 是插件安装工具。
为 SAP 系统安装 SAP 连接器插件
您的 SAP 基本管理员必须为 SAP 系统安装 SAP 连接器插件。SAP 连接器要与 SAP 系统通信,必须使用插件。具有 SAP 连接器订阅的用户可以从启动面板 (www.highbond.com) 下载插件文件。
使用 SAP 前端安装 SAP 连接器插件。用于安装 SAP 插件的兼容 SAP 基础发行版是 700 或更高版本。
- 登录到 Diligent One (www.highbond.com)。
- 在启动面板的资源下,单击下载Launchpad。
-
在 ACL for Windows 顶部选项卡中的 SAP ERP 数据连接器下,单击下载版本 1.4。
下载的 .zip 文件包含下列 .sar 文件:
- dabexp-sapconn-aoi-140.sar - 用于安装 SAP 连接器插件的安装程序文件。
- dabexp-sapconn-aou-140.sar - 用于从版本 1.0 或 1.1 升级现有 SAP 连接器插件的升级文件。
- 在 SAP 系统上,使用 SAINT 交易访问插件安装工具。
- 使用插件安装工具安装或者升级 SAP 插件安装包。
SAP 授权
说明
SAP 授权必须由您的 SAP 安全管理员分配。
SAP 连接器的用户需要下列 SAP 访问权限和授权,以便连接到 SAP 系统并提取数据:
- 使其可以连接到 SAP 系统的 SAP 用户 ID 和密码
- 特定 SAP 授权对象和授权,包括 SAP 表授权
SAP 用户类型
要连接到 SAP 系统,则必须使用以下任一 SAP 用户类型来配置 SAP 用户账户:
- 对话框
- 系统
- 通信
- 服务
SAP 连接器不适用于使用“参考”用户类型配置的 SAP 账户。
SAP 授权对象
SAP 连接器的用户需要下面列出的特定 SAP 授权。
说明
有关向用户分配 SAP 授权的详细信息,请咨询您的 SAP 安全文档。
| 授权类别 | 授权对象 | 域 | 值 | 详情 |
|---|---|---|---|---|
|
AAAB 跨应用程序授权对象 |
S_RFC RFC 访问的授权检查 |
ACTVT | 16(授予执行权) | 控制用户从远程位置(如台式计算机)执行 SAP 系统上的功能模块的能力。 |
| RFC_NAME |
/SDF/RI_CRM CMON RFC1 SYST /DABEXP/DAB_FUGR |
|||
| RFC_TYPE | FUGR(功能组) | |||
|
或者,从 SAP NW 7.0 EHP 2 (SAP Basis 702) 开始,可以将 RFC_TYPE 设置为 FUNC(函数模块)。 对于 FUNC,功能模块必须被直接授权,而不是通过功能组授权。 |
||||
| ACTVT |
16(授予执行权) |
|||
| RFC_NAME |
/SDF/CMO_GET_INSTNO CMO_GET_INSTNO RFC_GET_FUNCTION_INTERFACE RFC_GET_NAMETAB RFCPING /DABEXP/RFC_SAPCONNECTOR |
|||
| RFC_TYPE | FUNC(功能模块) | |||
|
BC_A 基础:管理
|
S_TABU_DIS | ACTVT | 03(显示) | 控制用户访问特定 SAP 表组的权限。 |
| DICBERCLS(授权组) | * | |||
| S_TABU_NAM | ACTVT | 03(显示) | 控制用户访问单个 SAP 表的权限。 | |
| TABLE(表名称) | * | |||
|
说明 SAP 连接器的用户应该被分配对于它们需要访问的那些 SAP 表的授权,以便执行他们的分析。 例如,执行总分类账审计的用户需要对于总分类账表的授权。 您的公司自己的业务流程决定哪些用户需要表授权以及他们需要哪些授权。请与您的 SAP 安全管理员协作确定您的用户需要的访问权限的适当级别。 |
||||
SAP 端口配置
在您将使用 SAP 连接器连接到的每个 SAP 服务器上,您需要为入站和出站通信打开下列 TCP/IP 端口:
| 端口名称 | 端口号 | 备注 |
|---|---|---|
| 调度程序 | 32<NN> | 由 SAP GUI 使用 |
| Gateway | 33<NN> | 为 RFC 通信使用 |
| 消息服务器 | 36<NN> | |
|
说明 <NN> 是您的 SAP 系统的实例编号。因此,如果 SAP 系统编号为 10,则端口 3210、3310 和 3610 需要是打开的。 |
||
安装 SAP GUI for Windows
必须在您打算使用适用于 SAP 的 ACL 连接器的本地计算机或服务器上安装 SAP GUI for Windows 版本 7.60 或更高版本。SAP GUI 使 SAP 连接器可以远程访问您的 SAP 系统。
| Analytics 用户 | SAP GUI 必须与 Analytics 安装在同一台计算机上。 |
| 机器人应用程序用户 | SAP GUI 必须安装在承载本地部署机器人代理的服务器上。 |
sapnwrfc.dll requirement
安装 SAP GUI for Windows 之后,验证关联的 DLL 文件 sapnwrfc.dllSAP GUI for Windows 已安装在以下位置:
C:\Windows\SysWOW64\sapnwrfc.dll
如果 DLL 文件不在此位置,则 SAP 连接器不起作用。
如果 sapnwrfc.dll 不在 SysWOW64 文件夹中,则请在 SAP GUI 提取目录中找到 DLL 文件,并将其复制到 C:\Windows\SysWOW64SAP GUI。
SAP 连接信息和凭据
通常,SAP 基本管理员维护 SAP 系统的连接信息。要求您的 SAP 基本管理员提供必要的连接信息,或者让其在 SAP 登录窗口中配置所需的连接信息。
如果您的管理员不能帮助您,您或者您的管理员应该联系您的 SAP 支持人员。
要连接到 SAP,您或者您的管理员必须收集以下信息:
- 正确的服务器类型(普通或负载平衡)
- 实例编号(对于普通服务器类型)
- 登录组和系统 ID(对于负载平衡服务器类型)
- SAP 系统的主机名或 IP 地址
- 您的 SAP 用户名和密码
- 客户端编号
- 对 SAP 系统中表的读取访问权限
使用安全网络通信 (SNC) 的 SAP 系统
您的组织的 SAP 系统可能已启用安全网络通信(SNC),它允许 SAP 系统的不同组件之间的加密通信以及使用单点登录的用户认证。
SNC 是 SAP 系统中的软件层,它使您可以通过与外部安全产品相集成来扩展基本 SAP 安全性。
如果您使用的是 SNC(无论有还是没有单点登录),则适用于 SAP 的 ACL 连接器中还需要附加的设置。有关详细信息,请参阅连接设置。
SAP 连接错误
| 错误编号 | 错误代码 | 描述 |
|---|---|---|
| 0 | 未知的 | 无法完成连接到 SAP 或者导入数据的操作。发生未知错误。 |
| 1 | SapDriverInitializationError | 无法连接到 SAP。可能缺少必需的驱动程序配置文件。 |
| 2 | SapDriverLicenseInvalidError | 无法连接到 SAP。驱动程序许可证有问题。 |
| 3 | ConnectionPropertiesParserValueMustNotBeNullOrWhitespaceError | 无法连接到 SAP。缺少必需的连接参数。 |
| 4 | ConnectionPropertiesParserLibraryTypeOutOfRangeError | 库参数的值无效。有效值为:ClassicRfc、NetweaverRfc |
| 5 | ConnectionPropertiesParserRfcFunctionTypeOutOfRangeError | RFC 函数参数的值无效。有效值为:Standard、Extended、Three |
| 6 | ConnectionPropertiesParserServerDetailInfoAmbiguousError | 无法连接到 SAP。为下列一个或多个属性指定的值不正确:InstanceNumber、LogonGroup、SID。 |
| 7 | ConnectionPropertiesParserVariableStringLengthNotAnIntegerError | 连接参数的变量字符串长度必须是整数。 |
| 8 | SapConnectionInfoValidationClientIsNullOrWhitespaceError | 缺少客户端连接参数的值。 |
| 9 | SapConnectionInfoValidationClientLongerThanThreeCharactersError | 客户端连接参数的值不能超过 3 个字符。 |
| 10 | SapConnectionInfoValidationLanguageIsNullOrWhitespaceError | 缺少语言连接参数的值。 |
| 11 | SapConnectionInfoValidationLanguageIsLongerThanTwoCharactersError | 语言连接参数的值不能超过 2 个字符。 |
| 12 | SapConnectionInfoValidationUsernameIsNullOrWhitespaceError | 缺少用户名连接参数的值。 |
| 13 | SapConnectionInfoValidationPasswordIsNullOrWhitespaceError | 缺少密码连接参数的值。 |
| 14 | SapConnectionInfoValidationTestDownloadTableIsNullOrWhitespaceError | 缺少测试下载表连接参数的值。 |
| 15 | SapConnectionInfoValidationRfcFunctionModuleIsNullOrWhitespaceError | 缺少 RFC 函数模块连接参数的值。 |
| 16 | SapConnectionInfoValidationSapConnectionServerInfoIsNullError | 无法连接到 SAP。缺少 SAP 服务器属性(内部驱动程序错误)。 |
| 17 | SapConnectionInfoValidationVariableStringLengthMustBeGreaterZeroError | 无法连接到 SAP。变量字符串长度必须大于 0(内部驱动程序错误)。 |
| 18 | SapConnectionInfoValidationServerIsNullError | 缺少服务器连接参数的值。 |
| 19 | SapConnectionInfoValidationServerDetailsIsNullError | 无法连接到 SAP。缺少 SAP 服务器详情属性(内部驱动程序错误)。 |
| 20 | SapConnectionInfoValidationInstanceNumberNullOrWhitespaceError | 缺少实例编号连接参数的值。 |
| 21 | SapConnectionInfoValidationInstanceNumberMustHaveTwoDigitsError | 实例编号连接参数的值必须为两位数。 |
| 22 | SapConnectionInfoValidationLogonGroupNullOrWhitespaceError | 缺少登录组连接参数的值。 |
| 23 | SapConnectionInfoValidationSidNullOrWhitespaceError | 缺少 SID 连接参数的值。 |
| 24 | SapConnectionInfoValidationSidLongerThanThreeCharactersError | SID 连接参数的值不能超过 3 个字符。 |
| 25 | SapDriverErpError | 到 SAP 服务器的连接丢失。发生未知错误。 |
| 26 | SapDriverTableNotFoundError | 找不到该表。 |
| 27 | SapDriverTableStructureNotExportableError | 无法导入该表,因为它不含数据。 |
| 28 | SapDriverAppendStructureNotExportableError | 无法导入该表,因为它不含数据。 |
| 29 | SapDriverGetTablesDownloadError | 无法完成 SAP 表的下载。 |
| 30 | SapDriverSqlParsingError | SQL 语法很可能无效,无法执行数据导入。无法识别该错误的具体原因。 |
| 31 | SapDriverSqlParsingNoSqlScriptFragmentError | 必须指定 SQL 语句。 |
| 32 | SapDriverSqlParsingExactlyOneBatchAllowedError | 只允许 1 个 SQL 批处理。 |
| 33 | SapDriverSqlParsingExactlyOneSelectStatementAllowedError | 只允许 1 个 SELECT 语句。 |
| 34 | SapDriverSqlParsingFragmentNotAllowedError | SQL 语法的一部分不被允许,或者在其当前位置不被允许。例如,UPDATE 或 DELETE 语句不被允许。 |
| 36 | SapDriverSqlParsingJoinTypeNotAllowedError | 指定的 JOIN 类型不被允许。请指定 INNER JOIN 或 LEFT JOIN.。 |
| 37 | SapDriverSqlParsingFirstJoinValueNotATableError | JOIN 指定的第一个值不是表。 |
| 38 | SapDriverSqlParsingOnlyOneJoinAllowedError | 只允许 1 个 JOIN。 |
| 39 | SapDriverSqlParsingSecondJoinValueNotATableError | JOIN 指定的第二个值不是表。 |
| 40 | SapDriverSqlParsingNoJoinConditionError | JOIN 条件不得为空。 |
| 41 | SapDriverSqlParsingJoinConditionOringNotAllowedError | 不允许将 OR 与 JOIN 条件结合使用。 |
| 42 | SapDriverSqlParsingJoinConditionNotAllowedError | 指定的 JOIN 条件的类型不被允许。 |
| 43 | SapDriverSqlParsingJoinOperatorMustBeEqualsOnlyError | JOIN 运算符只能是 Equals。 |
| 44 | SapDriverSqlParsingJoinSameFieldError | 您不能将一个域与其自身 JOIN。 |
| 45 | SapDriverSqlParsingOnlyExplicitJoinsAllowedError | 只允许显式 JOIN。 |
| 46 | SapDriverSqlParsingHasNoSelectStatementError | 必须指定一个 SELECT 语句。 |
| 47 | SapDriverSqlParsingHasNoQuerySpecificationError | SQL 语法很可能无效。查询规范可能是必需的。 |
| 48 | SapDriverSqlParsingSqlFieldMustBeQualifiedWithTableError | 必须用一个表名称或表别名限定该域。 |
| 49 | SapDriverSqlParsingSqlSelectStarFieldMustOnlyBeQualifiedWithTableNameError | 必须用一个表名称或表别名限定 SELECT *。 |
| 50 | SapDriverSqlParsingSqlFieldMustOnlyBeQualifiedWithTableNameError | 只能用一个表名称或表别名限定该域。 |
| 51 | SapDriverSqlParsingSqlTableMustHaveExactlyOneIdentifierError | 不得限定该表名称。 |
| 52 | SapDriverSqlParsingSqlQueryeMustHaveAtLeastOneFieldError | SELECT 语句必须包含至少一个域。 |
| 53 | SapDriverSqlParsingSqlQueryeMustHaveAtLeastOneTableError | SELECT 语句必须包含至少一个表。 |
| 54 | SapDriverSqlParsingSqlEnhancedQuerySqlTableNotMatchingAnySapTableError | 限定域的表不与从 SAP 系统收到的任何表匹配。 |
| 55 | SapDriverSqlParsingSqlFieldQualifierNotMatchingAnyTableError | 限定域的表不与 SELECT 语句中指定的任何表匹配。 |
| 56 | SapDriverSqlParsingSqlSelectStarFieldQualifierNotMatchingAnyTableError | 限定 * 域的表不与 SELECT 语句中指定的任何表匹配。 |
| 57 | SapDriverSqlParsingSqlFieldNotInSapTableError | SELECT 语句中指定的域不存在于 SAP 数据中。 |
| 58 | SapDriverSqlParsingSqlFieldNotExportableError | 无法从 SAP 系统中导入在 SELECT 语句中指定的域。 |
| 59 | SapDriverSqlParsingSqlFieldNotFilterableError | 无法在 SAP 系统中过滤在 WHERE 子句中指定的域。 |
| 60 | SapDriverSqlParsingTopRowFilterMustHaveAbsolutValueError | SELECT TOP 语句必须指定绝对值。 |
| 61 | SapDriverSqlParsingTopRowFilterWithTiesNotAllowedError | 必需无牵连地使用 SELECT TOP 语句。 |
| 63 | SapDriverSqlParsingTopRowFilterMustHaveIntegerValueError | SELECT TOP 语句必须指定一个整数值。 |
| 64 | SapDriverSqlParsingTopRowFilterIntegerValueMustBeGreaterZeroError | SELECT TOP 语句必须指定一个大于零 (0) 的值。 |
| 68 | SapDriverSqlParsingTopRowFilterFromClauseMustHaveInnerQuerySpecificationError | SELECT TOP 语句中的 FROM 子句必须包含查询规范。 |
| 69 | SapDriverSqlParsingOringFilterValuesOnlyForSameFieldAndClauseError | 在一个 OR 条件中不能指定不同的域。在整个 OR 条件中必须使用相同的域,并且必须使用相同的域运算符。 |
| 70 | SapDriverSqlParsingFilterExpressionNotAllowedError | WHERE 子句中指定的用于过滤域的表达式不被允许。 |
| 71 | SapDriverSqlParsingFilterValueLiteralNotAllowedError | WHERE 子句中指定的用于过滤域的字面量不被允许。 |
| 72 | SapDriverSqlParsingFilterComparisonTypeNotAllowedError | WHERE 子句中指定的用于过滤域的比较运算符不被允许。 |
| 73 | SapDriverPackageCreationFilterTypeNotSupportedError | 过滤器类型不受支持。 |
| 74 | SapDriverTableCreationMaximumRecordLimitReachedError | 选定域的数量超过 SAP RFC(SAP 远程函数调用)所支持的最大数量。 |
| 75 | SapDriverExecuteDownloadError | 导入 SAP 表数据的过程中出现未知错误。 |
| 76 | SapDriverSearchTablesDownloadError | 搜索 SAP 表的过程中出现未知错误。 |
| 77 | SapDriverSqlParsingNoFromClauseError | SELECT 语句必须包含 FROM 子句。 |
| 78 | SapDriverSqlParsingNoTableReferenceInFromClauseError | SELECT 语句中的 FROM 子句必须指定一个表。 |
| 79 | SapDriverSqlParsingExpectedTopRowForPreviewError | 外部 SELECT 语句必须包含一个 TOP 子句。 |
| 80 | SapDriverSqlParsingPreviewStatmentMustNotHaveWhereClauseError | 外部 SELECT 语句不得包含 WHERE 子句。 |
| 81 | SapDriverSqlParsingPreviewStatmentMustHaveUnqualifiedStarQualifierOnlyError | 外部 SELECT 语句只能包含一个 * 限定符。 |
| 82 | SapDriverProjectPathNotFoundError | 指定的临时工作目录不存在。 |