OneClick コンソール メニューのカスタマイズ
内容
casp1032jp
内容
このセクションでは、OneClick コンソールに新しいメニューおよび新しいメニュー項目を追加する方法について説明します。新しいメニュー項目を使用して、URL、サードパーティー アプリケーション、およびスクリプトを起動し、またこれらにパラメータを渡すことができます。
<$SPECROOT>
/tomcat/webapps/spectrum/WEB-INF/console/config/custom-menu-config.xml ファイルには、画像に示すように、OneClick コンソールにカスタム メニューとカスタム メニュー項目を追加する方法の例が含まれています。<$SPECROOT>
/custom/console/config/ ディレクトリにファイルがまだない場合は、このファイルをこのディレクトリにコピーする必要があります。以下の図は、[Connections]メニューと、その 2 つの新しいメニュー項目、[Ping Local]と[Launch Diagnostics]を示しています。

以下の図は、既存の[ツール]メニューに追加された、マイ Web ページの起動という新しいメニュー項目を示しています。このメニュー項目は指定された web ページを起動するために作成されました。

<menu> および <item> XML エレメントを使用して、OneClick メニューおよびメニュー項目を作成します。<menu> エレメントは、メニューで利用可能なコマンドを定義する 1 つ以上の <item> エレメントを囲みます。<item> エレメントは、メニュー項目の表示および動作を定義する複数のその他のエレメントを囲みます。これらのエレメントの詳細については、以下の表を参照してください。
エレメント | 親エレメント | Description |
<menu> | <root> | メニューを定義します。name 属性は、メニューの名前を定義するのに使用されます。 |
<separator> | <menu> | <item> エレメントの直前で使用すると、このセクションの最初の図に示すように、区切り線を定義します。 |
<item> | <menu> | 特定のメニューの項目を定義します。name 属性は、項目の名前を定義するのに使用されます。 |
<privilege> | <item> | 選択されたグループにユーザを追加します ユーザにこの権限が付与されていない場合、メニュー項目はそのユーザに表示されません。 |
<toolbar-image> | <item> | そのユーザが機能を利用できる場合に、メニュー項目および関連付けられているツールバー ボタンに表示する画像を指定します。 |
<toolbar-image-rollover> | <item> | ユーザがツールバー ボタン上にカーソルを置いたときに表示されるツールバー画像を指定します。 |
<toolbar-image-disabled> | <item> | 機能が無効になる(ユーザが利用できなくなる)ときに表示されるツールバー画像を指定します。この状態の通常の表示は、80% 「淡色表示」画像です。 |
<accelerator> | <item> | メニュー項目を実行するキーボード シーケンスを定義します。 |
<action> | <item> | ユーザがメニュー項目をクリックしたときに実行されるアクションを定義します。 |
<hot-key> | <item> | 指定された文字の最初のインスタンスに下線を引き、ユーザがこの文字をショートカットとして使用して、メニュー項目をアクティブにできるようにします。 |
この章の後続のセクションでは、<menu> エレメントを使用して新しいメニューを作成する方法、および <item> エレメントとその子エレメントを使用して新しいまたは既存のメニューにメニュー項目を追加する方法について説明します。
新規メニューの追加
<menu> エレメントは、OneClick コンソール メニューの作成に使用されます。
新しいメニューを追加する方法
- 既存の<$SPECROOT>/custom/console/config/custom-menu-config.xml ファイルを開きます。
- ファイルが存在しない場合は、ファイル<$SPECROOT>/tomcat/webapps/spectrum/WEB-INF/console/config/custom-menu-config.xml を<$SPECROOT>/custom/console/config ディレクトリにコピーし、それを開きます。注: <root> エレメントはこのファイルのルート エレメントです。<root> エレメントの内側で新しいメニューをすべて定義します。
- <menu> エレメントを使用して、新しいメニューを作成します。このエレメントは、メニュー名を定義する 1 つの属性 name を使用します。注:custom-menu-config.xml ファイルの例の一部は、OneClick エンジニアによって作成された Java クラスを参照する完全修飾メニュー名を示しています。たとえば、com.aprisma.spectrum.app.swing.window.menu.Tool は、[ツール]メニューを定義する、<menu> エレメントの name 属性の値として使用されます。新しいメニューの作成、または既存のメニューの参照に、完全修飾名を使用する必要はありません。ツールバーのメニュー名として表示したい正確なテキストを使用します。
- 新しいメニューに項目を追加するには、<item> エレメントと利用可能な子エレメントを使用して指定します。メニューにメニュー項目を指定していない場合、そのメニューは OneClick コンソールに表示されません。
- custom-menu-config.xml に行った変更内容を保存します。
- 新しいメニューを表示およびテストするには、OneClick コンソールを再起動します。
例: 新しいメニューの作成
以下の XML の行は、「custom-menu-config.xml ファイル」で示されている[Connections]メニューを作成します。
<menu name="Connections"> <item name="Ping Local"> . . . </item> <item name="Launch Diagnostics"> . . . </item> </menu>
新規メニュー項目の追加
既存の OneClick コンソール メニューに項目を追加、または作成した新しいメニューに項目を追加するには、カスタマイズしている <menu> エレメントの内側に新しい <item> エレメントを作成する必要があります。<item> エレメントでは、<name> 属性を使用して、メニュー項目の名前を指定します。
注:
新しいメニュー項目も自動的に右クリック メニューに追加されます。新規メニュー項目を追加する方法
- <$SPECROOT>/custom/console/config/custom-menu-config.xml を開きます。
- 項目を追加したいメニューを定義する「新しいメニューの追加」で作成した <menu> エレメントを検索します。<menu> アイテムがまだ存在しない場合は、name 属性を使用して追加し、既存の、または新しいメニューを定義します。注:custom-menu-config.xml の例の一部は、OneClick エンジニアによって作成された Java クラスを参照する完全修飾メニュー名を示しています。たとえば、com.aprisma.spectrum.app.swing.window.menu.Tool は、[ツール]メニューを定義する、<menu> エレメントの name 属性の値として使用されます。新しいメニューの作成、または既存のメニューの参照に、完全修飾名を使用する必要はありません。たとえば、<menu name="ツール"> を使用して[ツール]メニューを参照することができます。
- <item> エレメントを使用して、新しい各メニュー項目を作成します。このエレメントは、メニュー項目名を定義する 1 つの属性 name を使用します。
- <item> エレメントには、項目の動作を定義することができる一連の子エレメントがあります。これらのエレメントは、「custom-menu-config.xml ファイル」の表に記載されており、この章の残りの部分でさらに定義されています。これらのエレメントを使用して、追加したメニュー項目の動作を定義します。
- custom-menu-config.xml に行った変更内容を保存します。
- 新しいメニュー項目を表示するには、OneClick コンソールを再起動します。
例: 新しいメニュー項目の作成
以下の例では、Ping Local というメニュー項目を Connections というメニューに追加します。
<menu name="Connections"> <item name="Ping Local"> <accelerator modifiers="2">VK_I</accelerator> <action> <filter> <has-attribute>AttributeID.NETWORK_ADDRESS</has-attribute> </filter> <context>com.aprisma.spectrum.app.topo.client.render.ModelContext </context> <context>com.aprisma.spectrum.app.alarm.client.group.AlarmContext</context> <launch-application> <platform> <os-name>Windows 9x</os-name> <command>command.com /c start "Local ping {0}" cmd.exe /c "ping.exe {0} && pause"</command> </platform> <platform> <os-name>Windows</os-name> <command>cmd.exe /c start "Local ping {0}" cmd.exe /c "ping.exe {0} && pause"</command> </platform> <platform> <command>/usr/dt/bin/dtterm -e ping -s {0}</command> </platform> <param> <attribute>AttributeID.NETWORK_ADDRESS</attribute> </param> </launch-application> </action> </item> </menu>
ツールバー画像の追加
3 つのツールバー画像状態のそれぞれについてツールバー画像を利用できるようにするには、メニュー項目定義でそれらを指定します。ツールバー状態のエレメントは次のとおりです。
- <toolbar-image>
- <toolbar-image-rollover>
- <toolbar-image-disabled>
OneClick ツールバー画像には、.png、.gif、.jpg、.jpeg 形式の画像を使用することができます。
推奨されるツールバー画像のサイズは、24 × 24 ピクセルです。カスタム画像を
<$SPECROOT>
/custom/images ディレクトリに保存します。このディレクトリ内にある画像を参照する場合、画像ディレクトリからのパス(images/myimage.png など)を指定します。以下のコードの行では、画像ファイルへの相対パスを使用してツールバー画像を指定します。
<toolbar-image>images/hints.gif</toolbar-image>
OneClick メニュー項目の定義で使用されるすべてのエレメントの一覧については、「状況に応じたアクションの適用」を参照してください。
キーボード アクセラレータの定義
<accelerator> エレメントは、対応するメニュー項目を実行するキーボード入力の組み合わせを指定します。
キーボード上の大文字の先頭に「VK_」と付けて使用して、アクセラレータ キーのコードを指定します。
modifiers 属性は以下の整数値で修飾キーの組み合わせを示します。
- 1 = Shift
- 2 = Ctrl
- 3 = Ctrl+Shift
- 8 = Alt
- 9 = Alt+Shift
- 10 =Ctrl+ Alt
カスタマイズしたメニュー項目にアクセス キーを指定する必要はありません。
<accelerator modifiers="2">VK_L</accelerator>
上記の例では、コントロール キーを押しながら「L」キーを押すと(Ctrl + L)、メニュー項目の指定されたアクションが実行されます。
アクションの実行
<action> エレメントは、メニュー項目が選択された際に実行されるアクションを指定します。「状況に応じたアクションの適用」の表に記載されている子エレメントを使用して、特定のアクションを指定することができます。
<context> エレメントは、メニュー項目がアクティブなコンテキストを指定し、アクションを実行できるようにします。これは標準メニューと右クリック メニューの両方に適用されます。
状況に応じたアクションの適用
ユーザがモデルを選択した場合のみ適用可能なアクションなど、アクションは常にすべての状況で適用されるというわけではありません。そのため、アクションに対して以下のいずれかのコンテキストを指定することができます。
- ModelContextユーザがモデルを選択している場合にアクションが利用可能になる必要があることを示します。このコンテキストの形式は次のとおりです。<context>com.aprisma.spectrum.app.topo.client.render.ModelContext</context>
- AlarmContextユーザがアラームを選択している場合にアクションが利用可能になる必要があることを示します。このコンテキストの形式は次のとおりです。<context>com.aprisma.spectrum.app.alarm.client.group.AlarmContext</context>
- TableContextユーザがテーブルを選択している場合にアクションが利用可能になる必要があることを示します。このコンテキストの形式は次のとおりです。<context>com.aprisma.spectrum.app.util.table.TableContext</context>テーブル名が指定されていない場合、コンテキストは任意のテーブルに制限されています。ただし、以下の形式を使用して、コンテキストを 1 つのテーブルに制限することもできます。<context>com.aprisma.spectrum.app.util.table.TableContext</context> <table-name>TableName</table-name>
1 つのコンテキストまたはコンテキストの組み合わせを指定することができます。指定したコンテキストが現在のウィンドウ コンテキストと一致しない場合、メニュー項目は無効になります。コンテキストが指定されない場合、メニュー項目はすべてのコンテキストで表示されます。
以下の表では、アクションの実装に使用されるエレメントについて説明します。
エレメント | 親エレメント | Description |
<context> | <action> | メニュー項目が有効で、アクションを実行することができるコンテキストを制限します。 |
<table-name> | <action> | <context> と共に使用し、アクションが 1 つのテーブルに制限される場合にテーブル名を指定します。TableContext でのみ動作します。 |
<column-name> | <param> | <context> および <command> と共に使用し、テーブルの選択された行からスクリプトに渡されるテーブル列の値を指定します。TableContext でのみ動作します。 |
<filter> | <action> | メニュー項目の可用性を制限します。 |
<has-attribute> | <filter> | フィルタする属性を指定します。 |
<and>, <or>, <value>, <equals> | <filter> | フィルタで使用することができる式を作成します。 |
<launch-browser> | <action> | ブラウザを起動します。 |
<launch-sso-browser> | <action> | ブラウザを起動し、シングル サインオンが OneClick で有効な場合は、現在のセッションに関連付けられたシングル サインオン トークンを URL に含めます。ユーザ名とパスワードが繰り返し要求される代わりに、このトークンを使用して、統合 Web アプリケーション間でセッションを再認証することができます。 注: CA SiteMinder® または CA Embedded Entitlements Manager を使用して OneClick でのシングル サインオンをセットアップする方法の詳細については、そのアプリケーションの「統合」セクションを参照してください。 |
<url> | <launch-browser> | ブラウザで起動する URL を指定します。 |
<launch-application> | <action> | アプリケーションを起動します。 |
<launch-web-server-script> | <action> | Web サーバで利用できるスクリプトを起動します。 |
<display-output> | <launch-application>、 <launch-web-server-script> | 起動したスクリプトからの出力を表示します。 |
<display-exit-status> | <launch-application>、 <launch-web-server-script> | 起動したスクリプトの終了ステータスを表示します。 |
<command> | <launch-application>、 <launch-web-server-script>、 <platform> | メニュー項目で起動するアプリケーションまたはスクリプトを指定します。 |
<run-for-multiple-alarms> | <launch-web-server-script> | 選択した複数のアラームに対して web ブラウザ上でスクリプトを実行します。 注: アラームに対してのみ適用可能です。CA Spectrum 10.3 以降、CA Spectrum ユーザは、以下のタグを追加して、複数のアラームに対してスクリプトを結合モードで実行できます。 <multiple-contexts-enabled mode= "combined-execution" delimiter= ";"/> 以下のモードを設定できます。 combined-execution - 複数アラームを単一実行separate-execution (デフォルト値) - 複数アラームを複数実行(1 アラームごとに 1 実行) 詳細については、このページの「複数アラームに対する Web サーバ スクリプトの同時起動」を参照してください。 注: モードまたはモード名を正しく指定しない、または <multiple-contexts-enabled mode= /> タグを完全に削除していない場合、デフォルト モード(separate-execution)が適用されます。 |
<platform> | <launch-application> | <os-name> と共に使用し、OneClick クライアントのオペレーティング システムに基づいて起動するアプリケーションを指定します。 |
<validate> | <launch-application> | <command> エレメントと共に使用し、コマンドが OneClick に存在し、実行権限がある場合のみ、メニュー項目がメニューに追加される必要があることを指定します。OneClick の起動中にいずれかの条件が false になると、メニュー項目はメニューに追加されません。 <validate> エレメントが使用されない場合、メニュー項目は常にメニューに追加されますが、その状態は他のエレメントの値により判断されます。 |
<os-name> | <platform> | <platform> と共に使用し、OneClick クライアントのオペレーティング システムに固有で起動されるアプリケーションを指定します。 |
<param> | <url>, <command> | ブラウザ、実行ファイル、またはスクリプトに渡されるパラメータを指定します。 |
<attribute> | <param> | パラメータとして使用される属性を指定します。 |
メニュー項目の可用性の制限
<filter> エレメントは、メニュー項目の有効状態をさらに制限するフィルタを指定します。選択したコンテキストの任意の属性でフィルターできます。
<filter> <has-attribute>AttributeID.NETWORK_ADDRESS</has-attribute> </filter>
上記の例において、アクションには、アラーム対象モデルの IP アドレスが必要です。そのため、これは、アラーム対象モデルに Network_Address (ID 0x12d7f)属性がある場合のみ有効となる必要があります。
ネストされた「and」および「or」フィルタの組み合わせで、複雑な属性フィルタを指定することができます。
例: フィルタのネスト
選択されたモデルに Network_Address 属性が使用され、Condition(ID 0x1000a)属性が RED である場合、以下の例の項目が有効になります。
<filter> <and> <has-attribute>AttributeID.NETWORK_ADDRESS</has-attribute> <equals> <attribute id="AttributeID.CONDITION"> <value>3</value> <!--red--> </attribute> </equals> </and> </filter>
ファイル
<$SPECROOT>
/tomcat/webapps/spectrum/WEB-INF/common/schema/attribute-filter.xsd には、属性フィルタの完全な構文が含まれています。
以下のテーブルでは、属性 ID が予想され、共通に使用される属性を定義しています。
定数 | 属性 |
AttributeID.NETWORK_ADDRESS | ネットワーク アドレス(ID 0x12d7f) |
AttributeID.MTYPE_ID | モデル タイプ ハンドル(ID 0x129ab) |
AttributeID.MTYPE_NAME | モデル タイプ名(ID 0x10000) |
AttributeID.MODEL_OBJECT | モデル ハンドル(ID 0x11f53) |
AttributeID.MODEL_NAME | モデル名(ID 0x1006e) |
AttributeID.MODEL_CLASS | モデル クラス(ID 0x11ee8) |
AttributeID.CONDITION | 状態(ID 0x1000a) |
AttributeID.DOMAIN_ID | ランドスケープ ハンドル(ID 0x129ac) |
AttributeID.DOMAIN_NAME | ランドスケープ名(ID 0x11d42) |
AttributeID.MAC_ADDRESS | MAC アドレス(ID 0x110df) |
AttributeID.DEVICE_TYPE | デバイス タイプ(ID 0x23000e) |
アラーム属性について、以下の表で定義される定数を使用することができます。
定数 | アラーム属性 |
AlarmAttrID.ACKNOWLEDGED | 確認済み(ID 0x11f4d) |
AlarmAttrID.ALARM_FILTER_MH | アラーム フィルタ(ID 0x12a56) |
AlarmAttrID.ALARM_ID | 完全アラーム ID (ID 0x11f9c) |
AlarmAttrID.INT_ALARM_ID | 整数アラーム ID (ID 0x4820067) |
AlarmAttrID.ALARM_SOURCE | アラーム ソース(ID 0x11fc4) |
AlarmAttrID.ALARM_STATUS | アラーム ステータス(ID 0x11f4f) |
AlarmAttrID.CAUSE_CODE | 原因コード(ID 0x11f50) |
AlarmAttrID.CAUSE_LIST | 原因リスト(ID 0x12a05) |
AlarmAttrID.CAUSE_TITLE | 原因のタイトル(ID 0x4820020) |
AlarmAttrID.CREATION_DATE | 作成日(ID 0x11f4e) |
AlarmAttrID.CLEARED_BY_USER_NAME | ユーザ名によるクリア(ID 0x11f51) |
AlarmAttrID.IMPACT_SEVERITY | 影響重大度(ID 0x1290d) |
AlarmAttrID.OCCURRENCES | 発生(ID 0x11fc5) |
AlarmAttrID.ORIGINATING_EVENT | 発生元イベント(ID 0x1296e) |
AlarmAttrID.PERSISTENT | 永続的(ID 0x12942) |
AlarmAttrID.PRIMARY_ALARM | プライマリ アラーム(ID 0x11f54) |
AlarmAttrID.SEVERITY | 重大度(ID 0x11f56) |
AlarmAttrID.TROUBLESHOOTER | トラブルシュータ(ID 0x11f57) |
AlarmAttrID.TROUBLE_TICKET_ID | トラブル チケット ID (ID 0x12022) |
AlarmAttrID.USER_CLEARABLE | ユーザ クリア可能(ID 0x11f9b) |
上記の 2 つのテーブル内にリスト表示される属性以外の属性を使用する必要がある場合、16 進数の属性 ID を使用して属性を指定します。
ブラウザの起動
<launch-browser> エレメントを使用すると、指定された URL をブラウザで起動し、URL にパラメータを渡すことができます。これらのパラメータは、ハードコードされた値かモデル属性の値になります。
例: <launch-browser> コード
以下の例では、クライアント マシン上でデフォルト ブラウザを起動します。<url> エレメントは URL パターンを指定します。パラメータ番号(0 で開始する番号)を中括弧 {} で囲み、URL パターンに代入するパラメータを指定できます。後で各パラメータに <param> エレメントを指定します。
<launch-browser> <url>http://{0}</url> <param> <attribute>AttributeID.NETWORK_ADDRESS</attribute> </param> </launch-browser>
CA Spectrum
は、最初の <param> エレメントが URL パターンの 0 番目のパラメータに対応するように、<param> エレメントを処理します。<param> エレメントは特定の構文を使用します。最も一般的に使用されるものは、<attribute> エレメントです。このエレメントは、選択されたコンテキストに指定された属性の値を代入します。上記の例では、Network Address 属性の値が URL パターンで代入されます。複雑なパラメータについては、ファイル内の <param-type> の定義を参照してください。<$SPECROOT>/tomcat/webapps/spectrum/WEB-INF/common/schema/basic-config.xsd
URL の指定に関する重要な情報
URL を指定する場合は、以下の情報を指定します。
標準文字の使用
OneClick の XML カスタマイズ コードで URL を指定する場合は常に、URL フォーマットが、Internet Engineering Task Force (IETF) RFC 1738 が発行している標準に準拠している必要があります。URL で標準以外の文字を使用した場合、指定された Web ページがブラウザで見つからないなど、ブラウザの性能の信頼性が損なわる結果となります。
スペースとカンマの URL エンコーディング
URL にスペースやカンマ、またはその他の「予約」または「危険な」文字を使用している場合は(このセクション後半のテーブルを参照)、適切な URL エンコーディングで、ASCII 相当の値に変換します。文字の URL エンコーディングは、パーセント(%)記号の後に、ISO-Latin コード ポイントを 2 桁の 16 進数で表現したもの(大文字小文字を区別しない)が続いて構成されます。「スペース」および「カンマ」の例は次のとおりです。
- スペースについては、%20 を使用します。
- カンマについては、%2C を使用します。
注:
このエンコーディングを使用している場合でも、一部のブラウザでは URL の処理時に問題が発生する可能性があります。アンパサンドの使用
URL または XML カスタマイズ コードでアンパサンドを使用している場合、& に変換する必要があります。
XML での CDATA の使用
解析されないようにするため、CDATA セクション内に URL を配置することができます。これは、URL と XML パーサで起こりうる問題を回避できます。
以下を含む CDATA の要件に必ず従ってください。
- CDATA セクションには「」文字列を含めることができません。そのため、ネストされた CDATA セクションは使用できません。
- また、「」文字列内にスペースまたは改行がないことを確認してください。
危険な URL 文字
さまざまな理由で、一部の文字は URL 内で誤解される可能性があります。これらの文字も、常にエンコードする必要があります。以下の表では、危険な文字と 16 進エンコードが提供されます。
文字 | コード ポイント(16 進数) |
スペース | 20 |
引用符(") | 22 |
「より小さい」記号(「<」) | 3C |
「より大きい」記号(「>」) | 3E |
シャープ文字(「#」) | 23 |
パーセント記号(「%」) | 25 |
左の中かっこ(「{」) | 7B |
右の中かっこ(「}」) | 7D |
垂直棒/パイプ(「|」) | 7C |
円記号(「\」) | 5C |
キャレット(「^」) | 5E |
ティルダ(「~」) | 7E |
左角かっこ(「]」) | 5B |
右角かっこ(「]」) | 5D |
抑音アクセント(「`」) | 60 |
URL 予約文字
URL では、構文を定義する際に一部の特殊な文字を使用します。これらの文字を URL 内で特殊な役割で使用しない場合は、エンコードする必要があります。以下の表では、これらの文字と 16 進エンコードが提供されます。
文字 | コード ポイント(16 進数) |
ドル(「$」) | 24 |
アンパサンド(「&」) | 26 |
加算(「+」) | 2B |
カンマ(「,」) | 2C |
フォワード スラッシュ(「/」) | 2F |
コロン(「:」) | 3A |
セミコロン(「;」) | 3B |
イコール(「=」) | 3D |
疑問符(「?」) | 3F |
アット記号(「@」) | 40 |
ユーザ名の指定
ユーザ名を必要とするアプリケーション、Web ブラウザ、または実行可能ファイルに現在のユーザの OneClick ユーザ名を渡すことができます。以下の式を使用して、ユーザのログイン ユーザ名を指定します。
<param> <expression> com.aprisma.spectrum.app.util.context.DefaultApplicationContext.getGlobal Parameter(com.aprisma.spectrum.app.util.context.ApplicationContext. USER_PARAMETER_NAME) </expression> </param>
例: ユーザ名のブラウザへの引き渡し
以下の例では、ブラウザで指定された URL を開き、ブラウザにユーザ名を渡します。
<launch-browser> <url> http://acme.com?user={0}</url> <param> <expression> com.aprisma.spectrum.app.util.context.DefaultApplicationContext.getGlobalParameter(com.aprisma.spectrum.app.util.context.ApplicationContext.USER_PARAMETER_NAME) </expression> </param> </launch-browser>
OneClick からのアプリケーションの起動
<launch-application> エレメントでは、指定されたコマンドまたは実行可能ファイルを起動することができます。
例 1: <launch-application>
以下の例では、クライアント マシン上で myapp と呼ばれるアプリケーションを起動し、選択されたモデルの IP アドレスを渡しています。<launch-browser> アクションと同様に、任意の数のパラメータを代入できます。
<launch-application> <command>myapp {0}</command> <param> <attribute>AttributeID.NETWORK_ADDRESS</attribute> </param> </launch-application>
<command> エレメントは、実行するコマンドまたは実行可能ファイルを指定します。2 つの方法のいずれかでコマンドまたは実行可能ファイルへのパスを指定することができます。
- 環境変数を使用して各クライアント上のパスを指定することがきます。Windows 環境で環境変数を作成するには、[マイ コンピュータ]-[プロパティ]-[詳細]を選択し、[環境変数]ボタンをクリックします。
- コマンドまたは実行可能ファイルへの絶対パスを指定することができます。これを行う場合は、各 OneClick クライアント上でパスが同じである必要があることに留意してください。Windows 環境のパス ステートメントでは、以下のようにシングル バックスラッシュではなく、ダブル バックスラッシュを使用する必要があります。C:\\Windows\\system32\\cmd.exe
注:
<validate> エレメントを使用して、コマンドまたは実行可能ファイルが OneClick クライアントに存在し、実行権限があることを確認することができます。OneClick の起動中にこれらのいずれかの条件が false になると、関連付けられたメニュー項目は OneClick メニューに追加されません (<validate> エレメントが使用されない場合、メニュー項目は常にメニューに追加されますが、その状態は他のエレメントの値により判断されます)。<validate> エレメントを使用する場合は、以下の例に示すように、<command> エレメントに絶対パスを指定する必要があります。
<launch-application> <command>c:\\windows\\system32\\notepad.exe</command> <validate/> </launch-application>
<command> エレメントは、以下の構文ルールに従う必要があります。
- コマンド引数はスペースで区切られます。引数内にスペースを入れる場合は、引数の周りに引用符を配置するか、内部スペースの前でエスケープ文字「\」を使用する必要があります。
- 引数内に引用符を入れる場合は、引用符の前にエスケープ文字「\」を配置する必要があります。
- コマンド引数のいずれかにカンマが含まれる場合、CA Spectrumは自動的に引用符内に引数を配置します。これは、カンマを含む整数値である引数を解析する場合に重要です。
- CA Spectrumは、NULL を返す引数、または文字列長がゼロの引数を、空の引用符("")で置き換えます。
例 2: <launch-application>
この例では、<platform> エレメントを使用して、異なるプラットフォームに異なるコマンドを指定しています。<os-name> エレメントは、オペレーティング システム名を指定し、<command> エレメントはそのオペレーティング システム上で実行するコマンドを指定します。<os-name> エレメントはオプションです。<os-name> を指定しない場合、関連付けられているコマンドがデフォルトになり、他のプラットフォームが一致しない場合、デフォルトのコマンドが実行されます。
<launch-application> <platform> <os-name>Windows</os-name> <command>cmd.exe /c start "ping {0}" cmd /c "ping.exe {0} &&pause"</command> </platform> <platform> <os-name>SunOS</os-name> <command>>/usr/dt/bin/dtterm -e ping {0}</command> </platform> <param> <attribute>AttributeID.NETWORK_ADDRESS</attribute> </param> </launch-application>
実行時に、
CA Spectrum
は、指定された OS 名と「os.name」 Java プロパティから返される OS 名を比較します。CA Spectrum
は最適一致アルゴリズムを使用するため、OS 名のプレフィックスを指定するだけで済みます。以下の OS 名のいずれかを指定することができます。- すべての Windows プラットフォームの Windows
- Windows XP の Windows XP
- Windows 7 の場合は Windows 7
- Linux プラットフォームの Linux
- Macintosh プラットフォームの Mac
指定されたプラットフォームが一致しない場合、関連するメニュー項目は無効になります。
Web サーバ スクリプトの起動
<launch-web-server-script> エレメントは、Web サーバ マシン上でスクリプトを実行します。<command> エレメントは、実行するスクリプトを指定します。<launch-browser> アクションと同様に、任意の数のパラメータを代入できます。スクリプトは、Windows マシンに限定される web サーバに存在するため、スクリプトが実行されているプラットフォームを示すために <platform> エレメントを使用しないでください。
注:
このアクションはスクリプトの起動にのみ使用できます。ユーザ インターフェースの起動には使用できません。例: <launch-web-server-script> コード
以下の例では、Web サーバで「myscript」を起動し、選択されたモデルのモデル名とモデル タイプ名を渡します。<command> エレメントに表示されるパスは Windows web サーバのパスであることに注意してください。
<launch-web-server-script> <command>c:/scripts/myscript {0} {1}</command> <param> <attribute>AttributeID.MODEL_NAME</attribute> </param> <param> <attribute>AttributeID.MTYPE_NAME</attribute> </param> </launch-web-server-script>
「OneClick からのアプリケーションの起動」に記載されているように、<platform> タグを <launch-web-server-script> と共に使用します。
複数アラームに対する結合モードでの
Web サーバ スクリプトの起動
CA Spectrum 10.2.3 までは、<launch-web-server-script> で <run-for-multiple-alarms> タグを使用すると、OneClick コンソールで選択した複数のアラームに対してスクリプトを実行します。選択したアラーム属性はコマンド ライン引数として、選択された各アラームのスクリプトに渡されます。同じスクリプトが、選択されたアラームごとに 1 回ずつ、複数回実行されます。
CA Spectrum 10.3 からは、以下のサブエレメント/タグを使用して、複数のアラームに対して結合モードで結合スクリプトを実行できます。<multiple-contexts-enabled mode= /> タグを設定すると、アラーム コンソールで同時に複数のアラームに対してスクリプトを実行できます。
<multiple-contexts-enabled mode= "combined-execution" delimiter= ";"/>
デフォルトでは、スペースは「区切り文字」値とみなされます。要件に従って、区切り文字値を指定できます。
モードを指定しない場合は、デフォルト値が「separate-execution」(<multiple-contexts-enabled mode=” separate-execution” />)として適用されます。
結合実行モードでは、CA Spectrum によって $SPECROOT/tmp フォルダに一時ファイルが作成されます。これには、区切り文字で区切られた、選択されたすべてのアラームの指定された属性に関する詳細が含まれています。 このファイルは、結合実行スクリプトに引数として渡されます。
一時ファイルには、区切り文字で区切られたアラーム属性のリストが 1 行で記載されています。各行では、1 つのアラームが指定されます。
注:
結合実行でスクリプトが完了したら、$SPECROOT/tmp フォルダに作成された一時ファイルを手動で削除する必要があります。テーブル値をスクリプトに渡す
<column-name> エレメントを <context> および <command> エレメントと共に使用すると、テーブルの選択された行からのデータを使用してコマンドを実行する OneClick 内のメニュー項目を追加することができます。この機能では、
CA Spectrum
はロジックの構築のために別々に属性を検索する必要があります。代わりに、テーブル内で選択した列見出しからロジックを構築することができ、テーブル内の任意の行から値をスクリプトに渡すことができます。外部スクリプトのデータを使用する必要がある場合、テーブルから直接値を渡すこの機能が役立ちます。たとえば、CA Spectrum
と課題追跡システム間のインターフェースを作成することができます。その後、OneClick 内のテーブル データからトラブル チケットを作成するメニュー項目を作成できます。注:
<column-name> エレメントは <context> エレメントの TableContext でのみ動作します。例: <command> および <column-name> コマンド
以下の例は、3 つの列(Condition、Status、Type)から「NewTicket」コマンドに値を渡します。<command> エレメントは、コマンド パターンを指定します。パラメータ番号(0 で開始する番号)を中括弧 {} で囲み、コマンドに代入するパラメータを指定します。コマンドに値を渡す各列に <param> エレメントを指定します。
<context>com.aprisma.spectrum.app.util.table.TableContext</context> <command>$SCRIPT_PATH/NewTicket.exe {0} {1} {2} {3}</command> <param> <column-name>Condition</column-name> </param> <param> <column-name>Status</column-name> </param> <param> <column-name>Type</column-name> </param>
CA Spectrum
は、最初の <param> エレメントがコマンド パターンの 0 番目のパラメータに対応するように、<param> エレメントを処理します。デフォルトでは、CA Spectrum
はコマンドにそのままの値を渡します。テーブルからフォーマット情報を保持するには、以下のように <formatted/> オプションを使用します。<param> <column-name>Condition <formatted/> </column-name> </param>
注:
フォーマット オプションは、テーブルに表示される指定された列のレンダリングを試行します。ただし、CA Spectrum
はそのままの値しか渡せないため、画像を引数としてコマンドに渡すことはできません。起動したアプリケーションまたはスクリプトのステータスの表示
<display-exit-status> と <display-output> エレメントを <launch-web-server-script> および <launch-application> と併用して、スクリプトまたはアプリケーションの終了ステータスと出力を表示します。
デフォルトでは、<display-exit-status> は終了コードが 0 の場合「Success」を表示し、それ以外の場合は「Failed」とエラー コードを表示します。終了コードを表示するカスタム メッセージにマップする <status> 子タグを指定して、デフォルト動作を変更することができます。
例: <display-exit-status> コード
以下の例は <display-exit-status> を使用したものです。
<display-exit-status> <status code="1">Could not open file</status> <status code="2">Bad parameter</status> <status code="3">Could not connect to the server</status> <status default="true">Unknown error code {0}</status> </display-exit-status>
この例では、ステータス コード 1、2、および 3 を特定のメッセージ文字列にマップしています。最後のステータス コードは default="true" を指定し、0 以外のすべてのエラー コードをマッピングします。デフォルトでは、「Success」にマップされます。終了コード 0 が成功を示さない場合、このコードを <status> タグで上書きできます。メッセージ文字列の {0} は、終了コードを置き換えます。
デフォルトで、<display-output> は、プロセスの標準出力と標準エラー出力の両方を表示します。以下の指定により、標準出力のみを表示できます。
<display-output stdout="t"/>
または以下の指定により標準エラー出力のみ表示できます。
<display-output stderr="t"/>
注:
<display-exit-status> と <display-output> エレメントは、コマンド ライン アプリケーションまたはスクリプトでのみ使用することができ、GUI アプリケーションでは使用できません。ユーザに再度利用可能になるまで、OneClick はスクリプトの終了を待機します。