Ms Dynamics CRM 自定义工作流使用 c# 从表单中获取可见属性

Ms Dynamics CRM custom workflow get visible attributes from form using c#

如何在自定义工作流中使用 C# 从实体表单中获取可见属性? 任何想法请分享!

这是一个 PITA,但它是可行的。

  1. systemform 实体中检索要处理的表单(您需要 formxml 属性)
  2. formxml属性包含表单定义,它是编码的(<写成&lt;等等)xml格式。

formxml 内容中,一个字段如下所示:

    <cell id="(guid)" labelid="(guid)" showlabel="true" locklevel="0" visible="false">
    <labels>
        <label description="(field label)" languagecode="1033" />
    </labels>
    <control id="(field name)" classid="(guid)" datafieldname="(field name)" disabled="false">
  1. 解析 xml,寻找 具有 visible 属性的 cell 元素(仅当该字段被隐藏时才存在) )
  2. 您可能需要通过在 xml 中进一步搜索来缩小列表范围(不是 100% 肯定子网格的样子)但我对这种逻辑没有直接经验,所以我可以不要精确定位每个极端情况

痛点:您无法判断字段可见性是否已通过 javascript

切换

可见属性是什么意思?您是指具有值的属性还是在表单中显示的属性?如果是第二种,您必须跟踪的唯一方法是使用文本字段并使用一些代码来识别活动的内容。

例如。创建一个文本字段

并在其中写入所有可见的字段,例如姓名:

"name","surname"

您可以使用 javascript 和业务规则对其进行操作,以保持每条记录的字段列表每次都更新。在后面的代码中,您只需要读取文本字段并操作魔术字符串。 这不是一个很好的操作,但是我可以看到跟踪表单上显示的字段的唯一方法。