보고서에 공통 유형의 모델 정보 추가

BIRT(Business Intelligence Reporting Tools) 보고서를 디자인하여 EMF 및 UML 모델이 제공하는 모든 유형의 정보를 병합할 수 있습니다. 모델 요소 문서와 같이 일반적으로 보고서에 포함되는 특정 정보 유형의 경우 다음 특수 프로시저를 따라야 합니다. 이 주제에서는 가장 일반적인 정보 유형 추가에 대한 특정 지시사항을 제공하고 보고서 디자인에 추가해야 하는 해당 요소를 식별합니다.
시작하기 전에
이 태스크 정보
일부 보고서 디자인 요소는 사용자 정의 XPath 함수에 따라 다릅니다. XPath 함수 작성 및 배치에 대한 정보는 "사용자 정의 XPath 함수 작성" 주제를 참조하십시오. IBM® Rational® 제품에 제공되고 보고서 디자인에 유용한 추가 XPath 함수 목록은 "EMF 및 UML 데이터 세트에 대한 추가 XPath 함수" 주제를 참조하십시오.
다음 테이블에는 BIRT 보고서에 모델 정보 유형을 추가하기 위한 특정 지시사항이 포함되어 있습니다.
보고서에 포함할 정보 해당 보고서 디자인 요소
모델 요소에 대한 문서
보고서 디자인에 모델 요소에 대한 문서를 추가하려면 다음 열 맵핑을 데이터 세트에 추가하십시오.
  • 이름: documentation
  • 표현식: getElementsWithStereotype(ownedComment, 'Default::Documentation')[1]/@body
  • 유형: String
이 열에 대한 레이블 요소가 아닌 동적 텍스트 요소를 사용하십시오. 동적 텍스트를 사용하는 경우 보고서의 문서는 모델에서와 동일한 방식으로 형식화됩니다. 레이블을 사용하는 경우 HTML 태그가 보고서에 생성됩니다.

getElementsWithStereotype 함수가 IBM Rational 제품에 포함되어 있습니다.

모델에 적용되는 프로파일 목록

예제는 보고서 탐색기 보기에서 액세스할 수 있는 빈 UML 모델 보고서(blankUMLModelReport.rptdesign)의 적용된 프로파일 데이터 세트를 참조하십시오.

요소에 적용되는 스테레오타입 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: element
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($element), "self.getAppliedStereotypes()")
    • 유형: uml:Stereotype

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델 요소의 URI로 설정하십시오.

패키지에 바로 있는 클래스 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: package
  • 행 맵핑:
    • 표현식: oclQuery(resolveURI($package)/packagedElement, "self.oclIsKindOf(uml::Class)")
    • 유형: uml:Class

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 패키지 URI로 설정하십시오.

클래스에 있는 속성 및 해당 유형 목록

예제는 보고서 탐색기 보기에서 액세스할 수 있는 빈 UML 모델 보고서(blankUMLModelReport.rptdesign)의 속성이 있는 클래스 데이터 세트를 참조하십시오.

클래스에 있는 오퍼레이션 및 해당 리턴 유형 목록

예제는 보고서 탐색기 보기에서 액세스할 수 있는 빈 UML 모델 보고서(blankUMLModelReport.rptdesign)의 속성이 있는 클래스 데이터 세트를 참조하십시오.

클래스에 오퍼레이션 목록을 포함하는 경우는 클래스에 속성 목록을 포함하는 경우와 유사하지만 속성 대신 오퍼레이션을 사용합니다.

오퍼레이션에 있는 매개변수("리턴" 이외) 및 해당 유형 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: operation
  • 행 맵핑:
    • 표현식: oclQuery(resolveURI($operation)/ownedParameter, "self.direction <> ParameterDirectionKind::return")
    • 유형: uml:Parameter
  • 열 맵핑: typeName, type/@name, String

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 오퍼레이션 URI로 설정하십시오.

오퍼레이션이 처리하는 예외 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: operation
  • 행 맵핑:
    • 표현식: resolveURI($operation)/raisedException
    • 유형: uml:Type

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 오퍼레이션 URI로 설정하십시오.

인터페이스를 구현하는 모든 클래스의 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: interface
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($interface), "InterfaceRealization.allInstances()->select(i | i.supplier->includes(self))")
    • 유형: uml:InterfaceRealization
  • 열 맵핑:
    • clientName, client[1]/@name,, String
    • clientURI, getURI(client[1]), String

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 인터페이스 URI로 설정하십시오.

클래스를 구현하는 모든 인터페이스의 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: class
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($class), "InterfaceRealization.allInstances()->select(i | i.client->includes(self))")
    • 유형: uml:InterfaceRealization
  • 열 맵핑:
    • supplierName, supplier[1]/@name, String
    • supplierURI, getURI(supplier[1]), String

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 클래스 URI로 설정하십시오.

