c# - PostOperation Create Plugin 需要执行 InitializeFromRequest 并吐出“记录不存在”
问题描述
我开发了一个插件(操作后、创建、同步),它抓取Target
并调用InitializeFromRequest
以创建另一个从正在创建的记录派生的记录。
这是该方法的精简版本Execute
:
public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
IOrganizationService service = factory.CreateOrganizationService(context.UserId);
var newRecord = (service.Execute(new InitializeFromRequest
{
EntityMoniker = new EntityReference(context.PrimaryEntityName, context.PrimaryEntityId),
TargetEntityName = "my_entityName",
TargetFieldType = TargetFieldType.ValidForCreate
}) as InitializeFromResponse).Entity;
}
直到大约几周前,这一直有效。
现在完全相同的插件错误说明my_entity with Id = <guid> does not exist
.
我有点明白为什么会发生这种情况,我仍在交易中,并且尚未实际创建记录,因此出现错误。
我怀疑 4 月的更新是罪魁祸首,因为它开始发生在更新大规模部署在所有环境中的时候(我们像往常一样,除非绝对必须更新,否则不会更新,因为更新总是会破坏一堆随机的东西)。
平台处理 Post-Operation Create 插件的方式是否发生了变化?这是我们需要以某种方式规避的另一个无证调整吗?
解决方案
推荐阅读
- c# - 如何正确地将 IMAGELIST 中的 HICON 保存为图像文件
- python - 如何在列表列表中为元素添加元素?
- javascript - setAttribute、onclick、eventListener 不起作用
- python - 熊猫:更好的交叉加入方式?
- wpf - WPF - 绑定用户控件内容
- go - Go 频道似乎没有被阻塞,尽管应该是
- ionic-framework - FAILURE: Build failed with an exception. in ionic
- css - 背景大于 Circle Div CSS 的问题
- asp.net-core - 我找不到在 mssql 上更新日历事件的方法。发布到我的剃须刀页面不起作用(400 错误)
- python - 在 small_ints 之外的 Python3 “is” 运算符