解決策は非常に簡単です。残念ながら、PowerDesigner がイベント ハンドラーの実行に失敗する場合があるため (何らかの理由で)、完璧ではありません。以下の小さな vbscript で処理できるはずです。拡張モデル定義ファイルを作成し、プロジェクトに添付します。このスクリプトは、Table メタクラスの Validate イベント ハンドラーです (ただし、検証というよりは自動修正です)。
Function %Validate%(obj, ByRef message)
' Implement your object validation rule on <parent> here
' and return True in case of success, False otherwise with a message
dim col
for each col in obj.columns
if col.Primary = true then
if left(col.name,3) <> "id_" then
With col
.name = "id_" & .name
.SetNameAndCode .Name, "", True
End With
end if
else
if left(col.name,3) = "id_" then
with col
.name = right(.name, len(.name)-3)
.SetNameAndCode .Name, "", True
end with
end if
end if
next
%Validate% = True
End Function
クレジットは、元のコードを提供した Richard Kier に贈られます。ありがとう、リチャード。