JSM_SCRIPT

LANSA Composer

JSM_SCRIPT


このアクティビティは、LANSA IntegratorのJSMコマンドのスクリプトを実行します。

JSMコマントスクリプトには、実行時に処理シーケンス変数の値と入れ替えられる代替変数が含まれている場合があります。この機能の詳細は以下を参照してください。

このアクティビティを利用して実行されたJSMコマンドは、LANSA変数やワーキング・リストをLANSA Integratorサービスに渡したり、また反対に受け取ることもできないことに注意してください。これにより、このアクティビティを使って有効に実行されるサービス・コマンドの選択やサービスに制限がある場合があります。

こういった制限やエラー操作、リカバリー能力に限りがあるため、このアクティビティは比較的単純なLANSA Integratorサービス・コマンド・シーケンスのみを対象にしています。高度なアプリケーションの場合は、独自のカスタム・アクティビティを作成することや、特定の目的のために提供されたアクティビティを使用することを検討してください。

このアクティビティがJSMコマンド・スクリプトの実行を開始するとすぐ、再開可能フラグがOFFに設定されます。JSMコマンド・スクリプトの実行を開始後、このアクティビティ内でエラーで終了する処理シーケンスは再開することができません。

INPUTパラメータ:

JSMSERVICE :任意

このパラメータでロードするJSMサービス名を指定します。指定された場合、アクティビティは実行開始時にJSMサービスをロードし、完了するとアンロードします。アクティビティ内でLANSA IntegratorのトレースをサポートするLANSA Composerの機能などのような、LANSA Composerの設定や機能が尊重され、有効に活用されるため、単一のサービスを使用する場合はこの方法が推奨されます。指定しない場合は、JSMスクリプト内に必要なSERVICE_LOADやSERVICE_UNLOADコマンドが含まれていて、対象のJSMサービスをロードしたり、アンロードしたりする必要があります。

JSMSCRIPTFILE :任意

このパラメータは任意ですが、省略した場合はJSMSCRIPTLISTパラメータでJSMコマンド・スクリプトを提供する必要があります。このパラメータを指定する場合は、実行するJSMコマンド・スクリプトが含まれるテキスト・ファイルのフルパスを指定してください。詳細は以下のJSMコマンド・スクリプトに関する記述を参照してください。

JSMSCRIPTLIST :任意

このパラメータは任意ですが、省略した場合はJSMSCRIPTFILEパラメータでJSMコマンド・スクリプトを提供する必要があります。このパラメータを指定する場合は、実行するJSMコマンド・スクリプトのリストを指定してください。詳細は以下のJSMコマンド・スクリプトに関する記述を参照してください。

JSMERRORACTION :任意

このパラメータで、指定のJSMコマンド・スクリプトのいずれかのコマンドの結果がエラーだった場合にアクティビティがとるアクションを指定します。以下のいずれかの値が指定できます。

*ERRORアクティビティはこれ以上JSMスクリプト・コマンドを実行せず、直ちに終了します。

*CONTINUEアクティビティは残りのJSMスクリプト・コマンドを実行しますが、終了時に警告ステータスで終了します。

指定されない場合(または認識できない値が指定された場合)、アクティビティの省略値は*CONTINUEです。

OUTPUTパラメータ:

JSMSTATUS:

正常に完了すると、このパラメータにはJSMスクリプト・コマンドを実行した結果のJSMステータス・コード( 'OK' 'ERROR'など)のリストが格納されます。ここにはスクリプト・コマンドの結果のステータス・コードのみが含まれます。JSM接続の開閉時や、サービスのロード、アンロード時のステータス・コードは含まれません。(サービスのロード、アンロードがJSMスクリプトのコマンドにより行われる場合を除く)つまり、ステータス・コードの順序は実行されたJSMコマンドの順に対応しています。

JSMMESSAGE:

終了すると、このパラメータには実行されたJSMスクリプト・コマンドのJSM結果メッセージのリストが含まれます。スクリプト・コマンドの結果メッセージのみが含まれ、JSM接続の開閉時や、サービスのロード、アンロード時の結果メッセージは含まれません。(サービスのロード、アンロードがJSMスクリプトのコマンドにより行われる場合を除く)つまり、JSMメッセージリストの順序は実行されたJSMコマンドの順に対応しています。

JSMERRORCOUNT:

