创建履行提供程序

已完成

本单元描述在 Intelligent Order Management 中创建履行提供程序所需的步骤。

创建新的提供程序定义

要创建新的提供程序定义,请按照以下步骤操作:

  1. 转到提供程序 > 目录
  2. 选择新提供程序定义
  3. 对于显示名称,输入 LabFulfillmentProvider
  4. 对于逻辑名称,输入 msdyn_LabFulfillmentProvider
  5. 对于描述,输入实验室履行提供程序
  6. 对于徽标,选择 Lab.png
  7. 对于服务类型,输入履行
  8. 选择保存并关闭

将提供程序定义添加到解决方案

要将提供程序定义添加到解决方案,请按照以下步骤操作:

  1. 转到 Power Apps Maker Portal并转到新创建的 LabProviders 解决方案。
  2. 选择添加现有 > IOM 提供程序定义
  3. 选择 LabFulfillmentProvider,然后选择添加以将其添加到解决方案。

创建提供程序操作以将履行有效负载发送到 Outlook

要创建提供程序操作以将履行有效负载发送到 Outlook,请按照以下步骤操作:

  1. 转到 Power Apps Maker Portal,并转到解决方案

  2. 打开默认解决方案

  3. 选择新建

  4. 选择云端流,然后将其命名为实验室发送到履行 (Outlook)

  5. 选择触发器类型为手动触发流,然后完成以下操作:

    • 依次选择添加输入文本,然后在第一个字段中输入 ProviderActionExecutionEventId
    • 依次选择添加输入文本,然后在第一个字段中输入 EntityRecordId

    屏幕截图:“手动触发流”属性页面。

  6. 创建变量初始化操作:

    • 对于名称,输入 ExecutionResult
    • 对于类型,选择布尔
    • 对于,输入 true
  7. 创建第二个变量初始化操作:

    • 对于名称,输入 ProcessedSaleOrderLines
    • 对于类型,选择数组
  8. 创建第三个变量初始化操作:

    • 对于名称,输入 ProcessedFulfillmentOrderLines
    • 对于类型,选择数组

    屏幕截图:变量初始化操作选项。

  9. 添加尝试范围。

  10. 尝试范围内,通过提供以下信息来添加执行未绑定操作

    • ProviderActionExecutionEventId - 选择动态内容下的 ProviderActionExecutionEventId
    • PowerAutomateRunId - 将表达式指定为:workflow()['run']?['name']

    屏幕截图:“尝试范围”页面。

  11. 添加按 ID 获取行操作,然后输入以下信息:

    • 对于表格名称,输入履行订单
    • 对于行 ID,选择动态内容下的 EntityRecordId

    屏幕截图:“尝试”页面中的行 ID 操作字段。

  12. 从 Outlook.com 连接器添加发送电子邮件操作,因为这是您之前设置的连接。

    • 收件人行上,使用 placeholder@placeholder.com 作为占位符文本。 您将在后面的步骤中将本占位符文本替换为提供程序参数。
    • 主题行上,您可以从动态内容下的获取履行订单步骤获取名称
    • 对于正文,指定以下表达式:outputs('Get_fulfillment_order')['body']

    屏幕截图:“发送电子邮件”操作页。

  13. 按照以下步骤添加列表行操作:

    • 对于表格名称,输入履行订单产品
    • 对于 Fetch Xml 查询,输入以下代码:
    <fetch>  
      <entity name="msdyn_fulfillmentorderdetail">  
       <all-attributes />
          <filter>
         <condition attribute="msdyn_fulfillmentid" operator="eq" value="@{triggerBody()['text_1']}"/>
         </filter>
      </entity>  
    </fetch>
    

    屏幕截图:“获取履行订单行”页面。

  14. 通过以下步骤的发送电子邮件操作,添加应用到每一个控件:

    • 动态内容下的获取履行订单行步骤获取
    • 动态内容下的获取履行订单行步骤获取名称
    • 选择动态内容下的当前项

    屏幕截图:“应用到每一个”控件页面。

  15. 在循环中,按照以下步骤添加追加到数组变量操作:

    • 对于名称,输入 ProcessedFulfillmentOrderLines
    • 对于,选择动态内容下的履行行 ID

    屏幕截图:“追加到已处理的履行行”页面。

  16. 在循环中,按照以下步骤添加另一个追加到数组变量操作:

    • 对于名称,输入 ProcessedSalesOrderLines
    • 对于,选择动态内容下的销售行 ID

    屏幕截图:“追加到已处理的订单行”页面。

  17. 通过选择其标题栏来折叠尝试范围。

  18. 选择新建步骤,然后添加另一个名为捕获的范围。

  19. 捕获范围中,依次选择省略号 (...)、配置运行条件,然后完成以下设置操作:

    • 选择已失败复选框。
    • 选择已超时复选框。

    屏幕截图:“捕获范围”页面。

  20. 捕获范围中选择添加操作。 添加设置变量操作,然后将其重命名为将执行结果设置为失败

  21. 设置如下属性:

    • 对于名称,输入 ExecutionResult
    • 对于,输入 false

    屏幕截图:“将执行结果设置为失败”页面。

  22. 选择新建步骤,然后添加另一个名为最后的范围。

  23. 最后范围中,依次选择省略号 (...)、配置运行条件,然后完成以下设置操作:

    • 选择成功复选框。
    • 选择已超时复选框。
    • 选择跳过复选框。
    • 选择已超时复选框。

    屏幕截图:“最后范围”页面。

  24. 最后范围页上,添加条件步骤,然后将 ExecutionResult 变量与 true 进行比较,如下所示:

    • 在第一个字段中,选择 ExecutionResult 变量。
    • 在第二个字段中,选择等于
    • 在第三个字段中,选择 true

    屏幕截图:显示三个字段的“条件”步骤。

  25. 如果是分支中,添加运行子流操作,然后将其重命名为为已处理的履行订单行引发业务事件

  26. 设置如下属性:

    • 对于子流,输入引发业务事件
    • 对于 BusinessEventDefinitionId,输入 063d85c8-60a4-eb11-9443-000d3a313675
    • 对于 EntityRecordId,指定以下表达式:string(variables('ProcessedFulfillmentOrderLines'))

    屏幕截图:具有“运行子流”操作(业务事件)的“为已处理的履行订单行引发业务事件”页面。

  27. 如果是分支中,添加另一个运行子流操作,然后将其重命名为引发销售订单聚合事件

  28. 设置如下属性:

    • 对于 LineBusinessEventDefinitionId,输入 ccf64002-61a4-eb11-9443-000d3a313675
    • 对于 LineRecordId,将表达式指定为:string(variables('ProcessedSalesOrderLines'))
    • 对于 OrderBusinessEventDefinitionId,输入 48688716-61a4-eb11-9443-000d3a313675

    屏幕截图:“运行子流”操作(聚合事件)。

  29. 折叠条件步骤。

  30. 按照以下步骤添加执行未绑定操作

    • 对于操作名称,输入 msdyn_CompleteProviderActionExecution
    • 对于 ExecutionResult,选择动态内容下的 ExecutionResult 变量。
    • 对于 ProviderActionExecutionEventId,选择动态内容下的 ProviderActionExecutionEventId

    屏幕截图:执行未绑定操作。)

  31. 选择保存

