Ms Dynamics CRM 自定义工作流使用 c# 从表单中获取可见属性
Ms Dynamics CRM custom workflow get visible attributes from form using c#
如何在自定义工作流中使用 C# 从实体表单中获取可见属性?
任何想法请分享!
这是一个 PITA,但它是可行的。
- 从
systemform
实体中检索要处理的表单(您需要 formxml
属性)
formxml
属性包含表单定义,它是编码的(<
写成<
等等)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">
- 解析 xml,寻找 不 具有
visible
属性的 cell
元素(仅当该字段被隐藏时才存在) )
- 您可能需要通过在 xml 中进一步搜索来缩小列表范围(不是 100% 肯定子网格的样子)但我对这种逻辑没有直接经验,所以我可以不要精确定位每个极端情况
痛点:您无法判断字段可见性是否已通过 javascript
切换
可见属性是什么意思?您是指具有值的属性还是在表单中显示的属性?如果是第二种,您必须跟踪的唯一方法是使用文本字段并使用一些代码来识别活动的内容。
例如。创建一个文本字段
并在其中写入所有可见的字段,例如姓名:
"name","surname"
您可以使用 javascript 和业务规则对其进行操作,以保持每条记录的字段列表每次都更新。在后面的代码中,您只需要读取文本字段并操作魔术字符串。
这不是一个很好的操作,但是我可以看到跟踪表单上显示的字段的唯一方法。
如何在自定义工作流中使用 C# 从实体表单中获取可见属性? 任何想法请分享!
这是一个 PITA,但它是可行的。
- 从
systemform
实体中检索要处理的表单(您需要formxml
属性) formxml
属性包含表单定义,它是编码的(<
写成<
等等)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">
- 解析 xml,寻找 不 具有
visible
属性的cell
元素(仅当该字段被隐藏时才存在) ) - 您可能需要通过在 xml 中进一步搜索来缩小列表范围(不是 100% 肯定子网格的样子)但我对这种逻辑没有直接经验,所以我可以不要精确定位每个极端情况
痛点:您无法判断字段可见性是否已通过 javascript
切换可见属性是什么意思?您是指具有值的属性还是在表单中显示的属性?如果是第二种,您必须跟踪的唯一方法是使用文本字段并使用一些代码来识别活动的内容。
例如。创建一个文本字段
并在其中写入所有可见的字段,例如姓名:
"name","surname"
您可以使用 javascript 和业务规则对其进行操作,以保持每条记录的字段列表每次都更新。在后面的代码中,您只需要读取文本字段并操作魔术字符串。 这不是一个很好的操作,但是我可以看到跟踪表单上显示的字段的唯一方法。