終了すると、このパラメータにはエラーで終了したJSMコマンド・スクリプトのコマンド数が含まれます。JSMERRORACTIONに*ERRORが指定された場合、最初のエラーでJSMコマンド・スクリプトの実行が終了するので、必ず0または1になります。

JSM Command Script

JSMSCRIPTFILEまたはJSMSCRIPTLISTパラメータを使用して自身のJSMコマンド・スクリプトを指定する場合でも、以下のガイドラインに基づいてスクリプトを作成してください。

  • ロードされたJSMサービスに有効なJSMサービスコマンドはどれでもスクリプトに使用可能です。ただし、使用するコマンドが、LANSA Integratorサービスとのプログラム変数やリストのやりとりに依存しないのが前提です。
  • JSMサービス・コマンドはそれぞれ別の行または別のリスト項目になければなりません。
  • '*'で始まる行またはリスト項目は無視され、コメントを含む場合があります。

サポートされるJSMサービスとサービス・コマンドについての詳しい情報は、LANSA Integratorのドキュメントを参照してください。

JSMコマンド・スクリプトの処理シーケンス変数の置換

このアクティビティではJSMコマンド・スクリプトの変数置換がサポートされています。検知すると、処理シーケンス変数プール内の指定された変数の値に置換されます。

次のフォームで置換変数を指定できます。

   %%var.<variable-name>%%

<variable-name>には処理シーケンスプール内の変数の変数名です。以下は代替変数を使用しているJSMコマンド・スクリプトの例です。

自身のJSMコマンド・スクリプトで変数置換を指定した場合は、そのスクリプトを使用する処理シーケンス内で指定の変数が存在すること、そしてその変数に有効な値が割り当てられていることを確認するのはユーザーの責任となります。変数の値は他の様々な手段で設定することが可能です。例えば処理シーケンスのパラメータでASSIGN命令や、他の実行中のアクティビティの結果として設定して受け取ることもできます。JSMコマンド・スクリプトが実行された時に指定の変数が処理シーケンスに存在しない場合、このアクティビティは警告を出しますが、実行は続行されます(JSMコマンドからこの変数への参照は除去されます)

次のような高度な変数参照フォームはこの機能ではサポートされませんので注意してください。

1. 複合または修飾子のある変数 - 例えば*tradingpartner.xxx

2. インデックス付きの変数 - 例えば mylist(3)

必要であれば、通常はこのような制限を回避することが可能です。スクリプトを実行する前に、対象の複合またはインデックス変数に簡単な変数名を付けてください。

JSMコマンド・スクリプトの例

以下の例は単純なJSMコマンド・スクリプトで、LANSA Integrator SQLServiceを使用して、LANSA Composerチュートリアルの受注データベース・テーブルのTUTORDHとTUTORDLからレコードを削除します。データベース・ユーザーとパスワード、削除するレコードを特定するデータベース・フィールドのBCHNUMに代替変数を使用しています。JSM_SCRIPTアクティビティを使ってこのスクリプトを実行する前に、対応する処理シーケンス変数が適切な値で存在することをユーザー自らの責任で行ってください。

****************************************************************

* This is a sample JSM command script

****************************************************************

CONNECT DRIVER(TUT) DATABASE(TUT) USER(%%var.USER%%) PASSWORD(%%var.PASSWORD%%)

SET AUTOCOMMIT(*YES)

EXECUTE UPDATE("DELETE FROM TUTORDL WHERE BCHNUM = '%%var.BCHNUM%%'")

EXECUTE UPDATE("DELETE FROM TUTORDH WHERE BCHNUM = '%%var.BCHNUM%%'")

DISCONNECT

************************************

 

上記の例を正常に動作させるには、LANSA IntegratorのSQLService.propertiesファイルに次のようなエントリが追加されていることが必要なことに注意してください。これは使用されている特定のJSMサービスやサービス・コマンドの必須条件ですが、一般的なJSM_SCRIPTアクティビティには該当しません。利用するJSMサービスとサービス・コマンドに関する必須条件や考慮事項に関する情報は、LANSA Integratorのドキュメントを参照してください。

#

driver.tut=com.ibm.as400.access.AS400JDBCDriver

database.tut=jdbc:as400://SYSTEM/LICLICLIB;naming=sql;errors=full;date format=iso;translate binary=true

#