19.11.2010, 00:51 | #1 |
Участник
|
Вытащить приаттаченные файлы из CRM по запросу
Такой вопрос,
в CRM в примечаниях можно вкладывать вложения, после чего они сохраняются в таблице AnnotationBase. Что характерно как-то странно они там сохраняются т.к. непонятно в базе они хранятся или на сервере. Мои предположения где может храниться файл: На сервере В этом случае в базе в таблице в одной из колонок должна быть сохранена ссылка на файл или его идентификатор чтобы можно было его потом найти и подгрузить. Облазил всю базу CRM и не нашел ни одной ссылки. кроме 2х интересных полей: MimeType, DocumentBody Причем хочу заметить что если в MimeType заголовок файла сохранен, то в DocumentBody содержимое файла не сохранено, т.к. если бы содержимое всех файлов в закодированном виде хранилось в этой колонке тип её был бы как минимум BLOB, а длинна содержимого различных файлов (по размеру) должна отличаться. Содержимое же колонки DocumentBody для файлов разных размеров одинаковое (по длинне символов) что наводит на странные мысли. Значит это ссылка либо какой-то идентификатор. Вопрос какой? и где его применить? Идем дальше.. Открыл форму с примечаниям (точнее код IFRAME содержащее примечания) с вложенным файлом и через IE Developer ToolBar выцепляю код слоя с фалом примечания, т.к. при клике у меня открывается файл - значит истоки места откуда эти файлы скачиваются нужно здесь. Нахожу такой код X++: <span class="attachment" title="Щелкните для открытия" attachmentId="{FF896FAA-59F3-DF11-BB70-003048BE732D}" attachmentType="5" merchantId="{E07FE863-0126-DF11-A3C0-003048BE732D}" userId="{A0CB17C4-AD26-DF11-9050-003048BE732D}" url="/OrgName/Activities/Attachment/download.aspx"" WRPCTokenUrl="&CRMWRPCToken=e0GDXOMxEd%2b7cAAwSL5zLYi1nc0zLu8zyT7PKCtqj%2bgRbiPPRbvx5t1VVY8eEVZl&CRMWRPCTokenTimeStamp=634257120771013998"><img alt="" src="/_imgs/attachments/16_generic.gif" align="absmiddle" border="0"> 833.rtf</span><span class="ms-crm-Attachment-SizeSpacer"></span> 1) Путь к странице с которой скачиваются файлы: /OrgName/Activities/Attachment/download.aspx - уже хорошо. Осталось определиться с параметрами которые нужно передать на этот скрипт, чтобы получить файл: 2) Напрашивается GUID примечания (AnnotationId) из таблицы AnnotationBase {FF896FAA-59F3-DF11-BB70-003048BE732D} в форме аттрибут AttachmentId 3) Также Тип объекта (по нашему сущности в примечании которой мы работаем) 5 (колонка ObjectTypeCode из этой же таблицы) в форме аттрибут AttachmentType 4) GUID Пользователя (либо того который открывает примечание либо того кто его создал), в данном случае в обеих ролях выступаю я один поэтому это сейчас не важно: {A0CB17C4-AD26-DF11-9050-003048BE732D} в базе Колонка OwningUser в форме аттрибут UserId 5) за что отвечает аттрибут merchantId на форме - я так и не разобраля, т.к. GUID объекта сущности организации по отношению к которой я создавал примечание отличается от всех GUID-ов используемых в форме. 6) Два неизвестных аттрибута: а) CRMWRPCToken=e0GDXOMxEd%2b7cAAwSL5zLYi1nc0zLu8zyT7PKCtqj%2bgRbiPPRbvx5t1VVY8eEVZl б) CRMWRPCTokenTimeStamp=634257120771013998 Как они генерируются и где используюся мне понять не удалось. Теперь собственно развязка: Если запустить этот URL и передать в него все эти параметры - файл не открывается!!! Т.е. Алгоритм и механизм по которой по клику на вложенный файл в примечании CRM выдает закачанный файл для скачки - не понятен. Также не понятно как генерировать эти Токены в случае если нужно создать страницу, в которую хотелось бы передавать просто GUID аннотации (примечания) и чтобы в ответ предлагалось скачать файл. Похожее решение я нашел вот тут: http://mmcrm.ru/?p=1138 Я не буду цитировать весь код, только важную инфу: Нужен этот код: X++: using System; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using Microsoft.Crm.Sdk; using Microsoft.Crm.Sdk.Query; using Microsoft.Crm.SdkTypeProxy; using System.Net; using System.Collections.Generic; using System.Text; using System.IO; using System.Web.Services.Protocols; using Microsoft.Win32; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { // Выполняем код под юзвером открывашем страницу using (new CrmImpersonator()) { // Проверяем что через URL передан параметр guid, иначе прекращаем выполнение if (Request.QueryString["guid"] == null) return; // Настраиваем CRM Service CrmAuthenticationToken token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(Context, "superfirma"); CrmService service = new CrmService(); service.CrmAuthenticationTokenValue = token; service.UseDefaultCredentials = true; // Вытаскиваем имя СRM сервера из регистра Windows service.Url = (string)(Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\MSCRM").GetValue("ServerUrl")) + "/2007/crmservice.asmx"; // Кэшируем credentials, чтобы каждый запрос не проходил повторно аутентификацию service.PreAuthenticate = true; // Запрашиваем примечание с GUID'ом переданным через URL Guid annotationId = new Guid(Request.QueryString["guid"]); // Нам нужны следующие колонки: имя файла, содержимое файло и его тип ColumnSet cols1 = new ColumnSet(); cols1.Attributes.Add("filename"); cols1.Attributes.Add("documentbody"); cols1.Attributes.Add("mimetype"); // Отправляем запрос в CRM Service annotation annotationAttachment = (annotation)service.Retrieve(EntityName.annotation.ToString(), annotationId, cols1); // Перекодируем содержимое файла хранящееся в БД CRM из кодировки Base64 в byte... byte[] fileContent = Convert.FromBase64String(annotationAttachment.documentbody); // ... а из byte в string string s = System.Text.Encoding.Default.GetString(fileContent); // Обнуляем изначальный ответ и возвращяем ответ в виде файла Response.ClearContent(); Response.AddHeader("content-disposition", "attachment; filename=" + annotationAttachment.filename); Response.ContentType = annotationAttachment.mimetype; Response.BinaryWrite(fileContent); Response.End(); } } catch (SoapException sexc) { throw new Exception(sexc.Detail.InnerText); } catch (Exception ex) { throw new Exception(ex.Message); } } } по мнению автора если передать в этот скрипт GUID вернуться должен приаттаченный файл, я создал в корневой папке этот скрипт. Передаю туда GUID влоенного файла в CRM и получаю ошибку - файл не скачиваетя. Возможно из-за неверных настроек web.config, т.к. из статьи не понятно каким образом нужно внести эти добавления в существующий конфиг, всё удалить и вставить этот маленький кусочек: X++: <?xml version="1.0"?> <configuration> <appSettings/> <connectionStrings/> <system.web> <httpModules> <add name="MapOrg" type="Microsoft.Crm.MapOrgEngine, Microsoft.Crm, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="CrmAuthentication" type="Microsoft.Crm.Authentication.AuthenticationEngine, Microsoft.Crm, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </httpModules> <identity impersonate="true"/> <compilation debug="true"> <assemblies> <add assembly="Microsoft.Crm.Sdk, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="Microsoft.Crm.SdkTypeProxy, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </assemblies> </compilation> </system.web> </configuration> Подскажите пожалуйста как мне решить эту задачу с выгрузкой приаттаченных файлов из CRM по запросу? Заранее спасибо! |
|
19.11.2010, 01:02 | #2 |
Участник
|
Если запустить этот скрипт без конфига вообще получаем такую ошибку:
X++: Microsoft CRM Error Report: Error Description: CS1513: } expected Error Details: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\Files\notes.aspx(19): error CS1513: } expected Full Stack: [HttpCompileException: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\Files\notes.aspx(19): error CS1513: } expected] at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) Other Message: Error Number: Source File: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\Files\notes.aspx Line Number: 19 Date: 11-19-2010 Time: 01:00:58 Server: crmsrv02 Request URL: http://crmsrv02:5555/Files/notes.aspx?guid={07A71E60-2EF3-DF11-BB70-003048BE732D} веб конфиг отсутствует. в чем ошибка подскажите пожалуйста. Было бы очень хорошо отладить этот скрипт чтобы не придумывать решение проблемы с нуля. |
|
19.11.2010, 01:09 | #3 |
Участник
|
А если в папку Files
скопировать конфиг CRM-а 4.0 То получаем такую ошибку X++: Server Error in '/' Application. -------------------------------------------------------------------------------- Configuration Error Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. Source Error: Line 50: </assemblies> Line 51: </compilation> Line 52: <authentication mode="Windows" /> Line 53: <identity impersonate="true" /> Line 54: Source File: C:\Program Files\Microsoft Dynamics CRM\CRMWeb\files\web.config Line: 52 Show Additional Configuration Errors: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. (C:\Program Files\Microsoft Dynamics CRM\CRMWeb\files\web.config line 57) -------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET Version:2.0.50727.3614 |
|
19.11.2010, 01:44 | #4 |
Kostya Afendikov
|
1. Вы просто создали aspx страницу?
2. Цитата:
я создал в корневой папке этот скрипт
3. какой веб-конфиг вы изменили? Я предполагаю, что автор блога делал следующие шаги: 1. Создавал новый веб-сайт 2. Публиковал данный веб-сайт в папке CRM_Server\ISV\ваш_веб-сайт 3. изменял веб-конфиг своего созданного веб-сайта. Попробуйте эти шаги. Думаю, что slivka_83 завтра все расскажет |
|
19.11.2010, 09:52 | #5 |
Консультант-джедай
|
угу все верно
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
19.11.2010, 10:25 | #6 |
Участник
|
В корневой папке CRM
а именно c:\Program Files/Microsoft Dynamics CRM/CRM_Web я создал папку Files в ней создал файл notes.aspx и web.config с тем содержимым что указано на сайте mmcrm.ru X++: Microsoft CRM Error Report: Error Description: CS1513: } expected Error Details: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\Files\notes.aspx(19): error CS1513: } expected ПО сути в папке Files у меня 2 файла (ваш веб.конфиг и aspx страница к которой я обращаюсь) Вопрос, там написано ещё про какой то Default.aspx.cs (что за CS??) и папку bin и прочее, этого у меня нет. Т.к. моя Visual Studio 2008 при сохранении Defaults.aspx и web.config выдает 96 Errors и не дает компилировать. Поэтому скрипт notes.aspx - свой я писал в блокноте, как и веб.конфиг. Последний раз редактировалось Dicora; 19.11.2010 в 10:28. |
|
19.11.2010, 10:32 | #7 |
Участник
|
И обязательно ли создавать новую папку в ISV или можно в любом месте??
И ошибка может быть из-за отсутствия .aspx.cs и папки bin? за что они отвечают и как мне их создать?? Заранее спасибо! |
|
19.11.2010, 10:42 | #8 |
Консультант-джедай
|
Цитата:
Никаких файлов создавать ручками не нужно - только папку в которой они будут размещаться. Затем, после создания сайта в VS, перейдите Build - Publish Web Site - и укажите путь куда будет публиковаться сайт.
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
|
За это сообщение автора поблагодарили: Dicora (1). |
19.11.2010, 11:44 | #9 |
Участник
|
Ну я могу сказать вот что:
Открыл Visual Studio 2008, New Project => Visual Basic => Web => ASP.NET Web Application открылось окно где я могу писать код .NET в страницу Default.aspx я вписал тот код в код web.config вписал код web.config-а с сайта mmcrm.ru Нажал Build => Publish Default.aspx выбрал путь C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Files\ и нажал Build VS не ругнулся и ошибок компиляции не было. При запуске страницы http://localhost/ISV/Files/Default.apsx?guid={ИД-аннотации из базы} пишет ошибку: X++: Microsoft CRM Error Report: Error Description: CS1513: } expected Error Details: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Files\Default.aspx(20): error CS1513: } expected Full Stack: [HttpCompileException: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Files\Default.aspx(20): error CS1513: } expected] at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) at System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) Other Message: Error Number: Source File: c:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Files\Default.aspx Line Number: 20 Date: 11-19-2010 Time: 11:26:05 Server: crmsrv02 Request URL: [url]http://localhost/ISV/Files/default.aspx?guid=07A71E60-2EF3-DF11-BB70-003048BE732D[/url] находятся следующие файлы и папки: App_Data bin Default.aspx Default.aspx.designer.vb Default.aspx.vb web.config в папке bin: Default.aspx.dll Default.aspx.pdb Default.aspx.xml папка App_Data - пустая. Что я делаю не так, подскажите пожалуйста. Спасибо! |
|
19.11.2010, 11:46 | #10 |
Участник
|
НА сайте mmcrm.ru вы упоминали что в папке должны находится файлы
Default.aspx, .aspx.cs, web.config, bin Где взять мне Default.aspx.cs?? может ошибка в нем? и может я неправильно создаю проект в Visual Studio 2008?? |
|
19.11.2010, 12:00 | #11 |
Участник
|
Разобрался я создавал Новый проект - а нужно было новый Веб сайт, выбрал язык C# и у меня в проекте появился default.aspx.cs
в нем я написал нужный код, и файл веб.конфиг тоже вставил нужный код, публикую в нужной папке запускаю с GUID-ом в URL получаю такую ошибку: X++: Error Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Error Details: Exception of type 'System.Web.HttpUnhandledException' was thrown. Full Stack: [Exception: The request failed with HTTP status 401: Unauthorized.] at _Default.Page_Load(Object sender, EventArgs e) at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) [HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.] at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.isv_files_default_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\fcc31ff6\e77f4ed8\App_Web_qojphwxb.0.cs:line 0 at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) Other Message: Error Number: Source File: Not available Line Number: Not available Date: 11-19-2010 Time: 11:58:02 Server: localhost Request URL: http://localhost/ISV/Files/default.aspx?guid={07A71E60-2EF3-DF11-BB70-003048BE732D} |
|
19.11.2010, 12:03 | #12 |
Чайный пьяница
|
Немного внимательности и всё будет шикарно. VB означает что вы создали страничку базовым .Net языком которой является Visual Basic .Net. Пересоздавайте страницу с C# базовым и продолжайте ваши изыскания.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
19.11.2010, 12:20 | #13 |
Участник
|
Да это уже понял =)) просто для меня это впервые и в следующий раз я уже буду знать эти нюансы.
А по поводу ошибки можете сказать из-за чего она - если я всё правильно делаю по инструкции почему она именно у меня возникает?? |
|
19.11.2010, 12:26 | #14 |
Чайный пьяница
|
Цитата:
CrmAuthenticationToken token = CrmAuthenticationToken.ExtractCrmAuthenticationToken(Context, "superfirma"); Попробуйте обращаться к странице как к http://localhost/<имя организации>/ISV/Files/Default.apsx?guid={ИД-аннотации из базы}
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
19.11.2010, 13:12 | #15 |
Участник
|
Нет, в первый раз да я забыл поменять эту строчку, в новом варианте я исправил её на название моей организации. Также пробовал набирать URL адрес с именем организации как вы и написали ошибка такая же:
X++: Error Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Error Details: Exception of type 'System.Web.HttpUnhandledException' was thrown. Full Stack: [Exception: The request failed with HTTP status 401: Unauthorized.] at _Default.Page_Load(Object sender, EventArgs e) at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) [HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.] at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.mycompany_isv_files_default_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\fcc31ff6\e77f4ed8\App_Web_dsgbnpdt.0.cs:line 0 at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) тут явно ошибка в этом: Exception of type 'System.Web.HttpUnhandledException' was thrown. но что это и как и где это исправить я не понимаю. |
|
19.11.2010, 13:19 | #16 |
Участник
|
в Гугле искал решения но там ничего толком и не говорится, а всё что есть всё на английском - я не понимаю его, к сожалению ((((
подскажите в каком месте в файле нужно внести корректировки и какие чтобы работало. Спасибо! |
|
22.11.2010, 08:13 | #17 |
Moderator
|
Бегло прочитал тему и, как мне показалось не на все вопросы были даны ответы.
1. Файлы хранятся в БАЗЕ! Весь контент системы CRM 4.0 кроме страниц расширения хранится в базе и нигде кроме. 2. Токены про которые вы говорите используются каким-то недокументированным механизмом безопасности. Если вы хотите чтобы ваше решение вообще когда-нибудь заработало (хотя лично я в этом не уверен) то проверку токенов нужно отключить: https://community.dynamics.com/produ....aspx#comments 3. Когда учатся программировать, читают книги, а не пишут на форумы. Может быть и вам попробовать? А то у меня складывается ощущение, что мы тут скоро отлаживаться по шагам будем вместе с вами?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
22.11.2010, 10:31 | #18 |
Участник
|
Решение заработало, спасибо огромное slivka_83
Цитата:
Необходимо поменять название организации в исходниках. Поэтому высылаю исходники: архив: http://zalil.ru/30007683 Открываешь их в VS2008 и правишь название организации на свое. Затем создаешь в папке ISV подпапку "dla". Из VS публикуешь (Build - Publish Web Site) проект в эту папку. Ну и чтобы скатать какой-нибудь приаттаченый файл вызываешь такую урлу http://<имя_сервера>/isv/dla/default.aspx?guid=<guid_приаттаченного _файла> Если кто-то захочет вытащить вложенный файл из примечаний по запросу - пользуйтесь этим решением. Спасибо всем кто помогал! |
|
22.11.2010, 12:34 | #19 |
Kostya Afendikov
|
Т.е. все заработало сразу, если бы вы внимательно прочли статью slivka_83 и не начали паниковать.
|
|
Теги |
crm, аннотации, вложения, выгрузка файлов, приаттаченные файлы, прикрепление файла, примечания |
|
|