

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 连接到 S/4 HANA
<a name="connecting-sap-hana"></a>

必须满足以下先决条件，然后才能连接到 S/4 HANA 数据来源。之后， AWS Supply Chain 自动创建 Amazon S3 路径并从 SAP 源表中提取数据。

## 连接到 S/4 HANA 的先决条件
<a name="prerequisites-s4hana"></a>

必须满足以下先决条件，然后才能连接到 S/4 HANA 数据来源摄取数据。

1. 将你的 SAP S/4 HANA 系统配置为通过 OData 适用于 Amazon 的 SAP 连接器开启基于 ODP 的数据提取。 AppFlow有关更多信息，请参阅适用于 A [mazon 的 SAP OData 连接器 AppFlow](https://docs.aws.amazon.com/appflow/latest/userguide/sapodata.html)。

1. 配置 SAP 数据源或提取器，并生成基于 ODP 的 OData 服务 AWS Supply Chain 以连接和提取信息。有关更多信息，请参阅 [SP 数据来源](#s4-datasources)。

1. 使用以下身份验证类型之一，配置 SAP 系统：
   + 基本
   + OAuth

1. 在 SAP 系统中配置安全角色以开启数据提取。

1. 设置与 SAP S/4 HANA 的网络连接。如果您的 SAP 实例位于安全 VPN 中，并且您无法打开 AWS Supply Chain 要连接的端口，我们建议您使用 AWS PrivateLink。要手动设置 AWS PrivateLink，[AWS 请参阅 SAP](https://aws.amazon.com/blogs/awsforsap/share-sap-odata-services-securely-through-aws-privatelink-and-the-amazon-appflow-sap-connector/)，要使用自动设置 CloudFormation，请参阅[CloudFormation](https://github.com/aws-cloudformation/aws-cloudformation-templates/tree/main/AWSSupplyChain/SapPrivateLink)。

## 配置 S/4 HANA 连接
<a name="connecting-s4hana"></a>

要从 SAP S/4HANA 数据源摄取数据，请按照以下步骤操作。

1. 在 AWS Supply Chain 控制面板的左侧导航窗格中，选择**数据湖**。

1. 在**数据湖**页面上，选择**添加新源**。

   此时将出现 **“选择您的供应链数据源**” 页面。

1. 选择 **SAP S/4 HANA**。

1. 选择**下一步**。

1. 在 **SAP S/4 HANA 连接详细信息**下，输入以下内容：
   + **连接名称** — 输入此连接的名称。
   + （可选）**连接描述** — 输入此连接的名称。
   + **使用现有 AppFlow 连接器**-选择 “**是**” 以使用现有 AppFlow连接器。
   + **应用程序主机 URL** — 输入 SAP 账户的 URL。
   + **应用程序服务路径** — 输入 SAP 应用程序服务路径。
   + **端口号** — 输入 SAP 端口号。
   + **客户端号** — 输入 SAP 客户端号。
   + **登录语言** — 输入 SAP 语言代码。例如，EN 代表英语。
   + **PrivateLink**— 选择 “**启用” 以启用** SAP 服务器和您的 AWS 账户 主机之间的私有连接 AWS Supply Chain。
   + **用户名** — 输入 SAP 账户的用户名。
   + **密码** — 输入 SAP 账户的密码。
**注意**  
亚马逊 AppFlow 使用您提供的 SAP **用户名**和**密码**连接 SAP。

1. 选择**连接到 SAP**。

   如果 SAP 用户名和密码输入正确，则会出现**连接成功**消息。

1. （可选）在 “**可选 AppFlow 配置**，**步骤 1-下载 JSON 模板文件**” 下，选择**下载现有 JSON 模板文件**以修改 appflow 提取设置。
**注意**  
您可以使用自己的编辑器来编辑 .json 文件。您无法在 AWS Supply Chain中编辑.json 文件。

   更新.json 文件后，在**步骤 2-上传修改后的 JSON 模板文件**下，选择**浏览要上传的文件**。
**注意**  
如果此次上传失败，**上传摘要**将显示 .json 文件中的错误或冲突。您可以更新.json 文件以修复问题并重新上传该文件。

   以下是包含所需日程安排、数据流和源表的.json 文件示例。

   ```
   {
       "schedule" : { 
           "scheduleExpression"  : "rate(1days)", // scheduleExpression key should be available and the value cannot be null/empty. Format starts with rate and having time values in minutes, hours, or days. For example, rate(1days)
           "scheduleStartTime" : null // Supported format - "yyyy-MM-dd'T'hh:mm:ss[+|-]hh:mm". For example, 2022-04-26T13:00:00-07:00. ScheduleStartTime should atleast be 5 minutes after current time. A null value will automatically set the start time as 5 minutes after the connection creation time
       },
       "dataFlows" : [ // DataFlows cannot be null or empty. Make sure to choose from the list below
           "Company-Company",
           "Geography-Geography",
           "Inventory-Inventory Level",
           "Inventory-Inventory Policy",
           "Outbound-Outbound Order Line",
           "Outbound-Outbound Shipment",
           "Product-Product",
           "Product-Product Hierarchy",
           "Production Order-Inbound Order",
           "Production Order-Inbound Order Line",
           "Purchase Order-Inbound Order",
           "Purchase Order-Inbound Order Line",
           "Purchase Order-Inbound Order Line Schedule",
           "Reference-Reference Fields",
           "Shipment-Shipment",
           "Site-Site",
           "Site-Transportation Lane",
           "Trading Partner-Trading Partner",
           "Transfer Order-Inbound Order Line",
           "Vendor Management-Vendor Lead Time",
           "Vendor Management-Vendor Product",
           "Product-Product UOM"
       ],
       "sourceTables" : [   // sourceTables cannot be empty
           {
               "tableName" : "SomeString", // Should be an existing table name from the SAP instance
               "extractType" : "DELTA",      // Should either be DELTA or FULL 
               "tableCols" : [    // TableCols cannot be empty. Enter valid column names for the table
                   "col1",
                   "col2",
                   "col3"
               ],
               "filters" : [// Optional field
                       "colName" : "col1", // colName value should be part of tableCols
                       "dataType" : "String",  // Should contain values `STRING` or `DATETIME`
                       "value" : "String",
                       "operator" : "String"  // Choose a string value from the pre-defined value of "PROJECTION", "LESS_THAN", "CONTAINS","GREATER_THAN","LESS_THAN_OR_EQUAL_TO","GREATER_THAN_OR_EQUAL_TO","EQUAL_TO","NOT_EQUAL_TO","ADDITION","MULTIPLICATION","DIVISION","SUBTRACTION","MASK_ALL","MASK_FIRST_N","MASK_LAST_N","VALIDATE_NON_NULL","VALIDATE_NON_ZERO","VALIDATE_NON_NEGATIVE",or "VALIDATE_NUMERIC","NO_OP";
               ]
           },
           {
   
               // sourceTables with same keys - tableName, extractType, tableCols, filters(not mandatory)
           
           }
       ]
   }
   ```

1. 在 **Amazon S3 桶账单**下，查看 Amazon S3 账单信息，然后选择**确认**。

1. 选择**下一步**。

1. 在**数据映射**下，选择**开始**。

1. 
**注意**  
必填字段已映射。只有在要对默认转换食谱进行特定更改时，才执行此步骤。

   在**映射食谱**页面上的**字段映射**下，您可以查看默认的转换食谱。

   选择**添加映射**，以映射任何其他目标字段。**必填目标字段**是必填字段。选择**目标字段**以添加其他自定义目标字段。

1. 要查看转换食谱中的源字段值和数据映射，您可以上传示例数据。在 M **appin** g Recipe 页面的**上传示例数据**下，选择**浏览文件**或拖放文件。示例数据文件必须包含必需的参数并包含源字段名称。

1. 选择**全部接受并继续**。

1. 在**查看并确认**下，您可以查看数据连接摘要。要编辑您的数据字段映射，请选择**返回到数据映射**。

1.  （可选）在**食谱操作**下，您可以执行以下操作：
   + **下载食谱文件** — 选择**下载**，在 SQL 中以文本文件形式编辑食谱文件。
**注意**  
有关内置 SQL 函数的更多信息，请参阅 [Spark SQL](https://spark.apache.org/docs/latest/api/sql/index.html)。
   + **上传食谱文件** — 选择**浏览文件**或拖放编辑后的食谱文本文件。选择**确认上传**，上传编辑后的食谱文件并修改您的数据字段映射。

1. 要查看必须上传 SAP 源数据以进行摄取的 Amazon S3 位置路径，请选择**确认并配置数据摄取**。或者，您可以选择**确认并稍后配置数据摄取**。您可随时查看数据摄取信息。在 AWS Supply Chain 控制面板中，选择 “**连接**”。选择要摄取数据的连接数据流，选择垂直省略号，然后选择**摄取设置**。

## SP 数据来源
<a name="s4-datasources"></a>

配置以下 SAP 表源 AWS Supply Chain 以连接和提取信息。

**注意**  
搜索 SAP 数据源时，请在数据源名称前加上*EntityOf*。*例如，对于数据源 *0BP\$1DEF\$1ADDRESS\$1ATTR，实体名称应为 0BP\$1DEF\$1ADDRESS\$1ATTR*。EntityOf*  
当 Amazon AppFlow 提取每个 SAP 数据源时，将使用实体名称格式来提取信息。*例如，要从 0BP\$1DEF\$1ADDRESS\$1ATTR 中提取数据，需要从实体路径 */0BP\$1DEF\$1ADDRESS\$1AT* T 中提取数据。sap/opu/odata/sap/Z0BP\$1DEF\$1ADDRESS\$1ATTR\$1SRV/EntityOf*


| SP 数据来源 | SAP 数据来源描述 | SP 源表 | OData 服务名称 | BW 数据来源 | SAP 数据 | 增量/完整 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  0BP\$1DEF\$1ADDRESS\$1ATTR  |  BP 标准地址提取  |  NA  |  Z0BP\$1DEF\$1ADDRESS\$1ATTR\$1SRV  |  数据来源  |  主数据  |  Delta  | 
|  0BPARTNER\$1ATTR  |  BP：BW 提取中心数据  |  NA  |  Z0BPARTNER\$1ATTR\$1SRV  |  数据来源  |  主数据  |  Delta  | 
|  0BPARTNER\$1TEX  |  BP： DataSource 适用于商业伙伴文本  |  NA  |  Z0BPARTNER\$1​TEXT\$1SRV  |  数据来源  |  主数据  |  Delta  | 
|  0CO\$1PC\$1ACT​\$105  |  物料估值：价格  |  NA  |  Z0CO\$1PC\$1ACT\$105\$1SRV  |  数据来源  |  主数据  |  完整  | 
|  0COMP\$1CODE​\$1TEXT  |  公司代码文本  |  NA  |  Z0COMP\$1CODE\$1TEXT\$1SRV  |  数据来源  |  主数据  |  完整  | 
|  0CUSTOMER\$1ATTR  |  Customer  |  NA  |  Z0CUSTOMER\$1​ATTR\$1SRV  |  数据来源  |  主数据  |  Delta  | 
|  0MAT\$1VEND\$1​ATTR  |  物料或供应商  |  NA  |  Z0MAT\$1VEND\$1ATTR\$1SRV  |  数据来源  |  主数据  |  Delta  | 
|  0MATERIAL\$1ATTR  |  物料  |  NA  |  Z0MATERIAL\$1​ATTR\$1SRV  |  数据来源  |  主数据  |  Delta  | 
|  0MATERIAL\$1​TEXT  |  物料文本  |  NA  |  Z0MATERIAL\$1​TEXT\$1SRV  |  数据来源  |  主数据  |  Delta  | 
|  0PURCH\$1ORG\$1​TEXT  |  购买组织文本  |  NA  |  Z0PURCH\$1ORG\$1​TEXT\$1SRV  |  数据来源  |  主数据  |  完整  | 
|  0VENDOR\$1​ATTR  |  Vendor  |  NA  |  Z0VENDOR\$1ATTR\$1SRV  |  数据来源  |  主数据  |  Delta  | 
|  2LIS\$102\$1HDR  |  购买数据（抬头层面）  |  NA  |  Z2LIS\$102\$1​HDR\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$102\$1ITM  |  购买数据（商品层面）  |  NA  |  Z2LIS\$102\$1​ITM\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$102\$1SCL  |  购买数据（计划行层面）  |  NA  |  Z2LIS\$102\$1SCL\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$102\$1SCN  |  计划行确认  |  NA  |  Z2LIS\$102\$1​SCN\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$103\$1BF  |  库存管理中的货物流动  |  NA  |  Z2LIS\$103\$1​BF\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$104\$1P​\$1MATNR  |  来自 PP/PP-PI 的物料视图  |  NA  |  Z2LIS\$104\$1P\$1​MATNR\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$108TRFKP  |  货件成本（商品层面）  |  NA  |  Z2LIS\$108TRFKP​\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$108TRTLP  |  商品货件配送数据（按分区）  |  NA  |  Z2LIS\$108TRTLP​\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$108TRTK  |  货件：抬头数据  |  NA  |  Z2LIS\$108TRTK​\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$111​\$1VAHDR  |  销售文档（抬头层面）  |  NA  |  Z2LIS\$111​\$1VAHDR\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$111​\$1VAITM  |  销售文档（商品层面）  |  NA  |  Z2LIS\$111\$1​VAITM\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  2LIS\$112\$1VCITM  |  商品配送数据  |  NA  |  Z2LIS\$112​\$1VCITM\$1SRV  |  数据来源  |  交易性  |  Delta  | 
|  ZADRC  |  地址  |  ADRC  |  ZADRC\$1SRV  |  表  |  主数据  |  完整  | 
|  ZBUT021\$1FS  |  合作伙伴地址  |  BUT021\$1FS  |  ZBUT021\$1FS​\$1SRV  |  表  |  主数据  |  完整  | 
|  ZCDHDR  |  更改文档（抬头层面）  |  CDHDR  |  ZCDHDR\$1SRV  |  表  |  主数据  |  Delta  | 
|  ZEINA  |  购买信息记录：一般数据  |  EINA  |  ZEINA\$1SRV  |  表  |  主数据  |  完整  | 
|  ZEINE  |  购买信息记录：购买组织数据  |  ZV\$1EINE  |  ZEINE\$1SRV  |  表  |  主数据  |  完整  | 
|  ZEKKO  |  购买文档（抬头层面）  |  ZV\$1EKKO  |  ZEKKO\$1SRV  |  表  |  交易性  |  Delta  | 
|  ZEKPO  |  购买文件（商品层面）  |  ZV\$1EKPO  |  ZEKPO\$1SRV  |  表  |  交易性  |  Delta  | 
|  ZEQUI  |  设备主数据  |  EQUI  |  ZEQUI\$1SRV  |  表  |  主数据  |  完整  | 
|  ZGEOLOC  |  地理位置  |  GEOLOC  |  ZGEOLOC\$1SRV  |  表  |  主数据  |  完整  | 
|  ZLIKP  |  配送：抬头数据  |  LIKP  |  ZLIKP\$1SRV  |  表  |  交易性  |  Delta  | 
|  ZLIPS  |  配送数据（商品层面）  |  ZV\$1LIPS  |  ZLIPS\$1SRV  |  表  |  交易性  |  Delta  | 
|  ZMDRP\$1NODTT  |  DRP 网络的节点类型  |  MDRP\$1NODTT  |  ZMDRP\$1NODTT​\$1SRV  |  表  |  主数据  |  完整  | 
|  ZMARC  |  物料的工厂数据  |  ZQ\$1MARC  |  ZMARC\$1SRV  |  表  |  主数据  |  完整  | 
|  ZMARD  |  物料的存储位置数据  |  ZQ\$1MARD  |  ZMARD\$1SRV  |  表  |  主数据  |  完整  | 
|  ZMCHB  |  批量库存  |  ZQ\$1MCHB  |  ZMCHB\$1SRV  |  表  |  主数据  |  完整  | 
|  ZT001W  |  植物  |  T001W  |  ZT001W\$1SRV  |  表  |  主数据  |  完整  | 
|  ZT005T  |  国家/地区名称  |  T005T  |  ZT005T\$1SRV  |  表  |  主数据  |  完整  | 
|  ZT141T  |  物料状态描述  |  T141T  |  ZT141T\$1SRV  |  表  |  主数据  |  完整  | 
|  ZT173T  |  运输类型文本  |  T173T  |  ZT173T\$1SRV  |  表  |  主数据  |  完整  | 
|  ZT179  |  物料：产品层次结构  |  T179  |  ZT179\$1SRV  |  表  |  主数据  |  完整  | 
|  ZT179T  |  物料：产品层次结构文本  |  T179T  |  ZT179T\$1SRV  |  表  |  主数据  |  完整  | 
|  ZT370U  |  设备类别文本  |  T370U  |  ZT370U\$1SRV  |  表  |  主数据  |  完整  | 
|  ZT618T  |  运输方式描述  |  T618T  |  ZT618T\$1SRV  |  表  |  主数据  |  完整  | 
|  ZTVRAB  |  路线驿站  |  TVRAB  |  ZTVRAB\$1SRV  |  表  |  主数据  |  完整  | 
|  ZTVRO  |  路线  |  TVRO  |  ZTVRO\$1SRV  |  表  |  主数据  |  完整  | 
|  ZVALW  |  路线安排  |  VALW  |  ZVALW\$1SRV  |  表  |  主数据  |  完整  | 
|  ZVBBE  |  销售要求：个人记录  |  VBBE  |  ZVBBE\$1 SRVs  |  表  |  主数据  |  完整  | 
|  ZINB\$1SPILLIP  |  货件抬头和商品（入库）  |  ZV\$1INB\$1SHIPMENT 基于连接条件：VTTK.MANDT = VTTP.MANDT 和 VTTK.TKNUM = VTTP.TKNUM  |  ZINB\$1SHIPMENT​\$1SRV  |  表  |  交易性  |  完整  | 
|  ZAUFK  |  订单主数据  |  AUFK  |  ZAUFK\$1SRV  |  表  |  主数据  |  完整  | 
|  ZMARM  |  材料计量单位  |  MARM  |  ZMARM\$1SRV  |  表  |  主数据  |  完整  | 
|  ZEBAN  |  采购申请  |  EBAN  |  ZEBAN\$1SRV  |  表  |  交易性数据  |  Delta  | 