Показать сообщение отдельно
Старый 03.04.2014, 13:05   #4  
maksii is offline
maksii
Участник
 
15 / 16 (1) ++
Регистрация: 02.04.2014
Адрес: Харьков
Честно говоря я немного не понимаю вашу оббертку стандартного функционала
Что у вас в bf_PluginProcess, какую энтити используете и тд.
Если вы используете Pre-Image на Pre-Create, то его там нет

На чистом сдк должно работать вот так:

public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));

Entity yourEntityName= (Entity)context.InputParameters["Target"]

if(yourEntityName.Attributes.Contains("subject"))
yourEntityName.Attributes["subject"] = yourEntityName.GetAttributeValue<EntityReference>["regardingobjectid"].Name;
}

Ошибка у вас из-за того, что на данный момент вызова Update еще не был создан данный рекорд. На пре стейдже не нужно использовать Update, так как на этом этапе еще не произошли манипуляции и транзакции в базу. Вы имитируете добавления поля, как буд-то его добавил пользователь, а не вы.