Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
RebeccaYang
Product and Topic Expert
Product and Topic Expert
本文为 Using Google Workspace SDK to process purchase order information and create a sales order in SAP S/4... 的中文翻译版,原文作者为 sankalpmalhotra

使用案例:使用 Google Workspace SDK 来处理采购订单信息,并在 SAP S/4HANA Cloud 中创建销售订单。

 

序言


SAP Build Process Automation 能够实现 Google WorkSpace 产品的自动化,如 Gmail、Google Drive、Google Calendar、Google Sheet、Google Slides、Google Docs 和 Google Cloud Storage 。此外,它还能够将基于机器学习的服务自动化,例如,Google Document AI 和 Vision AI。以下 SDK 可用于实现 Google 服务的自动化。

  1. Google Authorization SDK

  2. Google Workspace SDK

  3. Google Cloud Storage SDK

  4. Google Document AI SDK

  5. Google Vision AI SDK


在这篇博客中,我将使用 Google Authorization SDK 和 Google Workspace SDK 来谈论如何使 Google Apps 自动化,如 Google Drive,Gmail 和 Google Sheet。我使用 SAP S/4HANA系统中的销售订单创建用例来解释这些功能。

这里建议的 SDK 版本是 1.31.49

 

自动化的详细用例



  • 使用 Google Workspace SDK 搜索 Gmail 账户中的采购订单邮件

  • 使用 Google Workspace SDK 阅读邮件并下载附件

  • 使用 SAP DOX 服务读取 PDF 并创建一个输出模式

  • 使用 Google Workspace SDK 将 PDF 中的内容填充到预先创建的 Google Sheet 中

  • 使用 Google Workspace SDK 从 Google Sheet 中读取内容用于创建销售订单

  • 使用预先建立的 SAP 销售订单创建机器人调取上述内容创建销售订单

  • 使用 Google Workspace SDK 将创建的销售订单 ID 回复到原始邮件中


 

前置事项



  • 一份 PDF 格式的采购订单

  • 一封包含上述 PO(采购订单)的 Gmail 邮件

  • Google Sheets 中的销售订单输入模板

  • 能够将上述模版作为输入的销售订单创建自动化


 

我有一个正在使用的销售订单自动化机器人,该机器人期望有一个如下所示的数据结构,并给出销售订单 ID 作为输出。


销售订单自动化的期望输入样本


 

第一步


创建一个如下图所示的文档模板,并为该文档模板定义 schema,以便在后续步骤中使用


采购订单文档模版样例


 

第二步


我将使用一个预定义的模板,为其填充从采购订单中读取的数据,并将其上传至 Google Drive,供 BOT 使用。


销售订单输入模版样例


现在我们已经准备好了前期的步骤,让我们开始建立自动化。

 

第三步


新建一个自动化,从 Google 产品中读取采购订单数据,并在此自动化中添加 Google 包作为依赖。


新建自动化


选择 "依赖" 选项卡并点击 "添加依赖",然后点击 "添加业务流程项目依赖",从下拉菜单中选择 "Google Authorization SDK 和 Google Workspace SDK"。

 

第四步


在自动化中添加以下步骤,以实现搜索采购订单电子邮件并从所附的 PDF 文件中提取数据。

我们的自动化将根据查询输入在用户的 Gmail 帐户中搜索电子邮件,然后读取电子邮件的内容。它将下载附件到本地文件系统并从 PDF 附件中提取数据,填入销售订单模板。

然后,机器人将使用模板中的数据,使用我们预先建立的销售订单自动化创建销售订单。




  • 添加 Search Email 活动来搜索采购订单电子邮件。这个活动使用 Gmail API 根据搜索查询参数中指定的搜索过滤器来搜索邮件。你也可以选择指定搜索是否应该包括屏蔽邮件和废弃文件夹。这个活动的输出是一个符合搜索条件的邮件元数据列表:





  • 添加 Read Email 活动以阅读电子邮件的内容。这个活动需要 Message Id 和下载附件的位置(如果有的话)。使用这个活动你可以将邮件的附件下载到你的本地文件系统中,或者你可以将附件上传到 Google Drive。我们使用 Search Email 活动(上一步)的输出来作为这个活动的 messageId 输入。这个活动的输出是目标邮件的详情:





  • 添加 Extract Data 活动来提取采购订单的详情。这个活动需要我们在前置事项中创建的文档 Schema 和文档模板。如图所示,它还需要一个文档路径,我们可以从之前的 Read Email 步骤中获取。该活动输出为按照文档模板中所定义 Schema 提取出的数据:



