Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => API ЛОЦМАН, плагины => Тема начата: oracle от 18.03.10, 14:30:47

Название: Программное удаление объектов Лоцман
Отправлено: oracle от 18.03.10, 14:30:47
У меня Лоцман 8.5.
Хочу программно удалить состав изделия и залить новый состав. Пробовал различные варианты функций (KillVersion, KillVersions, на KillVersionByld - вообще Лоцман говорит, что незнает такой функции). Удаляет нормально, но при заливке нового состава, Лоцман говорит почти на все объекты, что такие уже существуют. Если удалять состав вручную, то Лоцман дает выбор (Вырезать, Удалить, Удалить вместе со связанными объектами). Если выбрать Удалить вместе со связанными объектами, то при заливке нового состава Лоцман ничего не говорит.
Т.е. я так понимаю, при выборе опции Удалить вместе со связанными объектами, Лоцман удаляет объекты полностью. При других вариантах у Лоцмана остается память об удаленных объектах и их он и предлагает восстановить.

Программно также, при исползовании вышеуказанных функций у Лоцмана остается память об удаленных объектах.
Вопрос следующий: какую функцию использовать, чтобы удалить объекты полностью???
Название: Программное удаление объектов Лоцман
Отправлено: oracle от 19.03.10, 06:52:29
У меня Лоцман 8.5.
Хочу программно удалить состав изделия и залить новый состав. Пробовал различные варианты функций (KillVersion, KillVersions, на KillVersionByld - вообще Лоцман говорит, что незнает такой функции). Удаляет нормально, но при заливке нового состава, Лоцман говорит почти на все объекты, что такие уже существуют. Если удалять состав вручную, то Лоцман дает выбор (Вырезать, Удалить, Удалить вместе со связанными объектами). Если выбрать Удалить вместе со связанными объектами, то при заливке нового состава Лоцман ничего не говорит.
Т.е. я так понимаю, при выборе опции Удалить вместе со связанными объектами, Лоцман удаляет объекты полностью. При других вариантах у Лоцмана остается память об удаленных объектах и их он и предлагает восстановить.

Программно также, при исползовании вышеуказанных функций у Лоцмана остается память об удаленных объектах.
Вопрос следующий: какую функцию использовать, чтобы удалить объекты полностью???
Название: Re: Программное удаление объектов Лоцман
Отправлено: YorikER от 19.03.10, 08:32:08
После удаления объекта (KillVersion) не торопитесь заливать новый состав. Удаление происходит во временном буфере, вы взяли объект в работу и должны его вернуть в базу данных (синхронизировать свою операцию с БД - см. CheckOut, CheckIn и др.). И только после этого заново создав CheckOut - заливать новый состав в БД.
Название: Re: Программное удаление объектов Лоцман
Отправлено: oracle от 19.03.10, 08:58:19
Да, KillVersion помечает объекты на удаление, после возврата в базу. Я возвращал, потом брал опять в работу и заливал новый состав, но Лоцман все равно говорит, что найдены похожие.
KillVersions, как говорится удаляет объекты. Как я понял удаляет сразу и полностью. Но все равно, даже после возврата и взятия в работу, говорит о существовании похожих.

Что же делать?? :(
Название: Re: Программное удаление объектов Лоцман
Отправлено: EVD от 19.03.10, 11:46:11
При удалении через KillVersion состав не удаляется, удаляется только 1 объект, а объекты состава в базе остаются, просто удаляется связь с удаляемым объектом.
Лоцман API функции удаления вместе со связанными объектами вроде нет.
Единственный вариант это обойти все связанные объекты с помощью функции GetLObjs (или подобной), запомнить их идентификаторы и удалить через KillVersions.