클래스에서 상속되는 모든 클래스의 목록 예제는 UML 모델 메트릭 보고서(umlModelMetrics.rptdesign)의 서브클래스 데이터 세트를 참조하십시오.
클래스가 상속되는 모든 원본 클래스의 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: class
  • 행 맵핑:
    • 표현식: resolveURI($class)/superClass
    • 유형: uml:Classifier

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 클래스 URI로 설정하십시오.

클래스가 방향 지정된 연관을 가진 모든 클래스의 완전한 이름 및 대상 역할 이름, 가시성 및 다중성 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: class
  • 행 맵핑:
    • 표현식: oclQuery(resolveURI($class)/ownedAttribute, "Association.allInstances()->select(a|a.memberEnd->includes(self))->notEmpty()")
    • 유형: uml:Property
  • 열 맵핑:
    • targetRoleName, @name, String
    • visibility, @visibility, String
    • multiplicity, concat(concat(@lower,".."), @upper), String

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 클래스 URI로 설정하십시오.

액터에 연관된 유스 케이스
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: actor
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($actor), "Association.allInstances()->select(a|a.endType->includes(self) and a.endType->select(t|t.oclIsKindOf(uml::UseCase))->notEmpty())->collect(a|a.endType->select(t|t <> self))")
    • 유형: uml:UseCase

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 액터 URI로 설정하십시오.

유스 케이스와 연관된 액터
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: usecase
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($usecase), "Association.allInstances()->select(a|a.endType->includes(self) and a.endType->select(t|t.oclIsKindOf(uml::Actor))->notEmpty()) ->collect(a|a.endType->select(t|t <> self))")
    • 유형: uml:Actor

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 유스 케이스 URI로 설정하십시오.

클래스 다이어그램에서 다이어그램에 있는 클래스의 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: diagram
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($diagram), "self.children->select(c|c.element.oclIsKindOf(uml::Class))->collect(c|c.element)")
    • 유형: uml:Class

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 다이어그램 URI로 설정하십시오.

시퀀스 다이어그램에서 라이프라인의 오브젝트 이름 및 유형 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: sequenceDiagram
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($sequenceDiagram), "self.element.oclAsType(uml::Interaction).lifeline->collect(l|l.represents)")
    • 유형: uml:ConnectableElement
    열 맵핑:
    • objectName, @name, String
    • typeName, type/@name, String
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 시퀀스 다이어그램 URI로 설정하십시오.
시퀀스 다이어그램에서 메시지가 이동하는 각 라이프라인
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: lifeline
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($lifeline), "self.coveredBy->select(c|c.oclIsKindOf(uml::MessageOccurrenceSpecification))->select(m|m.oclAsType(uml::MessageOccurrenceSpecification).event->any(true).oclIsKindOf(uml::ReceiveOperationEvent))->collect(m|m.oclAsType(uml::MessageOccurrenceSpecification).message)")
    • 유형: uml:Message
  • 열 맵핑:
    • messageName, @name, String
    • signatureName, signature/@name, String
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 시퀀스 다이어그램 라이프라인 URI로 설정하십시오.
시퀀스 다이어그램에서 최상위 레벨 메시지만 해당하는 목록

최상위 레벨 메시지는 상호작용의 게이트에서 송신되는 메시지입니다.

다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: sequenceDiagram
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($sequenceDiagram), "self.element.oclAsType(uml::Interaction).formalGate->collect(g|g.message)")
    • 유형: uml:Message
  • 열 맵핑:
    • messageName, @name, String
    • signatureName, signature/@name, String
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 시퀀스 다이어그램 URI로 설정하십시오.
구조화 클래스류의 포트 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: structuredClassifier
  • 행 맵핑:
    • 표현식: resolveURI($structuredClassifier)/ownedPort
    • 유형: uml:Port
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 구조화 클래스류 URI로 설정하십시오.
포트의 제공된 인터페이스 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: port
  • 행 맵핑:
    • 표현식: resolveURI($port)/provided
    • 유형: uml:Interface
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 포트 URI로 설정하십시오.
포트의 필수 인터페이스 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: port
  • 행 맵핑:
    • 표현식: resolveURI($port)/required
    • 유형: uml:Interface
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 포트 URI로 설정하십시오.
활동 다이어그램의 파티션 목록

다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: activityDiagram
  • 행 맵핑:
    • 표현식: resolveURI($activityDiagram)/element/partition
    • 유형: uml:ActivityPartition
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 활동 다이어그램 URI로 설정하십시오.
활동 다이어그램의 데이터 스토어 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: activityDiagram
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($activityDiagram), "self.element.oclAsType(uml::Activity).node->select(n|n.oclIsKindOf(uml::DataStoreNode))")
    • 유형: uml:DataStoreNode
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 활동 다이어그램 URI로 설정하십시오.
활동 다이어그램에서 해당 클래스류가 특정 스테레오타입을 갖는 중앙 버퍼 목록

이 시나리오에서 스테레오타입은 "Business Modeling::BusinessWorker"입니다.

