機械翻訳について

タスク・イテレータを使用して複数のQuickPay実行のロールバックを自動化する方法

この例では、「別のタスクの発行」オプションを使用して、単一のフロー送信でマルチ・パイプQuickPay実行を自動的にロールバックします。

たとえば、会社でQuickPay実行の支払を処理していないため、給与計算を実行する前に、給与期間内のすべてのQuickPay実行をロールバックする必要があります。 QuickPay実行をロールバックしない場合、QuickPay実行で処理された個人は給与計算で取得されないため、支払は受信されません。

個々のQuickPay実行を手動でロールバックするのではなく、タスク・イテレータを使用して、指定した期間内のQuickPay実行のトランザクションIDを動的に識別し、QuickPay実行のロールバックを自動化します。

QuickPay実行のロールバックの自動化を開始する前に、次のタスクを完了します:

  1. 値セットを作成して、すでに処理されているQuickPaysのトランザクションIDを導出します。 フロー・イテレータは、複数反復のトランザクションIDを使用します。

  2. タイプが「タスク繰返し」のタスク・イテレータFastFormulaを作成します。

  3. ユーザー定義フローを作成し、タスクを反復するための「別のタスクの発行」オプションを含めます。

値セットの作成方法

すべてのQuickPayトランザクションIDを返す値セットを作成するステップを見てみましょう。
  1. 「設定およびメンテナンス」作業領域で「給与値セット」タスクを選択します。

  2. 「値セット」ページで、「作成」をクリックし、これらの値を入力します。

    フィールド

    値セット・コード

    ROLLBACKQPAY_VS

    摘要

    QuickPayロールバック

    モジュール

    給与フロー

    検証タイプ

    Table

    値データ型

    数値

    FROM句

    pay_payroll_actions pa、pay_requests pr

    値列名

    pa.payroll_action_id

    値列タイプ

    VARCHAR2

    値列長

    200

    ID列名

    pa.PAYROLL_ACTION_ID

    ID列タイプ

    数値

    ID列長

    18

    WHERE句

    pa.pay_request_id(+)  = pr.pay_request_id
    and pr.pay_request_id =(
    select pay_request_id from (
    select t1.pay_request_id,rownum cnt from(
    select pr.pay_request_id,pfi.instance_name
    ,nvl(pa.payroll_action_id,-1) payroll_action_id
    from pay_flow_instances pfi,
    pay_flows pf,
    pay_requests pr,
    pay_payroll_actions pa
    where  pfi.base_flow_id =pf.base_flow_id
    and pf.base_flow_name  IN ('QUICK_PAY',
    'QUICK_PAY_ONLY', 
    'QUICK_PAY_SIMPLIFIED')
    AND pr.flow_instance_id=pfi.flow_instance_id
    AND pa.pay_request_id(+)  = pr.pay_request_id
    and pfi.instance_name like 'QuickPay_XXXX,'
    and pr.call_type='FLOW_TASK_INSTANCE'
    order by pr.pay_request_id  desc
        )t1
    )
    where cnt=:{PARAMETER.COUNT}
    )

    ORDER BY句

    ノート:
    • この表のSQLは、値セットを使用してQuickPayロールバック反復のトランザクションを取得する方法を示すサンプルです。

    • SQLの下のWhere句は、指定された名前で始まるフロー・インスタンスのみを処理するようにロールバックの反復を制限することです。 たとえば、この例では、'QuickPay_XXXX'がフロー名として使用されます。 'XXXX'は、QuickPayの実行が処理される日および月を表すことができます。

  3. オプションで、値セットを保護するには、「データのセキュリティ」チェック・ボックスを選択し、「データ・セキュリティ・リソース名」を指定します。

    ノート:

    データ・セキュリティを使用可能にできるのは、値セットが単一の表またはビューに基づいている場合のみです。

  4. 「保存」をクリックします。

    値セットを作成した後、次の処理を実行して、値セット問合せが正しいかどうか、および期待どおりに機能しているかどうかを確認します:

    1. この値のみが設定されたフローを設定します。

    2. フローが処理されたQuickPaysのトランザクションIDのリストを生成することを確認します。

    3. フロー発行ページで、QuickPay IDがフロー・パラメータ値として取得されていることを確認します。

タスク繰返し式の作成方法

