22.11.2005, 12:41 | #1 |
Участник
|
Проблема с путями к шаблонам
Проблема появилась неожиданно и проявляется только в тонкой трёхзвенке.
Есть два класса: Class2 и Class3, содержимое см. в attachment'е. При вызове Class2 из AOT выводится: C:\Program Files\Navision\Application\share\include\ При вызове Class3 из AOT выводится: \\server\Application\share\include\ RunOn у обоих классов CalledFrom, но изменение ни на Client, ни на Server не влияет на результат. Как видите классы идентичные, xpo не заливаю, т.к. в xpo они тоже один в один (да и попытка залить оба класса на совершенно другой АОС и приложение естественно не привела к этому глюку). Что пробовал: 1. Перегружать AOS и клиентаl 2. Удалять клиентский кэш (*.aoc); 3. Удалять индексы; 4. Удалять кэш из SysLastValue; Пробовал экспортировать оба класса в xpo, удалять оба класса, проделаывать пп.1,2,3,4 перегружать все машины и импортировать класссы по новой. Пробовал заменять Код: info(#ReportTemplatePath_RU); Код: info(xInfo::directory(DirectoryType::Include)); |
|
22.11.2005, 13:08 | #2 |
NavAx
|
Однако классы разные, у Class2 метод серверный и он должен возвращать путь на сервере.
|
|
22.11.2005, 13:16 | #3 |
Участник
|
Если вам необходимо, чтобы путь возвращался в виде UNC (т.е. \\server\Application), то необходимо в конфигурационнай утилите на сервере для AOS прописать путь к System Directory так же в виде UNC
__________________
Axapta v.3.0 sp5 kr2 |
|
22.11.2005, 13:38 | #4 |
----------------
|
согласен с raz
для статического метода совершенно все-равно какое свойство RunOn у класса. Сделайте в обоих классах server static. и не согласен с AndyD надо указать UNC пути в конфигурации клиента, а для AOS подойдет и локальный путь ---------------- поторопился.. если метод выполняется на сервере то возьмет из настроек AOS, а если на клиенте, то из настроек клиента. Последний раз редактировалось Wamr; 22.11.2005 в 13:48. |
|
22.11.2005, 13:55 | #5 |
Участник
|
Ой ребяты, в скриншоте ошибка, т.к. скриншот был сделан в процессе мытарств. Кстати именно тот, что с server (т.е. Class2) и возвращает гад клиентсвий path, хотя должен возвращать серверный!
To AndyD: Да проблема не в этом - а в том, что два одинаковых класса выдают разный результат! |
|
22.11.2005, 14:01 | #6 |
Участник
|
Я что-то не пойму - у вас в первом классе вызывается серверный метод?
__________________
Axapta v.3.0 sp5 kr2 |
|
22.11.2005, 14:18 | #7 |
Участник
|
to AndyD:
Нет оба класса одинаковые. Это просто в скриншоте я ошибся. Проблема изначально появилась так: сделал один отчет, не задумываясь копировал в него метод getFullTemplateName из одного когда-то давным давно сделанного мной отчета. И столкнулся с тем, что тот первый отчет работает как надо, #ReportTemplatePath_RU в нем возвращает серверный path к шаблону. Новый же - почему-то указывает на клиентскую машину. К классам class2 и class3 я пришёл уже потом - ради эксперимента? Постепенно сокращая разницу между классами удаляя из них всё... В конечном итоге появилось два абсолютно идентичных класса, но результат разный... |
|
22.11.2005, 14:21 | #8 |
Участник
|
Спасибо всем, проблему решил обходным путём: создав класс для отчета с нуля.
P.S. : Axapta - загадка |
|
22.11.2005, 14:25 | #9 |
NavAx
|
А в отладчике эти методы на сервере или на рабочей станции выполняются?
|
|
22.11.2005, 14:46 | #10 |
Участник
|
Если не секрет как это можно посмотреть где выполняется метод(на сервере или клиете)?
|
|
22.11.2005, 14:49 | #11 |
Участник
|
Окно Call Stack в отладчике - подводите мышь к методу - и видите (да и иконка то-же самое показывает)
__________________
Axapta v.3.0 sp5 kr2 |
|