Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamics crm 2011 如何以编程方式在工作流\对话框中搜索属性并替换它?_Dynamics Crm 2011_Workflow Foundation_Dynamics Crm 2013_Dynamics Crm 2015 - Fatal编程技术网

Dynamics crm 2011 如何以编程方式在工作流\对话框中搜索属性并替换它?

Dynamics crm 2011 如何以编程方式在工作流\对话框中搜索属性并替换它?,dynamics-crm-2011,workflow-foundation,dynamics-crm-2013,dynamics-crm-2015,Dynamics Crm 2011,Workflow Foundation,Dynamics Crm 2013,Dynamics Crm 2015,我试图用另一个属性替换CRM中的一个属性。目前,它们都是选项集,但我需要能够通过编程实现这一点。我可以下载实体的表单,搜索属性,并将其替换为其他属性,但我不确定如何在工作流/对话框中执行此操作。有人知道怎么做吗?有人有可用的代码示例吗?以下是从SDK中获取的更新示例: // ///演示如何创建、检索、更新和删除。 ///对话过程。 /// ///在运行时,您将可以选择删除所有 ///此程序创建的数据库记录。 公共级积垢 { #区域级成员 私有Guid\u对话框ID; 私有组织servicePr

我试图用另一个属性替换CRM中的一个属性。目前,它们都是选项集,但我需要能够通过编程实现这一点。我可以下载实体的表单,搜索属性,并将其替换为其他属性,但我不确定如何在工作流/对话框中执行此操作。有人知道怎么做吗?有人有可用的代码示例吗?

以下是从SDK中获取的更新示例:

//
///演示如何创建、检索、更新和删除。
///对话过程。
/// 
///在运行时,您将可以选择删除所有
///此程序创建的数据库记录。
公共级积垢
{
#区域级成员
私有Guid\u对话框ID;
私有组织serviceProxy\u serviceProxy;
/// 
///TODO:更改示例XAML文件的位置和文件名
///包含对话框定义。
///例如,使用SDK\SampleCode\CS\Dialogs文件夹中的示例xml文件。
/// 
字符串pathToXAML=Path.Combine(Environment.CurrentDirectory,@“CallCategorization.xml”);
#endregion类级别成员
#如何对代码进行采样
/// 
///此方法首先连接到组织服务。然后,
///创建、检索、更新和删除操作在
///对话过程。
/// 
///包含服务器连接信息。
///如果为True,系统将提示用户删除所有
///创建实体。
公共无效运行(ServerConnection.Configuration serverConfig,bool promptforDelete)
{
尝试
{
//连接到组织服务。
//using语句确保服务代理将被正确地处理。
使用(_serviceProxy=new OrganizationServiceProxy(serverConfig.OrganizationUri、serverConfig.HomeRealmUri、serverConfig.Credentials、serverConfig.Device
{
//此语句是启用早期绑定类型支持所必需的。
_serviceProxy.EnableProxyTypes();
CreateRequiredRecords();
//定义一个匿名类型以定义的可能值
//工作流类别
var WorkflowCategory=new
{
工作流=0,
对话=1
};
//实例化工作流对象。
//请参阅SDK文档中的实体元数据主题以确定
//必须为每个实体设置哪些属性。
工作流示例对话框=新建工作流
{
类别=新选项SetValue((int)WorkflowCategory.Dialog),
Name=“示例对话框:调用分类”,
PrimaryEntity=PhoneCall.EntityLogicalName,
//美国英语的语言代码
语言代码=1033,
Xaml=File.ReadAllText(pathToXAML)
};
//创建一个对话框记录。
_dialogId=\u serviceProxy.Create(sampleDialog);
Write(“{0}已创建,”,sampleDialog.Name);
//激活对话框。
SetStateRequest activateRequest=新的SetStateRequest
{
EntityMoniker=新的EntityReference(Workflow.EntityLogicalName,_dialogId),
状态=新选项设置值((int)WorkflowState.Activated),
状态=新选项设置值(2)
};
_serviceProxy.Execute(activateRequest);
控制台。WriteLine(“和激活”);
//检索包含多个属性的对话框。
ColumnSet cols=新列集(“名称”、“状态代码”、“状态代码”);
Workflow RetrieveDialog=(工作流)\u serviceProxy.Retrieve(Workflow.EntityLogicalName,\u dialogId,cols);
控制台。写入(“检索到”);
//更新对话框。
//在更新对话框之前,请先将其停用。
SetStateRequest deactivateRequest=新的SetStateRequest
{
EntityMoniker=新的EntityReference(Workflow.EntityLogicalName,_dialogId),
状态=新选项设置值((int)WorkflowState.Draft),
状态=新选项设置值(1)
};
_serviceProxy.Execute(去激活请求);
//再次检索对话框记录以获取未发布的
//实例以进行更新。
Workflow RetrieveDialogDeactivated=(工作流)\u serviceProxy.Retrieve(Workflow.EntityLogicalName,\u dialogId,cols);
//更新对话框。
RetrieveDialogDeactivated.Name=“更新的对话框:呼叫分类”;
_serviceProxy.Update(RetrieveDialogDeactivated);
控制台。写入(“已更新,”);
//激活对话框。
SetStateRequest updateActivateRequest=新的SetStateRequest
{
EntityMoniker=新的EntityReference(Workflow.EntityLogicalName,_dialogId),
状态=新选项设置值((int)WorkflowState.Activated),
状态=新选项设置值(2)
};
_执行(updateActivateRequest);
控制台。WriteLine(“并再次激活”);
删除所需记录(promptforDelete);
}
}
//捕获Microsoft Dynamics CRM引发的任何服务故障异常。
捕获(错误异常)
{
//您可以在此处处理异常或将其传递回调用方法。
投
}
} 
}
希望有帮助

编辑:

Wh
 // Update the dialog.
                // Deactivate the dialog before you can update it.
                SetStateRequest deactivateRequest = new SetStateRequest
                {
                    EntityMoniker = new EntityReference(Workflow.EntityLogicalName, _dialogId),
                    State = new OptionSetValue((int)WorkflowState.Draft),
                    Status = new OptionSetValue(1)

                };
                _serviceProxy.Execute(deactivateRequest);

                // Retrieve the dialog record again to get the unpublished 
                // instance in order to update.
                Workflow retrievedDialogDeactivated = (Workflow)_serviceProxy.Retrieve(Workflow.EntityLogicalName, _dialogId, cols);

                // Update the dialog.
                retrievedDialogDeactivated.Name = "Updated Dialog: Call Categorization";
                _serviceProxy.Update(retrievedDialogDeactivated);

                Console.Write(" updated,");