Skip to main content

ObjectScript $system.external インタフェースのクイック・リファレンス

これは、ObjectScript $system.external インタフェースのクイック・リファレンスです。このインタフェースは、ObjectScript にすべての InterSystems 外部サーバへのプログラムによるアクセスを提供します。ゲートウェイ・クラスのメソッドに関する情報もあります。

Note:

この章は、このドキュメントの読者の利便性を目的としたものであり、最終的なリファレンスではありません。最も包括的な最新情報については、%system.external のオンライン・クラス・ライブラリ・ドキュメントを参照してください。

$system.external.Help() メソッドを呼び出すことで、コマンド行で同じ情報を取得できます。すべてのメソッドのリストを取得するには、以下を呼び出します。

   do $system.external.Help()

また、特定のメソッド methodName についての詳細な情報を取得するには、以下を呼び出します。

   do $system.external.Help("methodName")

用途別のすべてのメソッド

ゲートウェイとプロキシ・オブジェクト

“外部言語の操作” を参照してください。

ゲートウェイ・オブジェクトの作成

  • getDotNetGateway() は、既定の .NET 外部サーバへの接続を取得します。

  • getJavaGateway() は、既定の Java 外部サーバへの接続を取得します。

  • getPythonGateway() は、既定の Python 外部サーバへの接続を取得します。

プロキシ・オブジェクトの作成

  • new() は、外部クラスのインスタンスに結合された新しいプロキシ・オブジェクトを返します。

外部クラスの静的メソッドおよびプロパティへのアクセス

  • invoke() は外部オブジェクト・メソッドを呼び出し、返り値を取得します。

  • getProperty() は、外部オブジェクトからの静的プロパティの値を取得します。

  • setProperty() は、外部オブジェクト内の静的プロパティの値を設定します。

外部サーバの管理

“外部サーバ接続の管理” を参照してください。

  • getActivity() は指定したサーバの ActivityLog エントリを取得します。

外部サーバの構成のカスタマイズ

“外部サーバの定義のカスタマイズ” を参照してください。

外部サーバ定義に関する情報の取得

  • getServer() は、サーバ定義を含むダイナミック・オブジェクトを取得します。

  • getServers() は、既存のすべての外部サーバ定義の名前を取得します。

  • getServerLanguageVersion() は、サーバ定義の構成された外部言語バージョンの文字列を取得します。

  • serverExists() はサーバ定義が存在する場合に true を返します。

外部サーバ定義の管理

$system.external メソッドの詳細

createServer()

$system.external.createServer() は新しい外部サーバ定義を作成します。この関数では、%Admin_Manage リソースが必要です。

createServer(serverDef As %DynamicObject) As %DynamicObject

パラメータ :

関連項目 : “外部サーバ定義の作成と変更”

deleteServer()

$system.external.deleteServer() は、既存の外部サーバ定義を削除します。この関数では、%Admin_Manage リソースが必要です。

deleteServer(serverName As %String) As %DynamicObject

パラメータ :

  • serverName — 既存の外部サーバ定義の名前

関連項目 : “外部サーバ定義の作成と変更”

getActivity()

$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 の表示”

getExternalLanguage()

$system.external.getExternalLanguage() は、外部サーバからの外部言語を返します。

getExternalLanguage(externalServerName As %String) As %String

パラメータ :

  • externalServerName — 現在接続されているサーバの名前

関連項目 : "Gateway.getExternalLanguage()"

getExternalLanguageVersion()

$system.external.getExternalLanguageVersion() は、外部サーバからの外部言語のバージョンを返します。

getExternalLanguageVersion(externalServerName As %String) As %String

パラメータ :

  • externalServerName — 現在接続されているサーバの名前

関連項目 : "Gateway.getExternalLanguage()"

getGateway()

$system.external.getGateway() は、外部サーバへの新しいゲートウェイ接続を返します。

getGateway(externalServer As %RawString, useSharedMemoryIfPossible) As %External.Gateway

パラメータ :

  • externalServer — 接続されるサーバの名前

  • useSharedMemoryIfPossible — true の場合、サーバは共有メモリ接続の使用を試みます。

