ObjectScript $system.external インタフェースのクイック・リファレンス
これは、ObjectScript $system.external インタフェースのクイック・リファレンスです。このインタフェースは、ObjectScript にすべての InterSystems 外部サーバへのプログラムによるアクセスを提供します。
この章は、このドキュメントの読者の利便性を目的としたものであり、最終的なリファレンスではありません。最も包括的な最新情報については、%system.external のオンライン・クラス・ライブラリ・ドキュメントを参照してください。
$system.external.Help() メソッドを呼び出すことで、コマンド行で同じ情報を取得できます。すべてのメソッドのリストを取得するには、以下を呼び出します。
do $system.external.Help()
また、特定のメソッド methodName についての詳細な情報を取得するには、以下を呼び出します。
do $system.external.Help("methodName")
用途別のすべてのメソッド
“外部言語の操作” を参照してください。
ゲートウェイ・オブジェクトの作成
-
getDotNetGateway() は、既定の .NET 外部サーバへの接続を取得します。
-
getJavaGateway() は、既定の Java 外部サーバへの接続を取得します。
-
getPythonGateway() は、既定の Python 外部サーバへの接続を取得します。
プロキシ・オブジェクトの作成
-
new() は、外部クラスのインスタンスに結合された新しいプロキシ・オブジェクトを返します。
-
addToPath() は、実行可能ファイルへのパスを、現在の言語のゲートウェイ・パスに追加します。
外部クラスの静的メソッドおよびプロパティへのアクセス
-
invoke() は外部オブジェクト・メソッドを呼び出し、返り値を取得します。
-
getProperty() は、外部オブジェクトからの静的プロパティの値を取得します。
-
setProperty() は、外部オブジェクト内の静的プロパティの値を設定します。
“外部サーバ接続の管理” を参照してください。
-
startServer() はサーバを起動します。
-
stopServer() はサーバを停止します。
-
isServerRunning() は要求されたサーバが実行中である場合に true を返します。
-
getActivity() は指定したサーバの ActivityLog エントリを取得します。
“外部サーバの定義のカスタマイズ” を参照してください。
外部サーバ定義に関する情報の取得
-
getServer() は、サーバ定義を含むダイナミック・オブジェクトを取得します。
-
getServers() は、既存のすべての外部サーバ定義の名前を取得します。
-
getServerLanguageVersion() は、サーバ定義の構成された外部言語バージョンの文字列を取得します。
-
serverExists() はサーバ定義が存在する場合に true を返します。
外部サーバ定義の管理
-
createServer() は新しいサーバ定義を作成します。
-
deleteServer() は既存のサーバ定義を削除します。
-
modifyServer() は既存のサーバ定義を変更します。
$system.external メソッドの詳細
$system.external.addToPath() は、現在の言語ゲートウェイ・パスに path を追加します。ここで、path 文字列には 1 つ以上の実行可能ファイルへのパスが含まれます。
addToPath(path:%RawString)
返り値 :なし
path 引数には、単一のパスを含む単純な文字列を指定できます (Java の場合、これはフォルダまたは jar URL にできます)。複数のパスを追加するには、追加するパスを含む動的配列または %Library.ListOfDataTypesOpens in a new tab のインスタンスを渡します。
エラーが発生した場合、この関数は例外をスローします。
パラメータ :
-
path — 単一のパスを含む文字列、または複数のパスを含む %DynamicArrayOpens in a new tab または %ListOfDataTypesOpens in a new tab
$system.external.createServer() は新しい外部サーバ定義を作成します。この関数では、%Admin_Manage リソースが必要です。
createServer(serverDef As %DynamicObject) as %DynamicObject
パラメータ :
-
serverDef — 新しい外部サーバ設定を含む %DynamicObjectOpens in a new tab
関連項目 : “外部サーバ定義の作成と変更”
$system.external.deleteServer() は、既存の外部サーバ定義を削除します。この関数では、%Admin_Manage リソースが必要です。
deleteServer(serverName As %String) as %DynamicObject
パラメータ :
-
serverName — 既存の外部サーバ定義の名前
関連項目 : “外部サーバ定義の作成と変更”
$system.external.getActivity() は、指定された外部サーバの指定された数の ActivityLog エントリを含む %DynamicArrayOpens in a new tab を返します。
getActivity(serverName As %String, entryCount As %Integer = 10,
verbose As %Boolean = 0) as %Library.DynamicArray
パラメータ :
-
serverName — 既存の外部サーバ定義の名前
-
entryCount — 返される ActivityLog エントリの数
-
verbose — true の場合、現在のデバイスのエントリを表示
versbose が true の場合、これらの行は現在のデバイス上にも表示されます。
関連項目 : “Activity Log の表示”
$system.external.getExternalLanguage() は、外部サーバからの外部言語を返します。
getExternalLanguage(externalServerName As %String) as %String
パラメータ :
-
externalServerName — 現在接続されているサーバの名前
関連項目 : "Gateway."getExternalLanguage()
$system.external.getExternalLanguageVersion() は、外部サーバからの外部言語のバージョンを返します。
getExternalLanguageVersion(externalServerName As %String) as %String
パラメータ :
-
externalServerName — 現在接続されているサーバの名前
関連項目 : "Gateway."getExternalLanguageVersion()
$system.external.getGateway() は、外部サーバへの新しいゲートウェイ接続を返します。
getGateway(externalServer As %RawString) as %External.Gateway
パラメータ :
-
externalServer — 接続されるサーバの名前
このメソッドは、キャッシュされた既存のゲートウェイ接続を取得しません。常に、要求された外部サーバへの新しいゲートウェイ接続を取得します。
$system.external.getDotNetGateway() は、既定の .NET 外部サーバへの新しいゲートウェイ接続を返します。getGateway("%DotNet Server") と同等 ("getGateway()" を参照)。
getDotNetGateway() As %External.Gateway
このメソッドは、キャッシュされた既存のゲートウェイ接続を取得しません。常に、既定の .NET 外部サーバへの新しいゲートウェイ接続を取得します。
関連項目 : “ゲートウェイの作成とプロキシ・オブジェクトの使用”
$system.external.getJavaGateway() は、既定の Java 外部サーバへの新しいゲートウェイ接続を返します。getGateway("%Java Server") と同等 ("getGateway()" を参照)。
getJavaGateway() As %External.Gateway
このメソッドは、キャッシュされた既存のゲートウェイ接続を取得しません。常に、既定の Java 外部サーバへの新しいゲートウェイ接続を取得します。
関連項目 : “ゲートウェイの作成とプロキシ・オブジェクトの使用”
$system.external.getPythonGateway() は、既定の Python 外部サーバへの新しいゲートウェイ接続を返します。getGateway("%Python Server") と同等 ("getGateway()" を参照)。
getPythonGateway() As %External.Gateway
このメソッドは、キャッシュされた既存のゲートウェイ接続を取得しません。常に、既定の Python 外部サーバへの新しいゲートウェイ接続を取得します。
関連項目 : “ゲートウェイの作成とプロキシ・オブジェクトの使用”
$system.external.getProperty() は、外部クラスからの静的プロパティの値を返します。
getProperty(externalServerName As %String, externalClass As %String, propertyName As %String) as %ObjectHandle
パラメータ :
-
externalServerName — 現在接続されているサーバの名前
-
externalClass — 外部クラスの名前
-
propertyName — 外部プロパティの名前
関連項目 : "Gateway."getProperty()
$system.external.getServer() は、指定された外部サーバ定義からの構成設定を含む %DynamicObjectOpens in a new tab を返します。
getServer(serverName As %RawString) as %Library.DynamicObject
パラメータ :
-
serverName — 既存の外部サーバ定義の名前
注 : 類似した名前の getServers() メソッドは、定義済みのすべての外部サーバ構成の名前を返します。
関連項目 : “getServer() を使用した構成設定の取得”
$system.external.getServerLanguageVersion() は、外部サーバ構成の外部言語バージョンの文字列を返します。
getServerLanguageVersion(serverName As %RawString) as %String
パラメータ :
-
serverName — 既存の外部サーバ定義の名前
この関数は、ほとんどの場合外部サーバへの接続を確立しません。構成から言語バージョンを返すだけです。この関数は外部コマンドを実行する場合がありますが、外部サーバを起動することはありません。
関連項目 : “既存の定義についてのその他の情報の取得”
$system.external.getServers() は、定義済みのすべての外部サーバ構成の名前を含む %DynamicArrayOpens in a new tab を返します。
getServers() as %Library.DynamicArray
注 : 類似した名前の getServer() メソッドは、1 つの外部サーバの詳細な構成設定を返します。
関連項目 : “既存の定義についてのその他の情報の取得”
$system.external.Help() は、$system.external メソッドのリストを含む文字列を返します。オプションの method 引数が指定された場合は、そのメソッドについての詳細な情報が返されます。
Help(method As %String = "") as %String
パラメータ :
-
methodName — 詳細な説明が返されるメソッドの名前を含むオプションの文字列
関連項目 : "Gateway."Help()
$system.external.invoke() は、外部コードを呼び出します。このメソッドが式として呼び出されると、これは外部コードによって返される任意の値を返します。
invoke(externalServerName As %String,externalClass As %String, externalMethod As %String,
args... As %RawString) as %String
パラメータ :
-
externalServerName — 現在接続されているサーバの名前
-
externalClass — 外部クラスの名前
-
externalMethod — 外部メソッドの名前
-
args...— 指定されたクラス・コンストラクタに対するゼロ個以上の引数
外部コードによって値が返されない場合は、<COMMAND> 例外がスローされます。externalClass は、外部コードのコンテナの名前です (Java または .NET クラス名、Python クラスまたはモジュール名)。externalMethod は、externalClass から呼び出す外部コード単位 (関数、メソッド、またはその他の言語固有の単位) の名前です。返り値は、外部コードによって返される値です。外部メソッドが値を返さない場合、invoke() は値を返しません。
関連項目 : "Gateway."invoke()
$system.external.isServerRunning() は、要求されたサーバが実行中である場合に true を返します。
isServerRunning(arg As %RawString) as %Boolean
パラメータ :
-
arg — 外部サーバ名。(getServer() により返される) サーバ定義を含む文字列またはダイナミック・オブジェクトのいずれかになります。
関連項目 : "Gateway.isServerRunning()"、“外部サーバの起動および停止”
$system.external.modifyServer() は、既存の外部サーバ定義内の設定を変更します。この関数では、%Admin_Manage リソースが必要です。
modifyServer(serverDef As %DynamicObject) as %DynamicObject
パラメータ :
-
serverDef — 変更された外部サーバ設定を含む %DynamicObjectOpens in a new tab
関連項目 : “外部サーバ定義の作成と変更”
$system.external.new() は、外部クラスのインスタンスに結合された新しいプロキシ・オブジェクトを返します。externalClass および必要に応じて追加のコンストラクタの引数を渡します。
new(externalServerName As %String, externalClass As %String, args... As %RawString) as %Net.Remote.Object
パラメータ :
-
externalServerName — 現在接続されているサーバの名前
-
externalClass — 外部クラスの名前
-
args...— 指定されたクラス・コンストラクタに対するゼロ個以上の引数
関連項目 : "Gateway."new()
$system.external.serverExists() は、serverName が既存の外部サーバ定義である場合に true を返します。
serverExists(serverName As %RawString) as %Boolean
パラメータ :
-
serverName — 既存の外部サーバ定義の名前
関連項目 : “既存の定義についてのその他の情報の取得”
$system.external.setProperty() は、外部クラス内の静的プロパティの値を設定します。
setProperty(externalServerName As %String, externalClass As %String, propertyName As %String, value As %RawString)
パラメータ :
-
externalServerName — 現在接続されているサーバの名前
-
externalClass — 外部クラスの名前
-
propertyName — 外部プロパティの名前
-
value — 指定されたプロパティの新しい値
関連項目 : "Gateway."setProperty()
$system.external.startServer() は外部サーバを起動します。
startServer(serverName As %String) as %Boolean
パラメータ :
-
serverName — 既存の外部サーバ定義の名前
関連項目 : “外部サーバの起動および停止”
$system.external.stopServer() は外部サーバを停止します。
stopServer(serverName As %String, verbose As %Boolean = 0) as %Boolean
パラメータ :
-
serverName — 既存の外部サーバ定義の名前
-
verbose — true の場合、現在のデバイスのエントリを表示
関連項目 : “外部サーバの起動および停止”
ゲートウェイ・メソッド
Gateway オブジェクトには、同じ名前の $system.external メソッドとまったく同じように動作する一連のメソッドがありますが、最初の引数としてサーバ名を取らない点のみが異なります。例えば、以下の文は、"%Java_Server" を最初の引数として $system.external.new() を呼び出すことで、Java Date() メソッドを呼び出します。
set date = $system.external.new("%Java_Server","java.util.Date")
以下のほぼ同じ文は、実際には $system.external.getGateway() を使用して Java Gateway オブジェクトを作成し、次に new() の Gateway バージョンの呼び出しを続けます。
set date = $system.external.getGateway("%Java Server").new("java.util.Date")
この例は、getJavaGateway() で Gateway オブジェクトを取得することで簡素化できます。これには、サーバ名の引数は必要ありません。
set date = $system.external.getJavaGateway().new("java.util.Date")
これら 3 つの例はすべて機能的に同一です。
ゲートウェイ・メソッドの詳細
Gateway..addToPath() は、現在の言語のゲートウェイ・パスに path を追加します。ここで、path 文字列には 1 つ以上の実行可能ファイルへのパスが含まれます。
addToPath(path As %RawString)
パラメータ :
-
path — 単一のパスを含む文字列、または複数のパスを含む %DynamicArrayOpens in a new tab または %ListOfDataTypesOpens in a new tab
path 引数には、単一のパスを含む単純な文字列を指定できます (Java の場合、これはフォルダまたは jar URL にできます)。複数のパスを追加するには、追加するパスを含む動的配列または %Library.ListOfDataTypesOpens in a new tab のインスタンスを渡します。
エラーが発生した場合、この関数は例外をスローします。
関連項目 : "$system.external."addToPath()
Gateway..getExternalLanguage() は、外部サーバからの外部言語を返します。
getExternalLanguage() as %String
関連項目 : "$system.external."getExternalLanguage()
Gateway..getExternalLanguageVersion() は、外部サーバからの外部言語のバージョンを返します。
getExternalLanguageVersion() as %String
関連項目 : "$system.external."getExternalLanguageVersion()
Gateway..getProperty() は、外部クラスからの静的プロパティの値を返します。
getProperty(externalClass As %String, propertyName As %String) as %ObjectHandle
パラメータ :
-
externalClass — 外部クラスの名前
-
propertyName — 外部プロパティの名前
関連項目 : "$system.external."getProperty()
Gateway..Help() は、Gateway メソッドのリストを含む文字列を返します。オプションの method 引数が指定された場合は、そのメソッドについての詳細な情報が返されます。
Help(method As %String = "") as %String
パラメータ :
-
methodName — 詳細な説明が返されるメソッドの名前を含むオプションの文字列
関連項目 : "$system.external."Help()
Gateway..invoke() は、外部コードを呼び出します。このメソッドが式として呼び出されると、これは外部コードによって返される任意の値を返します。
invoke(externalClass As %String, externalMethod As %String, args... As %RawString) as %String
パラメータ :
-
externalClass — 外部クラスの名前
-
externalMethod — 外部メソッドの名前
-
args...— 指定されたクラス・コンストラクタに対するゼロ個以上の引数
外部コードによって値が返されない場合は、<COMMAND> 例外がスローされます。externalClass は、外部コードのコンテナ名として渡されることが期待されます。Java または .NET の場合、これはクラス名です。Python の場合、これはクラスまたはモジュールの名前です。externalMethod は、externalClass コンテナ内で呼び出す外部コード単位 (関数、メソッド、またはその他の言語固有の単位) の名前です。返り値は、外部コードによって返される値です。外部メソッドが値を返さない場合、invoke() は値を返しません。
関連項目 : "$system.external."invoke()
Gateway.isServerRunning() は、このゲートウェイのサーバが実行中である場合に true を返します。
isServerRunning() as %Boolean
関連項目 : "$system.external.isServerRunning()"、“外部サーバの起動および停止”
Gateway..new() は、外部クラスのインスタンスに結合される %Net.Remote.ObjectOpens in a new tab の新しいインスタンスを返します。externalClass および必要に応じて追加のコンストラクタの引数を渡します。
new(externalClass As %String, args... As %RawString) as %Net.Remote.Object
パラメータ :
-
externalClass — 外部クラスの名前
-
args...— 指定されたクラス・コンストラクタに対するゼロ個以上の引数
関連項目 : "$system.external.new()"、“ゲートウェイの作成とプロキシ・オブジェクトの使用”
Gateway..setProperty() は、外部クラス内の静的プロパティの値を設定します。
setProperty(externalClass As %String, propertyName As %String, value As %RawString)
パラメータ :
-
externalClass — 外部クラスの名前
-
propertyName — 外部プロパティの名前
-
value — 指定されたプロパティの新しい値
関連項目 : "$system.external."setProperty()