バックグラウンドキューにタスクを提出するためのフォームの変更

以下の手順に従い、フォームのバックグラウンドで実行するタスクを含めます。

アプリケーションでは、バックグラウンドタスクとしてレポートを実行します。これらのタスクは「キュー」に配置され、順番に実行されます。他のタスクをバックグラウンドで実行するように設定することもできます。TaskMan サービスは、実行中のバックグラウンドタスクの一覧をポーリングし、キューに配置された新しいタスクのうち、状況が「準備完了」のものを全て実行します。

TaskMan についての詳細は、管理ガイドまたは 『レポートの作成およびカスタマイズ』 を参照してください。

  1. バックグラウンドタスクを実行するフォームを設定するには、以下の手順に従います。
    1. 区分が ObjMenultem で、名前が [BackgroundQueue] というコンポーネントをフォームに追加します。[動作] タブで、[RunBackgroundQueue] を主要イベントとして追加します。
    2. 区分が[モーダルの子としてのフォームの実行]である [RunBackgroundQueue] イベントを作成します。イベントのパラメタは、以下の例に示すように指定します。ここで、[GenerateReport] は、フォームの[バックグラウンドタスクの実行]イベントの名前です。

      BackgroundQueue( SETVARVALUES(BGTaskName=V(BGTaskName), RunTaskEvent=GenerateReport) )

    3. パラメタを、タスクを提出するバックグラウンドタスクを実行イベントのパラメタ文字列の最後に追加します。

      TASKSTATUS(V(BGTaskStatus))TASKNUMBER(BGTaskNumber)

      以下のキーワードとパラメタを使用します。

      • TASKSTATUS は、BGTaskSubmit のオプションの入力パラメタです。TASKSTATUS キーワードを省略した場合、またはその値が「待機中」以外の場合、タスクは「準備完了」の状況で ActiveBGTasks テーブルに挿入され、TaskMan によって実行されます。TASKSTATUS が「待機中」に設定されている場合、タスクは「待機中」の状況で ActiveBGTasks テーブルに入力されます。このテーブルの中で、「準備完了」または「実行中」以外の状況のレコードは全て無視されます。
      • TASKNUMBER はオプションのキーワードで、TaskNumber を格納する変数名を指定するために使用します。TaskNumber は、レコードが ActiveBGTasks テーブルに挿入されたときに生成されます。
      • タスクが TaskMan に提出された後に適切な値によって置換される置換キーワードを含めることができます。
  2. バックグラウンドタスクを作成するには、以下の手順に従います。
    1. [バックグラウンドタスク定義] フォームで新規レコードを作成します。
    2. タスク名(例:[RunCustomerOrderReport])と説明を指定します。
    3. 以下のように実行可能ファイルを指定します。
      • レポートの場合は、最初の「実行可能」フィールドでレポート名(例:[CustomerOrder])を指定し、2 番目のフィールドで実行可能区分([RPT])を指定します。このレポートのレポート定義([.RPT] ファイル)は、TaskMan とレポート生成モジュールがインストールされているサーバの Taskman\Reports フォルダに入れる必要があります。
      • ストアドプロシージャの場合は、最初のフィールドでプロシージャ名を指定し、2 番目のフィールドで [SP] を選択します。
      • 実行可能プログラムの場合は、第 1 のフィールドでプログラム名とパス(例:[c:\Infor\myprog])を指定し、第 2 のフィールドで [EXE] を選択します。

        完全なパスを指定するか、サーバ上の TaskMan を含むディレクトリに対する相対パスを使用します。例えば Infor TaskMan ディレクトリの下の mydirectory/mysubdirectory に、MyProg.exe という実行可能プログラムがある場合は、 [mydirectory/mysubdirectory/MyProg] を指定します。

        実行可能ファイルのデータベースへの接続を TaskMan に処理させるには、データベースが TaskMan コンフィグレーションユーティリティを介して TaskMan に識別される必要があり、実行可能ファイルは [B~] 置換キーワードを使用して接続する必要があります。TaskMan に処理させない場合は、実行可能ファイルが全てのデータベース接続を処理します。

      • IDO メソッドに関しては、[実行可能名] フィールドでメソッド名(IDO.Method の形式で、例えば [MyProgID.SLSites.MyTestMethod] と指定)を指定し、[実行可能区分] フィールドで [IDOMTH] を選択します。

        タスクのパラメタについては、IDO メソッドのパラメタと一致する、カンマで区切られたパラメタの一覧を渡します。値はそのまま渡すか([MyParameter1,MyParameter2] など)、または空白が意味を持つ場合には、~LIT~ 構文を使用できます([MyParameter1,MyParameter2] など)。

        IDOMTH 区分のタスクを処理する場合、TaskMan ではサイト名と同じ名前のコンフィグレーションが必要です。TakMan が稼働しているコンピュータ上で(通常はユーティリティサーバ)、データベースサイト名と一致するコンフィグレーション名が存在していない場合は、そのコンフィグレーションを作成する必要があります。

    4. レポートオプションや除外タスクを指定するには、フォームにあるボタンをクリックします。
    5. レコードを保存します。
  3. フォームからのイベントハンドラフォームとして新しいバックグラウンドタスクを呼びだします。
  4. 現在実行中のタスクを表示するには、 [実行中のバックグラウンドタスク] フォームを開きます。

TaskMan がタスクを完了すると、実行に失敗した場合でも、その実行に関する詳細を [バックグラウンドタスクの履歴] フォームに表示できます。詳細には、以下の内容が含まれます。

  • タスク説明
  • リターンステータス
  • タスクを提出したユーザ
  • タスクによってトリガされたメッセージ
関連トピック