powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PowerDesigner: открыть модель из командной строки
13 сообщений из 13, страница 1 из 1
PowerDesigner: открыть модель из командной строки
    #37210230
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем. Возможен ли сабж, т.е. что-то вроде:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
option explicit

dim PDApp
set PDApp = CreateObject("PowerDesigner.Application.15.3")

dim activeModel
set activeModel = PDApp.openModel("test.pdm", PdCommon.OpenModelFlags.omf_DontOpenView or 
PdCommon.OpenModelFlags.omf_Hidden)

Можно ли cscript'у рассказать про PdCommon?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37212629
AnyaNartova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Непонятно в чем собственно проблема. Ваш скрипт нормально отрабатывает, открывает модель в скрытом виде - в соответствии с указанными вами флагами
Код: plaintext
1.
PdCommon.OpenModelFlags.omf_DontOpenView or 
PdCommon.OpenModelFlags.omf_Hidden
Можно, кстати писать и без префикса
Код: plaintext
omf_DontOpenView or omf_Hidden
Если хотите чтобы в браузере видно было - ставьте флаг omf_Default. В упрощенном виде нечто в этом роде:

Код: plaintext
1.
Dim ActiveModel
Set ActiveModel = OpenModel("C:\temp\PhysicalDataModel_1.pdm", omf_Default)
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37212642
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Непонятно в чем собственно проблема. Ваш скрипт нормально отрабатывает

Через командную строку и cscript/wscript?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37213056
AnyaNartova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ааа.. поняла вопрос. Не уверена что в cscript/wscript можно подключить внешние библиотеки, хотя может кто и знает как - в этой области я не специалист.

А зачем так сложно? Можно же просто из командной строки запустить
pdshell15.exe C:\temp\MySampleModel.oom
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37213080
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 12.04.2011 22:39, AnyaNartova wrote:

> Ааа.. поняла вопрос. Не уверена что в cscript/wscript можно подключить внешние библиотеки, хотя может кто и знает как -
> в этой области я не специалист.

Открыл для себя WSF - Windows Script File - для него показан пример получения констант из ADODB.Recordset:

http://en.wikipedia.org/wiki/Windows_Script_File#Exposing_constants

может можно через него, остается узнать есть ли соответствующий объект в PowerDesigner.

> А зачем так сложно? Можно же просто из командной строки запустить
> pdshell15.exe C:\temp\MySampleModel.oom

Конечная цель - держать модель и автоматически реинженерингом догонять ее до последнего состояния существующей БД.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37213113
AnyaNartova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis PopovКонечная цель - держать модель и автоматически реинженерингом догонять ее до последнего состояния существующей БД.


Мне кажется для такой задачи уже нужно брать какой-нибудь инструмент, который поддерживает работу с COM-объектами и писать на нем утилиту, - какой-нибудь VB или C#, - короче то, чем владеете. Там же не будет проблем с подключением библиотек.
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37213990
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnyaNartovaDenis PopovКонечная цель - держать модель и автоматически реинженерингом догонять ее до последнего состояния существующей БД.


Мне кажется для такой задачи уже нужно брать какой-нибудь инструмент, который поддерживает работу с COM-объектами и писать на нем утилиту, - какой-нибудь VB или C#, - короче то, чем владеете. Там же не будет проблем с подключением библиотек.
Точно! Например, Word или Excel :).
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37214920
AnyaNartova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойТочно! Например, Word или Excel :).

Не, ну в теории и через них конечно можно :) ... но было бы странно для такой задачи держать к примеру открытое окошко Excel чтобы менять модель PD. Уж лучше скомпилированную VB утилитку, которая в фоне шуршит время от времени.
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37214962
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello AnyaNartova. On 13 April 2011 14:43:07 you wrote:

> Не, ну в теории и через них конечно можно :) ... но было бы странно для такой задачи держать к примеру открытое окошко
> Excel чтобы менять модель PD. Уж лучше скомпилированную VB утилитку, которая в фоне шуршит время от времени.

