使用工作效率自动化宏

您可以使用工作效率自动化宏自动执行以下任务:

  • 打开和更新记录
  • 打开视图
  • 解决案例
  • 搜索知识库
  • 克隆记录
  • 将焦点设置到另一个代理脚本
  • 打开电子邮件模板
  • 自动填充窗体字段
  • 在会话上下文中设置和检索变量和值

您可以在不同宏中任意次使用工作效率自动化操作来自动化和执行模型驱动应用操作。

以下各节介绍可用于创建宏的不同工作效率自动化操作。

打开新窗体以创建记录

打开新窗体来创建记录。 此操作包含以下字段。

字段 Description
实体逻辑名称 指定要打开的实体的逻辑名称。
实体窗体 ID 指定窗体 ID。
属性名称 指定属性的逻辑名称。 您需要提供应用程序的属性名称来使用值填充字段。
属性值 指定属性值。 您需要提供应用程序的属性值来填充属性字段。

备注

此操作需要特定模式来设置查找值。 对于单个查找,必须将相关的记录 ID、记录类型和记录名称作为单独的属性传递。

示例 1:从现有案例创建新任务

执行以下步骤创建宏来打开案例中的任务:

  1. 添加创建任务、具有以下属性的打开新窗体来创建记录操作:
    • 主题:使用数据参数检索的案例编号。
      • 属性名称:主题
      • 属性值:与 $(anchor.ticketnumber) 相关的跟进任务
    • 说明:文本字符串和使用 oData 查询检索的客户电子邮件地址的组合。
      • 属性名称:说明
      • 属性值:查看客户电子邮件:{$odata.contact.emailaddress1.?$filter=contactid eq '{anchor._customerid_value}'}
    • 关于:客户记录。
      • 属性名称:regardingobjectid
      • 属性值${anchor.incidentid}
      • 属性名称:regardingobjectidtype
      • 属性值incident
      • 属性名称:regardingobjectidname
      • 属性值${anchor.title}
  2. 添加保存记录操作。

示例 2:从对话创建新案例

执行以下步骤创建宏来从对话打开案例:

  1. 添加具有以下属性的打开新窗体来创建记录操作:
    • 主题:使用数据参数检索的对话。
      • 属性名称:主题
      • 属性值:跟进 $(customerName)
    • 说明:文本字符串和通过 oData 查询检索的客户电子邮件地址的组合。
      • 属性名称:说明
      • 属性值:查看客户电子邮件:{$odata.contact.emailaddress1.?$filter=contactid eq '{customerRecordid}'}
    • 关于:客户记录。
      • 属性名称:regardingobjectid
      • 属性值${customerRecordid}
      • 属性名称:regardingobjectidtype
      • 属性值${customerEntityName}
      • 属性名称:regardingobjectidname
      • 属性值${customerName}
  2. 添加保存记录操作。

打开现有记录

打开现有记录窗体。 此操作包含以下字段。

字段 Description
实体逻辑名称 指定要打开的实体的逻辑名称。
实体记录 ID 指定实体记录 ID。
实体窗体 ID 指定窗体 ID。

示例 1:打开现有案例中的产品记录

要创建宏来打开现有案例中的产品记录,添加从案例中读取产品 ID、具有以下属性的打开现有记录操作:

  • 实体逻辑名称product
  • 实体记录 ID${anchor._productid_value}

示例 2:打开对话中的客户记录

要创建宏来从正在进行的对话打开客户记录,添加从对话中读取客户 ID、具有以下属性的打开现有记录操作:

  • 实体记录 ID${customerEntityName}
  • 实体逻辑名称${customerRecordid}

自动填充表单域

更新窗体字段。 在窗体触发自动保存之前,此宏操作不会自动将新值保存在 Dataverse 中。 您可以使用另一个宏操作保存记录。 或者,您可以根据业务要求使用更新现有记录宏。 此操作适用于聚焦选项卡中的窗体,具有与操作中提到的实体类型相同的实体类型。

字段 Description
实体逻辑名称 指定要更新的实体的逻辑名称。

备注

此宏需要特定模式来设置查找值。 对于单个查找,需要将相关的记录 ID、记录类型和记录名称作为单独的属性传递。

示例 1:打开任务窗体,从案例填充窗体字段

