如何获取CRM组织中所有操作的唯一名称?

时间:2014-08-13 23:09:34

标签: dynamics-crm-online

这就是我目前申请退回组织中所有操作的方式:

var qe = new QueryExpression("workflow");
qe.ColumnSet = new ColumnSet(true);
qe.Criteria.AddCondition("category", ConditionOperator.Equal, 3); // Action
qe.Criteria.AddCondition("parentworkflowid", ConditionOperator.Null);

唯一的问题是,当我查看返回的唯一名称时,它返回的是进程名称,即My Custom Action而不是实际的唯一名称,即new_MyCustomAction

这是一个错误,还是我做错了什么?

3 个答案:

答案 0 :(得分:1)

主张:

使用此fetchxml检索已激活的操作名称+带有前缀的完整唯一名称。



<fetch>
<entity name="workflow" >
    <attribute name="name" />
    <filter type="and" >
     <condition attribute="category" operator="eq" value="3" />
     <condition attribute="statuscode" operator="eq" value="2" />
     <condition attribute="type" operator="eq" value="2" />
    </filter>
    <link-entity name="sdkmessage" from="sdkmessageid" to="sdkmessageid" link-type="inner" alias="sdkMsg" >
     <attribute name="name" />
    </link-entity>
</entity>
</fetch>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

流程与发布商无关,因此他们不具有带字段前缀的唯一名称。

然而,Actions会显示一个前缀,而CRM会在内部将其存储在某处,证明如果操作是在解决方案之外或内部创建的,则前缀不同。

但是当你获得某个操作的uniquename属性时(标准工作流不包含此属性,它们只包含name)它没有前缀和CRM将它(剥离)与ID结合使用,使其在解决方案中独一无二:

        <Workflows>
            <Workflow WorkflowId="{ed949164-510c-409a-8b85-8a6917fd57d6}" Name="Update Name">
            <XamlFileName>/Workflows/UpdateName-ED949164-510C-409A-8B85-8A6917FD57D6.xaml</XamlFileName>
            <Category>3</Category>
            <UniqueName>UpdateName</UniqueName>

这是一个错误吗?这是一个功能?它们俩都是? Ai posteri l&#39; ardua sentenza

答案 2 :(得分:0)

有关带前缀的自定义操作唯一名称的信息位于sdkmessagerequest实体中,该实体可以链接到sdkmessage实体,而工作流实体具有sdkmessageid。 自定义操作的唯一名称来自于它们被视为自定义sdk消息的事实。 希望这有帮助!