[セットトップ]GL-仕訳インタフェースのインポート



GL-仕訳インタフェースのインポート
1、使用する標準インタフェース表
インタフェーステーブル:gl_interface、制御テーブル:gl_interface_コントロール、エラーメッセージ:gl_interface.status
2、総勘定標準表
gl_je_batches:仕訳バッチ
gl_je_headers:仕訳ヘッダーテーブル
gl_je_lines:仕訳明細表
gl_balances:勘定残高表
gl_code_combinations:科目組合せ表
gl_je_categories:資格証明分類表
gl_je_sources:証明書ソーステーブル
3、総勘定インポート構成およびインポートプロセス
仕訳のインポートには、(1)、仕訳ヘッダー情報のインポート(2)、仕訳明細情報のインポート2.1、仕訳明細の借方インポート2.2、仕訳明細の貸方入力(3)、標準仕訳要求の呼び出し
仕訳インポート・プロセス:最初のステップ:インポート・仕訳のソースとカテゴリ情報を取得する2番目のステップ:ouとステップ1で取得した仕訳ソースに基づいて、この翌日の仕訳インポートのグループid:group_を取得するid、仕訳実行のid:interface_run_idと対応ouの帳簿第3歩:データ検証、インポートするデータに対して相応の検証を行い、例えば:検証期間が開いているかどうか、検証通貨が本位貨幣であるかどうかなどの第4歩:共通フィールドに値を付与する第5歩:借方に値を付与し、インタフェース表を挿入する第6歩:貸方に値を付与し、インタフェース表を挿入する第7歩:仕訳要求を呼び出す
4、常用検査ロジック
(1)検査期間
期間をチェックしながら、対応するGL日付を入力パラメータ:o_から持ち出すことができます.ledger_id:帳簿id p_vest_period:期間
SELECT COUNT(1)
      INTO l_period_count
      FROM gl_period_statuses gps
     WHERE gps.application_id = 101
       AND gps.ledger_id = o_ledger_id
       AND gps.adjustment_period_flag = 'N'
       AND trunc(start_date) <= trunc(SYSDATE)
       AND trunc(end_date) >= trunc(SYSDATE)
       AND gps.closing_status = 'O'
       AND gps.period_name = p_vest_period;

(2)検査通貨
入力された通貨が現在のouのネイティブ通貨であるかどうかを確認し、ネイティブ通貨でない場合は為替レートタイプを指定する必要があります.また、返されたcount数に基づいて借方および貸方の為替レート情報を付与する必要があります.入力パラメータ:o_org_id:ou                        p_currency_コード:通貨
SELECT COUNT(1)
      INTO l_currency_count
      FROM hr_operating_units ou, gl_sets_of_books gsob
     WHERE ou.set_of_books_id = gsob.set_of_books_id
       AND ou.organization_id = o_org_id
       AND gsob.currency_code = p_currency_code;

5、呼び出したインターフェース
(1)仕訳請求
l_request_id := fnd_request.submit_request
('SQLGL',
 'GLLEZL',
 '',
to_char(SYSDATE,'YYYY/MM/DD HH24:MI:SS'),
 FALSE,
to_char(p_interface_run_id),
to_char(p_set_of_books_id),
 'N',
 NULL,
 NULL,
 'N',
 'O', --         ,     N(   ),W(    WITH VALIDATE),O(   WITHOUT VALIDATE)
  chr(0)); 

(2)リクエスト完了待ち
仕訳のインポート要求が呼び出されると、仕訳要求が完了するまで待機し、仕訳要求の完了ステータスに基づいて対応するデータ・テーブルのインポート・ステータスと対応するフィールドの書き込みを更新する必要があります.
l_bl_result := fnd_concurrent.wait_for_request(l_request_id, --     
        1, --    
        0, --    
        v_phase,
        v_status,
        v_dev_phase,
        v_dev_status,
        v_message);
      --             
      IF v_dev_phase <> 'COMPLETE' OR v_dev_status <> 'NORMAL' THEN
        o_return_status := fnd_api.g_ret_sts_error;
        o_msg_data      := '       ';
      END IF;