문서 내보내기 사용자 지정 템플릿

Requirements Portal의 문서 내보내기 마법사는 요구사항 및 V&V 활동으로부터 편집 가능한 Microsoft Word *.docx 파일을 바로 생성할 때 유용하게 사용할 수 있는 기능입니다. 미리 정의된 템플릿을 사용하거나 자체 템플릿을 업로드할 수 있습니다. 이 마법사는 Python-Docx-Template 라이브러리를 기반으로 하며, 이 라이브러리는 다시 Jinja 템플레이팅 엔진을 활용합니다. 이 조합을 통해 사용자 정의 템플릿을 만들 수 있습니다.

Python-Docx-Template 라이브러리

Python-Docx-Template 라이브러리는 Python-Docx 라이브러리의 기능을 확장하는 강력한 도구입니다. Jinja 템플레이팅 엔진을 통합하여 Word 파일 내에서 동적 콘텐츠 생성을 가능하게 합니다. 즉, 변수, 루프, 조건문을 사용하여 문서에 데이터를 실시간으로 채워 넣을 수 있습니다. 본질적으로 Word 문서에 강력한 자동화 기능을 더해주는 셈입니다.

리치 텍스트 형식의 필드에는 내보내기 템플릿에서 반드시 r 접두사를 사용해야 합니다. 예를 들어, 요구사항 텍스트 필드는 템플릿에 r requirement.text 형식으로 포함되어야 합니다.

내보내기 템플릿 관리

Requirements Portal 인스턴스에서 사용할 수 있는 템플릿은 Export templates 페이지(  » Settings » Export templates)에 나열됩니다.

  • 기본적으로 6개의 템플릿이 제공되며, 요구사항 문서 내보내기용 3개와 V&V 활동 문서 내보내기용 3개로 구성됩니다.

    • 요구사항 내보내기 템플릿에 대한 자세한 내용은 Document Export 페이지를 참조하십시오.

    • V&V 활동 내보내기 템플릿에 대한 자세한 내용은 Document Export 페이지를 참조하십시오.

  • 새 사용자 정의 템플릿을 추가하려면 페이지 오른쪽 상단의  버튼을 클릭합니다. 표시되는 Add template 창에서 Applicable objects 드롭다운을 사용해 새 템플릿을 Requirements 또는 V&V Activities 중 어디에 적용할지 선택한 다음,  Select template 영역에서 템플릿 파일을 선택합니다.

    대화상자에서  버튼을 클릭하여 템플릿을 추가합니다. 추가된 템플릿은 Export templates 페이지의 목록에 표시되며 이후 문서 내보내기에 사용할 수 있습니다.

  • 모든 템플릿의 파일은 다운로드할 수 있습니다. 다운로드하려면 필요한 템플릿의 Name 열에서  버튼을 클릭한 다음 Download 명령을 선택합니다. 개인 브라우저 설정에 따라 브라우저가 미리 정의된 위치로 파일을 자동 다운로드하거나, 하드 드라이브의 저장 위치를 묻는 메시지를 표시합니다.

  • 사용자 정의 템플릿은 새 템플릿 파일로 덮어쓸 수 있습니다. 이렇게 하려면 필요한 템플릿의 Name 열에서  버튼을 클릭하고 표시되는 메뉴에서 Overwrite Template 명령을 선택합니다. 열리는 Overwrite template 창에서 템플릿 적용 대상을 지정하고 새 파일을 선택합니다.  I confirm I want to overwrite 옵션을 활성화한 후  버튼을 클릭하면 프로세스가 완료됩니다.

부록 – 요구사항 내보내기 템플릿의 데이터 객체 구조

