ドキュメントエクスポート用カスタムテンプレート

Requirements Portalのドキュメントエクスポートウィザードを使えば、要件やV&Vアクティビティから、編集可能なMicrosoft Word *.docxファイルを直接作成できます。定義済みのテンプレートを使用することも、独自のテンプレートをアップロードすることもできます。このウィザードは、Jinjaテンプレートエンジンを活用するPython-Docx-Templateライブラリを使用しています。この2つを組み合わせることで、カスタムテンプレートを作成できます。

Python-Docx-Templateライブラリ

Python-Docx-Templateライブラリは、Python-Docxライブラリの機能を拡張する強力なツールです。Jinjaテンプレートエンジンを組み込んでおり、Wordファイル内でコンテンツを動的に生成できます。つまり、変数、ループ、条件分岐を使用して、ドキュメントにデータをその場で挿入できます。いわば、Wordドキュメントにエスプレッソを一杯注いで、活力を与えるようなものです。

リッチテキストのフィールドには、エクスポートテンプレート内でrプレフィックスを使用する必要があります。たとえば、要件テキストフィールドは、テンプレート内にr requirement.textとして含める必要があります。

エクスポートテンプレートの管理

Requirements Portalインスタンスで使用できるテンプレートは、Settings – Export templates ページに一覧表示されます(右上の アイコンをクリックし、表示されるメニューからSettingsを選択して、左側のペインの一覧から Export templatesを選択するとアクセスできます)。

  • デフォルトでは、要件ドキュメントのエクスポート用に3つ、V&Vアクティビティのドキュメントのエクスポート用に3つ、合計6つのテンプレートが用意されています。

  • 新しいユーザー定義テンプレートを追加するには、ページ左上の ボタンをクリックします。表示される 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インスタンスでは、要件のエクスポート用に複数のデフォルトテンプレートが用意されています。

  • Specification Doc.docx – このテンプレートは、ドキュメントビュー機能と同様の形式で要件を生成し、エクスポートします。

  • Specification Table.docx – このオリジナルテンプレートは、要件の主要な属性を見やすい表形式で出力します。

  • Requirement Traceability and Verification Matrix.docx – このテンプレートでは、要件の親、子、設計参照に関する情報に加え、検証・妥当性確認の意図とステータスを含むdocファイルを生成できます。

  • Requirements Verification Matrix.docx – このテンプレートでは、要件の検証・妥当性確認の意図とステータスに関する情報を含むdocファイルを生成できます。

ドキュメントのニーズに合わせて、セクションを自由に追加、削除、変更してください。 上記の順序でデフォルトのテンプレートファイルを確認すると、レポートにどこまで情報を盛り込めるか、さらに試してみたくなるかもしれません。

以下は、要件エクスポートテンプレートが情報を取得するオブジェクトの基本構造です。

フィールドの並べ替え

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アクティビティエクスポートテンプレートのデータオブジェクト構造

Requirements Portalインスタンスでは、V&Vアクティビティのエクスポート用に複数のデフォルトテンプレートが用意されています。

  • V&V Activity Document.docx – エクスポート対象として選択されたアクティビティに関する情報を含みます。

  • V&V Matrix.docx – エクスポート対象として選択されたアクティビティと、要件およびそれらに関連付けられたブロックとのリンクを含みます。

  • V&V Runs Document.docx – エクスポート対象として選択されたアクティビティの実行に関する情報を含みます。

以下は、V&Vアクティビティエクスポートテンプレートが情報を取得するオブジェクトの基本構造です。

AI-LocalizedAI で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
Contents
機能の提供状況

ご利用可能な機能は、お使いのAltiumソリューション(Altium Develop、Altium Agile Teams、Altium Agile Enterprise、または有効な契約期間中のAltium Designer)によって異なります。

実際にお使いのソフトウェアに文書化されている機能が表示されない場合は、詳細についてAltium Sales までお問い合わせください。

Contents