powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Все вопросы по Sybase PowerDesigner (PD), Часть № 4
25 сообщений из 208, страница 6 из 9
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36118673
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying DutchmanКак одним махом переименовать все таблицы во всех диаграммах ? Конкретно - нужно перед именем каждой таблицы добавить слева некий префикс. (Не спрашивайте, зачем это нужно - начальство приказало).

Можно ли это сделать просто или нужно писать для этого скрипт ?
Это просто сделать через скрипт:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
option explicit
ValidationMode = true
InteractiveMode = im_Batch

dim tab
for each tab in ActiveModel.tables
  tab.name = "PREFIX_" & tab.name 
next
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36120335
Flying Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov
Это просто сделать через скрипт:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
option explicit
ValidationMode = true
InteractiveMode = im_Batch

dim tab
for each tab in ActiveModel.tables
  tab.name = "PREFIX_" & tab.name 
next


Получаю сообщение об ошибке:

Microfoft VBScript runtime error
Wrong number of arguments or invalid property assignment: 'name'
(0x800A01C2)
At line 7, character 3

В чем тут дело ?

Скрипт выполняю следующим образом:

1. Открываю диаграмму
2. В главном меню PowerDesigner выбираю Tools -> Execute Commands -> Edit Run Script
3. Ввожу текст скрипта в окно и нажимаю кнопку Run.
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36120391
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying Dutchman wrote at 31.07.2009 14:35:

> Получаю сообщение об ошибке:
>
> Microfoft VBScript runtime error
> Wrong number of arguments or invalid property assignment: 'name'
> (0x800A01C2)
> At line 7, character 3
>
> В чем тут дело ?

Сама модель открыта?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36120579
Flying Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov

Сама модель открыта?



Модель открыта. Если я заменяю в скрипте строку, где присваивается значание полю name, на строку

output tab.name

то в окно сообшений выводится список таблиц.
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36120757
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying Dutchman
Модель открыта. Если я заменяю в скрипте строку, где присваивается значание полю name, на строку

output tab.name

то в окно сообщений выводится список таблиц.
Вообще странно, какая версия PowerDesigner'а? Попробуй заново зарегистрировать библиотеки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
set pdhome=C:\Sybase\PowerDesigner  15 

"%pdhome%"\pdshell12.exe /RegServer
regsvr32 /s "%pdhome%"\pdobj12.dll
regsvr32 /s "%pdhome%"\pdcdm12.dll
regsvr32 /s "%pdhome%"\pdpdm12.dll
regsvr32 /s "%pdhome%"\pdoom12.dll
regsvr32 /s "%pdhome%"\pdbpm12.dll
regsvr32 /s "%pdhome%"\pdfrm12.dll
regsvr32 /s "%pdhome%"\pdxsm12.dll
regsvr32 /s "%pdhome%"\pdrmg12.dll
regsvr32 /s "%pdhome%"\pdwsp12.dll
regsvr32 /s "%pdhome%"\pdmpm12.dll
regsvr32 /s "%pdhome%"\pdips12.dll
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36120769
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying Dutchman
Модель открыта. Если я заменяю в скрипте строку, где присваивается значание полю name, на строку output tab.name
то в окно сообшений выводится список таблиц.

Получаю сообщение об ошибке:

Microfoft VBScript runtime error
Wrong number of arguments or invalid property assignment: 'name'
(0x800A01C2)
At line 7, character 3

В чем тут дело ?

вероятно на shortcut или на графический синоним цикл попадает...
коллекция ActiveModel.tables содержит также и shortcuts на таблицы из других пакетов, если эти shortcuts отражены на ActiveModel...
надо проверять, примерно так:
Код: plaintext
1.
2.
3.
4.
5.
Dim tb
Select Case tab.ClassName
            Case "Table"              Set tb=tab
            Case "Shortcut of table"  Set tb=tab.TargetObject
End Select
tb.name = "PREFIX_" & tb.name
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36121797
zMakc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поделитесь опытом.

Клиенты используют BizAgi Process Modeler.
Прислали диаграмму BPMN в формате BizAgi(*.pbm) и XPDL.
Так понимаю XPDL стандарт распространенный.

Подскажите как открыть в PD файл с расширением XPDL?
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36121906
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zMakcПоделитесь опытом.

Клиенты используют BizAgi Process Modeler.
Прислали диаграмму BPMN в формате BizAgi(*.pbm) и XPDL.
Так понимаю XPDL стандарт распространенный.

Подскажите как открыть в PD файл с расширением XPDL?
Посмотрите File/Import и File/Reverse enginiring - может что то найдете подходящее.
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36121917
zMakc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынник,

