• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Пример плагина добавить файл в лоцман

Автор bvr, 08.12.10, 10:51:37

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

bvr

Добрый день

Подскажите, как создать папку и добавить в нее файлы?
Где можно взять примеры плагинов для лоцмана, типа как SDK для компаса?

Спасибо.

Chaa

Какой версии у вас Лоцман?
На чем собираетесь писать?
Документация идет в папке Program Files\ASCON\Loodsman\SDK.

bvr

Версия 9.0.0.85
Писать вижал С++, но можно и делфи, хуже всего бейсик. Интересует алгоритм и ф-ции, используемые в алгоритме, для этого подойдет пример на любом из названных языков.
Нет у меня такой папки(была-бы папка, не было бы многих вопросов :-)), Может можно ее где взять?
Может кто-нибудь может архив папки послать на почту?

Заранее спасибо

teplinskiy

Цитата: bvr от 09.12.10, 09:44:29
Нет у меня такой папки(была-бы папка, не было бы многих вопросов :-)), Может можно ее где взять?
мастер инсталяции запустите на изменение из "Установка и удаление программ" и отметьте для установки SDK, после чего папка "SDK" появится.

bvr

Проблема с SDK решена, только он какой-то маленький состоит из:
AppServer
Integrator
PlugIns
Это все или у меня не полный SDK?
Осталось только:
Подскажите, как создать папку и добавить в нее файлы?
Спасибо

Chaa

Насколько я понял, вам нужно к выбранному в Лоцмане документу добавить файл.

1. С помощью GetDBProperties получить букву рабочего диска.
2. Создать на рабочем диске папку и скопировать в нее нужные файлы.
3. Добавить файлы к документу с помощью RegistrationOfFile.

За основу возьмите из SDK\Plugins\Examples\VC пример плагина.
Примерно:

CComBSTR GetDriveLetter(IPluginCall* IPC)
{
CComSafeArray<VARIANT> methodParams(2);

CComPtr<IDataSet> dataSet;
if (IPC->GetDataSet(CComBSTR(L"GetDBProperties"), CComVariant(methodParams),
&dataSet) == S_OK)
{
CComVariant fieldValue;

dataSet->First();
for (VARIANT_BOOL eof = TRUE; dataSet->get_Eof(&eof), !eof; dataSet->Next())
{
dataSet->get_FieldValue(CComBSTR(L"_PARAMNAME"),
&fieldValue);
if (fieldValue == L"DriveLetter ")
{
dataSet->get_FieldValue(CComBSTR(L"_PARAMVALUE"),
&fieldValue);
return fieldValue;
}
}
}
return L"";
}


void AddFile(IPluginCall* IPC, LPCWSTR FilePath, LPCWSTR FileName)
{
LONG VersionID = 0;
IPC->get_IdVersion(&VersionID);

CComSafeArray<VARIANT> methodParams(8);
methodParams[0] = L"";
methodParams[1] = L"";
methodParams[2] = L"";
methodParams[3] = VersionID;
methodParams[4] = FilePath;
methodParams[5] = FileName;

IPC->RunMethod(CComBSTR(L"RegistrationOfFile"), CComVariant(methodParams));
}


bvr

Chaa Спасибо.
Еще вопрос как подключить плагин?
Для этого какие права нужны? Это может сделать администратор или пользователь тоже?
Еще дайте пример, как создать объект в лоцмане?

Задача такая: есть файл чертежа, например 123.cdw. Надо в лоцмане создать папку, или объект (не знаю как правильно выразить) и закинуть в нее файл. Как закинуть файл - более-менее понятно.
Как создать папку(объект) с именем 123?

Спасибо

Chaa

Цитата: bvr от 14.12.10, 09:29:04
Еще вопрос как подключить плагин?
В меню Параметры - Подключаемые модули. Настройки сохраняются в реестре в ветках
HKEY_CURRENT_USER\Software\ASCON\Loodsman\Client\PluginManager
HKEY_LOCAL_MACHINE\SOFTWARE\ASCON\Loodsman\Client\PluginManager.

Цитата: bvr от 14.12.10, 09:29:04
Еще дайте пример, как создать объект в лоцмане?
Насколько я понял, вам нужно создать объект типа "Папка", создать документ типа "Чертеж Компас-3D", связать документ с объектом с помощью связи "Документы", и добавить к документу файл.

Это можно сделать так:
1. Взять в работу объект, к которому будет привязана новая папка, с помощью CheckOut.
2. Создать новый объект типа "Папка" с помощью NewObject.
3. Добавить связь "Состоит из ..." для новой папки и объекта, к которому эта папка будет привязана, с помощью UpLink.
4. Создать новый документ типа "Чертеж Компас-3D" с помощью NewObject.
5. Добавить связь "Документы" для нового документа и новой папки, с помощью UpLink.
6. Добавить файл к документу с помощью RegistrationOfFile.
7. Сохранить все сделанные изменения с помощью CheckIn.

Действия 2-7 обычно выполняются внутри блока обработчика исключений, и при возникновении ошибки выполняется CancelCheckOut чтобы в базе данных не оставались заблокированные объекты.

bvr

Chaa Спасибо
Цитата: Chaa от 14.12.10, 10:26:11
Действия 2-7 обычно выполняются внутри блока обработчика исключений, и при возникновении ошибки выполняется CancelCheckOut чтобы в базе данных не оставались заблокированные объекты.
Пример кода можно?

Chaa

В прикрепленном файле делается похожее на то, что писал выше.
+ Благодарностей: 1