Я разрабатываю плагин Dyanamic365. Я новичок в этом плагине. У меня проблемы с этим в течение последней недели. У меня есть две сущности. Юридический случай участника и legacase соответственно. Я хочу объединить записи в поле клиента юридического участника с полем «Частный случай» таблицы Legalcase. используя поле legalcaseparticipant_side. поскольку это поле содержит неопределенные размеры. Если кто-то может помочь, это было бы слишком полезно для меня.
public void Execute(IServiceProvider serviceProvider)
{
var pluginProcess = new PartcipantAggreagateSidesProcess(serviceProvider);
pluginProcess.LoadPrimaryEntity();
if (!(pluginProcess.ValidateEntityName(bf_legalcaseparticipant.EntityName) || pluginProcess.ValidateEntityName(bf_legalcase.EntityName))) return;
{
if (!pluginProcess.ValidateMessage(MessageName.Create, MessageName.Update)) return;
if (pluginProcess.ExecutionContext.Depth > 10) return;
pluginProcess.Run();
}
}
class PartcipantAggreagateSidesProcess : PluginProcess
{
public PartcipantAggreagateSidesProcess(IServiceProvider serviceProvider) : base(serviceProvider)
{
}
public override void Execute()
{
string[] totalSides = { "3rd side", "accused", "applicant", "creditor", "debitor", "defendatnts", "intrest party", "plaintiff", "representive", "submitter", "victim" };
if (ExecutionContext.MessageName == MessageName.Create)
{
if (ExecutionContext.PrimaryEntityName == bf_legalcase.EntityName)
{
QueryExpression bf_partQry = new QueryExpression
{
EntityName = bf_legalcaseparticipant.EntityName,
ColumnSet = new ColumnSet(bf_legalcaseparticipant.FieldNames.bf_legalcaseparticipant_cust, bf_legalcaseparticipant.FieldNames.bf_legalcaseparticipant_side)
};
bf_partQry.Criteria.AddCondition(bf_legalcaseparticipant.FieldNames.bf_legalcaseparticipant_lcase, ConditionOperator.Equal, TargetEntity.Id);
bf_legalcaseparticipant legalPart = OrganizationService.RetrieveMultiple(bf_partQry).Entities.ToModel<bf_legalcaseparticipant>().FirstOrDefault();
if (legalPart != null)
{
Entity LegalEntity = OrganizationService.Retrieve(
bf_legalcase.EntityName,
TargetKey.Id,
new ColumnSet(
bf_legalcase.FieldNames.bf_legalcase_partic3rdside,
bf_legalcase.FieldNames.bf_legalcase_particaccused,
bf_legalcase.FieldNames.bf_legalcase_partic3rdside,
bf_legalcase.FieldNames.bf_legalcase_particapplicant,
bf_legalcase.FieldNames.bf_legalcase_particcreditor,
bf_legalcase.FieldNames.bf_legalcase_particdebitor,
bf_legalcase.FieldNames.bf_legalcase_particdefendants,
bf_legalcase.FieldNames.bf_legalcase_particinterestpart,
bf_legalcase.FieldNames.bf_legalcase_particplaintiff,
bf_legalcase.FieldNames.bf_legalcase_particrepresentive,
bf_legalcase.FieldNames.bf_legalcase_particsubmiter,
bf_legalcase.FieldNames.bf_legalcase_particvictim));
foreach (string totalSide in totalSides)
{
if (legalPart.Contains(bf_legalcaseparticipant.FieldNames.bf_legalcaseparticipant_side) && legalPart.bf_legalcaseparticipant_side!= null)
{
// need to go to the specific entry of legal case table in the total side array and update the customer value in th specific columns
// simply given the below line
TargetEntity.Attributes["bf_legalcase_particvictim"] = legalPart.bf_legalcaseparticipant_cust;
}
}
}
}
}
}
}
}