将提供程序定义逻辑定义添加到 Outlook 提供程序定义

要将提供程序定义逻辑定义添加到 Outlook 提供程序定义,请按照以下步骤操作:

  1. 转到提供程序 > 目录
  2. 选择新创建的 LabFulfillmentProvider
  3. 选择菜单栏上的编辑
  4. 选择逻辑定义选项卡。
  5. 选择 + 新建 IOM 提供程序定义逻辑定义
  6. 对于显示名称,输入实验室发送到履行 (Outlook)
  7. 对于逻辑名称,输入 msdyn_LabSentToFulfillmentOutlook
  8. 对于提供程序定义,输入 LabFulfillmentProvider
  9. 对于逻辑类型,输入提供程序操作
  10. 对于工作流名称,输入实验室发送到履行 (Outlook)
  11. 对于超时分钟数,输入 2
  12. 对于最大重试次数,输入 3
  13. 对于描述,输入实验室发送到履行 (Outlook)
  14. 对于操作类型,输入发送到履行
  15. 选择保存。 此操作将生成消息处理程序云端流的 JSON 表示形式,并将填充客户端数据字段。
  16. 通过复制客户端数据字段中的文本块,然后将其粘贴到记事本中,将占位符电子邮件替换为提供程序参数。
  17. 在文本块中,查找 placeholder@placeholder.com 并替换为 {{LabOutboundFulfillmentEmail}}
  18. 将修改后的文本块复制回客户端数据字段。
  19. 选择保存并关闭
  20. 选择连接。 现在应列出了 Microsoft DataverseOutlook.com 连接引用定义。

将提供程序定义逻辑定义添加到 Outlook LabProviders 解决方案

要将提供程序定义逻辑定义添加到 Outlook LabProviders 解决方案,请按照以下步骤操作:

  1. 转到 Power Apps Maker Portal并转到新创建的 LabProviders 解决方案。
  2. 选择添加现有 > IOM 提供程序定义逻辑定义
  3. 选择实验室发送到履行 (Outlook),然后选择添加以将其添加到解决方案。

将提供程序定义连接引用添加到 LabProviders 解决方案

