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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.06.2006, 13:40   #41  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от EVGL
С помощью класса ClassFactory. Пример: InventDimGlobal, SysGlobalCache.
Ну... Это не совсем синглтон.

Так в двухуровневой среде будет только экземляров, сколько двухуровневых клиентов.
А в трехкровневой будет столько экземпляров, сколько AOT'ов в кластере.

Или я чего-то не понимаю?
__________________
полезное на axForum, github, vk, coub.
Старый 12.06.2006, 13:44   #42  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Верно. Но с точки зрения прикладного программирования это несущественно.
Старый 12.06.2006, 13:53   #43  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
боюсь, что для целей тестирования существенно.

batiskaf_new, разберитесь как стандартный функционал тестирования производительности управляет и контролирует клиентские сессии, как он раздает задания. Скорее всего, вам нужно будет повторить его поведение, если у вас нет возможности подождать 4ку.

Разберитесь как объекты в Аксапте запоминают свое состояние между сессиями (методика работы с LastValue и методы pack/unpack)
__________________
полезное на axForum, github, vk, coub.
Старый 12.06.2006, 14:22   #44  
batiskaf_new is offline
batiskaf_new
Участник
 
39 / 19 (1) ++
Регистрация: 07.06.2006
Давайте разбираться вместе.
Мне нужно на front-end клиенте запустить инстанс своего класса, ссылку на который я получу из своего процесса через бизнес коннектор. Через эту дверку я буду говорить с аксаптой, узнавать подробности о том или инном объекте. Объект этот должен быть синглотонм, чтобы работать с одним и тем же инстансом объекта как через бизнесс коннектор, так и внутри Ахапта кода. То есть тестирование предполагается напротив одного конечного клиента, это не Load Testing.
Сохранять что то в Аксапте мне кажется не нужно, мой процесс будет опрашивать разные объекты и все что нужно будет сохранять у себя.
Старый 12.06.2006, 17:21   #45  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
http://erpkb.com/Axapta/Singleton
За это сообщение автора поблагодарили: batiskaf_new (1).
Старый 12.06.2006, 17:29   #46  
batiskaf_new is offline
batiskaf_new
Участник
 
39 / 19 (1) ++
Регистрация: 07.06.2006
Мерси за синглтон. А еще если просветите на предмет objectOnServer. Если мой класс будет заниматься объектами GUI то это значит что он только клиентский, и тогда в коде можно будети использовать только один кеш (infolog.globalCache()) ?

Стоп! Ничего не понятно с сессиями. Я сделал синглтон, в Аксапте написал диалог, который сохраняет значение поля класса, и через бизнесс коннектор сделал тоже самое, экземпляры оказались разные...

Код через коннектор:
Цитата:
Dim app As Axapta2
Dim obj1 As AxaptaCOMConnector.IAxaptaObject

Set app = CreateObject("AxaptaCOMConnector.Axapta2")
app.Logon configuration:="C:\Program Files\Microsoft Business Solutions\Axapta 3.0 SP3 Demo\Axapta Client\Bin\axconfig.axc"
Set obj1 = app.CallStaticClassMethod("Class1", "instance")
obj1.Call "f1", "VB"
Код обработчика нажатия кнопки Аксапта диалога:

Цитата:
void clicked()
{
Class1 obj1 = Class1::instance();
obj1.f1("fuck");
super();
}
Код метода класса:
Цитата:
public void f1(str name)
{
_name = name;
}
Значения разные, как сие понять?

Последний раз редактировалось batiskaf_new; 12.06.2006 в 17:59.
Старый 12.06.2006, 18:43   #47  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
А это уже то, о чем mazzy говорил: SysGlobalCache привязан к сессии, а AxaptaCOMConnector открывает новую сессию.

Это обсуждение начинает утомлять. Если вы твердо решили изобретать велосипед, то сделать можно так: сохраняйте все события в памяти, в время от времени сбрасывайте на диск или в таблицу, как это делает Code Profiler в Аксапта. А потом анализируйте результат извне или опять в Аксапте. Хотя извне на кнопки программно нажимать - занятие, заранее обреченное на неудачу. COMConnector не для этого создан.
За это сообщение автора поблагодарили: batiskaf_new (1).
Старый 12.06.2006, 19:07   #48  
batiskaf_new is offline
batiskaf_new
Участник
 
39 / 19 (1) ++
Регистрация: 07.06.2006
Я догадываюсь что Logon открывает новую сессию. Проблема в том, что об этом в документации ничего не написано! Собственно я сейчас проверяю методом тыка все варианты взаимодействия с Аксаптой из моего процесса, и с какими ограничениями я могу столкнуться, варианты исследования GUI объектов из моего процесса. Все это позже скажется на способе интеграции.

Конечно было бы проще заказать у кого то готовый модуль с требуемым сервисом, но судя по всему таким извратом мало кто хочет заниматься, так что прийдется самому.
Старый 12.06.2006, 19:11   #49  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от batiskaf_new
Конечно было бы проще заказать у кого то готовый модуль с требуемым сервисом, но судя по всему таким извратом мало кто хочет заниматься
На этом форуме в разделе рынок создайте сообщение, объявите сколько вы готовы заплатить и дайте свои координаты.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: batiskaf_new (1).
Старый 13.06.2006, 09:58   #50  
batiskaf_new is offline
batiskaf_new
Участник
 
