15.06.2009, 12:27 | #1 |
Участник
|
Значения атрибутов.
Создал дополнительный атрибут для opportunity типа Picklist. Программно хочу поменять значение этого поля.. Как это сделать? Вопрос кажется простеньким,но я чего-та не нашел ответ.
|
|
15.06.2009, 12:39 | #2 |
Чайный пьяница
|
Цитата:
Если из плагина и иже с ним - entity["<аттрибут>"] = new Picklict(<новое значение>);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
15.06.2009, 12:56 | #3 |
Участник
|
Пробовал..
Код: opportunity oOpport = (opportunity)crmService.Retrieve(sType, gOpportId, cols); oOpport["new_phase"] = new Picklist(3); Error Description: CS0021: Cannot apply indexing with [] to an expression of type 'Microsoft.Crm.SdkTypeProxy.opportunity' |
|
15.06.2009, 12:57 | #4 |
Чайный пьяница
|
Цитата:
Сообщение от Kipetcoff
Пробовал..
Код: opportunity oOpport = (opportunity)crmService.Retrieve(sType, gOpportId, cols); oOpport["new_phase"] = new Picklist(3); Error Description: CS0021: Cannot apply indexing with [] to an expression of type 'Microsoft.Crm.SdkTypeProxy.opportunity' Код: DynamicEntity oOpport = (DynamicEntity)crmService.Retrieve(sType, gOpportId, cols); oOpport["new_phase"] = new Picklist(3);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
15.06.2009, 13:07 | #5 |
Участник
|
Unable to cast object of type 'Microsoft.Crm.SdkTypeProxy.opportunity' to type 'Microsoft.Crm.Sdk.DynamicEntity'.
|
|
15.06.2009, 15:02 | #6 |
Участник
|
Учимся извращениям...
Код: RetrieveRequest getEntity = new RetrieveRequest(); TargetRetrieveDynamic target = new TargetRetrieveDynamic(); target.EntityId = gOpportId; target.EntityName = sType; getEntity.Target = target; getEntity.ColumnSet = cols; getEntity.ReturnDynamicEntities = true; RetrieveResponse response = (RetrieveResponse)crmService.Execute(getEntity); DynamicEntity tempDynamicEntity = (DynamicEntity)response.BusinessEntity; tempDynamicEntity["new_phase"] = new Picklist(3); crmService.Update(tempDynamicEntity); Если есть у кого лучший вариант подскажите... |
|
15.06.2009, 15:22 | #7 |
Чайный пьяница
|
Цитата:
Сообщение от Kipetcoff
Учимся извращениям...
Код: RetrieveRequest getEntity = new RetrieveRequest(); TargetRetrieveDynamic target = new TargetRetrieveDynamic(); target.EntityId = gOpportId; target.EntityName = sType; getEntity.Target = target; getEntity.ColumnSet = cols; getEntity.ReturnDynamicEntities = true; RetrieveResponse response = (RetrieveResponse)crmService.Execute(getEntity); DynamicEntity tempDynamicEntity = (DynamicEntity)response.BusinessEntity; tempDynamicEntity["new_phase"] = new Picklist(3); crmService.Update(tempDynamicEntity); Если есть у кого лучший вариант подскажите...
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
15.06.2009, 15:43 | #8 |
Moderator
|
Это не извращение а "универсальный подход". Microsoft.Crm.SdkTypeProxy не рекомпилируется при изменении свойств сущности, так что, ясен пень, про новый атрибут ничего не знает. Используйте веб сервисы!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
15.06.2009, 17:34 | #9 |
Участник
|
Я не говорю про появление нового поля,..но хотя бы упростить процедуру его изменения.. То что я написал это же вообще диво дивное.
|
|
16.06.2009, 07:11 | #10 |
Участник
|
Цитата:
Клиент обнаружил тип содержимого ответа "text/html; charset=utf-8", но ожидается тип "text/xml". Сбой запроса с сообщением об ошибке: -- <HTML dir="ltr"> <HEAD><meta name="GENERATOR" content="Microsoft SharePoint" /><meta name="progid" content="SharePoint.WebPartPage.Document" /><meta HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" /><meta HTTP-EQUIV="Expires" content="0" /><meta name="ROBOTS" content="NOHTMLINDEX" /><title> Ошибка </title><link rel="stylesheet" type="text/css" href="/_layouts/1049/styles/core.css?rev=hI22ZYAGbrhNFW5hEOIGQw%3D%3D"/> <script type="text/javascript" language="javascript" src="/_layouts/1049/init.js?rev=hEcD%2FKbPiOFs%2B7HeFxFRxA%3D%3D"></script> <script type="text/javascript" language="javascript" src="/_layouts/1049/core.js?rev=S40WED29tKMXqJ2EUKW01Q%3D%3D"></script> <meta name="Robots" content="NOINDEX " /> <meta name="SharePointError" content=""/> </HEAD> ..... если смотреть через браузер, то сообщение: Файл, который вы пытаетесь сохранить или получить, был заблокирован на этом веб-узле администраторами сервера. каким образом это можно исправить? |
|
16.06.2009, 10:10 | #11 |
Moderator
|
Вовсе не обязательно предварительно что-то вычитывать. В SDK есть раздел Using Dynamic Entitiesd нем популярно изложено как делать апдейт DE
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
16.06.2009, 10:12 | #12 |
Moderator
|
Цитата:
Сообщение от NatK
а как быть, если при подобных извращениях(именно на этой строке) возникает следующая ошибка:
Клиент обнаружил тип содержимого ответа "text/html; charset=utf-8", но ожидается тип "text/xml". Сбой запроса с сообщением об ошибке: -- <HTML dir="ltr"> <HEAD><meta name="GENERATOR" content="Microsoft SharePoint" /><meta name="progid" content="SharePoint.WebPartPage.Document" /><meta HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" /><meta HTTP-EQUIV="Expires" content="0" /><meta name="ROBOTS" content="NOHTMLINDEX" /><title> Ошибка </title><link rel="stylesheet" type="text/css" href="/_layouts/1049/styles/core.css?rev=hI22ZYAGbrhNFW5hEOIGQw%3D%3D"/> <script type="text/javascript" language="javascript" src="/_layouts/1049/init.js?rev=hEcD%2FKbPiOFs%2B7HeFxFRxA%3D%3D"></script> <script type="text/javascript" language="javascript" src="/_layouts/1049/core.js?rev=S40WED29tKMXqJ2EUKW01Q%3D%3D"></script> <meta name="Robots" content="NOINDEX " /> <meta name="SharePointError" content=""/> </HEAD> ..... если смотреть через браузер, то сообщение: Файл, который вы пытаетесь сохранить или получить, был заблокирован на этом веб-узле администраторами сервера. каким образом это можно исправить?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
16.06.2009, 10:27 | #13 |
Участник
|
читала, читаю (и видимо еще долго буду читать), пока не могу найти решение, поэтому собственно здесь и спрашиваю)
|
|
16.06.2009, 10:33 | #14 |
Консультант-джедай
|
чуть чуть описана Ваша ошибка, может поможет http://jianwang.blogspot.com/2009/04...microsoft.html
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
16.06.2009, 10:58 | #15 |
Moderator
|
Цитата:
Сообщение от slivka_83
чуть чуть описана Ваша ошибка, может поможет http://jianwang.blogspot.com/2009/04...microsoft.html
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
16.06.2009, 11:05 | #16 |
Участник
|
потому как при отладке плагина валится именно на этой строке ( вариантов вызова Retrieve было испробовано несколько - результат один)
|
|
16.06.2009, 11:06 | #17 |
Участник
|
Цитата:
Сообщение от slivka_83
чуть чуть описана Ваша ошибка, может поможет http://jianwang.blogspot.com/2009/04...microsoft.html
|
|
16.06.2009, 11:08 | #18 |
Участник
|
Цитата:
падает на этой: RetrieveResponse response = (RetrieveResponse)crmService.Execute(getEntity); |
|
16.06.2009, 11:55 | #19 |
Moderator
|
Вот о том и речь! Включите отладку на CRM сервере How to enable tracing in Microsoft Dynamics CRM и смотрите в логах отчего запрос падает.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
16.06.2009, 12:05 | #20 |
Участник
|
уже не знаю сколько раз просмотрела
строка с ошибкой: RetrieveResponse response = (RetrieveResponse)crmService.Execute(getEntity); лог: в Microsoft.Crm.Extensibility.SdkTypeProxyCrmServiceWrapper.InternalInvoke(MethodInfo methodInfo, Object[] parameters) в Microsoft.Crm.Extensibility.SdkTypeProxyCrmServiceWrapper.Execute(Object request) в TestPlugin.MyPlugin.Execute(IPluginExecutionContext context) в C:\Work\TestPlugin\plugin.cs:строка 80 в Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context) [InvalidPluginExecutionException: Клиент обнаружил тип содержимого ответа "text/html; charset=utf-8", но ожидается тип "text/xml". Сбой запроса с сообщением об ошибке: -- <HTML dir="ltr"> <HEAD><meta name="GENERATOR" content="Microsoft SharePoint" /><meta name="progid" content="SharePoint.WebPartPage.Document" /><meta HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8" /><meta HTTP-EQUIV="Expires" content="0" /><meta name="ROBOTS" content="NOHTMLINDEX" /><title> Ошибка </title><link rel="stylesheet" type="text/css" href="/_layouts/1049/styles/core.css?rev=hI22ZYAGbrhNFW5hEOIGQw%3D%3D"/> <script type="text/javascript" language="javascript" src="/_layouts/1049/init.js?rev=hEcD%2FKbPiOFs%2B7HeFxFRxA%3D%3D"></script> <script type="text/javascript" language="javascript" src="/_layouts/1049/core.js?rev=S40WED29tKMXqJ2EUKW01Q%3D%3D"></script> <meta name="Robots" content="NOINDEX " /> <meta name="SharePointError" content=""/> </HEAD> <BODY scroll="yes" onload="javascript:if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();"> <form name="aspnetForm" method="post" action="../../_layouts/error.aspx" id="aspnetForm" onsubmit="return _spFormOnSubmitWrapper();"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTU2NjkxODU3M2Rk/Q9LlyfjV2xVjh5tVlcYGE268yg=" /> </div> <TABLE class="ms-main" CELLPADDING=0 CELLSPACING=0 BORDER=0 WIDTH="100%" HEIGHT="100%"> <tr><td> <table CELLPADDING=0 CELLSPACING=0 BORDER=0 WIDTH="100%"> <tr> <td colspan=4 class="ms-globalbreadcrumb" align="right"> <a href="javascript:TopHelpButtonClick('NavBarHelpHome')" id="ctl00_PlaceHolderGlobalNavigation_TopHelpLink" AccessKey="6" title="Справка (в новом окне)"><img src="/_layouts/images/helpicon.gif" align="absmiddle" border="0" alt="Справка (в новом окне)" /></a> </td> </tr> </table> </td></tr> <tr> <td class="ms-globalTitleArea"> <table width=100% cellpadding=0 cellspacing=0 border=0> <tr> <td id="GlobalTitleAreaImage" class="ms-titleimagearea"><img id="onetidHeadbnnr0" src="/_layouts/images/titlegraphic.gif" alt="" /></td> <td class="ms-sitetitle" width=100%> </td> <td style="padding-top:8px;" valign=top> </td> </tr> </table> </td> </tr> <TR> <TD id="onetIdTopNavBarContainer" WIDTH=100% class="ms-bannerContainer"> </TD> </TR> <TR height="100%"><TD><TABLE width="100%" height="100%" cellspacing="0" cellpadding="0"> <tr> <td class="ms-titlearealeft" id="TitleAreaImageCell" valign="middle" nowrap><div style="height:100%" class="ms-titleareaframe"></div></td> <td class="ms-titleareaframe" id="TitleAreaFrameClass"> <table cellpadding=0 height=100% width=100% cellspacing=0> <tr><td class="ms-areaseparatorleft"><IMG SRC="/_layouts/images/blank.gif" width=1 height=1 alt=""></td></tr> </table> </td> <td valign=top id="onetidPageTitleAreaFrame" class='ms-areaseparator' nowrap width="100%"> <table id="onetidPageTitleAreaTable" cellpadding=0 cellspacing=0 width=100% border="0"> <tr> <td valign="top" class="ms-titlearea"> <a href="http://localhost" id="ctl00_PlaceHolderTitleBreadcrumb_idSimpleGoBackToHome">Вернуться на узел</a> </td> </tr> <tr> <td height=100% valign=top ID=onetidPageTitle class="ms-pagetitle"> <h2 class="ms-pagetitle"> Ошибка </h2> </td> </tr> </table> </td> <td class="ms-titlearearight"> <div class='ms-areaseparatorright'><IMG SRC="/_layouts/images/blank.gif" width=8 height=100% alt=""></div> </td> </tr> <TR> <TD class="ms-leftareacell" valign=top height=100% id="LeftNavigationAreaCell"> <table class=ms-nav width=100% height=100% cellpadding=0 cellspacing=0> <tr> <td> <TABLE height="100%" class=ms-navframe CELLPADDING=0 CELLSPACING=0 border="0"> <tr valign="top"> <td width="4px"><IMG SRC="/_layouts/images/blank.gif" width=4 height=1 alt=""></td> <td valign="top" width="100%"> </td> </tr> <tr><td colspan=2><IMG SRC="/_layouts/images/blank.gif" width=138 height=1 alt=""></td></tr> </TABLE> </td> <td></td> </tr> </table> </TD> <td> <div class='ms-areaseparatorleft'><IMG SRC="/_layouts/images/blank.gif" width=8 height=100% alt=""></div> </td> <td class='ms-formareaframe' valign="top"> <TABLE width="100%" border="0" cellspacing="0" cellpadding="0" class="ms-propertysheet"> <TR valign="top" > <TD class="ms-descriptiontext" width="100%"> </TD> <TD ID=onetidYPadding width="10px"><IMG SRC="/_layouts/images/blank.gif" width=10 height=1 alt=""></TD> </TR> <TR > <TD ID=onetidMainBodyPadding height="8px"><IMG SRC="/_layouts/images/blank.gif" width=1 height=8 alt=""></TD> </TR> <tr> <td valign="top" height="100%"> <A name="mainContent"></A> <table width=100% border=0 class="ms-titleareaframe" cellpadding=0> <TR> <TD valign=top width="100%" style="padding-top: 10px" class="ms-descriptiontext"> <span id="ctl00_PlaceHolderMain_LabelMessage">Файл не найден.</span> <P><span class="ms-descriptiontext"> <span id="ctl00_PlaceHolderMain_helptopic_troubleshooting"><A Title="Устранение неполадок в работе службы Windows SharePoint Services. - открытие в новом окне" HREF="javascript:HelpWindowKey('troubleshooting')">Устранение неполадок в работе службы Windows SharePoint Services.</A></span> </span> </TD> </TR> </table> <script type="text/javascript" language="JavaScript"> var gearPage = document.getElementById('GearPage'); if(null != gearPage) { gearPage.parentNode.removeChild(gearPage); document.title = "Ошибка"; } </script> </td> </tr> </table> </td> <td class="ms-rightareacell"> <div class='ms-areaseparatorright'><IMG SRC="/_layouts/images/blank.gif" width=8 height=100% alt=""></div> </td> </TR> <tr> <td class="ms-pagebottommarginleft"><IMG SRC="/_layouts/images/blank.gif" width=1 height=10 alt=""></td> <td class="ms-pagebottommargin"><IMG SRC="/_layouts/images/blank.gif" width=1 height=10 alt=""></td> <td class="ms-bodyareapagemargin"><IMG SRC="/_layouts/images/blank.gif" width=1 height=10 alt=""></td> <td class="ms-pagebottommarginright"><IMG SRC="/_layouts/images/blank.gif" width=1 height=10 alt=""></td> </tr> </TABLE></TD></TR> </TABLE> <input type="text" name="__spDummyText1" style="display:none;" size=1/> <input type="text" name="__spDummyText2" style="display:none;" size=1/> </form> </BODY> </HTML> --.] в Microsoft.Crm.Extensibility.PluginStep.Execute(PipelineExecutionContext context) в Microsoft.Crm.Extensibility.Pipeline.Execute(PipelineExecutionContext context) в Microsoft.Crm.Extensibility.MessageProcessor.Execute(PipelineExecutionContext context) в Microsoft.Crm.Extensibility.InternalMessageDispatcher.Execute(PipelineExecutionContext context) в Microsoft.Crm.Extensibility.ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) в Microsoft.Crm.Sdk.RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) в Microsoft.Crm.Sdk.RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) в Microsoft.Crm.Sdk.CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId) в Microsoft.Crm.Sdk.InProcessCrmService.Execute(Object request) в Microsoft.Crm.Application.Platform.ServiceCommands.PlatformCommand.ExecuteInternal() в Microsoft.Crm.Application.Platform.ServiceCommands.CreateCommand.Execute() в Microsoft.Crm.Application.Platform.DataSource.Create(Entity entity, Boolean performDuplicateCheck) в Microsoft.Crm.Application.Platform.EntityProxy.Create(Boolean performDuplicateCheck) в Microsoft.Crm.Application.Platform.Contract.Create(Boolean performDuplicateCheck) в Microsoft.Crm.Application.Forms.AppForm.SaveEntity(EntityProxy entity, FormEventId eventType, String redirectPath, Boolean performDuplicateCheck) Последний раз редактировалось NatK; 16.06.2009 в 12:09. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|