このメソッドは、キャッシュされた既存のゲートウェイ接続を取得しません。常に、要求された外部サーバへの新しいゲートウェイ接続を取得します。

getDotNetGateway()

$system.external.getDotNetGateway() は、既定の .NET 外部サーバへの新しいゲートウェイ接続を返します。getGateway("%DotNet Server") と同等 ("getGateway()" を参照)。

getDotNetGateway(useSharedMemoryIfPossible) As %External.Gateway

パラメータ:

  • useSharedMemoryIfPossible — true の場合、サーバは共有メモリ接続の使用を試みます。

このメソッドは、キャッシュされた既存のゲートウェイ接続を取得しません。常に、既定の .NET 外部サーバへの新しいゲートウェイ接続を取得します。

関連項目 : “ゲートウェイの作成とプロキシ・オブジェクトの使用”

getJavaGateway()

$system.external.getJavaGateway() は、既定の Java 外部サーバへの新しいゲートウェイ接続を返します。getGateway("%Java Server") と同等 ("getGateway()" を参照)。

getJavaGateway(useSharedMemoryIfPossible) As %External.JavaGateway

パラメータ:

  • useSharedMemoryIfPossible — true の場合、サーバは共有メモリ接続の使用を試みます。

このメソッドは、キャッシュされた既存のゲートウェイ接続を取得しません。常に、既定の Java 外部サーバへの新しいゲートウェイ接続を取得します。

関連項目 : “ゲートウェイの作成とプロキシ・オブジェクトの使用”

getPythonGateway()

$system.external.getPythonGateway() は、既定の Python 外部サーバへの新しいゲートウェイ接続を返します。getGateway("%Python Server") と同等 ("getGateway()" を参照)。

getPythonGateway(useSharedMemoryIfPossible) As %External.Gateway

パラメータ:

  • useSharedMemoryIfPossible — true の場合、サーバは共有メモリ接続の使用を試みます。

このメソッドは、キャッシュされた既存のゲートウェイ接続を取得しません。常に、既定の Python 外部サーバへの新しいゲートウェイ接続を取得します。

関連項目 : “ゲートウェイの作成とプロキシ・オブジェクトの使用”

getProperty()

$system.external.getProperty() は、外部クラスからの静的プロパティの値を返します。

getProperty(externalServerName As %String, externalClass As %String, propertyName As %String) As %ObjectHandle

パラメータ :

  • externalServerName — 現在接続されているサーバの名前

  • externalClass — 外部クラスの名前

  • propertyName — 外部プロパティの名前

関連項目 : "Gateway.getProperty()"

getServer()

$system.external.getServer() は、指定された外部サーバ定義からの構成設定を含む %DynamicObjectOpens in a new tab を返します。

getServer(serverName As %RawString) As %Library.DynamicObject

パラメータ :

  • serverName — 既存の外部サーバ定義の名前

注 : 類似した名前の getServers() メソッドは、定義済みのすべての外部サーバ構成の名前を返します。

関連項目 : “getServer() を使用した構成設定の取得”

getServerLanguageVersion()

$system.external.getServerLanguageVersion() は、外部サーバ構成の外部言語バージョンの文字列を返します。

getServerLanguageVersion(serverName As %RawString) As %String

パラメータ :

  • serverName — 既存の外部サーバ定義の名前

この関数は、ほとんどの場合外部サーバへの接続を確立しません。構成から言語バージョンを返すだけです。この関数は外部コマンドを実行する場合がありますが、外部サーバを起動することはありません。

関連項目 : “既存の定義についてのその他の情報の取得”

getServers()

$system.external.getServers() は、定義済みのすべての外部サーバ構成の名前を含む %DynamicArrayOpens in a new tab を返します。

getServers() As %Library.DynamicArray

注 : 類似した名前の getServer() メソッドは、1 つの外部サーバの詳細な構成設定を返します。

関連項目 : “既存の定義についてのその他の情報の取得”

Help()

$system.external.Help() は、$system.external メソッドのリストを含む文字列を返します。オプションの method 引数が指定された場合は、そのメソッドについての詳細な情報が返されます。