タスク繰返し式では、すでに処理済のQuickPaysのQuickPayトランザクションIDのリストを取得するために定義した値セットがコールされます。 式の戻り値は、反復ロジックで現在のQuickPayを各反復でロールバックするために、ロールバック・プロセスのタスク・パラメータを検証するために使用されます。

テキスト・エディタを使用してFastFormulaを作成し、ロールバックQuickPayプロセスの実行に必要な値を戻します。

次のステップを実行して繰返しFormulaを作成します。

  1. 「設定およびメンテナンス」作業領域のFast Formulasタスクを使用します。

  2. 「FastFormula」ページで、「作成」をクリックしてFormulaを作成します。

  3. 「FastFormulaの作成」ページで、次のフィールドに入力します。

    フィールド

    Formula名

    QP_Rollback

    Formulaタイプ

    タスクの繰返し

    摘要

    QuickPayをロールバックする式

    有効開始日

    値を入力しないでください。 タスク繰返し式によって導出されます。

    国別仕様データ・グループ

    このFormulaは、国別仕様データ・グループ(LDG)に固有ではないため、このフィールドを空白のままにできます。

    エディタのタイプ

    テキスト

  4. 「続行」をクリックします。

  5. 「Formulaテキスト」セクションに次のFormulaテキスト詳細を入力します。

    1. FORMULA NAME: QP_ROLLBACK
    2. FORMULA TYPE: Task Repeat
    3. DESCRIPTION:  Formula to roll back the QuickPays
    4. Formula Results: Iterates the Roll Back QuickPay process
    5. /* Inputs */
    6. INPUTS ARE FLOW_INSTANCE_ID, REPEAT_COUNTER, BASE_TASK_NAME (text)
    7. DEFAULT FOR REPEAT_COUNTER IS 1
    8. DEFAULT FOR FLOW_INSTANCE ID IS 1
    9. DEFAULT FOR PAYROLL_PROCESS IS 1
    10. COUNTER = to_char(REPEAT_COUNTER)
    11. PAYACTION_ID = GET_VALUE_SET ('ROLLBACKQPAY_VS'  ,'|=COUNT='|| COUNTER)
    12. BASE_TASK_NAME = 'JAVA_API_ROLLBACK'
    13. EXECUTION_MODE = 'SUBMIT'
    14. EFFECTIVE_DATE = trunc(to_date(GLOBAL_PAY_INTERFACE_EXTRACTION_DATE,'YYYY-MM-DD'))
    15. PAYROLL_PROCESS =  PAY ACTION_ID
    16. REPEATFLAG = 'Y'
    17. /*Results*/
    18. RETURN REPEAT_COUNTER, REPEAT FLAG, BASE_TASK_NAME, EXECUTION_MODE, EFFECTIVE_DATE, PAYACTION_ID, PAYROLL_PROCESS
    19. /* End Formula Text */
  6. 「コンパイル」をクリックします。

  7. 「保存」をクリックします。

ユーザー定義フロー・パターンの作成方法

次のステップを実行してフロー・パターンを作成します。
  1. ホーム・ページで、「自分のクライアント・グループ」「給与」に移動し、「給与フロー・パターン」タスクを選択します。

  2. 「作成」をクリックしてフロー・パターンを作成します。 既存のフロー・パターンを検索して選択し、コピーすることもできます。

  3. 「国別仕様データ・グループ」フィールドは空白のままにして「続行」をクリックします。

  4. 「基本情報」ページで、次の基本的なフロー情報フィールドに情報を入力します。

    フィールド

    フロー・パターン名

    ロールバックQuickPay

    摘要

    フローの摘要を入力します。

    LDG要

    いいえ

    追加するアクティビティ

    「計算」を選択します。

  5. 「別のタスクの送信」を選択してフロー・パターンに含めます。

  6. フローの「所有者タイプ」および「所有者」を選択します。

  7. 「タスク順序」ページでは、順序がここに示されているように表示されます。

    タスク

    次のタスク

    タスクの開始

    別のタスクの送信

    別のタスクの送信

    タスクの終了

  8. 「パラメータ」ページで、「追加」アイコンを使用し、必要なフロー・パラメータを追加してフロー・パターンを完了します。

  9. パラメータを追加する前に、「次」をクリックしてタスク・パラメータを確認します。 「別のタスクの発行」に関連付けられたパラメータは自動的に使用可能になります。 パラメータがこの表に示されているとおりに定義されていることを確認してください。

    名前

    実行モード

    データ型

    パラメータ基準

    基準値

    パラレルで実行

    送信

    テキスト

    フローにバインド

    パラレルで実行

    国別仕様データ・グループ

    送信

    Long

    コンテキスト・バインド

    国別仕様データ・グループ

    タスク名

    送信

    テキスト

    フローにバインド

    タスク名

    タスク繰返しFormula

    送信

    テキスト

    フローにバインド

    タスク繰返しFormula

    最大繰返しカウンタ

    送信

    Long

    フローにバインド

    最大繰返しカウンタ

    リクエスト

    送信

    Long

    コンテキスト・バインド

    リクエスト

    最大パラレル・スレッド

    送信

    数値

    フローにバインド

    最大パラレル・スレッド

    これらのフロー・パラメータはフロー・パターン内のタスクを送信して完了するために使用されます。または、フロー・パターン内の残りのタスクを送信するための値を導出するための基礎として使用されます。
  10. 必要に応じて、パラメータを更新します。 必要なフロー・パラメータが完了したら、「次」をクリックします。

  11. フロー・パターンの結果チェックリストを確認します。

  12. 「送信」をクリックします。