要将提供程序定义连接引用添加到 LabProviders 解决方案,请按照以下步骤操作:

  1. 转到 Power Apps Maker Portal并转到新创建的 LabProviders 解决方案。
  2. 选择添加现有 > IOM 提供程序定义连接引用
  3. 选择 Microsoft DataverseOutlook.com 提供程序定义连接引用,然后选择添加以将其添加到解决方案。

创建提供程序操作以将履行有效负载发送到 RequestBin

要创建提供程序操作以将履行有效负载发送到 RequestBin,请按照以下步骤操作:

  1. 转到 Power Apps Maker Portal,并转到解决方案

  2. 打开默认解决方案

  3. 选择新建

  4. 选择云端流,然后将其命名为实验室发送到履行 (RequestBin)

  5. 选择触发器类型为手动触发流,然后输入以下信息:

    • 依次选择添加输入文本,然后在第一个字段中输入 ProviderActionExecutionEventId
    • 依次选择添加输入文本,然后在第一个字段中输入 EntityRecordId

    屏幕截图:手动触发流属性 (RequestBin) 的具体操作。

  6. 创建变量初始化操作:

    • 对于名称,输入 ExecutionResult
    • 对于类型,选择布尔
    • 对于,输入 true
  7. 创建第二个变量初始化操作:

    • 对于名称,输入 ProcessedSaleOrderLines
    • 对于类型,选择数组
  8. 创建第三个变量初始化操作:

    • 对于名称,输入 ProcessedFulfillmentOrderLines
    • 对于类型,选择数组

    屏幕截图:变量初始化操作 (RequestBin)。

  9. 添加尝试范围。

  10. 尝试范围中,按照以下步骤添加执行未绑定操作

    • ProviderActionExecutionEventId - 选择动态内容下的 ProviderActionExecutionEventId
    • PowerAutomateRunId - 将表达式指定为:workflow()['run']?['name']

    屏幕截图:尝试范围 (RequestBin)。

  11. 添加按 ID 获取行操作,然后按照以下步骤设置该操作:

    • 对于表格名称,输入履行订单
    • 对于行 ID,选择动态内容下的 EntityRecordId

    屏幕截图:“获取行 ID”操作 (RequestBin)。

  12. 通过从动态内容下为正文选择正文,从 RequestBin 连接器添加创建履行订单操作。

    屏幕截图:“创建履行订单”操作。

  13. 按照以下步骤添加列表行操作:

    • 对于表格名称,输入履行订单产品
    • 对于 Fetch Xml 查询,输入以下信息:
    <fetch>  
      <entity name="msdyn_fulfillmentorderdetail">  
       <all-attributes />
          <filter>
         <condition attribute="msdyn_fulfillmentid" operator="eq" value="@{triggerBody()['text_1']}"/>
         </filter>
      </entity>  
    </fetch>
    

    屏幕截图:列表行操作。

  14. 通过按照以下步骤从 RequestBin 连接执行创建履行订单行操作,添加应用到每一个控件:

    • 动态内容下的获取履行订单行步骤获取
    • 选择动态内容下的当前项

    屏幕截图:“应用到每一个”控件 (Requestbin)。

  15. 在循环中,按照以下步骤添加追加到数组变量操作:

    • 对于名称,输入 ProcessedFulfillmentOrderLines
    • 对于,选择动态内容下的履行行 ID

    屏幕截图:“追加到数组”操作(履行)。

  16. 在循环中,按照以下步骤添加另一个追加到数组变量操作:

    • 对于名称,输入 ProcessedSalesOrderLines
    • 对于,选择动态内容下的销售行 ID

    屏幕截图:“追加到数组”操作(销售)。

  17. 通过选择其标题栏来折叠尝试范围。

  18. 选择新建步骤,然后添加另一个重命名为捕获的范围。

  19. 捕获范围中,依次选择省略号 (...)、配置运行条件,然后按照以下步骤操作:

    • 选择已失败复选框。
    • 选择已超时复选框。

    屏幕截图:“捕获范围”页面。

  20. 捕获范围页面中,选择添加操作,添加设置变量操作,然后将其重命名为将执行结果设置为失败

  21. 设置如下属性:

    • 对于名称,输入 ExecutionResult
    • 对于,输入 false

    屏幕截图:设置变量。

  22. 选择新建步骤,然后添加另一个重命名为最后的范围。

  23. 最后范围中,依次选择省略号 (...)、配置运行条件,然后按照以下步骤操作:

    • 选择成功复选框。
    • 选择已超时复选框。
    • 选择跳过复选框。
    • 选择已超时复选框。

    屏幕截图:“最后范围”页面。

  24. 最后范围页上,添加条件步骤,然后将 ExecutionResult 变量与 true 进行比较,如下所示:

    • 在第一个字段中,选择 ExecutionResult 变量。
    • 在第二个字段中,选择等于
    • 在第三个字段中,选择 true

    屏幕截图:条件步骤。

  25. 如果是分支中,添加运行子流操作,然后将其重命名为为已处理的履行订单行引发业务事件

  26. 设置如下属性:

    • 对于子流,输入引发业务事件
    • 对于 BusinessEventDefinitionId,输入 063d85c8-60a4-eb11-9443-000d3a313675
    • 对于 EntityRecordId,指定以下表达式:string(variables('ProcessedFulfillmentOrderLines'))
  27. 如果是分支中,添加另一个运行子流操作,然后将其重命名为引发销售订单聚合事件

  28. 设置如下属性:

    • 对于 LineBusinessEventDefinitionId,输入 ccf64002-61a4-eb11-9443-000d3a313675
    • 对于 LineRecordId,指定以下表达式:string(variables('ProcessedSalesOrderLines'))
    • 对于 OrderBusinessEventDefinitionId,输入 48688716-61a4-eb11-9443-000d3a313675

    屏幕截图:“运行子流”操作(聚合事件)。

  29. 折叠条件步骤。

  30. 按照以下步骤添加执行未绑定操作

    • 对于操作名称,输入 msdyn_CompleteProviderActionExecution
    • 对于 ExecutionResult,选择动态内容下的 ExecutionResult 变量。
    • 对于 ProviderActionExecutionEventId,选择动态内容下的 ProviderActionExecutionEventId

    屏幕截图:执行未绑定操作。)

  31. 选择保存