Help(method As %String = "") as %String

パラメータ :

  • method — 詳細な説明が返されるメソッドの名前を含むオプションの文字列。

関連項目 : "Gateway.Help()"

invoke()

$system.external.invoke() は、外部コードを呼び出します。このメソッドが式として呼び出されると、これは外部コードによって返される任意の値を返します。

invoke(externalServerName As %String, externalClass As %String, externalMethod As %String, 
args... As %RawString) As %RawString

パラメータ :

  • externalServerName — 現在接続されているサーバの名前

  • externalClass — 外部クラスの名前

  • externalMethod — 外部メソッドの名前

  • args...— 指定されたクラス・コンストラクタに対するゼロ個以上の引数

外部コードによって値が返されない場合は、<COMMAND> 例外がスローされます。externalClass は、外部コードのコンテナの名前です (Java または .NET クラス名、Python クラスまたはモジュール名)。externalMethod は、externalClass から呼び出す外部コード単位 (関数、メソッド、またはその他の言語固有の単位) の名前です。返り値は、外部コードによって返される値です。外部メソッドが値を返さない場合、invoke() は値を返しません。

関連項目 : "Gateway.invoke()"

isServerRunning()

$system.external.isServerRunning() は、要求されたサーバが実行中である場合に true を返します。

isServerRunning(arg As %RawString) As %Boolean

パラメータ :

  • arg — 外部サーバ名。(getServer() により返される) サーバ定義を含む文字列またはダイナミック・オブジェクトのいずれかになります。

関連項目 : "Gateway.isServerRunning()"、“外部サーバの起動および停止”

modifyServer()

$system.external.modifyServer() は、既存の外部サーバ定義内の設定を変更します。この関数では、%Admin_Manage リソースが必要です。

modifyServer(serverDef As %DynamicObject) As %DynamicObject

パラメータ :

関連項目 : “外部サーバ定義の作成と変更”

new()

$system.external.new() は、外部クラスのインスタンスに結合された新しいプロキシ・オブジェクトを返します。externalClass および必要に応じて追加のコンストラクタの引数を渡します。

new(externalServerName As %String, externalClass As %String, args... As %RawString) As %Net.Remote.Object

パラメータ :

  • externalServerName — 現在接続されているサーバの名前

  • externalClass — 外部クラスの名前

  • args...— 指定されたクラス・コンストラクタに対するゼロ個以上の引数

関連項目 : "Gateway.new()"

serverExists()

$system.external.serverExists() は、serverName が既存の外部サーバ定義である場合に true を返します。

serverExists(serverName As %RawString) As %Boolean

パラメータ :

  • serverName — 既存の外部サーバ定義の名前

関連項目 : “既存の定義についてのその他の情報の取得”

setProperty()

$system.external.setProperty() は、外部クラス内の静的プロパティの値を設定します。

setProperty(externalServerName As %String, externalClass As %String, propertyName As %String, value As %RawString)

パラメータ :

  • externalServerName — 現在接続されているサーバの名前

  • externalClass — 外部クラスの名前

  • propertyName — 外部プロパティの名前

  • value — 指定されたプロパティの新しい値

関連項目 : "Gateway.setProperty()"

startServer()

$system.external.startServer() は外部サーバを起動します。

startServer(serverName As %String) As %Boolean

パラメータ :

  • serverName — 既存の外部サーバ定義の名前

関連項目 : “外部サーバの起動および停止”

stopServer()

$system.external.stopServer() は外部サーバを停止します。

stopServer(serverName As %String, verbose As %Boolean = 0, pTimeout As %Integer = 0) As %Boolean

パラメータ :

  • serverName — 既存の外部サーバ定義の名前

  • verbose — true の場合、現在のデバイスのエントリを表示します。既定は false です。

  • pTimeout — タイムアウト値を秒単位で設定します。

関連項目 : “外部サーバの起動および停止”

ゲートウェイ・クラスのメソッド

