Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Из класса типа %RegisteredObject (инстанс не сохраняется на диске) вызывается ZEN-страница. Как можно получить в этой ZEN-странице ссылку (oref) на инстанс вызвавшего её класса или передать в страницу этот инстанс при вызове? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 10:29 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
vcoshak , скорее всего никак... Ведь в ореф "зашита" "ссылка" на джоб, который и получил этот ореф. В другом джобе этот ореф просто некая безсмысленная строка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 13:00 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Вообще в нашей системе что-то есть похожее Когда объект запихивается в сессию и таскается по ней Но там тип объекта должен быть производным от %Library.SerialObject (не %Library.Persistent), потом объект сериализауется в строку, эту строку можно куда-нибудь передать, а потом воссоздать объект через %New(сюда ту строку подать) М.б. поможет, но я не уверен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 13:39 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
krvsa, Получается, что я могу работать в cache с объектами в памяти только в рамках одного и того же процесса и нет возможности коммуникации между процессами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 13:57 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Блок А.Н., Через %New не подходит, т.к. мне нужно обратиться именно к тому инстансу объекта, который вызвал ZEN. Практически мне нужно организовать диалог с инстансом объекта в памяти через ZEN, т.е. вызвать диалог, получить данные и вазвать функцию на вызывающем объекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 14:03 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Именно тот объект не получится, так как в принципе объект существует в рамках процесса, но в принципе можно получить его копию - например через сериализацию, либо все-таки сохранить в базу и передать его ИД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 15:12 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
vcoshakПолучается, что я могу работать в cache с объектами в памяти только в рамках одного и того же процесса Не с объектом... А с орефом некоего экземпляра. vcoshakи нет возможности коммуникации между процессами? Таки дать другому джобу ИД экземпляра - после чего создать ореф... Либо вернуть из джоба 2 данные для экземпляра, провести изменения в жобе 1 и выполнить запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 18:31 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.через сериализацию А это что за зверь? Примерчики этого можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 18:32 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Сейчас нарисуем: Код: plaintext 1. 2. 3. 4. 5. Создаем объект, смотрим, что он живой: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Подсмотрено у тов. Ptn&Co ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 19:44 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Так можно таскать между процессами довольно большие структурированные объекты. В чем будет преимущество в сравнении с передачей ИД, а потом создания орефа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2010, 21:25 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Бывает, что объекты не нужно сохранять, т.к. они не нужны "в долгосрочной переспективе" Можно быть точно уверенным, что этот объект со стороны никто не изменил и он передался именно в том виде, в котором был. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 06:31 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.Можно быть точно уверенным, что этот объект со стороны никто не изменил и он передался именно в том виде, в котором был. В этом могут помоч блокировки... Конечно от "прямого" изменения они не защитят... Вобщем идею я понял, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 08:38 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
Блок А.Н., спасибо за идею и примерчик. К сожалению в моём случае это не поможет, т.к. мне нужно работать именно с моим исходным экземпляром класса. krvsa, А можно вернуться к идее получения орефа? У меня ZEN-страница вызывается из класса через URL, можно, например, передать в URL $J. Но как из $J создать ореф? Если использовать ##CLASS(%SYS.ProcessQuery).%OpenId($j), то получим ссылку на процесс, но как из процесса вытащить ореф экземпляра требуемого класса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 12:53 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
vcoshak , что-то подсказывает мне, что это рытьё подземного хода на чердак. Может пора рассказать всю "проблему" т.с. в целом? Тогда и решение подсказать/найти будет легче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 13:00 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
krvsa vcoshak , что-то подсказывает мне, что это рытьё подземного хода на чердак. Может пора рассказать всю "проблему" т.с. в целом? Тогда и решение подсказать/найти будет легче? Что ж, постараюсь изложить всю проблему. Стоит задача организовать систему контроля версий в Cache на основе MS Visual SourceSafe c документацией изменений по отдельным пользователям. Используется класс на основе %Studio.SourceControl.Base и ActiveX для связи с VSS. В VSS есть своя система управления пользователями, не связанная с OS. Необходимо в Cache Studio запросить логин/пароль пользователя для открытия VSS. Все пользователи работают с одной и той же базой Cache и VSS с разных рабочих мест. При старте Studio создаётся инстанс указанного класса в отдельном процессе со своим PIDом, в классе есть Method Login, в котором программируется соединение с VSS, и Method UserAction (вызывается из Studio в ответ на действия пользователя - меню, открытие документа и т.д.), из которого можно вызвать CSP/ZEN-диалог через URL. Согласно документации, для этого нужно установить значение переменных Target и Action=2: Run a CSP page/Template. The Target is the full url to the CSP page/Template, as usual the page will be passed the current document name, any selected text, the project name, the namespace. Проблема в том, как из CSP/ZEN-диалога (который запускается в другом процессе) запустить метод Login инстанса класса SourceControl с введенными в диалоге данными. Кстати, попутно вопросик (я начинающий): как принято в URL передавать сразу несколько параметров - все вместе одной строкой в одно свойство ZEN-класса (которое используется как буфер) и последующим разбором, или как-то ещё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 20:05 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
vcoshakкак принято в URL передавать сразу несколько параметров - все вместе одной строкой в одно свойство ZEN-класса (которое используется как буфер) и последующим разбором, или как-то ещё? Сколько параметров - столько и "принимающих" свойств у ЗЕН-страницы. Но можно конечно и одной строкой через некий разделитель, если уж так сильно захочется... vcoshak , задачку ты себе выбрал не из лёгких... Заплатят хоть хорошо? Мы пока контроль версий осуществляем путём сравнения "чего было" с "чего теперь стало". От этого и пляшется все... А так через Студио... Хым... Нафик оно надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2010, 21:47 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
krvsavcoshakкак принято в URL передавать сразу несколько параметров - все вместе одной строкой в одно свойство ZEN-класса (которое используется как буфер) и последующим разбором, или как-то ещё? Сколько параметров - столько и "принимающих" свойств у ЗЕН-страницы. Но можно конечно и одной строкой через некий разделитель, если уж так сильно захочется... Дык в этом то и вопрос - если есть 3 параметра, то посылать URL три раза, или можно в одной строке URL перечислить все праметры со значениями через какой-то штатный разделитель? Оно конечо ничего не стоит разобрать одну строку, но я не знаю, есть ли ограничения на набор символов в URL? Если нельзя использовать спецсимволы (например ascii 0-37), то как выбрать разделитель, чтобы он не попадался в данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 01:20 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
vcoshakесли есть 3 параметра, то посылать URL три раза, или можно в одной строке URL перечислить все праметры со значениями Конечно можно! Так это и делается... Код: plaintext Правила формирования УРЛ ... На стороне ЗЕН делаеш принимающие свойства... Код: plaintext 1. 2. Только типы нужные подбирай и ZENURL правильно указывай... vcoshakчерез какой-то штатный разделитель? Что значит "штатный"? В УРЛ в стандарте это "&"... vcoshakОно конечо ничего не стоит разобрать одну строку, но я не знаю, есть ли ограничения на набор символов в URL? Пока еще не встречал в литературе описание оных ограничений... vcoshakЕсли нельзя использовать спецсимволы (например ascii 0-37), то как выбрать разделитель, чтобы он не попадался в данных? Всегда есть листбилд и метод ..EscapeURL() Код: plaintext 1. 2. Но я этим вариантом не пользуюсь. Хватает и выше описаного варианта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 08:59 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
vcoshakесли есть 3 параметра, то посылать URL три раза Вот это как раз вообще не желательно, для простой передачи параметров... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 09:00 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
По SourceSafe когда-то темы были на Cache_ru Примеры оттуда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 11:33 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
doublefint, Спасибо за ссылку. Это только базовая реализация интеграции со studio, т.е. только экспорт и импорт файлов. Для работы нужно всё равно держать открытым SourceSafe, что неудобно. Те задачи, которые я хочу решить, там не затрагиваются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 19:54 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
krvsavcoshakесли есть 3 параметра, то посылать URL три раза, или можно в одной строке URL перечислить все праметры со значениями Конечно можно! Так это и делается... Код: plaintext Правила формирования УРЛ ... На стороне ЗЕН делаеш принимающие свойства... Код: plaintext 1. 2. Только типы нужные подбирай и ZENURL правильно указывай... Спасибо, отлично получилось - входит и выходит. Вот только, если можно, ещё вопросик - как после ZEN %OnSubmit скрыть (или убить) модальное окно браузера. И вообще, можно ли из ZEN-класса управлять окном web-браузера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 20:14 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
vcoshak, Из Zen класса, видимо, можно отправлять ему скрипты (или вызывать методы клиента), а вот уже они... window.close() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 20:17 |
|
||
|
Как получить доступ к зкземпляру класса типа %RegisteredObject в памяти?
|
|||
|---|---|---|---|
|
#18+
vcoshakкак после ZEN %OnSubmit скрыть (или убить) модальное окно браузера. Вот тут примерчик бы не помешал для иллюстрации... vcoshakИ вообще, можно ли из ZEN-класса управлять окном web-браузера? Это же "обычный" ВЭБ... Т.ч. все можно в пределах JS-скрипта, не более... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2010, 21:25 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=36488977&tid=1558189]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
133ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 443ms |

| 0 / 0 |
