スクリプトモジュール

スクリプトモジュールは、Octave エンジンと Python エンジンを統合し、Requirements & Systems Portal 内でいずれかの言語を使用して計算を記述および実行できるようにします。このモジュールは、標準の ValiEngine では不可能な複雑な計算を実行するように設計されています。

数値 Valis 以外のオブジェクトを操作する場合は、Requirements & Systems Portal の Python API を使用する必要があります。使用例としては以下のようなものがあります:

  • 値の作成と複数のブロックへの一括追加

  • 要件識別子を一括編集する

  • Python を使用したシ ミ ュ レーシ ョ ンの実行

  • 電力値の単位をkWに変換する

  • 自動トリガーに基づくカスタムワークフロー動作の実行

スクリプト・モジュールの流れ

モジュールを使用するには、ユーザーは新しいスクリプトを作成し、入力/出力を追加し、.mまたは.pyでコードを記述し、目的の出力を得るためにコードを実行します。

スクリプトモジュールのワークフロー

新しいスクリプトの作成

新しいスクリプトを作成するには、スクリプトモジュール内の "+ Script" (1) オプションをクリックします。

image-20240324-150602.png

ダイアログボックスが表示されるので、スクリプト名を入力し、エンジン(OctaveまたはPython)を選択し、ユーザーがテンプレートから使用/再利用するための追加オプションを指定します。

image-20240324-151035.png新規スクリプト作成オプション

テンプレート内のカスタムアクションについては、別のドキュメントで説明されています。こちらを参照してください。

スクリプトを "グローバルスクリプト "にすることもできます。 Create New Script Option.

新しいスクリプトが作成されると、ユーザーはスクリプト用に追加のテキスト、JSON、YAMLファイルを作成することもできます。新しいファイルを追加するには、オプション「+Add file」をクリックし(1)、ダイアログボックスで名前を追加し、ファイルタイプを選択します。これで、スクリプトにファイルが追加されます。

追加作成されたファイルを使用するには、main.pyファイルの先頭に以下の2行のコードを記述する必要があります:

import site
site.addsitedir('script_code/')

この2行の後、標準の importステートメントを使って呼び出すことができる。

秘密の管理

私たちのAPIまたは他のツールのAPIに接続するスクリプトを使用するときに必要な資格情報の使用を公開しないように、スクリプトの実行時に呼び出すことができる個人的な秘密変数を定義することができます。

追加方法と場所

シークレットは、[設定]パネルの[ユーザ シークレット]で定義できます。これらのシークレットは、スクリプト内で要件 & システム ポータルにログインするために再利用できます。ユーザ秘密を作成する方法を示す短いビデオを以下に示します。

その名のとおり、これらの秘密は各ユーザに固有であり、定義したユーザだけがアクセスできます。

スクリプトでシークレットを使用する方法

.settings "モジュールからシークレット名をインポートすることで、 スクリプト内での認証にシークレットを使用することができます。

from .settings import USERNAME, PASSWORD #大文字小文字を区別するので、ユーザーシークレットで使用する単語と同じものを使用してください。

LOGIN_DATA = { 'domain': 'API_URL
    'domain': 'API_URL'、
    ユーザー名':USERNAME、
    'password':パスワード
}

Altium 365 の Requirements & Systems Portal で作業している場合、Username と Password を使用して rest API にアクセスすることはできません。ここで説明するように、Settings から "User Tokens" を使用する必要があります。

実行時に、スクリプトはスクリプトをトリガーするユーザーのユーザー設定で定義された秘密からこれらの変数の値を取得し、そのユーザーの権限に依存します。スクリプトは、ユーザーの秘密を公開しないために、これらの変数の出力関数を含むべきではありません。

オートメーションでトリガーされるように設定された一般的なスクリプトは、他のすべてのユーザーから読み取り権限を削除することができる管理者レベルのユーザーによる認証で設定することができます。

キューシステム

キューシステムを使用すると、ユーザーはスクリプトが常に実行されることを確認することができます。このためには、"Runs "セクションにアクセスしてください。すべてのスクリプトの実行を確認することも、特定のスクリプトの実行を確認することもできます。

実行中のスクリプトキュー

すべてのスクリプトの実行はデプロイ時に保存され、スクリプト モジュール ツリーの上部にある [すべてのスクリプト] オプションを選択することで、スクリプトごとに、またはすべてのスクリプトについて参照できるようになります。

アクション]ドロップダウンメニューの[停止]ボタンをクリックすると、実行中のスクリプトを停止できます。

image-20250103-120600.pngスクリプトの停止アクション

パーミッションの処理

スクリプトには独自のパーミッションがあり、スクリプトモジュールから直接、またはプロジェクトモジュールの "パーミッション "から操作できます。

スクリプトのユーザー権限の設定