现在,我们的第一个用例:从用户的电子邮件中提取采购订单数据已经完成。在下一步,我们将使用这些数据来填写销售订单模板,这是我们预先建立的销售订单机器人所需要的。

  • 添加一个任意类型的自定义数据类型变量,并用一个空的列表来初始化它。如图所示,这是一个自定义数据类型(二维字符串数组),用于在后续步骤中作为 Google Sheets 活动的输入。





  • 添加一个 foreach 循环,对提取的数据的行项目进行迭代(第 4 步的输出)。





  • 在 for 循环中添加活动 Add Item (List),用于在上述数据结构变量中添加一个元素。设置值为 [currentMember.materialNumber.value, Step6.currentMember.quantity.value],这里我们创建的行值将被插入到模板的字符串数组中(代表电子表格的 1 行)。





  • 添加 Set Cell Values (Google Sheet) 活动,将我们的数据结构变量的值推送到 Google 电子表格模板中,供我们销售订单机器人使用:





  • 在自动化中添加输出参数 ThreadId,用于传递 Gmail 的邮件主题 ID,以便进行进一步操作。将此输出参数与搜索邮件活动输出的邮件主题 ID 进行映射。



通过这些步骤,我们有了一个自动化来搜索电子邮件,并使用 Google Workspace SDK 从其中提取采购订单数据,并将其填入托管在 Google Drive 中的销售订单模板(Google 电子表格)。

现在,让我们做一个从销售订单模板中读取数据并创建数据模型的自动化,这是我们预先建立的销售订单自动化所需要的。

 

第五步


创建一个新的自动化并在其中添加以下步骤,从模板中读取销售订单信息并触发销售订单创建机器人。

  • 添加一个 Get Cell Values (Google sheet) 活动来获取模板的头数据。这个活动需要 Range 和电子表格 ID 作为强制输入。为了获得目标模板的电子表格 ID,在 Google Drive 中打开它并从 Web URL 中复制 ID,如下图所示。(有关电子表格 Range 和 A1 标记的进一步信息请 参阅此处





  • 添加一个 Get Cell Values (Google sheet) 活动来获取模板的子项数据值。





  • 创建一个自定义脚本,将这些值映射到已声明的自定义变量中,如下图所示,编辑脚本并将下面的映射代码添加到脚本中。这个自定义脚本将通过上述活动从销售订单表中读取的数据映射到数据模型类型中,并填充到销售订单创建预置机器人所需要的数据中。






  • 用上面的自定义脚本的输出调用预置的自动化:





  • 在自动化中添加输出参数,并填入预置自动化步骤的输出。



至此我们有了一个可以从 Google 电子表格中读取销售订单数据,并在 SAP S/4HANA Cloud 中用这些数据创建销售订单的自动化机器人。

在理想的状态下,这两个机器人可以作为触发器运行,不断搜索电子邮件,按照要求从采购订单创建销售订单。

现在,让我们创建一个主自动化,并且将获取的销售订单 ID 回复给采购订单邮件。

 

第六步


创建一个主自动化来测试和演示我们的机器人,在这个自动化中添加以下步骤:

  • 将第四步创建的 "Extract Purchase Order From Google Workspace" 自动化添加进来





  • 添加第五步创建的 "Create Sales Order using template" 自动化





  • 添加 Reply All (Gmail) 活动,并在回复参数中添加如下自定义输入数据



这样我们的演示用例就完成了,我们可以运行主自动化来测试并在 SAP S/4HANA Cloud 中使用 Google workspace SDK 创建销售订单、提取采购订单信息,然后用创建的标准订单 ID 回复给客户。

在执行我们刚刚创建的主自动化时,自动化会在同一邮件主题中向请求者的邮件做出回复,如下图所示。



总结


当我们运行这个主自动化时,所有的值将从 Google Workspace 产品(Sheets、Gmail、Calendar、Slides、Docs 等)中动态获取。这些信息将使用 Google Workspace SDK 进行处理,并在 SAP S/4HANA Cloud 应用程序中创建一个销售订单,同时请求者也将得到包含销售订单 ID 的回复。

 

建议阅读



  1. SBPA 的 Google Workspace SDK 文档

  2. 授权 SBPA 以实现 Google 应用的自动化

  3. Google Spreadsheet Ranges


 

有关 SAP Process Automation 的更多信息,请参阅以下来源:
1 Comment