如何开发和使用云端流

Microsoft Power Platform 通过预配置的云端流组合与 SAP 集成,这些云端流协调一系列转换,并使用 SAP ERP(企业资源规划)连接器

从画布应用管理的每个 SAP 对象都映射到一系列搜索创建读取更新流。 例如,供应商对象存在四个云端流:

  • ReadVendor:根据供应商编号和关键相关信息读取单个供应商。
  • ReadVendorList:根据通过的搜索条件搜索供应商列表。
  • CreateVendor:创建包含关键相关信息的新供应商对象。
  • UpdateVendor:更新现有供应商对象和关键相关信息。

扩展云端流

您可以根据您当地的业务需求扩展云端流。 在您的 SAP 业务分析师的帮助下,您可以将新字段添加并映射到 SAP ERP 连接器,并通过 JSON 有效负载往返于应用。

创建新的采购申请提供了画布应用、云端流和 SAP 之间的典型交易场景:

  1. SAP 申请管理应用通过使用 input 控件和存储项集合中的数据来准备 JSON,将任何 null 值替换为空字符串。

         Set(
            varRequisitionJSON,//Build the requisition JSON
            "{Header: " & JSON(//Build the requisition header JSON
                {
                    PurchaseRequisitionNumber: varRequisition,
                    Vendor: Trim(txtRequisitionDetailsVendor.Text),
                    PurchasingOrganization: cmbRequisitionDetailsPurchasingOrg.Selected.'Value Code',
                    PurchasingGroup: cmbRequisitionDetailsPurchasingGroup.Selected.'Value Code',
                    Currency: cmbRequisitionDetailsCurrency.Selected.'Value Code'
                },
                JSONFormat.IndentFour
            ) & ", items: " & JSON(//Build the requisition items JSON from cached collection
                colRequisitionItems,
                JSONFormat.IndentFour
            ) & "}"
        );    
        Set(
            varRequisitionJSON,
            Substitute(
                varRequisitionJSON,
                "null",
                """"""
            )
        );
    
  2. 应用使用 Run 函数调用嵌入的 CreateRequisition 流,然后传入先前构造的 JSON 字符串。

            Set(
                varRequisitionReturn,
                CreateRequisition.Run(varRequisitionJSON)
            );
    
  3. CreateRequisition 流通过 PowerApps(V2) 触发器从应用接收 JSON 字符串,并使用分析 JSON 操作对其进行分解。

  4. 变量使用 JSON 信息设置,以更轻松地映射到 SAP ERP 连接器调用。

  5. SAP 会话是使用 SAP ERP 连接器创建的,业务应用程序编程接口 (BAPI) 调用是使用存储在变量中的解析后的申请 JSON 信息进行的。

  6. 将评估 SAP 生成的错误,并使用 JSON 有效负载将成功或错误的 HTTP 响应返回到画布应用。

  7. 画布应用使用响应信息,特别是状态字段来通知最终用户成功或失败,并确定接下来的处理步骤。

    Switch(
        varRequisitionReturn.Status,
        "Error",//Raise error messages leaving variables in existing state for user to try again
        Notify(
            Concat(
                varRequisitionReturn.Messages,
                Message,
                " "
            ),
            NotificationType.Error
        ),
        "Success",//Raise success message
        Notify(
            Concat(
                varRequisitionReturn.Messages,
                Message,
                " "
            ),
            NotificationType.Success
    );

详细信息:

支持多语言部署

默认情况下,SAP ERP 连接器会调用用户的浏览器语言与 SAP 进行交互,因此必须安装相应的 SAP 语言包。

但是,如果您需要支持多语言和全局部署,您可以替代用户的浏览器语言并默认使用某一语言。 例如,将浏览器语言设置为西班牙语的西班牙 Power Apps 用户可能需要与仅安装了英语 (EN) 语言包的 SAP 系统进行交互。 在这种情况下,将两个字母的 ENISO 639-1 代码作为 SAP 连接字符串中 Language 属性的一部分传递,以避免出现错误。

小费

将环境变量配置为解决方案管理和云端流扩展策略的一部分,以集中存储语言值,来传递到各个 ERP ERP 连接器操作

详细信息:SAP 系统属性指南

错误处理

每个流都设计有 Try/Catch 范围操作对。 在 Try 操作中,将调用主要的 SAP 连接器。 每次调用后,流都会检查 SAP ERP 连接器步骤是否发生灾难性故障,或者也称为高级业务应用程序编程 (ABAP) 核心转储。 如果进行检查,流将捕获生成的错误消息。

此错误消息将显示在 Catch 操作的 ErrorTable 步骤中,与流运行期间生成的所有错误一起显示。

所有错误流都记录在 SAP 解决方案模板错误表中。 每个流错误将显示流生成的第一个错误消息以及其他信息。

按照监视错误一文所述,转到 SAP 管理员应用程序,查看显示的错误。

下一步

扩展模型驱动应用和 Dataverse

另请参见

开始使用 SAP 采购模板