この章では、ICommandコマンドライン・ユーティリティおよびWebサービスの使用方法およびリファレンスを示します。 この項の内容は次のとおりです。
ICommandは、Active Data CacheおよびEnterprise Link Repositoryで様々な操作を実行する一連のコマンドが提供されるコマンドライン・ユーティリティおよびWebサービスです。
これらのコマンドは、入力XMLファイル内に存在する場合があります。そうでない場合は、単一のコマンドをコマンドラインに指定できます。
情報メッセージおよびエラー・メッセージは、コマンド・ウィンドウまたはXMLファイルのいずれかに出力されます。
DOSコマンドラインで指定するすべてのパラメータは、name=value
の形式です。name
部分では、大/小文字は区別されません。value
部分に空白または他の特殊文字を含める必要がある場合は、それらを引用符で囲みます。一部のパラメータでは、value
を省略できます。
DOSコマンドラインでは、cmd=
commandname
パラメータの値でコマンドが指定されます。コマンドのオプションは、parametername=
value
パラメータで指定されます。
XMLコマンド・ファイルでは、XMLタグでコマンドが指定されます。コマンドのオプションは、コマンド・タグのXML属性値として、parametername=
value
の形式で指定されます。
コマンド名およびパラメータ値(Active Data Cacheのアイテム名は除く)では、大/小文字は区別されません。
空白およびその他の特殊文字が含まれているレポート名およびファイル名は、引用符で囲む必要があります。
1つのコマンドに複数のActive Data Cacheタイプを指定し、それらのタイプにパラメータを渡すことができます。 次に例を示します。
icommand.exe cmd=export type=all report,rule,folder:owner=1 folder,dataobject:permissions=1 systemobjects=1 file=filename.xml
この例では、コマンドによって、Active Data Cacheオブジェクト・タイプ(レポート、ルールおよびフォルダ)にowner=1が渡されています。 オブジェクト・タイプはカンマ(,)で区切られ、パラメータはコロン(:)の後ろに指定されています。
このコマンドを実行すると、次の3つのコマンドを実行した場合と同じ結果が返されます。
icommand.exe cmd=export type=report owner=1 .....icommand.exe cmd=export type=rule owner=1 .....icommand.exe cmd=export type=folder owner=1 .....
次のパラメータは、コマンドラインでのみ指定できます。
Domain=
domain
Active Data Cacheへのログインに使用するドメイン名(Active Data Cacheサーバーが実行されているマシンの名前)を指定するオプションのパラメータ。
このパラメータを省略すると、main
が使用されます。これによって、ICommand.exe.configファイル内のADCServerName
キーからサーバー情報が取得されます。
予約値ADCInProcServer
が使用されると、ICommandは、Active Data Cacheサーバーには接続せずに、(ICommandが実行されているマシンと同じマシンにローカルで存在する必要がある)Active Data Cacheデータベースに直接アクセスします。 このオプションは、Active Data Cacheサーバーが実行されていない場合にのみ使用する必要があります。それ以外の場合に使用すると、データベースが破損する可能性があります。Active Data Cacheデータベースの場所および構造に関する情報は、ICommand.exe.configファイルの様々なキーから取得されます。
Logfile=
filename
結果およびエラーが記録されるファイルの名前を指定するオプションのパラメータ。このファイルが存在しない場合は作成されます。このファイルが存在する場合は、コンテンツが上書きされます。このファイルはXMLファイルであるため、通常、XML拡張子が使用されますが、必須ではありません。
このパラメータが存在しない場合、結果およびエラーはコンソールに出力されます。
Logmode=
mode
既存のログ・ファイルが上書きされるか、既存のログ・ファイルに追加されるかを指定するオプションのパラメータ。このパラメータに指定可能な値は、append
またはoverwrite
です。いずれの場合も、このファイルが存在しない場合は作成されます。
このパラメータが存在しない場合は、overwrite
が使用されます。
ログ・ファイルにはXMLが追加されるため、append
オプションを使用すると、生成されるXMLが厳密な正規表現にならない場合があることに注意してください。これは、追加を連続して行って生成されたXMLには最上位のルート・タグが存在しなくなるため(ICommandを実行するたびに同じタグが追加されるため)です。この問題は、ユーザーが対処する必要があります。
Cmdfile=
filename
処理されるコマンドが含まれているファイルの名前を指定するオプションのパラメータ。このファイルはXMLファイルであるため、通常、XML拡張子が使用されますが、必須ではありません。
Cmdfile
およびcmd
パラメータは相互に排他的です。いずれかのみを指定する必要があります。
Cmd=
commandname
実行する単一のコマンドを指定するオプションのパラメータ。そのコマンドに必要なパラメータをコマンドラインに指定する必要もあります。
Cmdfile
およびcmd
パラメータは相互に排他的です。いずれかのみを指定する必要があります。
Debug=
flag
エラーが発生した場合に追加のデバッグ情報を出力するかどうかを指定するオプションのパラメータ。0
(ゼロ)以外の値の場合または値を指定しない場合は、デバッグ情報が出力されます。このパラメータが存在しない場合、デバッグ情報は出力されません。
表6-1に、コマンドのサマリーを示します。
表6-1 ICommandコマンドのサマリー
コマンド | パラメータ |
---|---|
|
[ [
plan|all] [ [ [ [ [ [ [ [ [ [ [
[ [ [ [ |
|
[ [ [ [ [ |
|
[ [ user| [ [ [ [ |
|
[
|
|
[ |
|
[ |
|
[ |
|
[ [ [ [ [ [ [ [ [ [ [ |
1つ以上のアイテムに関する情報をXMLファイルにエクスポートします。
表6-2 exportコマンド
パラメータ | 説明 |
---|---|
|
エクスポート先のファイルの名前。必須です。 このファイルが存在しない場合は作成されます。このファイルが存在する場合は、 |
|
エクスポートするアイテムの名前。 |
|
エクスポートするアイテムのタイプ。次のいずれかである必要があります。
このパラメータを省略すると、 |
|
*(アスタリスク)および?(疑問符)を使用するDOS形式のパターン一致文字列。名前がパターンと一致するアイテムがエクスポートされます。 |
|
正規表現パターン一致文字列。名前がパターンと一致するアイテムがエクスポートされます。 |
|
指定したタイプのすべてのアイテムをエクスポートするかどうかを制御します。 0(ゼロ)以外の値を指定した場合または値を省略した場合は、指定したタイプのすべてのアイテムがエクスポートされ、0(ゼロ)を指定した場合は、指定した(一致した)アイテムのみがエクスポートされます。このパラメータを省略すると、0(ゼロ)が使用されます。 レポート、フォルダおよびルールの場合、ICommandを実行しているユーザーが管理者でないかぎり、ICommandを実行しているユーザーが所有しているアイテムのみがエクスポートされます。管理者がICommandを実行すると、すべてのユーザーのアイテムがエクスポートされます。 |
|
|
|
データ・オブジェクトに対してのみ適用されます。 エクスポート対象のデータ・オブジェクトが依存する他のデータ・オブジェクトが参照列にある場合、そのデータ・オブジェクトもエクスポートするかどうかを制御します。 0(ゼロ)以外の値を指定した場合または値を指定しなかった場合、エクスポート対象のデータ・オブジェクトに参照列が含まれていると、参照されるデータ・オブジェクトもエクスポートされます。 |
|
データ・オブジェクトに対してのみ適用されます。レイアウト情報をエクスポートするかどうかを制御します。 0(ゼロ)以外の値を指定すると、レイアウト情報がエクスポートされます。 0(ゼロ)を指定すると、レイアウト情報はエクスポートされません。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
データ・オブジェクトに対してのみ適用されます。コンテンツ情報(行、列値)をエクスポートするかどうかを制御します。 0(ゼロ)以外の値を指定すると、コンテンツ情報がエクスポートされます。 0(ゼロ)を指定すると、コンテンツ情報はエクスポートされません。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
データ・オブジェクトおよびフォルダに対してのみ適用されます。権限情報をエクスポートするかどうかを制御します。 0(ゼロ)以外の値を指定すると、エクスポート対象のデータ・オブジェクトまたはフォルダの権限設定に関する情報がエクスポートされます。 0(ゼロ)を指定すると、権限情報はエクスポートされません。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 データ・オブジェクトの場合は、データ・オブジェクト自体の権限のみがエクスポートされます。データ・オブジェクトが含まれているフォルダまたはサブフォルダに対する権限は含まれません。 フォルダの場合は、対象となる権限に、エクスポート対象のフォルダのすべての親フォルダの累積権限が反映されます。 |
|
ロールに対してのみ適用されます。エクスポート対象のロール内の権限設定をエクスポートするかどうかを制御します。 0(ゼロ)以外の値を指定すると、権限設定がエクスポートされます。 0(ゼロ)を指定すると、権限設定はエクスポートされません。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
ロールに対してのみ適用されます。エクスポート対象のロール内のユーザーのリストをエクスポートするかどうかを制御します。 0(ゼロ)以外の値を指定すると、ユーザーのリストがエクスポートされます。 0(ゼロ)を指定すると、ユーザーのリストはエクスポートされません。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
フォルダ、レポートおよびルールに対してのみ適用されます。エクスポート対象のアイテムの所有者に関する情報をエクスポートに含めるかどうかを制御します。 0(ゼロ)以外の値を指定すると、所有者情報がエクスポートされます。 0(ゼロ)を指定すると、所有者情報はエクスポートされません。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
XMLヘッダー情報をエクスポート・ファイルの先頭に書き込むかどうかを制御します。これを使用すると、ICommandを連続して実行して、同じファイルに繰り返し追加を行って1つのXMLファイルをアセンブルすることができます。 0(ゼロ)以外の値を指定すると、ヘッダーに書込みが行われます。 0(ゼロ)を指定すると、ヘッダーに書込みは行われません。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
終了XML情報をエクスポート・ファイルの最後に書き込むかどうかを制御します。これを使用すると、ICommandを連続して実行して、同じファイルに繰り返し追加を行って1つのXMLファイルをアセンブルすることができます。 0(ゼロ)以外の値を指定すると、終了情報に書込みが行われます。 0(ゼロ)を指定すると、終了情報に書込みは行われません。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
エクスポートされた情報を既存のファイルに追加するかどうかを制御します。 0(ゼロ)以外の値を指定すると、追加されます。 0(ゼロ)を指定すると、既存のファイルのコンテンツが上書きされます。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
0(ゼロ)以外の値を指定すると、previewモードになります。この値を省略すると、0(ゼロ)以外の値が使用されます。このパラメータを省略すると、0(ゼロ)が使用されます。 |
|
ルールおよびプランに対してのみ適用されます。 これは、Plan Monitor Serviceの場所を指定する値です。 値が指定されていない場合は、ICommand.exe.configファイルの様々なキーから取得されます。 まず、PlanMonitor.ServiceNameキーのサービス名の適用が試行されます。 サービス名が指定されていない場合は、PlanMonitor.ServiceURLキーのサービスURLの適用が試行されます。 サービスURLが指定されていない場合は、PlanMonitor.ServiceMachine、PlanMonitor.ServiceChannelおよびPlanMonitor.ServicePortキーの個々の設定の適用が試行されます。 |
XMLファイルからアイテムに情報をインポートします。 このアイテムは、作成、置換または更新できます。
このアイテムが存在しない場合は作成されます(可能な場合)。データ・オブジェクトの場合、入力ファイルには、データ・オブジェクトを作成するためにレイアウト情報を含める必要があります。また、このファイルにコンテンツ情報が含まれていない場合は、空のデータ・オブジェクトが作成されます。
ICommandを実行しているユーザーが管理者でない場合、レポートは、ICommandを実行しているユーザーのプライベート・フォルダに常にインポートされます。インポート・ファイル内のパス情報が、ICommandを実行しているユーザーの既存のプライベート・フォルダと完全に一致する場合、インポートされたファイルはその場所に格納されます。そうでない場合は、ユーザーのプライベート・フォルダのルートに格納されます。
ICommandを実行しているユーザーが管理者の場合、preserveowner
オプションを使用すると、フォルダ、レポートおよびルールをそれらの元の場所に元の所有権のままでインポートできることがあります。
表6-3 importコマンド
パラメータ | 説明 |
---|---|
|
インポート元のファイルの名前。通常、これは、exportコマンドで作成されたファイルです。 |
|
データ・オブジェクトに対してのみ適用されます。行挿入または行更新を行ってから次の行挿入または行更新を行うまでの遅延を指定する値。 これを使用すると、指定した速度でアクティブ・データをシミュレートできます。 この数値は、次の行に対して処理を行うまで待機する時間(ミリ秒)です。0(ゼロ)より大きい値を指定する必要があります。 このパラメータを省略すると、遅延は発生しません。 |
|
データ・オブジェクトに対してのみ適用されます。インポート対象のデータ・オブジェクトがすでに存在する場合にそのデータ・オブジェクトのレイアウト(スキーマ)を、インポート・ファイル内のレイアウト情報に従って更新するかどうかを制御します。 パラメータが存在する場合はtrueで、存在しない場合はfalseです。 |
|
次に、各モードの値について、対応するアイテム・タイプごとに説明します。 次の値は、フォルダ、レポート、ユーザー、ロール、EMS、EMSタイプ、EDS、EDSタイプおよびプランに対して有効です。
アイテムがすでに存在する場合は、インポートしたアイテムと置き換えます。
アイテムがすでに存在する場合は、インポートしたアイテムの名前を変更します。新しい名前は、自動的に計算され、メッセージにレポートされます。
アイテムがすでに存在する場合は、インポートを終了します。エラーが戻されます。 次の値は、配信リストに対して有効です。
アイテムがすでに存在する場合は、インポートしたアイテムと置き換えます。
アイテムがすでに存在する場合は、インポートしたアイテムの名前を変更します。新しい名前は、自動的に計算され、メッセージにレポートされます。
アイテムがすでに存在する場合は、インポートしたリスト内のユーザーを既存のリストに追加します。
アイテムがすでに存在する場合は、インポートを終了します。エラーが戻されます。 次の値のみが、データ・オブジェクトに対して有効です。
インポートしたデータ・オブジェクトが存在しないため、それらを作成する必要がある場合は、ICommandによって、エクスポートしたデータ・オブジェクトに含まれている内部IDと同じ内部IDがデータ・オブジェクトに割り当てられます。これが不可能な場合、インポートはエラーを戻して終了します。 このオプションは重要です。レポートなどの他の一部のアイテムでは、使用されるオブジェクトが名前ではなくIDで示されるためです。
通常、ICommandでデータ・オブジェクトをインポートすると、新しいデータ・オブジェクトが作成されるか、または既存のデータ・オブジェクトが検索され、インポートした行がそのデータ・オブジェクトに挿入されます。
セキュリティ・フィルタの場合、サポートされている値は このパラメータは、ルールに対してはサポートされていません。 |
|
フォルダ、レポートおよびルールに対してのみ適用されます。アイテムのインポート時に、アイテムの所有権をインポート・ファイルに指定されているとおりに設定するかどうかを制御します。 この所有権の設定は、エクスポート時に所有権がファイルに付与されていた場合およびICommandを実行しているユーザーが管理者の場合にのみ行うことができます。 0(ゼロ)以外の値を指定すると、インポート・ファイルに指定されているとおりに所有権が設定されます。 0(ゼロ)を指定すると、インポートしたアイテムは、ICommandを実行しているユーザーがそのまま所有します。このパラメータを省略するか、または値を省略すると、0(ゼロ)以外の値が使用されます。 |
|
インポート時にコマンドラインから列値の上書き(現在の日時への設定など)を実行できます。
|
|
ルールおよびプランに対してのみ適用されます。 これは、プラン・モニター・サービスの場所を指定する値です。 値が指定されていない場合は、ICommand.exe.configファイルの様々なキーから取得されます。 まず、PlanMonitor.ServiceNameキーのサービス名の適用が試行されます。 サービス名が指定されていない場合は、PlanMonitor.ServiceURLキーのサービスURLの適用が試行されます。 サービスURLが指定されていない場合は、PlanMonitor.ServiceMachine、PlanMonitor.ServiceChannelおよびPlanMonitor.ServicePortキーの個々の設定の適用が試行されます。 |
アイテムを削除します。
表6-4 deleteコマンド
パラメータ | 説明 |
---|---|
|
削除するアイテムの名前。 |
|
削除するアイテムのタイプ。次のいずれかである必要があります。
このパラメータを省略すると、 |
|
*(アスタリスク)および?(疑問符)を使用するDOS形式のパターン一致文字列。名前がパターンと一致するアイテムが削除されます。 |
|
正規表現パターン一致文字列。名前がパターンと一致するアイテムが削除されます。 |
|
指定したタイプのすべてのアイテムを削除するかどうかを制御します。 0(ゼロ)以外の値を指定した場合または値を省略した場合は、指定したタイプのすべてのアイテムが削除され、0(ゼロ)を指定した場合は、指定した(一致した)アイテムのみが削除されます。このパラメータを省略すると、0(ゼロ)が使用されます。 |
|
|
|
ルールおよびプランに対してのみ適用されます。 これは、プラン・モニター・サービスの場所を指定する値です。 値が指定されていない場合は、ICommand.exe.configファイルの様々なキーから取得されます。 まず、PlanMonitor.ServiceNameキーのサービス名の適用が試行されます。 サービス名が指定されていない場合は、PlanMonitor.ServiceURLキーのサービスURLの適用が試行されます。 サービスURLが指定されていない場合は、PlanMonitor.ServiceMachine、PlanMonitor.ServiceChannelおよびPlanMonitor.ServicePortキーの個々の設定の適用が試行されます。 |
アイテムの名前を変更します。
表6-5 renameコマンド
パラメータ | 説明 |
---|---|
|
名前を変更するアイテムの名前。必須です。 |
|
アイテムの新しい名前。必須です。 データ・オブジェクト、レポートおよびフォルダの場合は、新しいベース名のみをパスなしで指定する必要があります(たとえば、Report1などです)。 |
|
名前を変更するアイテムのタイプ。次のいずれかである必要があります。
このパラメータを省略すると、 |
|
ルールおよびプランに対してのみ適用されます。 これは、プラン・モニター・サービスの場所を指定する値です。 値が指定されていない場合は、ICommand.exe.configファイルの様々なキーから取得されます。 まず、PlanMonitor.ServiceNameキーのサービス名の適用が試行されます。 サービス名が指定されていない場合は、PlanMonitor.ServiceURLキーのサービスURLの適用が試行されます。 サービスURLが指定されていない場合は、PlanMonitor.ServiceMachine、PlanMonitor.ServiceChannelおよびPlanMonitor.ServicePortキーの個々の設定の適用が試行されます。 |
アイテムのコンテンツを消去します。
消去対象は、アイテム・タイプによって異なります。
データ・オブジェクトの場合は、データ・オブジェクト内の既存のすべての行が削除されます。
フォルダの場合は、フォルダのすべてのコンテンツが削除されます。
ロールおよび配信リストの場合は、すべてのメンバー(ユーザー)が削除されます。
表6-6 clearコマンド
パラメータ | 説明 |
---|---|
|
消去するアイテムの名前。必須です。 |
|
消去するアイテムのタイプ。次のいずれかである必要があります。
このパラメータを省略すると、 |
Enterprise Linkプランのインスタンスの実行を開始します。
プランの1つ以上のインスタンスがすでに実行されている場合でも、このコマンドによって、別のインスタンスの実行が開始されます。
表6-7 runコマンド
パラメータ | 説明 |
---|---|
|
実行するアイテムの名前。必須です。 |
|
これは、オプションです。存在する場合は、値を |
|
ルールおよびプランに対してのみ適用されます。 これは、プラン・モニター・サービスの場所を指定する値です。 値が指定されていない場合は、ICommand.exe.configファイルの様々なキーから取得されます。 まず、PlanMonitor.ServiceNameキーのサービス名の適用が試行されます。 サービス名が指定されていない場合は、PlanMonitor.ServiceURLキーのサービスURLの適用が試行されます。 サービスURLが指定されていない場合は、PlanMonitor.ServiceMachine、PlanMonitor.ServiceChannelおよびPlanMonitor.ServicePortキーの個々の設定の適用が試行されます。 |
Enterprise Linkプランのインスタンスの実行を停止します。
アイテム名をコマンドに指定する場合は、常に次のルールが適用されます。
一般的ルール
DOSコマンドラインで指定する際に、DOSでは特殊な意味となる空白または文字を名前に含める場合は、DOSコマンドラインのルールに従ってその名前を引用符で囲む必要があります。
XMLコマンドラインで指定する際に、XMLでは特殊な意味となる文字を名前に含める場合は、標準XMLエスケープを使用する必要があります。
データ・オブジェクト
データ・オブジェクトがルートに存在しない場合は、フルパス名を指定する必要があります。次に例を示します。
/My Folder/My Subfolder/My Data Object
データ・オブジェクトがルートに存在する場合、先頭の/はオプションです。次の2つの例は同等です。
/My Data Object My Data Object
レポート
フルパス名は、次の例に示すとおり指定する必要があります。
共有レポートの場合:
"/public/Report/Subfolder1/My Report"
プライベート・レポートの場合:
"/private:username/Report/Subfolder1/My Report"
プライベート・レポートでは、ICommandを実行しているユーザーがレポートを所有しているユーザーである場合、接頭辞/private:username/
を省略できます。
接頭辞public
またはprivate
が付いていないパス情報はエクスポート・ファイルに保存されます。
アラート・ルール
アラートの名前またはフルネームのいずれかを指定できます。次の2つの例は、ICommandを実行するユーザーがAlert1を所有するユーザーである場合、アラートと同等になります。
Alert1
/private:username/Rule/Alert1
ICommandを実行するユーザーがAlert1の所有者でない場合は、2つ目の形式のみを使用できます。
その他のすべてのアイテム・タイプ
アイテムのフルネームを指定します。
この項の内容は次のとおりです。
コマンド・ファイルには、ルート・タグOracleBAMCommands
が含まれています。
ルート・タグ内には、すべてのコマンドを実行するタグがあります。タグ名はコマンド名です。また、コマンドのパラメータは属性です。
サンプル・コマンド・ファイル
<?xml version="1.0" encoding="utf-8"?> <OracleBAMCommands ContinueOnError="1"> <Export name="Samples/Media Sales" file="MediaSales.xml" contents="0" /> <Rename name="Samples/Call Center" newname="Call Centre" /> <Delete type="EMS" name="WebLog" /> <Delete type="EMS" name="WebLog2" /> </OracleBAMCommands>
コマンド・ファイルを使用してインポートする場合、inline
オプションを使用すると、インポートするコンテンツを、別のインポート・ファイル内ではなく、コマンド・ファイル内に含めることができます。次に例を示します。
<?xml version="1.0" encoding="utf-8"?> <OracleBAMCommands> <Import inline="1"> <Export Version="504.0" Build="3.0.3697.0"> <DataObject Version="13" Name="Employees" ID="_Employees" Path="/Samples" External="0"> <Layout> <Column Name="Salesperson" ID="_Salesperson" Type="string" MaxSize="100" Nullable="1" /> <Column Name="Sales Area" ID="_Sales_Area" Type="string" MaxSize="100" Nullable="1"/> <Column Name="Sales Number" ID="_Sales_Number" Type="integer" Nullable="1" /> <Column Name="Timestamp" ID="_Timestamp" Type="timestamp" Nullable="0" /> <Indexes /> </Layout> <Contents> <Row ID="1"> <Column ID="_Salesperson" Value="Greg Masters" /> <Column ID="_Sales_Area" Value="Northeast" /> <Column ID="_Sales_Number" Value="567" /> <Column ID="_Timestamp" Value="2004-09-14T14:07:41.5600000-07:00" /> </Row> </Contents> </DataObject> </Import> </OracleBAMCommands>
この機能は、出力をログ・ファイルに送信する場合にのみ使用されます。ログ結果の解析を簡単にするために、各コマンドにIDを指定できます。このIDは、該当するコマンドに関連する出力の結果要素またはエラー要素に含まれます。
入力例:
<OracleBAMCommands> <Delete id="1" type="role" name="Report Creator" /> <Delete id="2" type="user" name="joeschmoe" /></OracleBAMCommands>
出力例:
<ICommandLog Login="MSOLNIT-PC\ASPNET"> <Results Command="Delete" ID="1">Role "Report Creator" deleted.</Results> <Error Command="Delete" ID="2"> <![CDATA[Error while processing command "Delete". [ErrorSource="ICommandEngine", ErrorID="ICommandEngine.Error"] There is no User named "joeschmoe". [ErrorSource="ICommandEngine", ErrorID="ICommandEngine.UserExist"]]]> </Error> </ICommandLog>
通常、ICommandでは、コマンド・ファイル内のコマンドは、障害が発生するまでまたはすべてのコマンドが正常に完了するまで実行されます。つまり、コマンド・ファイルに20のコマンドが含まれていて、2つ目のコマンドで障害が発生した場合、それ以降のコマンドは実行されません。 この動作は、continueonerror
属性をグローバル・レベルで使用するか、または各コマンドに対して使用することによって変更できます。
例6-1に、continueonerror
属性を使用して、障害が発生したかどうかに関係なくすべてのコマンドを実行する方法を示します。
例6-1 グローバル・レベルでのcontinueonerrorの有効化
<OracleBAMCommands continueonerror="1"> <Delete id="1" type="role" name="Report Creator" /> <Delete id="2" type="user" name="joeschmoe" /> </OracleBAMCommands>
例6-2では、ユーザーjoeschmoeを削除するコマンドにのみcontinueonerror
が適用されます。このコマンドで障害が発生した場合、ICommandはエラーを戻して続行されます。ただし、他のコマンドで障害が発生した場合、ICommandはすぐに停止されます。
ログ・ファイルには、ルート・タグICommandLog
が含まれています。
ルート・タグ内には、記録されたすべてのエラー・メッセージまたは情報メッセージのエントリがあります。
エラーは、Error
タグ付きで記録されます。
情報メッセージは、Results
タグ付きで記録されます。
Results
とError
の両方のタグには、必要に応じてCommand=
cmdname
という形式の属性が含まれます。この属性には、エラー・メッセージまたは情報メッセージを生成したコマンドの名前が含まれます。
サンプル・ログ・ファイル(前述のサンプル・コマンド・ファイルの出力)
<?xml version="1.0" encoding="utf-8"?> <ICommandLog Login="MYDOMAIN\myaccount"> <Results Command="Export">Data Object "/Samples/Media Sales" exported successfully (0 rows).</Results> <Results Command="Export">1 items exported successfully.</Results> <Results Command="Rename">Data Object "/Samples/Call Center" renamed to "/Samples/Call Centre".</Results> <Results Command="Delete">Enterprise Message Source "WebLog" deleted.</Results> <Error Command="Delete"><![CDATA[Error while processing command "Delete". [ErrorSource="ICommand", ErrorID="ICommand.Error"] There is no Enterprise Message Source named "WebLog2". [ErrorSource="ICommand", ErrorID="ICommand.EMSExist"]]]></Error> </ICommandLog>
次に、いくつかのサンプルDOSコマンドラインを示します。
ICommand cmdfile=cmd.xml logfile=log.xml logmode=append ICommand cmd=export name=WebLog2 file=WebLog2.xml ICommand cmdfile=cmd.xml ICommand cmd=export file=EveryEMS.xml all type=ems
<?xml version="1.0" encoding="utf-8"?> <OracleBAMExport Version="504.0" Build="3.0.3697.0"> <DataObject Version="13" Name="Employees" ID="_Employees" Path="/Samples" External="0"> <Layout> <Column Name="Salesperson" ID="_Salesperson" Type="string" MaxSize="100" Nullable="1" /> <Column Name="Sales Area" ID="_Sales_Area" Type="string" MaxSize="100" Nullable="1" /> <Column Name="Sales Number" ID="_Sales_Number" Type="integer" Nullable="1" /> <Column Name="Timestamp" ID="_Timestamp" Type="timestamp" Nullable="0" /> <Indexes /> </Layout> <Contents> <Row ID="1"> <Column ID="_Salesperson" Value="Greg Masters" /> <Column ID="_Sales_Area" Value="Northeast" /> <Column ID="_Sales_Number" Value="567" /> <Column ID="_Timestamp" Value="2004-09-14T14:07:41.5600000-07:00" /> </Row> <Row ID="2"> <Column ID="_Salesperson" Value="Lynette Jones" /> <Column ID="_Sales_Area" Value="Southwest" /> <Column ID="_Sales_Number" Value="228" /> <Column ID="_Timestamp" Value="2004-09-14T14:07:41.5600000-07:00" /> </Row> <Row ID="3"> <Column ID="_Salesperson" Value="Noel Rogers" /> <Column ID="_Sales_Area" Value="Northwest" /> <Column ID="_Sales_Number" Value="459" /> <Column ID="_Timestamp" Value="2004-09-14T14:07:41.5600000-07:00" /> </Row> </Contents> </DataObject> </OracleBAMExport>
export
およびdelete
コマンドでは、必要に応じてregex
パラメータが指定された正規表現を使用できます。
正規表現は、通常の文字(aからzなど)と、メタ文字という特殊文字で構成される文字列のパターンです。パターンによって、名前でアイテムを検索するときに一致する1つ以上の文字列を指定します。
次の表に、メタ文字の完全なリストおよび正規表現におけるメタ文字の動作を示します。
表6-9 正規表現で使用するメタ文字
文字 | 説明 |
---|---|
\ |
次に続く文字が特殊文字、リテラル、前方参照または8進エスケープであることを示します。たとえば、「n」は文字「n」を一致します。「\n」は改行文字と一致します。「\\」は「\」と一致し、「\(」は「(」と一致します。 |
^ |
入力文字列の先頭と一致します。RegExpオブジェクトの |
$ |
入力文字列の末尾と一致します。RegExpオブジェクトの |
* |
直前の文字または部分式と0回以上一致します。たとえば、「zo*」は「z」と「zoo」のどちらにも一致します。「*」は「{0,}」と同じ意味です。 |
+ |
直前の文字または部分式と1回以上一致します。たとえば、「zo+」は「zo」や「zoo」とは一致しますが、「z」とは一致しません。「+」は「{1,}」と同じ意味です。 |
? |
直前の文字または部分式と0回または1回一致します。たとえば、「do(es)?」は「do」または「does」の「do」と一致します。 「?」は「{0,1}」と同じ意味です。 |
{n} |
nには、0以上の整数を指定します。直前の文字と正確にn回一致します。たとえば、「o{2}」は「Bob」の「o」とは一致しませんが、「food」の2つの「o」とは一致します。 |
{n,} |
nには、0以上の整数を指定します。直前の文字とn回以上一致します。たとえば、「o{2,}」は「Bob」のoとは一致しませんが、「foooood」のすべての「o」とは一致します。「o{1,}」は「o+」と同じ意味です。「o{0,}」は「o*」と同じ意味です。 |
{n,m} |
mおよびnには0以上の整数を指定します。n <= mです。nからm回一致します。たとえば、「o{1,3}」は「fooooood」の最初の3つの「o」と一致します。「o{0,1}」は「o?」と同じ意味です。カンマと数の間には空白を入れません。 |
? |
他の量指定子(*、+、?、{n}、{n,}、{n,m})の直後に指定すると、一致パターンが最短一致になります。デフォルトの最長一致パターンでは、できるだけ多くの文字列と一致しますが、最短一致パターンでは、できるだけ少ない文字列と一致します。たとえば、文字列「oooo」に対して、「o+?」を指定すると1つの「o」と一致し、「o+」を指定するとすべての「o」と一致します。 |
. |
「\n」以外の任意の1文字に一致します。「\n」を含めて任意の文字と一致させるには、「[\s\S]」などのパターンを指定します。 |
(pattern) |
patternと一致した文字列を保存する部分式。一致した文字列が見つかった場合は、Matchesコレクションから |
(?:pattern) |
patternと一致しても、その文字列を保存しない部分式(後で使用するための保存は行わない非保存一致)。これは、「または」を意味する(|)を使用して、パターンの一部を結合するときに便利です。たとえば、「industr(?:y|ies)」と指定するより、「industry|industries」と指定する方が簡潔です。 |
(?=pattern) |
肯定先読み検索を実行する部分式です。patternと一致する文字列が始まる位置にある検索文字列と一致します。これは、非保存一致で、一致した文字列は後で使用できません。たとえば、「Windows (?=95|98|NT|2000)」は「Windows 2000」の「Windows」には一致しますが、「Windows 3.1」の「Windows」には一致しません。先読み処理では、文字は検索対象ではありません。一致の検出後、次の検索処理は、先読みされた文字の後からではなく、一致文字列のすぐ後から開始されます。 |
(?!pattern) |
否定先読み検索を実行する部分式です。patternに一致しない文字列が始まる位置にある検索文字列と一致します。これは、非保存一致で、一致した文字列は後で使用できません。たとえば、「Windows (?!95|98|NT|2000)」は「Windows 3.1」の「Windows」には一致しますが、「Windows 2000」の「Windows」には一致しません。先読み処理では、文字は検索対象ではありません。一致の検出後、次の検索処理は、先読みされた文字の後からではなく、一致文字列のすぐ後から開始されます。 |
x|y |
xまたはyと一致します。たとえば、「z|food」は「z」または「food」と一致します。「(z|f)ood」は「zood」または「food」と一致します。 |
[xyz] |
キャラクタ・セットを指定します。大カッコで囲まれたいずれかの文字に一致します。たとえば、「[abc]」は「plain」の「a」と一致します。 |
[^xyz] |
除外するキャラクタ・セットを指定します。大カッコで囲まれた文字以外の文字に一致します。たとえば、「[^abc]」は「plain」の「p」に一致します。 |
[a-z] |
文字の範囲を指定します。指定した範囲に含まれる任意の文字に一致します。たとえば、「[a-z]」はaからzの範囲にある任意の小文字と一致します。 |
[^a-z] |
除外する文字の範囲を指定します。指定した範囲に含まれていない任意の文字と一致します。たとえば、「[^a-z]」はaからzの範囲外にある任意の文字と一致します。 |
\b |
単語の境界と一致します。単語の境界とは、単語と空白との間の位置のことです。たとえば、「er\b」は「never」の「er」とは一致しますが、「verb」の「er」とは一致しません。 |
\B |
単語の境界以外と一致します。たとえば、「er\B」は「verb」の「er」とは一致しますが、「never」の「er」とは一致しません。 |
\cx |
xで指定した制御文字と一致します。たとえば、\cMはControl-Mまたは復帰文字と一致します。xの値は、AからZまたはaからzの範囲内で指定します。それ以外を指定すると、リテラル文字のcと認識されます。 |
\d |
任意の10進文字と一致します。[0-9]と同じ意味です。 |
\D |
10進数字以外と一致します。[^0-9]と同じ意味です。 |
\f |
フォーム・フィード文字と一致します。\x0cおよび\cLと同じ意味です。 |
\n |
改行文字と一致します。\x0aおよび\cJと同じ意味です。 |
\r |
復帰文字と一致します。\x0dおよび\cMと同じ意味です。 |
\s |
空白、タブ、フォーム・フィードなどの任意の空白文字と一致します。[ \f\n\r\t\v]と同じ意味です。 |
\S |
空白文字以外の任意の文字と一致します。[^ \f\n\r\t\v]と同じ意味です。 |
\t |
タブ文字と一致します。\x09および\cIと同じ意味です。 |
\v |
垂直タブ文字と一致します。\x0bおよび\cKと同じ意味です。 |
\w |
単語に使用される任意の文字と一致します。アンダースコアも含まれます。[A-Za-z0-9_]と同じ意味です。 |
\W |
単語に使用される文字以外の任意の文字と一致します。[^A-Za-z0-9_]と同じ意味です。 |
\xn |
n(16進数のエスケープ文字)と一致します。16進数のエスケープ値は2桁である必要があります。たとえば、「\x41」は「A」と一致します。 「\x041」は「\x04」および「1」と同じ意味です。この表記によって、正規表現でASCIIコードを使用できるようになります。 |
\num |
num(正の整数)と一致します。すでに保存されている部分を参照します。たとえば、「(.)\1」は連続する2つの同じ文字と一致します。 |
\n |
8進数のエスケープ値または前方参照を指定します。\nの前にn個以上の保存された部分式がある場合、nは前方参照になります。それ以外の場合でnが8進数(0から7)である場合、nは8進エスケープ値です。 |
\nm |
8進数のエスケープ値または前方参照を指定します。\nmの前にnm個以上の保存された部分式がある場合、nmは前方参照になります。\nmの前にn個以上の保存された部分式がある場合、nが前方参照で、リテラルmが後に続きます。いずれの条件も当てはまらない場合でnおよびmが8進数(0から7)である場合、\nmは8進エスケープ値nmと一致します。 |
\nml |
nが8進数値の0から3で、mおよびlが8進数(0から7)の場合は、8進エスケープ値nmlと一致します。 |
\un |
nと一致します。nにはUnicode文字で表した4桁の16進数を指定します。 たとえば、\u00A9は著作権記号(©)と一致します。 |
ICommandは、HTTPを介してICommand機能と通信する必要があるアプリケーション開発者用のWebサービスとして使用できます。
この項の内容は次のとおりです。
ICommand Webサービスには、コマンドライン・ユーティリティとほとんど同じ機能が含まれています。たとえば、次の操作に使用できます。
データ・オブジェクトの削除
ユーザー・アカウントの作成
データ・オブジェクトへの行のインポート
レポートのエクスポート
プランの実行
主な相違点は、Webサービスではリモート・システム上のファイルにアクセスできないということに起因しています。したがって、import
コマンドまたはexport
コマンドを使用する場合、ファイル名を渡すことができません。
かわりに、import
コンテンツ・インラインを渡す必要があります。同様に、export
コンテンツ・インラインを受信します。
通常、import
およびexport
以外のコマンドは、コマンドライン・ユーティリティの場合と同様に動作します。
ICommand Webサービスは、Report Serverがインストールされているマシンで使用できます。 URLは次のとおりです。
http://<host>:<http_port>/oraclebam/services/ICommand.asmx
また、Webサービスについて説明しているWSDLドキュメントは、次のURLにあります。
http://<host>:<http_port>/oraclebam/services/ICommand.asmx?WSDL
このWSDLドキュメントは、Visual Studio .NETからWebサービスにバインドする場合またはJava Web Services Developer Packを使用する場合に有効です。
ICommand Webサービスには、Batch
と呼ばれる単一のメソッドが含まれています。このメソッドでは、単一の入力パラメータを指定します。このパラメータは、「コマンド・ファイルの書式設定」で説明されている構文内の一連のコマンドが含まれている文字列です。戻り値は、「ログ・ファイルの書式設定」で説明されているログ構文内の各コマンドの実行結果が含まれている文字列です。
例6-3 ロールのインポート(入力)
<OracleBAMCommands> <Import inline='1'> <OracleBAMExport Version="1003.0" Build="3.5.5603.0"> <Role Name="Report Architect" ID="2"> <Description>Has access to features for creating data objects and reports.</Description> <Privileges> <Privilege Name="ActiveStudio" /> <Privilege Name="ActiveViewer" /> <Privilege Name="Architect" /> <Privilege Name="CreateAlertRule" /> <Privilege Name="CreateDataObject" /> <Privilege Name="CreateReport" /> <Privilege Name="EmailRenderedReport" /> </Privileges> <Members /> </Role> </OracleBAMExport> </Import> </OracleBAMCommands>
例6-4 ロールのインポート(出力)
<ICommandLog Login="MSOLNIT-PC\ASPNET"> <Results Command="Import">Role "Report Architect" importedsuccessfully.</Results> <Results Command="Import">1 items imported.</Results> </ICommandLog>
例6-5 データ・オブジェクトのエクスポート(入力)
<OracleBAMCommands> <Export name='/Samples/Film Sales' inline='1'/> </ OracleBAMCommands>
例6-6 データ・オブジェクトのエクスポート(出力)
<ICommandLog Login="MSOLNIT-PC\ASPNET"> <OracleBAMExport Version="1003.0" Build="3.5.5603.0"> <DataObject Version="14" Name="Film Sales" ID="_Film_Sales" Path="/Samples" External="0"> <Layout> <Column Name="Region" ID="_Region" Type="string" MaxSize="100" Nullable="1" Public="1" /> <Column Name="State" ID="_State" Type="string" MaxSize="100" Nullable="1" Public="1" /> <Column Name="Category" ID="_Category" Type="string" MaxSize="100" Nullable="1" Public="1" /> <Column Name="Brand" ID="_Brand" Type="string" MaxSize="100" Nullable="1" Public="1" /> <Column Name="Description" ID="_Description" Type="string" MaxSize="100" Nullable="1" Public="1" /> <Column Name="Sales" ID="_Sales" Type="integer" Nullable="1" Public="1" /> <Indexes /> </Layout> <Contents> <Row ID="1"> <Column ID="_Region" Value="Western Region" /> <Column ID="_State" Value="Arizona" /> <Column ID="_Category" Value="Film" /> <Column ID="_Brand" Value="Kodak" /> <Column ID="_Description" Value="35mm 200" /> <Column ID="_Sales" Value="2000" /> </Row> <Row ID="2"> <Column ID="_Region" Value="Western Region" /> <Column ID="_State" Value="Arizona" /> <Column ID="_Category" Value="Film" /> <Column ID="_Brand" Value="Kodak" /> <Column ID="_Description" Value="35mm 400" /> <Column ID="_Sales" Value="2100" /> </Row> </Contents> </DataObject> </OracleBAMExport> <Results Command="Export">Exporting Data Object "/Samples/Film Sales"...</Results> <Results Command="Export">Data Object "/Samples/Film Sales" exported successfully (29 rows).</Results> <Results Command="Export">1 items exported successfully.</Results> </ICommandLog>