Please, pay attention that now you are in public part of FAQ-Area. Register and find more FAQ-articles in Personal Cabinet.
Формат гиперссылок
Формат всех гиперссылок ЛОЦМАН одинаков, любая гиперссылка содержит только Action и params.
Формат params может быть различным, в зависимости от Action.
Action может принимать значения:
Navigate (переход к объекту)
Open (открыть в новом окне)
OpenProcess (открыть бизнес-процесс)
OpenWFTask (открыть задание Workflow)
OpenTask (открыть задание СПиУПП)
params - ссылка на объект, закодированная в Base64
пример ссылки на объект:
ask:Loodsman.URL?Action=Navigate,params=MHxwZ2RlbW8yMzF8MHw3NA==
Блок params в ссылках на объекты может иметь следующий формат:
Base64(DBName)|1|CheckoutID|Base62(ObjectID1),Base62(ObjectID2)..Base62(ObjectIDn)
здесь
Base64(DBName) - Имя базы данных, зашифрованное в base64
1- Код типа объекта, на который ссылается гиперссылка, от него зависит как будет интерпретироваться блок идентификаторов в гиперссылке (1 - объекты, 2 - связи (не рекомендуется применять в гиперссылках), 5 - задание СППиУП, 6 - бизнес-процесс, 9 - стадия WorkFlow)
CheckoutID - идентификатор рабочего проекта, в контексте которого должны быть открыты объекты, либо 0, если объекты открываются в режиме просмотра базы данных (рекомендуем избегать формирования гиперссылок открывающих объекты в работе, так как такие гиперссылки будут открываться корректно только у владельца рабочего проекта)
Base62(ObjectID1),Base62(ObjectID2)..Base62(ObjectIDn) - Идентификаторы объектов, Эти идентификаторы зашифрованы в base62 (для сокращения длины гиперссылки)
Пример ссылки на бизнес-процесс:
ask:Loodsman.URL?Action=OpenProcess,params=cGdkZW1vMjMx|6|34
Блок params в ссылках на бизнес-процессы, задания WF может иметь следующий формат:
Base64(DBName)|6|Base62(BpID1),Base62(BpID2)..Base62(BpIDn)
здесь
Base62(BpID1),Base62(BpID2)..Base62(BpIDn) - Идентификаторы бизнес-процессов, которые необходимо открыть. Эти идентификаторы зашифрованы в base62 (для сокращения длины гиперссылки)
пример ссылки на задание СПиУПП:
ask:Loodsman.URL?Action=OpenTask,params=cGdkZW1vMjMx|5|0|2N
здесь
5 - код заданий СППиУП, 0 - зарезервировано, 2N - закодированный в base62 идентификатор задания. Если заданий несколько, то они также как и в случае с БП будут идти через запятую
Base62
Процесс преобразования десятичного числа в base62 похож на преобразование в шестнадцатеричный формат. Только основание будет не 16, а 62.
Для представления чисел в base62 ЛОЦМАН использует следующую последовательность символов '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'. Таким образом числа от 0 до 9 останутся сами собой при преобразовании, а вот 10 будет преобразовано в 'a', 35 - в 'z', 61 - в 'Z', 62 - '10' и так далее.
Loodsman.URL
Если гиперссылку необходимо открыть из приложения, то вместо открытия гиперссылки средствами ask.dll, можно воспользоваться COM объектом Loodsman.URL напрямую. Основной его интерфейс ICommand содержит метод Execute:
HRESULT _stdcall Execute([in] long hWnd, [in] long hInstance, [in] BSTR stCmdLine, [in] long dummy);
Гиперссылку нужно передавать в параметр stCmdLine, но уже без "ask:Loodsman.URL?"
Пример:
url := CreateOleObject('Loodsman.URL') as ICommand;
url.Execute(0, 0, 'Action=Open,params=U1QzRDIwMTdSMlRFU1Q=|1|0|3iy,3iz,3ow,3ox,3oy', 0);