Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 插件执行在创建了33条记录后停止,原因是什么?_Dynamics Crm_Microsoft Dynamics_Dynamics Crm 2016_Dynamics 365 - Fatal编程技术网

Dynamics crm 插件执行在创建了33条记录后停止,原因是什么?

Dynamics crm 插件执行在创建了33条记录后停止,原因是什么?,dynamics-crm,microsoft-dynamics,dynamics-crm-2016,dynamics-365,Dynamics Crm,Microsoft Dynamics,Dynamics Crm 2016,Dynamics 365,我有一个插件,它在一个名为“alterunitorder”的实体中创建记录。它应该为从合同开始日期到合同结束日期的每一天创建记录。不管怎样,这个插件只会创建33条记录。我认为这可能是因为进行了多少FetchXML查询。如果是,解决办法是什么 下面是插件的代码: 使用系统; 使用System.ServiceModel; 使用Microsoft.Xrm.Sdk; 使用Microsoft.Xrm.Sdk.Query; 使用插件; /// ///此插件获取合同行中提供的数据并生成单位订单。。 ///在

我有一个插件,它在一个名为“alterunitorder”的实体中创建记录。它应该为从合同开始日期到合同结束日期的每一天创建记录。不管怎样,这个插件只会创建33条记录。我认为这可能是因为进行了多少FetchXML查询。如果是,解决办法是什么

下面是插件的代码:

使用系统;
使用System.ServiceModel;
使用Microsoft.Xrm.Sdk;
使用Microsoft.Xrm.Sdk.Query;
使用插件;
/// 
///此插件获取合同行中提供的数据并生成单位订单。。
///在unit orders中,存在Alter unit orders表。
///Alter Unit Orders表描述了合同期限内每天的每日订单。
/// 
名称空间DCWIMS.Plugins
{
[CrmPluginRegistration(MessageNameEnum.Update,
“合同”,
术后分期,
ExecutionModeEnum.Asynchronous,
“州代码”,
“更新后合同”,
1000,
隔离模式枚举沙箱,
Image1Name=“PreImage”,
Image1Type=ImageTypeEnum.PreImage,
Image1Attributes=“”)]
公共类UnitPlugin:IPlugin
{
public void Execute(IServiceProvider服务提供程序)
{
//提取跟踪服务以用于调试沙盒插件。
//将注册此插件,因此需要添加与跟踪服务相关的代码。
ITracingService跟踪=(ITracingService)serviceProvider.GetService(类型(ITracingService));
//从服务提供程序获取执行上下文。
IPluginExecutionContext上下文=(IPluginExecutionContext)
GetService(typeof(IPluginExecutionContext));
//InputParameters集合包含消息请求中传递的所有数据。
if(context.InputParameters.Contains(“目标”)&&
context.InputParameters[“Target”]是实体)
{
//从输入参数中获取目标实体。
实体=(实体)上下文。输入参数[“目标”];
//获取更新合同的前映像
实体前图像=context.PreEntityImages[“PreImage”];
//验证目标实体是否代表合同实体,且合同是否处于活动状态(状态代码2)
if(entity.LogicalName!=“contract”| | entity.GetAttributeValue(“statecode”).Value!=2)
返回;
//冗余,防止从保持/取消变为激活时执行
if(PreImage.GetAttributeValue(“statecode”).Value==3 | | entity.Contains(“cancelon”))
返回;
//获取web服务调用的组织服务。
I组织服务工厂服务工厂=
(IOOrganizationServiceFactory)服务提供者.GetService(类型为(IOOrganizationServiceFactory));
//这将用作web服务调用的服务
IOOrganizationService=serviceFactory.CreateOrganizationService(context.UserId);
//try块中的核心插件代码
尝试
{
//合同生效日期
DateTime startDate=(DateTime)前映像[“activeon”];
//获取合同结束日期
DateTime endDate=(DateTime)前映像[“expireson”];
//创建range类的实例
Eachday范围=新的Eachday();
//使用range类的Weekday方法获取工作日列表
var weekdays=范围。WeekDay(开始日期、结束日期);
//获取合同号
字符串contractNumber=(字符串)前映像[“contractNumber”];
//获取单位订单查找Id
EntityReference unitOrder=(EntityReference)PreImage.Attributes[“new_unitorderid”];
var unitOrderId=unitOrder.Id;
//查询不同的位置目标和服务组
字符串获取=@“
";
//将获取结果放入实体集合
实体收集结果=
RetrieveMultiple(新的FetchExpression(fetch));
//迭代整个合同期限并创建记录
foreach(工作日内的var日)
{
var currentday=day.Split(',')[0];
//为每个服务组和目标对创建一个记录
foreach(result.Entities中的变量)
{
//得到发球组
AliasedValue AliasedValue=ent.GetAttributeValue(“服务”);
对象别名值=别名值.Value;
OptionSetValue optionStart=(OptionSetValue)别名值;
int group=optionset.Value;
//获取目标位置
var location=ent.GetAttributeValue(“新位置目的地”);
//创建记录并填充属性
实体变更单位=新实体(“新变更单位订单”);
alterunit.Attributes.Add(“new_orderdate”,DateTime.Parse(day));