30.09.2009, 07:08 | #1 |
Участник
|
Плагин, изменение бизнес-партнера у договора
Всем добрый день
Помогите, пожалуйста, никак не могу найти решение следующей проблемы (очень-очень нужно и даже не вчера ): в некоторых случаях у договоров необходимо менять бизнес-партнера, делается это в плагине (там еще в свойства бизнес-партнера в описание добавляется отметка когда к нему присоединен этот договор и пара аналогичных действий). Договор и бизнес-партнер являются DynamicEntity. Как я понимаю связь между ними осуществляется по customerid. Поэтому пытаюсь сделать так: contractEntity.Properties["customerid"] = customerEntity; а потом обновить договор: TargetUpdateDynamic targetE = new TargetUpdateDynamic(); UpdateRequest updateE = new UpdateRequest(); targetE.Entity = contractEntity; updateE.Target = targetE; service.Execute(updateE); Но при этом возникает ошибка "Ошибка при создании документа XML.": InnerException {"Value of type 'DynamicEntity' is not supported.\r\nИмя параметра: value"} System.Exception {System.ArgumentException} Если смотреть свойства договора, то customerid имеет тип Customer. Каким образом туда можно передать имеющуюся customerEntity с типом DynamicEntity??? Или это делается абсолютно другим путем? подскажите, пожалуйста, как, поскольку уже перепробованы многие варианты, а решения так и нет |
|
30.09.2009, 10:22 | #2 |
Чайный пьяница
|
Цитата:
Сообщение от NatK
Всем добрый день
Помогите, пожалуйста, никак не могу найти решение следующей проблемы (очень-очень нужно и даже не вчера ): в некоторых случаях у договоров необходимо менять бизнес-партнера, делается это в плагине (там еще в свойства бизнес-партнера в описание добавляется отметка когда к нему присоединен этот договор и пара аналогичных действий). Договор и бизнес-партнер являются DynamicEntity. Как я понимаю связь между ними осуществляется по customerid. Поэтому пытаюсь сделать так: contractEntity.Properties["customerid"] = customerEntity; а потом обновить договор: TargetUpdateDynamic targetE = new TargetUpdateDynamic(); UpdateRequest updateE = new UpdateRequest(); targetE.Entity = contractEntity; updateE.Target = targetE; service.Execute(updateE); Но при этом возникает ошибка "Ошибка при создании документа XML.": InnerException {"Value of type 'DynamicEntity' is not supported.\r\nИмя параметра: value"} System.Exception {System.ArgumentException} Если смотреть свойства договора, то customerid имеет тип Customer. Каким образом туда можно передать имеющуюся customerEntity с типом DynamicEntity??? Или это делается абсолютно другим путем? подскажите, пожалуйста, как, поскольку уже перепробованы многие варианты, а решения так и нет contractEntity.Properties["customerid"] = new Customer(EntityName.account.ToString(), <идентификатор account>);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
30.09.2009, 11:23 | #3 |
Участник
|
Пробовала
тогда другая ошибка: $exception {"Server was unable to process request."} System.Exception {System.Web.Services.Protocols.SoapException} |
|
30.09.2009, 11:25 | #4 |
Чайный пьяница
|
Цитата:
Код: service.Execute(updateE); Код: try { service.Execute(updateE); } catch (SoapException ex) { throw new Exception(ex.Detail.InnerText); }
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
|
За это сообщение автора поблагодарили: NatK (1). |
30.09.2009, 12:44 | #5 |
Участник
|
Спасибо
Как оказалось, нельзя переносить договоры с неактивных бизнес-партнеров ( а у меня в плагине деактивация бизнес-партнера стояла до переназначения договора - поменяла местами код и все заработало) |
|