AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.03.2014, 19:05   #1  
Craz is offline
Craz
Участник
 
56 / 19 (1) ++
Регистрация: 17.09.2009
Как правильно написать запрос на портал
Добрый день, помогите пожалуйста, в Аксапте не так давно и с таким никогда не сталкивался.
Была раньше такая программа "Документум" работали люди в ней, в ней же был написан скрипт который 1 раз в месяц выгружал данные в Excel файлик. Потом брал этот файлик и засовывал в список на портале (насколько я понимаю портал SharePoint)
Сейчас "Документум" похоронен, соответствующая функциональность перенесена в АХ. Но люди теперь хотят видеть эту информацию и на портале.
Как ее туда отправить я не понимаю.
У меня есть скрипт из "документума" в котором я нашел такие строки.
Код:
      Request = Format(RequestPattern; body) 
      HTTP = CreateObject("MSXML2.XMLHTTP")
      HTTP.Open("POST"; URL; False; SPUserName; SPPassword)
      HTTP.setRequestHeader("Host"; HostName)
      HTTP.setRequestHeader("Content-Type"; "application/atom+xml; charset=utf-8")
      HTTP.setRequestHeader("Content-Length"; Length(Request))
      HTTP.Send(Request)
      response = HTTP.responseText
И вроде все понятно. И я даже поискал и нашел как это написать в АХ. Но в ответ мне ничего не приходит. Как понять что именно должно быть в Request?
Т.е. там должен быть какой-то XML? Или что?
Откуда можно подчерпунть информацию?
Почему ничего нет в ответе? Хоть бы говорил "Ошибка, не тот формат" или еще что-то. а я так понимаю приходит мне в ответ пустая строка. Если что непонятно написал готов уточнить.
Старый 13.03.2014, 23:05   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Казалось бы, при чем здесь программирование в Аксапте? Вообще, недолгий поиск по MSDN выводит на такие примеры:
PHP код:
Dim Strm As System.IO.FileStream = New System.IO.FileStream(localFileSystem.IO.FileMode.OpenSystem.IO.FileAccess.Read)
Dim reader As System.IO.BinaryReader = New System.IO.BinaryReader(Strm)
Dim filecontents As Byte() = reader.ReadBytes(CInt(Strm.Length))
reader.Close()
Strm.Close()

 
Dim sSPURL As String ConfigurationManager.AppSettings("SharePointServer")
Dim sDocLib As String ConfigurationManager.AppSettings("DocLibrary")
Dim sUser As String ConfigurationManager.AppSettings("User")
Dim sPwd As String ConfigurationManager.AppSettings("Pwd")
Dim sDomain As String ConfigurationManager.AppSettings("Domain")
Dim NC As System.Net.NetworkCredential = New System.Net.NetworkCredential(sUsersPwdsDomain)

 
Dim sRemoteFileURL As String
sRemoteFileURL 
sSPURL "/" sDocLib "/" Trim(LTrim(RTrim(remoteFile)))
sRemoteFileURL Replace(sRemoteFileURL" ""%20")
sRemoteFileURL Replace(sRemoteFileURL"\", "/")

 Dim m_WC As WebClient = New WebClient
m_WC.Credentials = NC
Dim r As Byte() = m_WC.UploadData(sRemoteFileURL, "
PUT", filecontents) 
или даже вот на такие:
PHP код:
using System;
using System.IO;
using Microsoft.SharePoint.Client;
// The following directive avoids ambiguity between the
// System.IO.File class and Microsoft.SharePoint.Client.File class.
using ClientOM Microsoft.SharePoint.Client;

class 
Program
{
    static 
void Main(string[] args)
    {
        
ClientContext clientContext = new ClientContext("http://intranet.contoso.com");
        
using (FileStream fileStream = new FileStream("NewDocument.docx"FileMode.Open))
            
ClientOM.File.SaveBinaryDirect(clientContext,
                
"/Shared Documents/NewDocument.docx"fileStreamtrue);
    }

Объекты из пространства имен Microsoft.SharePoint.Client в последнем примере реализованы, скажем, в SilverLight, если верить этой статье.

Последний раз редактировалось gl00mie; 13.03.2014 в 23:07.
Старый 14.03.2014, 10:00   #3  
Craz is offline
Craz
Участник
 
56 / 19 (1) ++
Регистрация: 17.09.2009
Немного не понял, точнее совсем не понял, то что вы написали не сделало мою проблему понятнее ни на секунду (я же новичок). Простите в при чем тут С#? И загрузка файлов? У меня Ах2009.
Старый 14.03.2014, 10:26   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Craz Посмотреть сообщение
при чем тут С#? И загрузка файлов? У меня Ах2009.
Я лично понял так, что здесь речь о загрузке файла в библиотеку документов SharePoint:
Цитата:
Сообщение от Craz Посмотреть сообщение
...Потом брал этот файлик и засовывал в список на портале (насколько я понимаю портал SharePoint). Но люди теперь хотят видеть эту информацию и на портале. Как ее туда отправить я не понимаю.
Можно запрос отправки файла на портал формировать "руками", можно - через .NET'овские специально обученны классы. Примеры кода с использованием таких классов приведены, один пример - на VB.NET, но это по идее не должно смущать. AX 2009 поддерживает интеграцию с CLR, так что если код загрузки файла на портал SharePoint должен выполняться именно из Аксапты, достаточно воспользоваться одним из приведенных примеров, чтобы решить эту задачу. Второй пример кода проще, но для него может понадобиться установить на хост, где он будет выполняться (а также на хост, где будет компилироваться приложение) SilverLight и добавить ссылку на соотв. сборку в References.

PS. Надеюсь, исходное сообщение не содержало скрытого вопроса "как мне из Аксапты теперь формировать такой же Excel-файл, какой формировался в Documentum?"
Старый 14.03.2014, 10:39   #5  
Craz is offline
Craz
Участник
 
56 / 19 (1) ++
Регистрация: 17.09.2009
Думаю задача немного в другом. Нет нужды загружать файл. Раньше "документум", действительно формировал некоторый Excel файл, но он не загружал его целиком. А другим скриптом, брал отдельную строчку данных из этого Excel файла, и загружал ее как строку в список на портале. Не знаю как по другому сказать "список" может не очень понятно. Вот картинка, список большой, уже более 2000 строк.

Соответственно новые контрагенты проходят проверку и их надо добавить в этот список. Т.е. как я понял отправлялся некоторый запрос в формате Xml, он порталом обратабывался таким образом как будто ввели новую запись и добавлял ее в список.
Старый 14.03.2014, 10:52   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
How to: Add or Delete SharePoint List Items
Старый 14.03.2014, 11:03   #7  
Craz is offline
Craz
Участник
 
56 / 19 (1) ++
Регистрация: 17.09.2009
Хм, тут вроде все понятно, но как это сделать из АХ?
Старый 14.03.2014, 12:59   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
AX 2009 .NET CLR Interop Overview
Глава 3. Microsoft Dynamics AX и .NET - это из книги по 2012-й, но в плане взаимодействия с CLR там мало что изменилось.
Старый 17.03.2014, 13:08   #9  
Craz is offline
Craz
Участник
 
56 / 19 (1) ++
Регистрация: 17.09.2009
А без использования вижуал студио никак? У меня его нет и я в нем не работал никогда.
Как бы обойтись исключительно АХ и х++?
Старый 17.03.2014, 16:21   #10  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Здесь Visual Studio ни при чем, по приведенным ссылкам описано, как дергать управляемый код из X++.
Старый 17.03.2014, 16:39   #11  
Craz is offline
Craz
Участник
 
56 / 19 (1) ++
Регистрация: 17.09.2009
А где взять этот управляемый код?
Старый 17.03.2014, 17:28   #12  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Термин "управляемый код" (managed code) означает код, выполняемый под управлением CLR (Common Language Runtime). Пример такого кода для решения вашей задачи приведен по ссылке How to: Add or Delete SharePoint List Items. Его нужно немного адаптировать для X++, например, убрать упоминания используемых пространств имен через using и задать все используемые типы полностью, с указанием соотв. пространства имен, к которым они относятся, etc. Более подробно такая адаптация описана по приведенным выше ссылкам.

Последний раз редактировалось gl00mie; 17.03.2014 в 17:32.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Всегда ли правильно работает queryrun().query().dataSourceCount() при присоединении пользователем таблиц в настройках стандартного запроса? Aquarius DAX: Программирование 5 26.09.2013 09:52
Аксапта плохо видит портал при разработке Narayana DAX: Администрирование 2 11.12.2012 13:51
Ax3 Как на DS написать такой запрос Arahnid DAX: Программирование 11 21.10.2010 00:33
передача параметров в запрос while select tolstjak DAX: Программирование 13 15.02.2009 19:39
Помогите написать запрос Кандидат DAX: Программирование 7 17.10.2005 14:44

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:35.