powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / В PowerDesigner Шаблон %PARENT% для FK использует NAME, а нужно CODE
6 сообщений из 6, страница 1 из 1
В PowerDesigner Шаблон %PARENT% для FK использует NAME, а нужно CODE
    #38891278
Malter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В PowerDesigner (16.5.4.1) в настройках ( Model Options ) модели LogicalDataModel есть раздел Migration Setting и там можно задать шаблон-правило как будет формироваться имя внешнего ключа(FK) при автоматической генерации Логической модели(например из Концептуальной модели)
вот пример %ATTRIBUTE%_%PARENT%
т.е. имя атрибута PK и Имя таблицы на которую смотрит FK: например получается id_user

В справке написано что %PARENT% это Name/Code of the parent entity (т.е. заявлено что возвращает Name или Code )
но вставляется именно NAME , а не CODE

??? Как сделать чтобы %PARENT% отдавал значение именно из поля CODE ??? нужно т.к. в NAME указано описательное название, а CODE нужный идентификатор.
PS: подстановка %PCODE% в этом шаблоне не работает
...
Рейтинг: 0 / 0
В PowerDesigner Шаблон %PARENT% для FK использует NAME, а нужно CODE
    #38892542
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Malter,

Макросами не делал этого.
Я пользуюсь расширениями модели.

Создается вычисляемый дополнительный атрибут ComputedConstraintName

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Function %Get%(obj)
Dim ComputedCode
Dim Constraint
Dim refJoin
Dim Column
   
   ComputedCode = obj.GetExtendedAttribute("%CurrentTargetCode%.ComputedCode")
   If not ComputedCode = "" Then
      Constraint = ComputedCode
   End If
   ' формируем строку с полями по которым делается связь (только ChildTableColumn)
   For Each refJoin In obj.Joins
      Set Column = refJoin.ChildTableColumn
      Constraint = Constraint + "_" + Column.Code
   Next
   %Get% = mid(Constraint,1,30)
End Function



И так же создается проверка
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Function %Check%(obj)
Dim Result
   Result = True
   If not obj.ForeignKeyConstraintName = obj.GetExtendedAttribute("%CurrentTargetCode%.ComputedConstraintName") then
      Result = false
   End If
%Check% = Result 
End Function
...
Рейтинг: 0 / 0
В PowerDesigner Шаблон %PARENT% для FK использует NAME, а нужно CODE
    #38892553
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Malter,

и еще добавляется в проверку AutoFix скрипт:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Function %Fix%(obj, outmsg)
Dim Constraint
   
   Constraint = obj.GetExtendedAttribute("%CurrentTargetCode%.ComputedConstraintName")
   Obj.ForeignKeyConstraintName = Constraint
   outmsg = "The Constraint Name has been renamed"

   %Fix% = True
End Function
...
Рейтинг: 0 / 0
В PowerDesigner Шаблон %PARENT% для FK использует NAME, а нужно CODE
    #38893468
Malter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
azelentsovMalter,
Макросами не делал этого.
Я пользуюсь расширениями модели.

Не знаю макрос это или что-то другое, но это поле в форме настройки модели (model option).
Не сталкивался с расширениями модели. Подскажите как использовать их? в каких файлах сохранять, как цеплять к существующей модели?
спасибо
...
Рейтинг: 0 / 0
В PowerDesigner Шаблон %PARENT% для FK использует NAME, а нужно CODE
    #38893664
azelentsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Malter,

с PowerDesigner идут примеры, находятся они в папке example которая находится в той же папке, куда установлен PowerDesigner
...
Рейтинг: 0 / 0
В PowerDesigner Шаблон %PARENT% для FK использует NAME, а нужно CODE
    #38893669
Malter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
azelentsov,

спасибо посмотрю
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / В PowerDesigner Шаблон %PARENT% для FK использует NAME, а нужно CODE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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