다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: activityDiagram
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($activityDiagram), "self.element.oclAsType(uml::Activity).node->select(n|n.oclIsKindOf(uml::CentralBufferNode))->select(c|c.oclAsType(uml::CentralBufferNode).type.isStereotypeApplied(c.oclAsType(uml::CentralBufferNode).type.getApplicableStereotype('Business Modeling::BusinessWorker')))")
    • 유형: uml:CentralBufferNode
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 활동 다이어그램 URI로 설정하십시오.
활동 다이어그램의 오브젝트 플로우에 있는 유형 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: activityDiagram
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($activityDiagram), "self.element.oclAsType(uml::Activity).edge->select(e|e.oclIsKindOf(uml::ObjectFlow))")
    • 유형: uml:ObjectFlow
  • 열 맵핑:
    • sourceType, oclEvaluate(source, "self.oclAsType(uml::ObjectNode).type")/@name, String
    • targetType, oclEvaluate(target, "self.oclAsType(uml::ObjectNode).type")/@name, String

보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 활동 다이어그램 URI로 설정하십시오.

상태 다이어그램의 상태 이름 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: statechartDiagram
  • 행 맵핑:
    • 표현식: oclEvaluate(resolveURI($statechartDiagram), "self.element.oclAsType(uml::StateMachine).region->collect(r|r.subvertex)")
    • 유형: uml:State
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 상태 차트 다이어그램 URI로 설정하십시오.
상태 다이어그램의 상태에서 상태로 전이 목록
다음 특성을 갖는 UML 데이터 세트를 작성하십시오.
  • 매개변수: state
  • 행 맵핑:
    • 표현식: resolveURI($state)/outgoing/target
    • 유형: uml:Vertex
보고서 디자인에 이 데이터 세트를 사용하는 경우 매개변수값을 모델의 상태 URI로 설정하십시오.
UML 다이어그램 이미지

다음 특성을 갖는 UML 데이터 세트를 작성하십시오.

  • 행 맵핑:
    • 표현식: 예를 들어, //Diagram. 이 표현식은 모델의 모든 다이어그램을 맵핑합니다.
    • 유형: Diagram
  • 열 맵핑: 다이어그램 이미지에 대한 열을 정의합니다.
열 맵핑 조회는 다음 메소드 중에서 이미지를 작성하는 데 사용하는 메소드에 따라 다릅니다.
  1. 이 메소드는 HTML 보고서 및 페이지 크기 제한이 없는 기타 보고서 전용 및 바둑판식 조각으로 나누어 렌더링할 수 있는 이미지용입니다.

    예제: getDiagramHtmlImage(".", $genPath, $tileWidth, $tileHeight)

    이 조회를 사용하여 열 정의를 작성하는 경우 유형에 대한 string 및 이름을 지정하십시오.

    생성된 보고서의 이미지는 다이어그램의 원래 크기 및 전체 해상도를 갖지만 조회에 지정된 크기의 바둑판식 조각으로 나뉩니다. 함수에 대한 추가 정보는 "EMF 및 UML 데이터 세트에 대한 추가 XPath 함수" 주제를 참조하십시오.

    주: 데이터 세트를 정의한 후 보고서 레이아웃 디자인에서 테이블 컨트롤을 작성하여 이를 다이어그램 데이터 세트에 바인딩하고 테이블 세부사항 행의 동적 텍스트 컨트롤을 삽입할 수 있습니다. 텍스트 표현식 row["image"]를 설정하십시오. 이미지가 클립되지 않도록 텍스트 컨트롤의 너비 및 높이를 상위의 100%로 설정하십시오.
  2. 이 메소드는 특히 PDF 및 Microsoft® Word와 같이 페이지 크기가 정의된 보고서 형식을 포함한 모든 보고서 형식 및 최대 해상도로 렌더링할 수 있는 이미지용입니다.

    예제: getDiagramImage(".", $maxResWidth, $maxResHeight)

    이 조회를 사용하여 열 정의를 작성하는 경우 유형에 대한 blob 및 이름을 지정하십시오.

    함수에 대한 추가 정보는 "EMF 및 UML 데이터 세트에 대한 추가 XPath 함수" 주제를 참조하십시오.

    데이터 세트를 정의한 후 보고서 레이아웃 디자인에서 테이블 컨트롤을 작성하여 이를 다이어그램 데이터 세트에 바인딩하고 테이블 세부사항 행의 이미지 컨트롤을 삽입할 수 있습니다. 이미지를 동적으로 설정하고 row["image"]의 URI를 지정하십시오. 이미지가 클립되지 않도록 이미지 컨트롤의 너비 및 높이가 상위의 100%로 설정되었는지 확인하십시오.

보고서 디자인에 대한 정보는 BIRT에 대한 필드 안내서를 참조하십시오.

다음에 수행할 작업
주: Eclipse 문서 또는 개발자 안내서에 대한 링크와 같은 일부 정보는 제품 도움말의 주제에서만 사용 가능합니다.

피드백