将提供程序定义逻辑定义添加到提供程序定义 (RequestBin)

要将提供程序定义逻辑定义添加到 (RequestBin) 提供程序定义,请按照以下步骤操作:

  1. 转到提供程序 > 目录
  2. 选择新创建的 LabFulfillmentProvider
  3. 选择菜单栏上的编辑
  4. 选择逻辑定义选项卡。
  5. 选择 + 新建 IOM 提供程序定义逻辑定义
  6. 对于显示名称,输入实验室发送到履行 (RequestBin)
  7. 对于逻辑名称,输入 msdyn_LabSentToFulfillmentRequestBin
  8. 对于提供程序定义,输入 LabFulfillmentProvider
  9. 对于逻辑类型,输入提供程序操作
  10. 对于工作流名称,输入实验室发送到履行 (RequestBin)
  11. 对于超时分钟数,输入 2
  12. 对于最大重试次数,输入 3
  13. 对于描述,输入实验室发送到履行 (RequestBin)
  14. 对于操作类型,输入发送到履行
  15. 选择保存。 此操作将生成消息处理程序云端流的 JSON 表示形式,并将填充客户端数据字段。
  16. 选择保存并关闭
  17. 选择连接。 现在应列出了 Microsoft DataverseOutlook.comRequestBin 连接引用定义。

将提供程序定义参数添加到提供程序定义

要将提供程序定义参数添加到提供程序定义,请按照以下步骤操作:

  1. 选择参数
  2. 选择 + 新建 IOM 提供程序定义参数
  3. 对于显示名称,输入 LabOutboundFulfillmentEmail
  4. 对于数据类型,输入文本
  5. 对于提供程序定义,输入 LabFulfillmentProvider
  6. 对于密钥,输入 LabOutboundFulfillmentEmail
  7. 对于逻辑名称,输入 msdyn_LabOutboundFulfillmentEmail
  8. 对于是否必填,输入
  9. 选择保存并关闭

将提供程序定义逻辑定义添加到 LabProviders 解决方案 (RequestBin)

要将提供程序定义逻辑定义添加到 RequestBin LabProviders 解决方案,请按照以下步骤操作:

  1. 转到 Power Apps Maker Portal并转到新创建的 LabProviders 解决方案。
  2. 选择添加现有 > IOM 提供程序定义逻辑定义
  3. 选择实验室发送到履行 (RequestBin),然后选择添加以将其添加到解决方案。

将提供程序定义连接引用添加到 LabProviders 解决方案

要将提供程序定义连接引用添加到 LabProviders 解决方案,请按照以下步骤操作:

  1. 转到 Power Apps Maker Portal并转到新创建的 LabProviders 解决方案。
  2. 选择添加现有 > IOM 提供程序定义连接引用
  3. 选择 RequestBin,然后选择添加以将其添加到解决方案。

将提供程序定义参数添加到 LabProviders 解决方案

要将提供程序定义参数添加到 LabProviders 解决方案,请按照以下步骤操作:

  1. 转到 Power Apps Maker Portal并转到新创建的 LabProviders 解决方案。
  2. 选择添加现有 > IOM 提供程序定义参数
  3. 选择 LabOutboundFulfillmentEmail,然后选择添加以将其添加到解决方案。