ER/Studio [매크로활용] 클릭 한번으로 시스템 컬럼 일괄반영
2012.04.10 21:09
Download : AddSystemColumn.bas , AddDefaultAttribute.bas
ER/Studio는 데이터모델링 시 반복되는 작업을 자동화하는 많은 매크로(macro)가 제공된다. (매크로 - 편리한 자동화)
※ 매크로 소스는 별도 문의 (ask@embarcadero.kr)
모든 엔티티에서 가져야 어트리뷰트를 원클릭으로 일괄 반영
생성일자, 수정일자, 수정한 사람 등 모든 테이블에서 반드시 가져야 하는 공통 컬럼을 규정으로 있을 경우,
주로 물리 모델링에서 시스템 컬럼에 사용될 수 있다. (위 소스 코드 참조: 메모장에서 열거나 ER/Studio에서 바로 실행)
또한, 향후 도메인을 생성하고 이 도메인에 묶인 시스템 컬럼을 물리 모델에 반영하도록 보완하도록 하겠다.)
아래는 논리 모델 어트리뷰트를 일괄반영하는 코드이다.
(보다 실무적인 Sample은 위에서 "소스 코드 다운로드" 참고)
이때 Debug.Print를 사용하여 추가된 엔티티의 어트리뷰트를 매크로 창에 출력한다.
Sub Main Dim MyDiagram As Diagram Dim MyModel As Model Dim MyEntity As Entity Dim MyAttribute As AttributeObj Dim Logical As Boolean Const LogProcPersonNo = "처리자번호" Const LogProcDateTime ="처리일시" Set MyDiagram = DiagramManager.ActiveDiagram Set MyModel = MyDiagram.ActiveModel Logical = MyModel.Logical For Each MyEntity In MyModel.Entities If Logical = True Then '디펄트 attribute 추가 If MyEntity.Attributes(LogProcPersonNo) Is Nothing Then Set MyAttribute = MyEntity.Attributes.Add(LogProcPersonNo, False) Debug.Print MyEntity.EntityName + "에 " + LogProcPersonNo + " 추가" End If If MyEntity.Attributes(LogProcDateTime) Is Nothing Then Set MyAttribute = MyEntity.Attributes.Add(LogProcDateTime, False) Debug.Print MyEntity.EntityName + "에 " + LogProcDateTime + " 추가" MyAttribute.Datatype = "Date" 'Datatype 지정 MyAttribute.DeclaredDefault = "sysdate" '디펄트 지정 End If End If Next MyEntity End Sub |