39 / 19 (1) ++
Регистрация: 07.06.2006
************ отредактировано модератором: коммерческие предложения и реклама только в разделе рынок *************

И еще технический вопрос, можно ли получить из любого объекта Аксапты некий хеш, по которому позже можно восстановить сам объект, типа как это делалось в Java?
Старый 13.06.2006, 10:03   #51  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
если имеете ввиду серилизацию, то вместо нее - паковка (интерфейс SysSavable, методы pack, unpack статический метод create кое-где есть но кое-где и нет)
Старый 13.06.2006, 10:31   #52  
batiskaf_new is offline
batiskaf_new
Участник
 
39 / 19 (1) ++
Регистрация: 07.06.2006
Цитата:
Сообщение от belugin
если имеете ввиду серилизацию, то вместо нее - паковка (интерфейс SysSavable, методы pack, unpack статический метод create кое-где есть но кое-где и нет)
Да не совсем сериализация. Мне нужен дескриптор объекта, по которому можно быстро получить сам объект. То есть объект продолжает жить, я же получаю число, из которого позже я смогу найти тот же самый экземпляр. Операция эта может быть не гарантированной, то есть если экземпляр почил к тому времени - значит так тому и быть.
Старый 13.06.2006, 10:35   #53  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
неа. причем это не хэш (хэш может быть неуникальный) и в жабе вроде такого нет. Создавайте свой Map идентификатор -> объект
За это сообщение автора поблагодарили: batiskaf_new (1).
Старый 13.06.2006, 11:38   #54  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от batiskaf_new
Да не совсем сериализация. Мне нужен дескриптор объекта, по которому можно быстро получить сам объект. То есть объект продолжает жить, я же получаю число, из которого позже я смогу найти тот же самый экземпляр. Операция эта может быть не гарантированной, то есть если экземпляр почил к тому времени - значит так тому и быть.
А вот и можно
Используйте системный класс ObjectIdent. Пример работы с ним можно найти в \Classes\Info.
Старый 13.06.2006, 11:41   #55  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
ObjectIdent - это слабая ссылка что ли?
Старый 13.06.2006, 11:50   #56  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от belugin
ObjectIdent - это слабая ссылка что ли?
Совершенно верно.
Старый 18.06.2006, 14:53   #57  
batiskaf_new is offline
batiskaf_new
Участник
 
39 / 19 (1) ++
Регистрация: 07.06.2006
Всем привет, давно не виделись.

Как в Аксапте на Х++ можно запустить некий автоматический код, в неявном виде. Для наглядности, к примеру в С++ это делалось следующим образом:
static struct _SomeRegistration
{
_SomeRegistration()
{
RegisterAgent();
}
~_SomeRegistration()
{
UnregisterAgent();
}
} _registrator;

В итоге, запускается некий код инициализаций, все эти подготовки не нужно запускать из main или какого то централизованного места. Как с этим обстоят дела в аксапте?
Старый 19.06.2006, 09:40   #58  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
я думаю, никак. а зачем?

тут как в жабе - можно просто в конструктор класса прописать код инициализации.
Старый 19.06.2006, 10:11   #59  
batiskaf_new is offline
batiskaf_new
Участник
 
39 / 19 (1) ++
Регистрация: 07.06.2006
Цитата:
Сообщение от belugin
я думаю, никак. а зачем?
Для того чтобы запустить некий код в неявном виде.

Цитата:
Сообщение от belugin
тут как в жабе - можно просто в конструктор класса прописать код инициализации.
Но этот конструктор нужно кому то вызвать, из какого то центрального места в этой всей кухне? В плюсах же особенность состоит вот в этом:

static
struct _SomeRegistration
{
//Constructor of _SomeRegistration structure
_SomeRegistration()
{
RegisterAgent();
}

//Desctructor of _SomeRegistration structure
~_SomeRegistration()
{
UnregisterAgent();
}
} _registrator;
//
При создании автоматического объекта _registrator вызывается его конструктор

Вызов дуструктора мне не нужен, это для симметричности написано, мне главное конструктор. Если в Х++ таких средств нет, то возможно нечто подобное получится сделать другими средствами, например вставить какой то MenuItem оброботчиком которого будет мой класс, экземпляр которого создаст система во время старта Аксапты, и в конструкторе экземпляра я проделаю все что нужно? Что нибудь такое нужно.
Старый 19.06.2006, 10:17   #60  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
*вы не сможете создать объект без запуска конструктора
*посмотрите на erpkb "запуск и остановка".
Теги
crm2011

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX UK: Advanced Demand Management for AX 2009 workshops Blog bot DAX Blogs 0 28.03.2009 01:05
AX UK: Update on Advanced Demand Management for AX 2009 Blog bot DAX Blogs 0 26.03.2009 17:05
Solutions Monkey: WSS Setup for EP - Basic or Advanced Mode ? Blog bot DAX Blogs 0 23.08.2007 05:32
axaptabuilder: How to learn Axapta programming: “MorphXIT: an introduction to Axapta and the MorphX Development Suit” Blog bot DAX Blogs 0 28.10.2006 16:47
Advanced programming: Grid data and view manipulations batiskaf_new DAX: Программирование 15 21.06.2006 11:44

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

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

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