【问题标题】:Check if the Parameter has been created inside USD Data Parameters检查参数是否已在 USD 数据参数中创建
【发布时间】:2019-11-03 22:16:33
【问题描述】:

我正在尝试构建一个逻辑,我正在使用 uii 操作 CreateEntity 运行操作调用。操作调用在 CRM 自定义实体中创建记录。现在,动作调用被多次触发,这是因为它附加在被多次触发的 BrowserDocumentComplete 事件中。

现在,由于该操作调用被多次触发,因此在 CRM 中创建了多条记录。我想让它在创建第一条记录后停止,如果它创建了第一条记录,则会在 USD DataParameters 中创建一个参数。

所以,我想通过 Scriptlet 最好检查一下,如果参数让它命名为 RecordCreated 已在 USD 内部创建,则停止操作调用。

类似if (RecordCreated Exists) then stop else run

【问题讨论】:

    标签: javascript c# crm unified-service-desk


    【解决方案1】:

    理想情况下,BrowserDocumentComplete 事件不会以美元多次触发。是否 PageLoadComplete 事件通常会被触发两次。在考虑其他解决方案之前,您需要检查一次。

    谈到您的问题,如果浏览器文档完成在您的情况下未按预期工作,另一种选择是在第二次运行操作调用之前检查是否创建了记录。为此,您可以做的是,每当执行操作调用时,您都会在 USD 数据参数中获得一个对象 $Result。查找对象并获取正在创建的 CRM 记录的 guid。你应该能够访问这样的东西,

    $Result.<<Name of your action call goes here>>
    

    在您的同一个动作调用中,检查上述代码的输出是否为空的 GUID。如果它不为空,则表示您的操作调用之前已执行,否则执行操作调用以创建记录。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我相信每次页面或 iframe 完成加载时都会触发 BrowserDocumentComplete。相反,请使用通常只触发一次的事件,例如 DataReady 或 PageReady。这假设 DataReady 和 PageReady 在您的 USD 版本中可用。

      DataReady 和 PageReady 在重新加载/刷新场景期间仍然可以触发多次,因此您仍然可能遇到同样的问题。为了缓解这种情况,请检查创建记录时创建的数据参数是否存在。在条件检查中,当替换参数不存在时,允许将其替换为空字符串,使用“+”修饰符。如果您的操作调用名为“创建自定义实体记录”,那么您的条件表达式可能如下所示:

      [[$Result.Create Custom Entity Record]+]===""
      

      现在,即使多次尝试操作调用,它也应该只触发一次,并防止随后触发。后续尝试应在 Debugger 中显示为黄色,表示“ConditionFailed”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多