Боюсь, затея не получится из-за отсутствия требуемого метода для обновления модели. Реинжениринг в новую модель есть, а
обновление текущей не нашел.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37215313
AnyaNartova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov,
Ну так вы же когда обновление модели руками делаете - это у вас тоже в два шага всегда происходит - сначала реверс в новую, а потом Merge. Просто модель которая создается из базы никуда не сохраняется и в браузере не отображается. И вы так же сделайте: сначала реверс а затем Merge.

PdCommon . BaseModel :
Merge(ByVal ModelToMerge As BaseObject, ByVal SelectedActions As Long = 13311) As Boolean
This method merges the model specified as first parameter into the current model.
The second parameter is a bitfield that can be composed of following values to specify the merge actions to execute:
- mrg_created: to create new objects in current model,
- mrg_deleted: to remove all objects from current model that are not available in model to merge,
- mrg_modified: to modify all objects that have a distinct value in model to merge,
- mrg_movedto: to change position of objects in ordered collections,
- mrg_movedtoex: to move all objects that are under another parent in the model to merge,
- mrg_insert: to insert new objects in non composition collections (like attached rules),
- mrg_remove: to remove objects from non composition collections (like attached rules),
- mrg_allchanges: to execute all change (this duplicates the model to merge into current model),
By default all actions are executed.
To execute all changes except deletion and collection remove, use following value: (mrg_allchanges - mrg_deleted - mrg_remove).
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37215325
AnyaNartova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А потом еще и в репозиторий запихнуть - вообще круть будет :)

PdCommon . BaseModel :
CheckIn(ByVal MergeMode As Integer = 2, ByRef Actions As String = Nothing, ByRef Conflicts As String = Nothing) As BaseObject
Checks in inside the repository a model that has already been check in once.
The check in will automatically create a branch if necessary. It is not possible to perform an 'integrate' action using this function. The model will be automatically updated after check in except when the file is read only. The repository model will not be automatically locked or frozen before or after check in. This action can be performed by script using the Lock and Freeze functions on the RepositoryDocumentBase class. Another way to check in a model is the use of the CheckInDocument function on the RepositoryFolder class.
A merge mode can be specified using the first parameter. It can contain the following values:
1 will replace the model in the repository by the local model without preserving any repository change.
2 is the default and will try to automatically select the default merge actions taking into account the modification dates of objects and will cancel the check in if a conflict has been found (objects modified both in local and the repository).
3 will also select default merge actions but it will always favor local changes in case of conflict instead of canceling the check in.
4 will select default merge actions and will favor the repository changes in case of conflict.
5 will replace the model in the repository by the local model and will enforce the creation of a new baseline (each object will have a new version in the repository)
The merge actions performed during the check in and the conflicts found can be retrieved in the strings specified in the last parameters.
(obsolete: use CheckIn instead).

... ну это конечно если он у вас используется.
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37215750
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello AnyaNartova. On 13 April 2011 19:25:10 you wrote:

> Ну так вы же когда обновление модели руками делаете - это у вас тоже в два шага всегда происходит - сначала реверс в
> новую, а потом Merge. Просто модель которая создается из базы никуда не сохраняется и в браузере не отображается. И вы
> так же сделайте: сначала реверс а затем Merge.


Необязательно, обычно я использую меню Database\Update Model from Database (Ctrl+R) в готовую модель, где есть красивые
диаграммы, которые неохота потерять. А за идею спасибо, м.б. действительно можно скриптом вытащить схему в новую модель
и применить разницу объектов к существующей.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
PowerDesigner: открыть модель из командной строки
    #37216207
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello Denis Popov. On 13 April 2011 14:58:11 you wrote:

> Боюсь, затея не получится из-за отсутствия требуемого метода для обновления модели. Реинжениринг в новую модель есть, а
> обновление текущей не нашел.


Ошибся я, все работает: метод ReverseDatabase принадлежит самой модели, поэтому можно менять существующую.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / PowerDesigner: открыть модель из командной строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]