Requirements Portal 인스턴스에는 기본 요구사항 내보내기 템플릿 3개가 제공되며, 각 템플릿은 앞선 것보다 점진적으로 더 복잡합니다. 따라서 템플릿 활용 수준을 높이고 싶다면 순서대로 살펴보는 것이 좋은 방법입니다. 구성은 다음과 같습니다.

  • spec_doc.docx – 요구사항 Document View와 동일한 출력을 생성하도록 설계된 가장 기본적인 표준 템플릿입니다. 초보자에게 적합하며 간단한 루프와 변수를 다룹니다.

  • spec_table.docx – 한 단계 더 발전된 템플릿으로, 조건문과 필터를 소개합니다. 여기서부터 기능이 한층 더 확장됩니다. 병합 필드가 포함된 스크립트 기반 Word 템플릿의 Jinja 버전이라고 할 수 있습니다.

  • req_verification.docx – 템플릿 중 가장 고급 버전입니다. 중첩 루프와 조건문이 풍부하게 포함되어 있으며, 표도 사용합니다. 이것을 자유자재로 다룰 수 있다면 문서 템플릿 작성의 전문가라 할 수 있습니다.

문서화 요구사항에 더 잘 맞도록 섹션을 자유롭게 추가, 제거 또는 수정할 수 있습니다. 위에 제시된 순서대로 기본 템플릿 파일을 검토한 후에는 보고서에 포함할 수 있는 요소의 범위를 더욱 적극적으로 시험해볼 수 있을 것입니다.

다음은 요구사항 내보내기 템플릿이 정보를 가져오는 객체의 기본 구조입니다.

필드 정렬

Jinja 템플릿 문서에서 Sort 함수를 사용하여 요구사항을 정렬할 수 있습니다. 예를 들어, 식별자 열을 기준으로 요구사항을 영숫자순으로 정렬하려면 |sort(attribute='identifier') 를 추가할 수 있습니다.

예:

{% for requirement in requirements|selectattr("specification_id", "equalto", specification.id)|selectattr("group_id", "none") |sort(attribute='identifier') -%}

사용자 정의 열

현재 문서 내보내기 기능에서는 사용자 정의 열 값을 손쉽게 내보낼 수 있습니다. 단순한 텍스트 기반 사용자 정의 열의 경우, 다음과 같은 일반 구조를 사용할 수 있습니다.

{% for custom_field in requirement.custom_fields|selectattr(“field”, “equalto”, “Name of Custom Column”) %}{{r custom_field.value }}{% endfor %}

Name of Custom Column 텍스트는 열 머리글에 표시된 실제 열 이름으로 반드시 바꾸어야 합니다.

사용자 정의 열이 텍스트가 아니고 다중 선택 옵션인 경우, 사용자는 다음 코드를 사용한 뒤 자신의 사용 사례에 맞게 수정할 수 있습니다.

{%- if requirement.custom_fields -%}
     {%- set additional_info_values = [] -%}
     {%- set category_values = [] -%}
     {%- set additional_info_custom_fields = requirement.custom_fields | selectattr('field', 'equalto', 'Additional Information') -%}
     {% for custom_field in additional_info_custom_fields -%}
      {%- set additional_info_values = additional_info_values + custom_field.value -%}
     {% endfor -%}
     {%- set category_custom_fields = requirement.custom_fields | selectattr('field', 'equalto', 'Category') -%}
     {% for custom_field in category_custom_fields -%}
           {%- set category_values = category_values + custom_field.value -%}
     {% endfor -%}
{%- set additional_info_string = additional_info_values | join(';') -%}
{%- set category_string = category_info_values | join(';') -%}
{%- endif -%}

부록 – V&V 활동 내보내기 템플릿의 데이터 객체 구조

다음은 V&V 활동 내보내기 템플릿이 정보를 가져오는 객체의 기본 구조입니다.

AI-LocalizedAI로 번역됨
만약 문제가 있으시다면, 텍스트/이미지를 선택하신 상태에서 Ctrl + Enter를 누르셔서 저희에게 피드백을 보내주세요.
기능 가용성

사용할 수 있는 기능은 보유한 Altium 솔루션(Altium Develop, Altium Agile Teams, Altium Agile Enterprise, 또는 Altium Designer(활성 기간 중))에 따라 달라집니다.

실제 소프트웨어에서 문서화된 기능이 보이지 않는 경우, Altium 영업팀에 문의하여 자세한 내용을 확인하세요.

콘텐츠