Смотрел, ничего не вышло.
Разве что если сделать Visio посредником, но это кривовато.



Пока решение не найдено :(
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36122231
Валерий aka Ратибор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь знает где найти PowerDesigner 15 Eclipse 3.5 плагин? Обновил Eclipse до версии 3.5. Теперь не могу установить плагин для PowerDesigner.
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36122450
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий aka РатиборКто-нибудь знает где найти PowerDesigner 15 Eclipse 3.5 плагин? Обновил Eclipse до версии 3.5. Теперь не могу установить плагин для PowerDesigner.
Такие же проблемы, только для версии 12.5.
В обновлениях тоже новых плагинов нет.
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36122516
Alkatraz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста - есть PDM, настроенная на работу с SQL2005, требуется "добавить" возможность генерации скрипта для SQL2008, с включенным секционированием, сжатием и перекодированием всех типов DateTime в DateTime2.

Это реально сделать в "автоматическом" режиме?
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36122549
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alkatraz wrote at 03.08.2009 10:05:

> Подскажите пожалуйста - есть PDM, настроенная на работу с SQL2005,
> требуется "добавить" возможность генерации скрипта для SQL2008, с
> включенным секционированием, сжатием и перекодированием всех типов
> DateTime в DateTime2.
>
> Это реально сделать в "автоматическом" режиме?

Можно поменять используемую БД через меню Database-> Change Current DBMS, через VBscript поменять
требуемые свойства объектов - будет модель, настроенная на SQL 2008.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36122875
Flying Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Дынниквероятно на shortcut или на графический синоним цикл попадает...
коллекция ActiveModel.tables содержит также и shortcuts на таблицы из других пакетов, если эти shortcuts отражены на ActiveModel...
надо проверять, примерно так:
Код: plaintext
1.
2.
3.
4.
5.
Dim tb
Select Case tab.ClassName
            Case "Table"              Set tb=tab
            Case "Shortcut of table"  Set tb=tab.TargetObject
End Select
tb.name = "PREFIX_" & tb.name


Действительно, проблема была в shortcuts. После исключения их из обработки скрипт заработал. Вот финальная версия скрипта:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
' Rename all tables in the active model'
option explicit
ValidationMode = true
InteractiveMode = im_Batch

dim tab
for each tab in ActiveModel.tables
  ' Skip shortcuts'
  if tab.ClassName = "Table" then
      tab.name = "PREFIX_" & tab.name
  end if
next

(Shortcuts исключены из обработки, потому что shortcut для одной же таблицы может встречаться в нескольких диаграммах и, таким образом, эта таблица будет переименована несколько раз.)

И еще вопрос: у меня в модели есть главная диаграмма, на которой находятся пакеты (package), в каждом из которых есть своя диаграмма. Как написать скрипт, который будет обрабатывать все таблицы на всех диаграммах (а не только на активной) ?
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36123003
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying Dutchman wrote at 03.08.2009 12:49:

> Действительно, проблема была в shortcuts. После исключения их из
> обработки скрипт заработал. Вот финальная версия скрипта:

Можно еще проверить:

Код: plaintext
if not tab.isShortcut then


> И еще вопрос: у меня в модели есть главная диаграмма, на которой
> находятся пакеты (package), в каждом из которых есть своя диаграмма. Как
> написать скрипт, который будет обрабатывать все таблицы на всех
> диаграммах (а не только на активной) ?

Посмотри скрипт пример в VB Scripts\List Tables.vbs. В нем требуемые действия оформляются в виде
процедуры, куда передается пакет, а потом идет цикл по вложенным пакетам:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ShowProperties ActiveModel

Sub ShowProperties(package)
....
    Dim subpackage
    For Each subpackage in package.Packages
       If Not subpackage.IsShortcut Then
          ShowProperties subpackage
       End If
    Next
End Sub

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36123029
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying DutchmanИ еще вопрос: у меня в модели есть главная диаграмма, на которой находятся пакеты (package), в каждом из которых есть своя диаграмма. Как написать скрипт, который будет обрабатывать все таблицы на всех диаграммах (а не только на активной) ?
Рекурсивной обработкой по пакетам, примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
function printTables(model)
   for each p in model.Packages
      for each t in p.tables
         output t.Name
      next
      printTables(p)
   next
end function

printTables(ActiveModel)
p/s/ см. Help/MetaModel Objects Help. Там же все есть...
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36123126
Flying Dutchman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov
Посмотри скрипт пример в VB Scripts\List Tables.vbs. В нем требуемые действия оформляются в виде
процедуры, куда передается пакет, а потом идет цикл по вложенным пакетам:


Спасибо, посмотрел. Окончательная версия скрипта теперь выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
'-------------------------------------------------------------------------------'
' Rename all tables in a PDM (PowerDesigner 15)'
'-------------------------------------------------------------------------------'
Option Explicit

Dim model
set Model = ActiveModel ' Current active model'
If (model Is Nothing) Or (Not model.IsKindOf(PdPDM.cls_Model)) Then
   MsgBox "The current model is not a PDM model."
Else
   ProcessTables model
End If

'-----------------------------------------------------------------------------'
' Recursively process all tables.'
'-----------------------------------------------------------------------------'
Sub ProcessTables(package)
   Dim table
   For Each table In package.Tables
      ' Shortcuts are not processed (processing  of them'
      ' can lead to multiple renaming of a same table).'
      if not table.isShortcut then ' If condition can be also: table.ClassName = "Table"'
          table.name = "PREFIX_" & table.name
      end if
   Next

   ' Process tables defined in all subpackages.'
   Dim subpackage
   For Each subpackage in package.Packages
      If Not subpackage.IsShortcut Then
         ProcessTables subpackage
      End If
   Next
End Sub

...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36126939
Alkatraz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov
Alkatraz wrote at 03.08.2009 10:05:

> Подскажите пожалуйста - есть PDM, настроенная на работу с SQL2005,
> требуется "добавить" возможность генерации скрипта для SQL2008, с
> включенным секционированием, сжатием и перекодированием всех типов
> DateTime в DateTime2.
>
> Это реально сделать в "автоматическом" режиме?

Можно поменять используемую БД через меню Database-> Change Current DBMS, через VBscript поменять
требуемые свойства объектов - будет модель, настроенная на SQL 2008.


Хммм, а если надо хранить настройки сразу для двух баз?

Надо по требованию генерировать скрипты для разных версий серверов.
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36127293
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alkatraz wrote at 05.08.2009 11:25:

> Хммм, а если надо хранить настройки сразу для двух баз?

> Надо по требованию генерировать скрипты для разных версий серверов.


Имхо проще держать 2 модели, благо есть возможность их синхронизации.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36127971
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovИмхо проще держать 2 модели, благо есть возможность их синхронизации.
согласен
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36129078
Alkatraz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, я тоже так подумал, просто надеялся на возможности самого PD. :)
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36137951
Валерий aka Ратибор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Возникла вот такая задачка. Есть большая PDM. Выбираем две таблицы из этой модели. Требуется понять как эти таблицы связаны. То есть, необходимо построить цепочку таблиц и связей, через которые связаны исходные две таблицы.
Я вижу два варианта решения:
1. На VB Script реализовать поиск в ширину. Придётся делать полный перебор.
2. Сравнивать Impact and Analysis диаграммы для исходных таблиц и найти их пересечение. Проблемы этого решения в том, что пересечение тоже получается большим и модели Impact and analysis нельзя мерджить. Хотелось бы получить пересечение в виде диаграммы PDM.
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36138044
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий aka РатиборТребуется понять как эти таблицы связаны. То есть, необходимо построить цепочку таблиц и связей, через которые связаны исходные две таблицы.

