サーバー・モジュール内で SRVROUTINE を起動させるために使用する定義やコマンドには共通のフォーマットがあり、次のようになります。

     Define_Com Class(#MyServerRoutine.GetData) Name(#GetData)
# GetData.ExecuteAsync EmployeeID(#Empno) EmployeeDetails(#MyEmployee)
status(#io$sts)

または、

     # GetData.Execute(#EmployeeID #MyEmployee #io$sts)


ただし、実際の SRVROUTINE 定義をじっくり観察すると、SRVROUTINE には異なる 3 つのクラスがあり、ルーチンからの応答処理やルーチン呼び出しのコーディングの際にこの違いを理解しておくことは大切です。このクラスは、やり取りするデータのタイプと要求の処理方法によって区別されます。明確な DEFINE_COM (F2 使用) がサポートするメソッド、イベント、プロパティを分析すると、その関係はより明瞭になります。

データ要求

SRVROUTINE 呼び出しで最もよくあるタイプがデータ要求です。データ要求処理はクライアントから要求され、任意でデータを伴うこともあります。完了時に状態イベントを起動し、任意でクライアントから JSON 形式のデータを戻します。

データ要求の特徴:

  • データは 1 つのフィールド、フィールドのグループまたはフィールドのリストとして、SRVROUTINE に送受信できます。
  • 同期および非同期の呼び出し (execute と executeasync メソッド) がサポートされます。
  • 完了は Completed と Failed イベントにより、検証できます。

Web ページ要求

別のページへ移行する要求です。 

Web ページ要求の特徴:

  • 同期実行のみがサポートされます。 (executeasync メソッドはサポートされません)
  • *input/*both としてマップされたデータは、要求の Web ページに移行する前に SRVROUTINE で処理することができます。
  • *output/*both としてマップされたデータは、要求の Web ページに引き渡されます。

リソース要求

リソース要求を使って、イメージやPDF などのファイルがデータベースまたはアプリケーション・サーバーから戻すことができます。ファイルは保存されていれば Web サーバーから直接アクセスできるので、頻繁に使われるものではありません。

リソース要求の特徴:

  • データは、1 つのフィールド、フィールドのグループまたはフィールドのリストとして、SRVROUTINE に渡すことができますが、SRVROUTINE から戻されません。(*input/*both マッピングは入力でのみサポートされ、*output マッピングはサポートされません。)
  • 同期実行のみがサポートされます。 (executeasync メソッドはサポートされません)
  • 1 つの応答オブジェクト (PRIM_CLRC) のみが、ルーチンから返された情報です。
  • No labels