c# - 使用插件更新时删除 invoiceid 的问题
问题描述
我正在尝试创建一个插件,在更新状态和同步模式下删除每个InvoiceDetail(因为 Asyncronous 也不起作用),所以,我尝试在更新时获取每个InvoiceDetail的InvoiceDetailId,然后将其删除
第一的:
// 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
但我得到一个错误
Id = 3851d9d4-5e4c-e811-80fe-3863bb35fc90 的 InvoiceDetail 不存在
如果我有多个订单详细信息,就会发生这种情况,如果我只有一个,它将被删除
请帮忙!!
我的代码:
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
解决方案
推荐阅读
- javascript - React 共享主机部署
- azure-data-factory - ADF - 映射数据流的源文件名中包含“:”字符并收到错误消息
- python - 在python中继续递归函数
- visual-studio - 使用 Powershell 下载/安装 Visual Studio 2019
- anaconda - Spyder 中的问题“缩进中制表符和空格的使用不一致”
- powershell - Powershll 帮助远程终止服务
- javascript - ReactJS 在悬停时显示元素
- javascript - 为什么单击时菜单图标不触发?
- html - 我认为我的显示器尺寸太大,所以我的标题没有填满全屏
- html - 热图例文本之间的位置图像