gl_code_combination 是存放会计科目组合的键弹性域的表单。
该表单中没有字段的描述,一个段一个段的加描述太麻烦了。
我通常都是通过以下的方法来获得描述
sql语句上:
SELECT gl_flexfields_pkg.get_description_sql(&char_of_account_id,1,gcc.segment1) seg1,
gl_flexfields_pkg.get_description_sql(&char_of_account_id,2,gcc.segment2) seg2,
gl_flexfields_pkg.get_description_sql(&char_of_account_id,3,gcc.segment3) seg3,
gl_flexfields_pkg.get_description_sql(&char_of_account_id,4,gcc.segment4) seg4,
gl_flexfields_pkg.get_description_sql(&char_of_account_id,5,gcc.segment5) seg5,
gl_flexfields_pkg.get_description_sql(&char_of_account_id,6,gcc.segment6) seg6
FROM gl_code_combinations gcc
WHERE gcc.code_combination_id = &code_combination_id;
form上:
declare
l_char_id number;
l_account varchar2(300);
l_desc varchar2(500);
l_flex_return varchar2(480);
l_num number;
begin
dbms_application_info.set_client_info(122);
--==Get structure_number
select gl.chart_of_accounts_id
into l_char_id
from gl_sets_of_books gl,
fnd_currencies fnd,
ap_system_parameters asp,
gl_daily_conversion_types gdct,
financials_system_parameters fsp,
ap_terms apt
WHERE gl.set_of_books_id = asp.set_of_books_id
AND gl.currency_Code = fnd.currency_code
AND asp.default_exchange_rate_type = gdct.conversion_type(+)
AND asp.prepayment_terms_id = apt.term_id(+);
--==Get the CCID
l_account := '11.000000.212101.0000.0000.0000';
l_num :=fnd_flex_ext.get_ccid(
application_short_name => 'SQLGL',
key_flex_code => 'GL#',
structure_number => 101,
validation_date => to_char(sysdate,'YYYY-MM-DD'),
concatenated_segments => l_account
);
dbms_output.put_line(l_num);
--==Get segment conbination
l_flex_return := FND_FLEX_EXT.GET_SEGS(
APPLICATION_SHORT_NAME => 'SQLGL',
KEY_FLEX_CODE => 'GL#',
STRUCTURE_NUMBER => l_char_id,
COMBINATION_ID => l_num);
dbms_output.put_line(l_flex_return);
--==Get segment description
if (FND_FLEX_KEYVAL.validate_ccid(
appl_short_name => 'SQLGL',
key_flex_code => 'GL#',
structure_number => l_char_id,
combination_id => l_num,
displayable => 'ALL',
data_set => NULL,
vrule => NULL,
--security => 'IGNORE',
get_columns => NULL,
resp_appl_id => NULL,
resp_id => NULL,
user_id => NULL)
) Then
l_desc := FND_FLEX_KEYVAL.concatenated_descriptions;
end if;
dbms_output.put_line(l_desc);
end;