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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2007, 12:29   #1  
Dimonishe is offline
Dimonishe
Участник
 
33 / 10 (1) +
Регистрация: 24.05.2005
Адрес: Донецк/Москва
EVGL спасибо!

Нашел вот еще классец GatewayQueryMSMQReceive. Там вроде как раз чтение из очереди...

А постоянное чтение прийдется, как я понимаю, пакетником организовывать.
Старый 04.04.2007, 13:18   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Dimonishe Посмотреть сообщение
А постоянное чтение прийдется, как я понимаю, пакетником организовывать.
Да. Вот примерчик:

X++:
void ScanDirectory(FilePath _folderPath, GatewayOrgId _gatewayOrgId)
{
    int                             hndFile;
    boolean                         showInfo = true;
    FileName                        scanFileName;
    ProblemGatewayImportProtocol    importProtocol;
    ;

    if (! _folderPath)
        throw error("@SFI525");

    if (! _gatewayOrgId)
        throw error("@SFI529");

    if (! WinAPI::folderExists(_folderPath))
       throw error( strfmt("@SFI526", _folderPath) );

    gatewayOrgId = _gatewayOrgId;

    [hndFile, scanFileName] = WinAPI::findFirstFile(_folderPath + "\\*.tmp");

    while (scanFileName)
    {
        fileName = _folderPath + scanFileName;

        if (!ProblemGatewayImportProtocol::exist(fileName))
        {
            if (showInfo)
            {
                info("@SFI527");
                showInfo = false;
            }

            importProtocol.clear();
            importProtocol.FilePath = fileName;
            importProtocol.GatewayOrgId = gatewayOrgId;

            try
            {
                this.run();
                importProtocol.ImportStatus = ImportStatus::Imported;
            }
            catch
            {
                importProtocol.ImportStatus = ImportStatus::InvalidFile;
            }

            importProtocol.insert();
        }

        scanFileName = WinAPI::findNextFile(hndFile);
    }

}
В целом, надо заметить, что MSMQ работает много медленнее, чем файловая система NTFS.

Последний раз редактировалось EVGL; 04.04.2007 в 13:23.
Старый 04.04.2007, 15:06   #3  
Dimonishe is offline
Dimonishe
Участник
 
33 / 10 (1) +
Регистрация: 24.05.2005
Адрес: Донецк/Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
В целом, надо заметить, что MSMQ работает много медленнее, чем файловая система NTFS.
Беда в том, что с другой стороны используется MSMQ и все равно прийдется им посылать инфу о том что Аксапта скушала данные, и положила результат назад ((

Вот пробую простенький примерчик

X++:
static void MSMQ_send(Args _args)
{
    #MSMQ

    MSMQQueueInfo               queueInfo;
    MSMQQueue                   queue;
    MSMQMessage                 message;

    MSMQTransactionDispenser    dispenser = new MSMQTransactionDispenser();
    MSMQTransaction             transaction;
    str res;
    queueInfo = new MSMQQueueInfo();

    queueInfo.pathName("psp\private$\axapta_queue"); //psp имя локальной машины

    queue = queueinfo.open(#MQ_SEND_ACCESS, #MQ_DENY_NONE); //тут все валится

    transaction = dispenser.BeginTransaction();

    message = new MSMQMEssage();
    message.Label("Label");
    message.BodyText("Message!!!");

    message.sendInTransaction(queue, transaction);

    transaction.Commit();

    //  Close the queue.
    queue.Close();

}
на методе open вываливается с ошибкой:

Метод 'Open' в COM-объекте класса 'MSMQ.MSMQQueueInfo' возвратил код ошибки 0xC00E0014 (<неизвестно>), который означает: Указаны недопустимые путь и/или имя очереди. .


чего ему не нравится... не пойму
Теги
ax3.0, msmq

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Доступ к меню "Работа с документами" Kuat DAX: Администрирование 4 16.11.2007 17:07
Совместная работа заказчика и исполнителя в разных или одном слое? Кузин Владимир В. DAX: Программирование 6 08.08.2006 10:02
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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