Gateway オブジェクトには、同じ名前の $system.external クラス・メソッドとまったく同じように動作するインスタンス・メソッドがありますが、最初の引数としてサーバ名を取らない点のみが異なります。例えば、以下の文はゲートウェイを作成し、3 つの異なる方法で new() を呼び出しますが、機能的にはすべて同じです。

   set date = $system.external.getJavaGateway().new("java.util.Date")

   set date = $system.external.getGateway("%Java Server").new("java.util.Date")

   set date = $system.external.new("%Java Server","java.util.Date")

ゲートウェイ・メソッドの詳細

addToPath()

Gateway.addToPath() は、現在の言語ゲートウェイ・パスに 1 つ以上のパスを追加します。この関数は、連鎖をサポートする Gateway オブジェクトを返します。エラーが発生した場合は例外をスローします。

addToPath(path As %String, useProcessLoader As %Boolean = 0) As %External.Gateway

パラメータ :

path 引数には、単一のパスを含む単純な文字列を指定できます (Java の場合、これはフォルダまたは jar URL にできます)。複数のパスを追加するには、追加するパスを含む動的配列または %Library.ListOfDataTypesOpens in a new tab のインスタンスを渡します。

disconnect()

Gateway.disconnect() は、外部サーバへの接続がある場合にそれを切断します。

disconnect()
getExternalLanguage()

Gateway..getExternalLanguage() は、外部サーバからの外部言語を返します。

getExternalLanguage() As %String

関連項目 : "$system.external.getExternalLanguage()"

getExternalLanguageVersion()

Gateway..getExternalLanguageVersion() は、外部サーバからの外部言語のバージョンを返します。

getExternalLanguageVersion() As %String

関連項目 : "$system.external.getExternalLanguageVersion()"

getProperty()

Gateway..getProperty() は、外部クラスからの静的プロパティの値を返します。

getProperty(externalClass As %String, propertyName As %String) As %ObjectHandle

パラメータ :

  • externalClass — 外部クラスの名前

  • propertyName — 外部プロパティの名前

関連項目 : "$system.external.getProperty()"

Help()

Gateway..Help() は、Gateway メソッドのリストを含む文字列を返します。オプションの method 引数が指定された場合は、そのメソッドについての詳細な情報が返されます。

Help(method As %String = "") as %String

パラメータ :

  • methodName — 詳細な説明が返されるメソッドの名前を含むオプションの文字列

関連項目 : "$system.external.Help()"

invoke()

Gateway..invoke() は、外部コードを呼び出します。このメソッドが式として呼び出されると、これは外部コードによって返される任意の値を返します。

invoke(externalClass As %String, externalMethod As %String, args... As %RawString) As %RawString

パラメータ :

  • externalClass — 外部クラスの名前

  • externalMethod — 外部メソッドの名前

  • args...— 指定されたクラス・コンストラクタに対するゼロ個以上の引数

外部コードによって値が返されない場合は、<COMMAND> 例外がスローされます。externalClass は、外部コードのコンテナ名として渡されることが期待されます。Java または .NET の場合、これはクラス名です。Python の場合、これはクラスまたはモジュールの名前です。externalMethod は、externalClass コンテナ内で呼び出す外部コード単位 (関数、メソッド、またはその他の言語固有の単位) の名前です。返り値は、外部コードによって返される値です。外部メソッドが値を返さない場合、invoke() は値を返しません。

関連項目 : "$system.external.invoke()"

isServerRunning()

Gateway.isServerRunning() は、このゲートウェイのサーバが実行中である場合に true を返します。

isServerRunning() As %Boolean

関連項目 : "$system.external.isServerRunning()"、“外部サーバの起動および停止”

new()

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()"、“ゲートウェイの作成とプロキシ・オブジェクトの使用”

setProperty()

Gateway..setProperty() は、外部クラス内の静的プロパティの値を設定します。

setProperty(externalClass As %String, propertyName As %String, value As %RawString)

パラメータ :

  • externalClass — 外部クラスの名前

  • propertyName — 外部プロパティの名前

  • value — 指定されたプロパティの新しい値

関連項目 : "$system.external.setProperty()"

FeedbackOpens in a new tab