执行以下步骤创建一个打开任务窗体,然后使用定位点选项卡中的值填充窗体的宏:

  1. 添加打开任务记录、具有以下参数的打开新窗体来创建记录操作:
    • 实体逻辑名称task
  2. 添加使用作为定位点选项卡的案例窗体中的值填充新任务记录、具有以下属性的自动填充窗体字段
    • 实体逻辑名称task
    • 属性名称:主题
    • 属性值:与 ${anchor.ticketnumber} 相关的跟进任务
    • 属性名称:regrdingobjectid
    • 属性值{{"id":"${anchor.incidentid}","name":"${anchor.title}","entitytype":"incident"}}

示例 2:打开任务窗体,从对话填充窗体字段

执行以下步骤创建一个打开任务窗体,然后使用数据参数使用对话中的值填充窗体的宏:

  1. 添加打开任务记录、具有以下参数的打开新窗体来创建记录操作:
    • 实体逻辑名称task
  2. 添加使用对话中的值填充新任务记录、具有以下属性的自动填充窗体字段
    • 实体逻辑名称task
    • 属性名称:主题
    • 属性值:与 ${anchor.customerName} 相关的跟进任务
    • 属性名称:regrdingobjectid
    • 属性值"${customerName}","entitytype":"${customerEntityName}"}}

更新现有记录

更新现有记录。 此操作包含以下字段。

字段 Description
实体逻辑名称 指定要更新的实体的逻辑名称。
该字段是必需字段。
实体记录 ID 指定实体记录 ID。
该字段是必需字段。
属性名称 指定要更新的属性逻辑名称。
属性值 指定将为上述属性更新的属性值。

备注

此宏需要特定模式来设置查找值。 对于单个查找,需要将相关的记录 ID、记录类型和记录名称作为单独的属性传递。

示例 1:打开任务窗体、创建任务,然后更新记录

执行以下步骤创建一个打开任务窗体、创建新窗体,然后从现有记录更新任务窗体的宏:

  1. 添加打开任务记录、具有以下参数的打开新窗体来创建记录操作:
    • 实体逻辑名称task
  2. 添加保存记录操作。
  3. 添加使用动态内容中的记录 ID 和逻辑名称(在保存记录操作后获取)以及基于定位点选项卡中的值的相关对象填充新任务记录、具有以下属性的更新现有记录
    • 实体记录 IDEntity record ID
    • 实体逻辑名称Entity logical name
    • 属性名称:regardingobjectid_incident@odata.bind
    • 属性值/incidents{${anchor.incidentid}}
  4. 添加刷新选项卡会话操作来刷新任务窗体,因为更新记录宏执行后端操作,不会自动刷新选项卡。

注意

在示例中,窗体在保存记录操作刷新选项卡操作之后刷新。 我们建议您以这样的方式设计宏,以减少窗体加载。

解决案例

使用操作解决案例。 此操作包含以下字段。

字段 Description
记帐时间 指定可记帐时间。
该字段是必需字段。
事件 ID 指定要关闭的案例的 ID。
该字段是必需字段。
解决 指定要解决服务案例的原因。
该字段是必需字段。

示例:解析案例的宏

执行以下步骤创建解决案例的宏。 当代理使用宏解决案例时,选项卡不会自动刷新,因此建议使用更多步骤来实现更好的用户体验。

  1. 添加用于解决案例的操作操作将记帐时间作为数值传递,事件 ID 是需要解决的记录 ID,包含以下属性:
  • 事件 ID${anchor.incidentid}
  • 记帐时间:0
  • 解析:通过宏解析 Case${anchor.ticketnumber}
  1. 添加获取当前选项卡会话连接器。
  2. 添加刷新选项卡会话操作来使用以下属性刷新选项卡:-选项卡 ID:选项卡 ID

打开包含预定义模板的电子邮件窗体

此操作用于通过预定义的模板打开电子邮件。 此操作包含以下字段。

字段 Description
实体逻辑名称 指定要向其发送电子邮件的实体的逻辑名称。
该字段是必需字段。
实体记录 ID 指定要向其发送电子邮件的实体记录的记录 ID。
该字段是必需字段。
电子邮件收件人 指定要向其发送电子邮件的记录的显示名称。
该字段是必需字段。
模板 ID 指定要向其发送电子邮件且必须在电子邮件中显示的实体类型的电子邮件模板 ID。
该字段是必需字段。

备注

电子邮件收件人字段需要一个参数,但不会自动映射到窗体中的用户。 我们建议您使用自动填充窗体字段宏相应地填充值。

示例 1:从案例打开电子邮件模板

