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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.10.2012, 15:24   #1  
LRA is offline
LRA
Участник
 
41 / 39 (2) +++
Регистрация: 19.12.2005
Адрес: Москва
«Метка» для сообщения AIF MSMQ в Dynamics AX 2009
Работаю со стандартными средствами AIF через MSMQ. Сообщения нормально отправляются, приходят. Но у этих сообщений в окне MSMQ поле «Метка» пустое.

Может, кто знает, как задать метку?

Попутно ещё вопрос.
В документации везде сказано, что MSMQ необходимо установить на комп с AOS’ом. Но, похоже, что это не так. Какой путь в поле «Адрес» в Каналах указать, туда сообщение очереди и уходит. И это нормально работает. Чем вызвано требование использовать MSMQ только на компе с AOS’ом?

Последний раз редактировалось LRA; 17.10.2012 в 16:51.
Старый 17.10.2012, 15:29   #2  
LRA is offline
LRA
Участник
 
41 / 39 (2) +++
Регистрация: 19.12.2005
Адрес: Москва
Для тестирования использую следующий код.
Для тестирования использую следующий код. В теле сообщения произвольный текст, а не XML, но это прокатывает.


X++:
    AifChannelId        channelId   = "myTstChannelOut"; // TODO необходимо задать код канала с формы Каналы
    AifChannel          channel     = AifChannel::find(channelId);
    AifAdapter          adapter     = AifAdapter::find(channel.AdapterClassId);
    AifInfoLog          aifInfoLog  = new AifInfoLog();
    AifMessageId        messageId   = newguid();
    UserID              userID      = curuserid();
    SysDictClass        adapterClassObject;
    AifMSMQSendAdapter  sendAdapter;
    AifResourceLockId   channelLockId;
    boolean             inAdapterTransaction = false;
    AifGatewayMessage   gatewayMessage;
    AifMessage          message;
    AIfresourceLock     resourceLock;
    AifIntegrationAdapter       integrationAdapter;
    ;
    // delete_from resourceLock;
    channelLockId = AifResourceLock::lockResource(channelId, AifResourceType::Channel, AifResourceLockType::Gateway);
    if (guid2str(channelLockId) != #EmptyGuidString)
    {
        try
        {
            aifInfoLog.reset();
            adapterClassObject = new SysDictClass(channel.AdapterClassId);
            if (adapterClassObject.isImplementing(classnum(AifIntegrationAdapter)))
            {
                integrationAdapter = adapterClassObject.makeObject();
                sendAdapter = new AifMSMQSendAdapter();
                if (sendAdapter == null)
                    throw error(strfmt("@SYS95140", classId2Name(classidget(integrationAdapter))));
            }
            // new InteropPermission(InteropKind::ClrInterop).assert(); // TODO Раскоментарить если выполняется на сервере
            sendAdapter.initialize(channel.TransportAddress, channelId);
            ttsbegin;
            sendAdapter.begin();
            inAdapterTransaction = true;
            gatewayMessage = new AifGatewayMessage(
                            'Привет мир!',
                            enum2str(AifGlobalSettings::getEncodingFormat()),
                            userID,
                            messageId);
            // Send message
            sendAdapter.sendMessage(gatewayMessage);
            // Update messageLog message as Processed
            if (AifMessageManager::isNewMessage(gatewayMessage.parmMessageId()) == false)
            {
                message = AifMessageManager::read(gatewayMessage.parmMessageId());
                message.status(AifMessageStatus::Processed);
                AifMessageManager::update(message, classstr(AifGatewaySendService), false);
            }
            // Commit transaction
            sendAdapter.commit();
            ttscommit;
 
            CodeAccessPermission::revertAssert();
        }
        catch(Exception::CLRError)
        {
            AifResourceLock::releaseResource(channelLockId);
            throw error(AifUtil::getClrErrorMessage());
        }
    }
    sendAdapter.terminate();
    AifResourceLock::releaseResource(channelLockId);
 
    info(strFmt("Готово! %1", messageId));

Последний раз редактировалось LRA; 17.10.2012 в 15:32.
Старый 17.10.2012, 15:58   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
По поводу System.Messaging
В Visual Studio когда пользуешься службой сообщений, необходимо отдельно подключать сборку System.Messaging. Под рукой DAX2009 сейчас нет, посмотрите есть ли в узле AOT References ссылка на System.Messaging
За это сообщение автора поблагодарили: LRA (1).
Старый 17.10.2012, 16:53   #4  
LRA is offline
LRA
Участник
 
41 / 39 (2) +++
Регистрация: 19.12.2005
Адрес: Москва
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
По поводу System.Messaging
В Visual Studio когда пользуешься службой сообщений, необходимо отдельно подключать сборку System.Messaging. Под рукой DAX2009 сейчас нет, посмотрите есть ли в узле AOT References ссылка на System.Messaging
Извините, не в той аксапте смотрел. С этим все правильно. Если использовать System.Messaging, то проблем никаких, но хотелось бы максимально юзать стандартный функционал AIF'а.

Последний раз редактировалось LRA; 17.10.2012 в 16:56.
Теги
aif, label, msmq

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axforum blogs: Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 Blog bot DAX Blogs 4 16.10.2017 17:50
axinthefield: Compatibility Testing for Microsoft Dynamics AX Blog bot DAX Blogs 0 23.06.2012 02:26
dynamics-ax: Official Details about Dynamics AX '6' released, including comments from Microsofts Kees Hertogh Blog bot DAX Blogs 0 11.01.2011 05:22
Sample Design Patterns: Complexity tool - Dynamics AX 2009 Blog bot DAX Blogs 0 30.07.2010 15:05
Dynamics AX: Business Intelligence in Dynamics AX 2009 (Part I) Blog bot DAX Blogs 0 26.06.2008 02:19
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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