フローの送信方法

次のステップを実行して、新しく作成されたフロー・パターンを送信します。
  1. クイック・アクションから、またはホーム・ページの「自分のクライアント・グループ」「給与」で、「フローの送信」タスクを選択します。

  2. 「ロールバックQuickPay」フローを検索し、「次」をクリックします。

  3. 次のパラメータを入力します。

    フィールド

    フロー・パターン

    ロールバックQuickPay

    給与フロー

    フロー・インスタンスに適した名前を入力します(例:ロールバックQuickPay_0105)。

    タスク名

    ロールバック・プロセス

    タスク繰返しFormula

    QP_Rollback

    最大繰返しカウンタ

    フローによる送信の最大数または反復数。

    ノート:

    繰返しカウンタNは、1個の親とN-1個の子の送信を示します。

    パラレルで実行

    送信がパラレルかシリアルかを決定します フロー・インスタンスをパラレルで実行する場合は、「はい」を選択します。

    ノート:

    大量のデータに対してスレッドをパラレルに実行することをお薦めします。

    最大パラレル・スレッド

    パラレルで実行される最大送信数

    ノート:

    「最大繰返しカウンタ」は、タスクの1回送信に対して実行できるインスタンスの最大数です。 これは、給与期間に処理されたQuickPaysの数で、このフローを使用してロールバックします。 反復実行がエラーになった場合は、このパラメータによって、プロセスが無限ループに入るのを回避します。

  4. 「次」をクリックします。 フロー相互関係をチェックします。

  5. 「次」をクリックし、スケジュールを選択します。 「できるだけ早く」を選択すると、タスクを即時に実行できます。

  6. 「レビュー」「送信」の順にクリックします。

タスクの反復を表示およびモニターする方法

フローを送信すると、「チェックリスト」ページが表示され、フロー内のタスクおよびその他のパラメータを管理およびモニターできます。
  1. 「チェックリスト」ページで、送信した「別のタスクの発行」フローを検索してクリックします。 タスクの反復ページが表示されます。

  2. 特定のタスク反復の詳細情報を表示するには、タスク反復名をクリックします。 このページから、タスク反復パラメータ、および特定のタスク反復のプロセス出力およびログ・ファイルを表示できます。

  3. ページをリフレッシュして最新のタスク反復数を表示するには、「リフレッシュ」をクリックします。

  4. 「処理」>「ロールバック」をクリックして、すべてのタスクの反復をロールバックします。

結果およびログ・ファイルの表示方法

送信されたフローの対応する結果およびログ・ファイル出力を表示するには、次のステップを実行します。
  1. 「プロセス結果要約」ページにナビゲートし、送信された別のタスクの発行フローを検索します。 フロー名をクリックして、「タスク反復」ページを開きます。

  2. タスクの反復名をクリックし、タスク反復のプロセス結果の詳細を表示します。

  3. 「個人プロセス結果」セクションを使用して、個人プロセスの結果を表示します。

  4. プロセスの出力を表示するには、「出力」および「ログ・ファイル」セクションをクリックします。

  5. 最初の行の「プロセスID」をクリックして、フローのログ出力の詳細を表示します。

  6. タスクの反復または子発行のログ出力を表示するには、次の2行または他の行の「プロセスID」をクリックします。