拡張機能のプロパティ
アプリは、カスタムプロパティを使用してコア YouTrack エンティティを拡張できます。これらは拡張プロパティと呼ばれます。拡張プロパティを使用すると、コア YouTrack エンティティのカスタム値を保存できます。アプリは、JavaScript ベースのモジュールでこれらのカスタムプロパティとその値を操作できます。
拡張プロパティは、entity-extensions.json
という名前の別のファイルで宣言されます。
アプリは、自身で宣言したプロパティにのみアクセスできます。アプリは他のアプリの拡張プロパティにアクセスすることはできません。
YouTrack からアプリを削除すると、アプリの拡張プロパティのすべての値が削除されます。拡張プロパティの一部を削除または名前変更した後にアプリを再インポートすると、古い値も削除されます。
サポートされているタイプ
拡張プロパティで使用できるすべてのタイプのリストは次のとおりです。
タイプ | 許容値 |
---|---|
integer | -9223372036854775808 から 9223372036854775807 |
float | 4.94065645841246544e-324d から 1.79769313486231570e+308d (肯定的か否定的か) |
boolean | |
string | |
YouTrack エンティティ | ワークフロー API によってサポートされる任意の YouTrack エンティティ |
"multi": true
パラメーターを追加することで、複数の値を格納する拡張プロパティを宣言できます。このパラメーターで宣言された拡張プロパティは、設定を返します。
拡張プロパティ宣言のサンプル
ここでは、entity-extensions.json
ファイルの例を見ることができます。この例では、すべての可能なタイプの拡張プロパティの宣言を見ることができます。これらのプロパティは、課題エンティティに対して宣言されています。他の YouTrack エンティティに対しても同様の拡張プロパティを宣言できます。拡張プロパティを宣言できるエンティティの完全なリストについては、YouTrack エンティティを参照してください。
JavaScript スクリプトでは、エンティティの拡張プロパティを entityName.extensionProperties.propertyName
として参照できます。次に例を示します。
ctx.issue.extensionProperties.stringProp
entities.Issue.findById("DEMO-1").extensionProperties.stringProp
拡張プロパティを使用する JavaScript コードサンプルについては、拡張プロパティの使用方法を参照してください。
アプリのグローバルストレージ
アプリは、これらのプロパティを特定のエンティティにリンクせずに、グローバルアプリレベルで拡張プロパティを宣言できます。アプリ内の任意の JavaScript ベースモジュールのスクリプトコンテキスト (ctx
) を通じて、グローバル拡張プロパティにアクセスできます。この種類の拡張プロパティを宣言するには、エンティティタイプとして AppGlobalStorage
を使用します。
グローバル拡張プロパティは ctx.globalStorage.extensionProperties.propertyName
として参照できます。
グローバル拡張プロパティを使用する JavaScript コードサンプルについては、以下のコードサンプルを参照してください。
拡張プロパティの使用方法
JavaScript スクリプトでは、エンティティの拡張プロパティを entityName.extensionProperties.propertyName
として参照できます。次に例を示します。
ctx.issue.extensionProperties.stringProp
entities.Issue.findById("DEMO-1").extensionProperties.stringProp
以下は、JavaScript アプリスクリプトで上記のサンプルで宣言された拡張プロパティにアクセスする方法を示したコードサンプルです。
グローバル拡張プロパティは ctx.globalStorage.extensionProperties.propertyName
として参照できます。
以下は、JavaScript アプリスクリプトで上記のサンプルで宣言されたグローバル拡張プロパティにアクセスする方法の例です。