Чем плох первый вариант с рекурсивным поиском по references и сбором цепочки из tables?
...c Impact все равно красиво не получится - если есть промежуточные nodes (с уровнем связи больше 2-х) он же пересечение такое не сможет отразить...
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36138065
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий aka РатиборВозникла вот такая задачка. Есть большая PDM. Выбираем две таблицы из этой модели. Требуется понять как эти таблицы связаны. То есть, необходимо построить цепочку таблиц и связей, через которые связаны исходные две таблицы.
...
Валерий, если не секрет - а зачем это делать?
Могу только предположить, что вы хотите куда-то восстановить связи много-много. Только не могу понять практического применения. А интересно.
...
Рейтинг: 0 / 0
Все вопросы по Sybase PowerDesigner (PD), Часть № 4
    #36138071
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий aka РатиборВозникла вот такая задачка. Есть большая PDM. Выбираем две таблицы из этой модели. Требуется понять как эти таблицы связаны. То есть, необходимо построить цепочку таблиц и связей, через которые связаны исходные две таблицы.
...
Для связей много-много можно читать dependencies (incoming referrences). Там смотреть одинаковые child table.
Но приведите пример практической потребности для связей мощностью больше одного узла между таблицами.
...
Рейтинг: 0 / 0
25 сообщений из 208, страница 6 из 9
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Все вопросы по Sybase PowerDesigner (PD), Часть № 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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