执行以下步骤创建一个打开案例类别电子邮件模板的宏:

  1. 添加基于模板 ID 添加模板,并使用收件人关于字段填充电子邮件窗体的打开包含预定义模板的电子邮件窗体操作。 属性如下所示:
    • 模板 ID:指定所需电子邮件模板的 ID。
    • 实体记录 ID${anchor.incidentid}
    • 电子邮件收件人${anchor._customerid_value@OData.Community.Display.V1.FormattedValue}
    • 实体逻辑名称incident
  2. 添加自动填充窗体字段操作来填充“收件人”和“关于”字段。 属性如下所示:
    • 实体逻辑名称Email
    • 属性名称:to
    • 属性值[{"id":"${anchor._customerid_value}","entitytype":"contact","name":"${anchor._customerid_value@OData.Community.Display.V1.FormattedValue}"}]
    • 属性名称:regardingobjectid
    • 属性值[{"id":"${anchor.incidentid}"},"name":"${anchor.title}","entitytype":"incident"}]

示例 2:从对话打开电子邮件模板

执行以下步骤创建一个打开联系人类别电子邮件模板的宏:

  1. 添加基于模板 ID 添加模板,并使用收件人关于字段填充电子邮件窗体的打开包含预定义模板的电子邮件窗体操作。 属性如下所示:
    • 模板 ID:指定所需电子邮件模板的 ID。
    • 实体记录 ID${customerRecordId}
    • 电子邮件收件人${customerName}
    • 实体逻辑名称${customerEntityName}
  2. 添加自动填充窗体字段操作来填充“收件人”和“关于”字段。 属性如下所示:
    • 实体逻辑名称Email
    • 属性名称:to
    • 属性值[{"id":"${customerRecordId}", "entitytype":"contact","name":"${customerName}"}]
    • 属性名称:regardingobjectid
    • 属性值[{"id":"${customerRecordId}"},"entitytype":"contact","name": "${customerName}"}]|

示例 3:打开具有多个收件人的电子邮件模板

执行以下步骤创建一个打开案例类别电子邮件模板,并在电子邮件“收件人”字段中设置多个收件人的宏:

  1. 添加基于模板 ID 添加模板,并使用收件人关于字段填充电子邮件窗体的打开包含预定义模板的电子邮件窗体操作。 属性如下所示:
    • 模板 ID:指定所需电子邮件模板的 ID。
    • 实体记录 ID${customerRecordId}
    • 电子邮件收件人${customerName}
    • 实体逻辑名称${customerEntityName}
  2. 添加自动填充窗体字段操作来填充“收件人”和“关于”字段。 “收件人”字段必须填充客户的电子邮件 ID 和自定义字段第二联系人。 属性如下所示:
    • 实体逻辑名称phonecall
    • 属性名称:主题
    • 属性值:与案例 ${anchor.ticketnumber} 相关的跟进任务
    • 属性名称:to
    • 属性值[{"id":"${anchor._customerid_value}","type":"${anchor._customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname}","name":"${anchor._customerid_value@OData.Community.Display.V1.FormattedValue}", {"id":"${anchor._cr27b_secondarycontact_value}","type":"contact","name":"${anchor._cr27b_secondarycontact_value@OData.Community.Display.V1.FormattedValue}"}]
    • 属性名称:regardingobjectid
    • 属性值[{"id":"${anchor.incidentid}"},"name":"${anchor.title}","entitytype":"incident"}]

在知识库中搜索填充的短语

此宏根据填充的短语搜索知识文章。 此操作包含以下字段。

字段 Description
搜索字符串 基于要在知识文章中搜索的内容提供短语。 可提供上下文数据。 例如,上下文数据参数可以为案例标题。
选项卡标签 指定选项卡标签。

示例:基于字符串搜索文章

执行以下步骤创建基于短语执行搜索的宏:

  1. 添加将案例标题作为搜索短语的在知识库中搜索填充的短语操作。 以下是属性:
    • 选项卡标签:搜索 ${anchor.title}
    • 搜索字符串${anchor.title}

打开知识库文章

打开知识库文章。 此操作包含以下字段。

字段 Description
实体记录 ID 指定要打开的知识库文章的实体 ID。
该字段是必需字段。

示例:打开传递 GUID 的知识库文章

执行以下步骤创建一个基于知识库文章 ID 打开知识库文章的宏。 | 添加打开知识库文章操作打开知识文章,此操作由知识库作者用于文章修订。 属性如下所示:
实体记录 ID:指定知识库文章的实体 ID。|

打开记录网格

此操作用于打开记录网格。 此操作包含以下字段。

字段 Description
实体逻辑名称 指定您要为其打开网格的实体的逻辑名称。
该字段是必需字段。
视图 ID 指定要打开的视图的 ID。
该字段是必需字段。
视图类型 指定视图类型。
该字段是必需字段。

示例 1:打开产品列表