ダッシュボードからのスクリプトの実行

ユーザーは、「スクリプトの実行」ボタンを使用してカスタム インタラクション ダッシュボードを作成することもできます。これは、REST 呼び出しのトリガーに使用されるリクエスト ボタンと似ていますが、ボタンを押すだけで単一または複数のスクリプトを実行するように設定できます。

呼び出されたスクリプトでPython APIを使用することで、標準のテキストボックスなどの要素をスクリプトの入力フィールドや出力フィールドとして使用できるカスタムインタラクションダッシュボードを設定できます。

プロジェクトモジュールから "ダッシュボード "に移動します。カスタムダッシュボードに入り、右下のプラスアイコンをクリックします。次に、"Actions "ドロップダウンから "Run script "オプションを選択します。

ダッシュボードに「スクリプトを実行」アクションボタンを作成します。

これにより、ダッシュボードの特定のブロックを更新するスクリプトを実行できるボタンが作成されます。

興味深い使用例としては、テストの合格と不合格をカウントして、同じダッシュボードのテキストブロックに表示する場合があります。

テスト実行のステータスをカウントするダッシュボードの「スクリプトの実行」ボタン。

スクリプトとオートメーション

事前に設定した自動化機能により、スクリプトをトリガーできます。たとえば、複雑な計算を、定義された入力が変更された場合に自動的に実行するように設定できます。さらに、Requirements & Systems Portal の Python API を使用することで、特注の複雑な動作をプログラムして、カスタム ワークフローを構築することもできます。

自動化によってスクリプトがトリガされるだけでなく、どのオブジェクトがトリガされたかの情報も渡されるため、スクリプトはそれらのオブジェクトに対して直接動作することができます。オブジェクト情報は、以下の例のように、"triggered_objects "キーの下にある "kwargs "辞書変数で利用できるようになる:

object_data = kwargs['triggered_objects'][0]。

オートメーションは、スクリプトを閲覧する権限を持たないユーザーによってトリガーされた場合にもスクリプトを実行するため、独自の数学モデルや物理モデルなどの基礎となるコードへのアクセスを制限しながら、管理ユーザーによるワークフローのカスタマイズや計算が可能になります。

ワークフロースクリプトの例は、valifnパブリックリポジトリのtemplatesフォルダにあります。

カスタム Valifn イメージ

オンプレミスのユーザーは、サーバーのハードウェアがそれを処理できる場合に限り、自分のvalifnインスタンスをカスタマイズして、好きなPythonパッケージを実行できる追加機能があります。また、オンプレムユーザーはスクリプト実行時にどのvalifnイメージを使用するかを管理することができます。

オンプレミスのデプロイメントで、スクリプトにどのvalifnイメージを使用するかを設定する。

このオプションは、図のように、個々のスクリプトの[一般設定]のテキスト フィールドとして使用できます。

カスタム イメージの作成方法

独自の valifn イメージを設定する方法については、公開リポジトリのドキュメントページを参照してください:

Pythonスクリプトの例

使用可能なスクリプトのサンプルは、Valicopter 5000(新規デプロイメント)のサンプルプロジェクトとValiFnのGithub公開リポジトリの両方にあります。

これらの例は、手動または自動(場合によっては排他的)でトリガーすることができ、そのまま使用することも、ユーザーが修正して特注の動作を実行することもできます。

これらの例の多くは、特注の自動化ワークフローを作成するためのスクリプトモジュールとオートメーションの可能性のデモンストレーションとして作成されました。ユーザは、既存のスクリプトを自分のニーズに合わせてカスタマイズしたり、ValiFnの公開リポジトリで汎用スクリプトや改良を共有したりすることが推奨される。

子供容疑者警告(自動化)

合理的

こ の ス ク リ プ ト は、 編集 さ れた要件のプ ロ パテ ィ に基づいて動作す る ので、 既存の要件の変更に よ っ て ト リ ガ さ れ る よ う に設定す る 必要があ り ます。こ の ス ク リ プ ト は、 編集 さ れた要件のプ ロパテ ィ に作用す る ので、 既存の要件の変更に よ っ て ト リ ガ さ れ る 必要があ り ます。

推奨されるカスタマイズ

その他のア ク シ ョ ン と し ては、 タ ス ク を作成 し た り 、 編集 し た要件を レ ビ ュ ーに追加 し た り す る こ と がで き ます。

現在のアクション

  • 事前に設定された自動化をトリガした要件に子供がいるかどうかをチェックする

  • 子要件があ る場合は、 それぞれの子要件に、 親要件が更新 さ れた こ と を示すデ ィ ス カ ッ シ ョ ン を追加 し ます。

  • こ のデ ィ ス カ ッ シ ョ ンには、 要件を編集 し て自動化を ト リ ガ し たユーザーの ID が含まれます。

