Программное удаление объектов Лоцман

Автор oracle, 18.03.10, 14:30:47

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

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

oracle

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

Программно также, при исползовании вышеуказанных функций у Лоцмана остается память об удаленных объектах.
Вопрос следующий: какую функцию использовать, чтобы удалить объекты полностью???

oracle

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

Программно также, при исползовании вышеуказанных функций у Лоцмана остается память об удаленных объектах.
Вопрос следующий: какую функцию использовать, чтобы удалить объекты полностью???

YorikER

После удаления объекта (KillVersion) не торопитесь заливать новый состав. Удаление происходит во временном буфере, вы взяли объект в работу и должны его вернуть в базу данных (синхронизировать свою операцию с БД - см. CheckOut, CheckIn и др.). И только после этого заново создав CheckOut - заливать новый состав в БД.

oracle

Да, KillVersion помечает объекты на удаление, после возврата в базу. Я возвращал, потом брал опять в работу и заливал новый состав, но Лоцман все равно говорит, что найдены похожие.
KillVersions, как говорится удаляет объекты. Как я понял удаляет сразу и полностью. Но все равно, даже после возврата и взятия в работу, говорит о существовании похожих.

Что же делать?? :(

EVD

При удалении через KillVersion состав не удаляется, удаляется только 1 объект, а объекты состава в базе остаются, просто удаляется связь с удаляемым объектом.
Лоцман API функции удаления вместе со связанными объектами вроде нет.
Единственный вариант это обойти все связанные объекты с помощью функции GetLObjs (или подобной), запомнить их идентификаторы и удалить через KillVersions.