要创建打开产品列表的宏,添加打开记录网格操作打开用户的默认视图,因为不会指定视图类型和 ID。 指定以下属性:实体逻辑名称incident

示例 2:打开事件列表

要创建打开事件列表的宏,添加打开记录网格操作打开指定的视图类型。 以下是属性:

  • 实体逻辑名称incident
  • 视图类型:指定视图类型。
  • 视图 ID:指定要在其中打开事件的视图的 ID

根据短语进行相关性搜索

根据填充的短语搜索知识文章。 此操作包含以下字段。

字段 Description
搜索字符串 基于要对其执行相关性搜索的内容提供短语。 可提供上下文数据。 例如,上下文数据参数可以为案例标题。
本字段为必填。

示例 1:搜索具有相同案例标题的案例

要创建使用案例标题搜索相似案例的宏,添加根据短语进行相关性搜索操作来使用定位点选项卡中的案例标题作为相关性搜索的参数,搜索字符串设置为 ${anchor.title}

克隆当前记录

克隆在当前选项卡中打开的现有记录。此操作仅复制字段,不保存记录。 此操作包含以下字段。

字段 Description
记录标题 指定要克隆的记录的标题。
该字段是必需字段。

示例:使用克隆当前记录创建子案例

执行以下步骤创建一个创建现有案例的克隆并使其成为父案例的宏。 原始案例设置为子案例:

  1. 添加克隆原始案例的克隆当前记录操作,然后将克隆的案例设置为父案例。 原始案例设置为子案例。 将记录标题属性设置为 ${anchor.ticketnumber} 的子案例。
  2. 添加使用指定的属性填充子案例的自动填充窗体字段。 保存记录时会设置票证编号。 以下是属性:
    • 实体逻辑名称incident
    • 属性名称:parentcaseid
    • 属性值[{"id": "${anchor.incidentid}","name":"${anchor.title}","entitytype":"incident"}]
    • 属性名称:ticketnumber
    • 属性值
  3. 添加保存记录操作来生成和设置子案例的票证编号。
|

克隆输入记录

克隆现有记录。 此操作仅复制字段,不保存记录。 此操作包含以下字段。

字段 Description
记录标题 指定记录标题。
实体记录 ID 指定实体记录的 ID。
该字段是必需字段。
实体逻辑名称 指定要克隆的实体的逻辑名称。
该字段是必需字段。

示例:使用克隆输入记录创建子案例

执行以下步骤创建宏以克隆现有案例。 现有案例设置为父案例,克隆的案例设置为子案例。

  1. 添加克隆原始案例的克隆当前记录操作,然后将克隆的案例设置为子案例。 原始案例设置为父案例。 以下是属性:
    • 实体记录 ID${anchor.incidentid}
    • 实体逻辑名称incident
    • 记录标题${anchor.title} 的子案例
  2. 添加使用指定的属性填充子案例的自动填充窗体字段。 保存记录时会设置票证编号。 以下是属性:
    • 实体逻辑名称Entity logical name
    • 属性名称:parentcaseid
    • 属性值[{"id": "${anchor.incidentid}","name":"${anchor.title}","entitytype":"incident"}]
    • 属性名称:ticketnumber
    • 属性值
  3. 添加保存记录操作来生成和设置子案例的票证编号。

设置代理脚本焦点

将焦点设置在接下来需要运行的代理脚本上。 代理脚本在应用侧窗格的代理脚本下拉列表中设置为焦点。 例如,如果代理需要处理退款投诉。 代理使用不同的脚本进行问候、发起投诉请求和处理退款。 您可以定义宏,将焦点设置在退款过程的每个阶段需要运行的代理脚本上。 此操作包含以下字段。

字段 Description
代理脚本唯一名称 指定需要作为焦点的代理脚本。

示例:更新案例的优先级并将焦点设置到另一个代理脚本

执行以下步骤创建一个将案例的优先级更新为高,然后切换到另一个代理脚本的宏。 处于焦点的代理脚本必须与会话模板关联。

  1. 添加具有以下属性的更新现有记录操作:
    • 实体记录 ID${anchor.incidentid}
    • 实体逻辑名称incident
    • 属性名称:优先级代码
    • 属性值:1
  2. 添加设置代理脚本焦点操作,将代理脚本唯一名称设置为 new_agentscript_highpriority
  3. 添加获取当前选项卡会话连接器。
  4. 添加刷新选项卡会话连接器。

保存此记录

在所有必填字段中输入数据后保存记录。 如果不输入必填字段或将其保留为空,操作将失败。

后续步骤

使用会话连接器创建宏