|
|
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, возник такой вопрос надо сгенерить скрипты по концептуальной модели желательно на C#, открывать концептуальную уже получается а сгенерить по ней физическую и затем скрипты пока неясно как подскажите кто знает, или может ссылки на нормальный мануал где это найти Заранее спасибо! PdCommon.Application pd; pd = new PdCommon.Application(); pd.InteractiveMode = PdCommon.InteractiveModeValue.im_Batch; PdCDM.Model cmodel; cmodel = (PdCDM.Model) pd.OpenModel(@"C:\\PDMODEL\BF_Kernel.cdm", PdCommon.OpenModelFlags.omf_Default); PdPDM.Model pmodel; pmodel = (PdPDM.Model) cmodel.GenerateModel(cmodel, 0, "BF_Kernel.pdm", false); pmodel.GenerateDatabase(pmodel); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2009, 02:23 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
mixa345или может ссылки на нормальный мануал где это найти в документации ветка: PowerDesigner X.X/Customizing and Extending PowerDesigner/Scripting PowerDesigner/Communicating With PowerDesigner Using OLE Automation PowerDesigner API Interface Version 1.0: http://www.sybase.com/detail?id=1001041 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2009, 10:51 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
одна проблема осталась - программно сделать ObjectSelection и включить в него, например, все таблицы из Model/Package если делать selection вручную через вкладку Selection при генерации Database -> GenerateDatabase, то оно есть в PersistentSelections у PdPDM.Model и все работает, но программно не получается - такие методы пробовал 1) pmodel.CreateObject(1482472250, "PersistentSelections", 1, true); 2) PdCommon.PersistentSelection selection = (PdCommon.PersistentSelection)pmodel.PersistentSelections.CreateNew(1482472250); валится с ошибкой "В результате вызова компонента COM возвращена ошибка в формате HRESULT E_FAIL" как это гребаное ObjectSelection или PersistentSelection сделать, подскажите кто знает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 16:04 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
mixa345, а так? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 16:33 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
p/s/ зачем для таких простых задач юзать Interop? c VBS было бы намного проще... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2009, 16:34 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
так и не получается ни фига программно сделать ObjectSelection или PersistentSelection ни через Interop C#, ни через встроенный vbs у меня PoewerDesigner версия 12.0, пробовал в 15 на VBS: Set MySel = ActiveModel.CreateSelection MySel.Objects.Add(int kind) - не работает MySel.AddObjects(ByVal RootPackage As BaseObject, ByVal ClassType As Long, ByVal IncludeShortcuts As Boolean = 0, ByVal Recursive As Boolean = 0) - не работает полностью скопировал строки из мануала как создать PersistentSelection: Dim pActiveModel Set pActiveModel = ActiveModel Dim Selection, PrstSel Set Selection = pActiveModel.createselection Selection.AddActiveSelectionObjects Set PrstSel = Selection.CreatePersistentSelectionManager("test") компилятор сказал, что такого метода у Selection нет неужели в программе с такой стоимостью надо руками в 20 физических моделей забивать имена Selectionов Роман Дынник, судя по соседнему посту, ты на семинар по PD ходишь, спроси у них как эти selection сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 12:55 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
mixa345спроси у них как эти selection сделать я сомневаюсь что кто то сходу на такие вопросы сможет ответить по памяти. надо пробовать. будет время попробую. а семинар был всего один пока, и семинары - это больше маркетинговые мероприятия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 15:44 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
попробовал, на VBS будет примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. p/s/ посмотри примеры в папке Sybase\PowerDesigner XX\VB Scripts\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2009, 16:18 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
в общем разобрался я в вопросе все дело в версиях PD в 12.0 - функция создания PersistentSelection - "CreatePersistentSelectionManager", не поддерживается, компилятор ругается, уже начиная с 12.5 компилятор не ругается обычный ObjectSelection в 12.0 работает только для объектов на верхнем уровне, рекурсивно вглубь на следующие package уже не работает, точнее в коллекции все объекты и для нижних уровней есть, но GenerateDatabase их не видит, в 12.5 все нормально отрабатывает щас еще попытаюсь model.GetPackageOptions настроить, чтобы рекурсивно объекты цепляла, хотя похоже придется агитировать за переход на следующую версию)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2009, 13:58 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
Hi, I'm not russian and I don't understand what you're talking about except the source code. I'm coding using C# and not VB, and I can't use automatic cast (dim->set). Please, for God's Sake, tell me which type I have to use for the declaration of the variable "Selection". -- Set Selection = pActiveModel.CreateSelection(). Selection.Objects.Clear() -- I I declare it as ObjectCol, I can't cast it and got an exception. If I declare it as BaseObject, I have no "Objects" nor "Add" properties. Thanks in advance. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2010, 19:05 |
|
||
|
(PowerDesigner) сгенерить скрипты по CDM на C#
|
|||
|---|---|---|---|
|
#18+
Nevermind, I found the solution. It's a shame for the C# programmers dealing with all your lazy-programming VB code, never explicitly indicating your variables types ! For those who're seeking and who will find this thread, here is the solution, considering a PDM : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Hope it'll help. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2010, 20:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36011060&tid=1542728]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
172ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 484ms |

| 0 / 0 |
