Я пытаюсь создать плагин, который удаляет каждый InvoiceDetail в состоянии Обновление и Синхронный режим (поскольку Asyncronous также не работает),
поэтому я пытаюсь получить InvoiceDetailId каждого InvoiceDetail при обновлении и затем удалить его
Во-первых:
// get the invoicedetailid
var The_Guid_InvoiceDetail_ID = entity.GetAttributeValue<Guid>("invoicedetailid");
, а затем
// just delet it
service.Delete("invoicedetail", The_Guid_InvoiceDetail_ID);
Теоретически, если я нахожусь в заказе с несколькими OrderDetails , и я нажимаю «Создать счет» , каждый новый InvoiceDetail должен быть удаляется автоматически, и мой новый счет будет без InvoiceDetail
но я получаю сообщение об ошибке
Счет-фактура с идентификатором = 3851d9d4-5e4c-e811-80fe-3863bb35fc90
Не существует
это просто произойдет, если у меня будет более одной детали заказа, если у меня будет только одна, она будет удалена
пожалуйста, помогите !!
Мой код:
namespace My_Cool_Plugin
{
public class Class1 : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = (IOrganizationService)factory.CreateOrganizationService(context.UserId);
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
Entity entity = (Entity)context.InputParameters["Target"];
var The_Guid_InvoiceDetail_ID = entity.GetAttributeValue<Guid>("invoicedetailid");
service.Delete("invoicedetail", The_Guid_InvoiceDetail_ID);
} // if context end
} // Execute end
} // class Class1 end
} // namespace end