創建或者查找GL賬戶(code_combination_id)

需求:

創建或者查找現在賬戶ID ,需要通過一下三個步驟:


1. 得到賬簿的CHART_OF_ACCOUNTS_ID

2. 得到賬戶彈性域分隔符

3. 調用標準的API得到賬戶組合id


具體實現如下:

1. 得到賬簿的CHART_OF_ACCOUNTS_ID實現code:

SELECT sob.chart_of_accounts_id
  INTO l_chart_of_accounts_id
  FROM financials_system_params_all fsp, gl_sets_of_books sob
 WHERE org_id = p_org_id
   AND sob.set_of_books_id = fsp.set_of_books_id;

2. 得到賬戶彈性域分隔符實現code:

    SELECT concatenated_segment_delimiter
      INTO l_segment_delimiter
      FROM fnd_id_flex_structures
     WHERE application_id = 101
       AND id_flex_code = 'GL#'
       AND id_flex_num = l_chart_of_accounts_id;
 

3. 調用標準的API得到賬戶組合id(不存在則創建並返回ID):

DECLARE
  x_account_id NUMBER;
BEGIN
  IF fnd_flex_keyval.validate_segs(operation        => 'CREATE_COMBINATION',
                                   appl_short_name  => 'SQLGL',
                                   key_flex_code    => 'GL#',
                                   structure_number => l_chart_of_accounts_id,
                                   concat_segments  => l_temp_segment1 ||
                                                       l_segment_delimiter ||
                                                       lv_segment2 ||
                                                       l_segment_delimiter ||
                                                       lv_segment3 ||
                                                       l_segment_delimiter ||
                                                       lv_segment4 ||
                                                       l_segment_delimiter ||
                                                       lv_segment5 ||
                                                       l_segment_delimiter ||
                                                       lv_segment6 ||
                                                       l_segment_delimiter ||
                                                       lv_segment7 ||
                                                       l_segment_delimiter ||
                                                       lv_segment8,
                                   validation_date  => NULL) THEN
    -- Success                                   
    x_account_id := fnd_flex_keyval.combination_id;
  ELSE
    x_account_id := NULL;
  END IF;
  dbms_output.put_line(x_account_id);
END;






發佈了69 篇原創文章 · 獲贊 13 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章