新規 タ ス ク (自動化)

ラ イ セ ン ス

新規ブ ロ ッ ク の作成時に、 タ ス ク を自動的に作成 し て特定のユーザーに割 り 当て る 必要があ り ます。こ の例では、 新 し いブ ロ ッ ク を作成す る こ と を ト リ ガ と し て、 あらかじめ設定 さ れてい る 自動化が新 し い タ ス ク を作成 し 、 その タ ス ク にユーザーを割 り 当て ます。トリガーとなるオブジェクトを入力として追加するのが理想でしたが、その開発は最終的なものではありませんでした。

推奨されるカスタマイズ

を使う。 kwargs['triggered_objects'][0]を使って自動化をトリガーしたオブジェクトの情報を抽出し、タスクの入力フィールドに追加する。

現在のアクション

  • 指定されたユーザーに割り当てられた新しいタスクを投稿する。

要件統計

合理的

ダ ッ シ ュ ボー ド と 分析デー タ で利用で き る デフ ォ ル ト ブ ロ ッ ク で提供 さ れ る も の よ り も 多 く の統計値を使用 し て、 よ り カ ス タ マ イ ズ さ れた カ ウ ン タ ーを作成で き る 簡単な例。こ れは、 手動で実行す る こ と も で き ます し 、 要件が作成、 変更、 または削除 さ れ る たびに自動化か ら 実行 さ れ る よ う に設定す る こ と も で き ます。

推奨されるカスタマイズ

  1. 要件に関する情報を抽出し、以前に更新 さ れた値 と 比較す る こ と に よ っ て、 さ ら に複雑な統計情報を得 る こ と がで き ます。各値に対 し て、 どの程度増加/ 減少したかをパーセ ン ト 値で示す こ と も で き ます。

  2. 各プ ロ ジ ェ ク ト で個別に ス ク リ プ ト を実行 し 、 各プ ロ ジ ェ ク ト か ら 統計を取得す る 特殊な イ ン ス タ ン ス を追加 し て、 ダ ッ シ ュ ボー ド に表示す る こ と で、 配備統計を比較 し ます。

  3. 統計で要件数が急激に減っ た場合は、 プ ロ ジ ェ ク ト 管理者に対 し てカ ス タ マ イ ズ さ れた警告を設定 し 、 プ ロ ジ ェ ク ト が大幅に変更 さ れ る 可能性を示 し ます。

現在のア ク シ ョ ン

  • デプロ イ時に 1 つのプ ロ ジ ェ ク ト の全体的な要件統計を構築 し ます。

  • 作成済みの Valis に結果をパ ッ チ し ます。

仕様書の生成

合理的

完全に自動化されたレポートを作成するための Python API の力を示すスクリプトの例です。メインのスクリプトは統合ドキュメンテーションページにもありますが、このバージョンはデプロイのスクリプトモジュールから実行できるように調整されています。

自動化または手動でトリガーできます。

推奨されるカスタマイズ

  1. 現在の要件取得プ ロ セ ス を変更 し て、 レ ポー ト に記入す る ブ ロ ッ ク やその他のオブジ ェ ク ト を抽出す る こ と で、 完全な レ ポー ト を作成 し ます。

  2. その他のカスタマイズ可能なフ ィ ール ド を追加 し 、 カ ス タ ム ダ ッ シ ュ ボードのテ キ ス ト ブ ロ ッ ク か ら 取得で き 、 こ れ ら か らも ト リ ガで き ます

  3. 最終出力フ ァ イ ルを、 編集可能な Word フ ァ イ ルのかわ り に PDF に変更。

現在のアクション

テスト・ダッシュボード

ラショナル

ダッシュボードのカウンターはまだテストモジュールに追いついておらず、テスト用の自動カウンターはまだありません。このスクリプトは、カスタムカウンタの概念実証として開発されましたが、まだ実装されていません。当初は、ダッシュボードのスクリプト実行ボタンから手動でトリガーして実行することを想定していました。

推奨されるカスタマイズ

  1. ダッシュボードにポストバックされるテストの統計情報を拡張する。

  2. テストの実行が成功した場合、結果を接続タスクにポストし、その状態を「完了」に変更する。

現在のアクション

  • 事前に定義されたダッシュボードのテキストブロックに、計算されたテスト実行統計の文字列を返します。

  • オートメーションから入力することも、手動でトリガーすることもできます。

AI-LocalizedAI-localized
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
機能の可用性

利用できる機能は、所有する Altium ソリューション (Altium DevelopAltium Agile のエディション (Agile Teams、または Agile Enterprise)、または Altium Designer (有効な期間)) によって異なります。

説明されている機能がお使いのソフトウェアに表示されない場合、Altium の営業担当者にお問い合わせください

Content