スクリプトは、2 つのタイプの結果情報を生成します。 通常は画面に書き込まれる出力と、最終戻り値です。 このメソッドは、リモート実行プロセスの戻り値を表したものを取得します。 結果を返すことがスクリプト評価における最後の手順であるため、スクリプトの実行が正常に完了した場合、このメソッドは有効な値のみを返します。 hasCompleted() は true を返し、errorOccurred() は false を返します。 リクエストを発行したシステムにネットワーク経由で転送する必要があるため、リモート実行の戻り値は XML 表現にシリアル化されます。RemoteTarget.result() メソッドは、シリアル化された表現で結果の値を返します。
シリアル化された表現は、RemoteTarget オブジェクト自体をパラメータとする get-remoteResult() funclet を使用して、標準の JavaScript 値に変換します。 通常は、スクリプトで result() を直接呼び出す必要はありません。 シリアル化によりタイプ情報が保持されます。 たとえば、リモート ノードが数値を返すと、get-remoteResult() は数値を返します。 リモート システムが Date オブジェクトを返すと、元のシステム上でも日付になります。
リモート スクリプトからの戻り値は、単純なデータ型に制限されません。 リモート実行でサーバ間での大量のデータ転送を可能にし、複雑な配列やデータのみのオブジェクトを返すこともできます。 唯一の制限は、データ構造に循環参照を含むことができないということです。
このメソッドの構文は以下のとおりです。
result()
リモート スクリプトは、値を XML 表現にシリアル化した文字列を返します。
例
リモート実行のシリアル化された表現と実際の値を取得します。
rt = new RemoteTarget("ascli1", "bob", "ca123456");
run-remote "[1,2,3]" on rt -wait
? rt.result()
v = get-remoteResult(rt) // result() を内部で呼び出し
? typeof v // 配列
? typeof v[0] // 数値
arrdump v
|
Copyright © 2013 CA.
All rights reserved.
|
|