我在发票(父)实体中有一个名为“发票总计”的汇总字段,它计算发票明细(子)实体中可用的“发票数量”的数量。 应根据发票详细信息的创建、更新和删除重新计算/更新汇总字段,而无需等待系统作业运行。
我写了下面的插件代码来生成逻辑,但它没有触发。我是插件的新手。
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(context.UserId);
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
Entity invoiceDetail = null;
try
{
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
invoiceDetail= (Entity)context.InputParameters["Target"];
var invoiceDetailId = invoiceDetail.GetAttributeValue<EntityReference>("new_invoice").Id;
CalculateRollupFieldRequest request = new CalculateRollupFieldRequest
{
Target = new EntityReference("new_invoice", invoiceDetailId),
FieldName = "new_invoicettotal"
};
CalculateRollupFieldResponse response = (CalculateRollupFieldResponse)service.Execute(request);
}
catch (Exception ex)
{
throw new InvalidPluginExecutionException(ex.Message);
}