78144666 发表于 2015-9-24 03:40:50

EBS动态创建账户组合实现

  目的:使用程序动态创建账户组合。如果账户组合存在的话,返回存在的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_id_flex_num
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_id_flex_num;
  
3. 调用标准的API得到账户组合id实现code:
  

l_concatenated_segments := l_segment1 || l_segment_delimiter ||
p_segment2 || l_segment_delimiter ||
p_segment3 || l_segment_delimiter ||
l_segment4 || l_segment_delimiter ||
l_segment5 || l_segment_delimiter ||
l_segment6 || l_segment_delimiter ||
l_segment7 || l_segment_delimiter ||
l_segment8 || l_segment_delimiter ||
l_segment9 || l_segment_delimiter ||
l_segment10 || l_segment_delimiter ||
l_segment11 || l_segment_delimiter ||
l_segment12 || l_segment_delimiter ||
l_segment13 || l_segment_delimiter ||
l_segment14 || l_segment_delimiter ||
l_segment15 || l_segment_delimiter ||
l_segment16 || l_segment_delimiter ||
l_segment17 || l_segment_delimiter ||
l_segment18 || l_segment_delimiter ||
l_segment19 || l_segment_delimiter ||
l_segment20 || l_segment_delimiter ||
l_segment21 || l_segment_delimiter ||
l_segment22 || l_segment_delimiter ||
l_segment23 || l_segment_delimiter ||
l_segment24 || l_segment_delimiter ||
l_segment25 || l_segment_delimiter ||
l_segment26 || l_segment_delimiter ||
l_segment27 || l_segment_delimiter ||
l_segment28 || l_segment_delimiter ||
l_segment29 || l_segment_delimiter ||
l_segment30 || l_segment_delimiter;
l_gcc_account_id := apps.fnd_flex_ext.get_ccid(application_short_name => 'SQLGL',
key_flex_code          => 'GL#',
structure_number       => l_id_flex_num,
validation_date      => to_char(SYSDATE,
apps.fnd_flex_ext.DATE_FORMAT),
concatenated_segments=> x_concatenated_seg);
fnd_file.PUT_LINE(fnd_file.log,
'l_gcc_account_id:' || l_gcc_account_id);
IF l_gcc_account_id = 0 THEN
RETURN NULL;
END IF;
  
注意      :如果账户ID返回0,表示没有创建成功。
  
  
  
  错误原因:传入的参数不正确或者账户组合没有通过验证。



  
页: [1]
查看完整版本: EBS动态创建账户组合实现