注 : ENABLE_LIST_LAMP是TEMPLATE模板自带的,无须手工去定义。 将GL_CODE_NUMBER项的LOV设成“ENABLE_LIST_LAMP”,数据库项设为“否”。 将 GL_CODE_NUMBER“从列表中验证”属性设成否。
?FND_KEY_FLEX.Define
(
??? BLOCK => 'CUX_17_CST_MAPP_RULE_ALL',
??? FIELD => 'ACCOUNTING',
??? ID??? => 'CODE_COMBINATION_ID',
??? description=>'ACCOUNT_DES',
??? APPL_SHORT_NAME => 'SQLGL',
??? CODE => 'GL#',
??? NUM? => '50470',--CHART_OF_ACCOUNTS_ID',
??? REQUIRED => 'Y',
??? VALIDATE => 'FULL',
??? USEDBFLDS => 'N',
??? DINSERT => 'Y',
??? allownulls => 'N',
??? query_security => 'Y',
??? updateable => 'ALL',
??? insertable => 'ALL',
???? vrule???? =>'nSUMMARY_FLAGnIn' ||
?????????????????????????? 'APPL=SQLGL;NAME=GL_JE_SUMMARY_ACCOUNTnN ' ||
?????????????????????????? 'GL_GLOBALnDETAIL_POSTING_ALLOWED' ||
?????????????????????????? 'nIn' ||
????????????????????????? 'APPL=SQLGL;NAME=GL_JE_POSTING_NOT_ALLOWEDnY',
??? where_clause => 'summary_flag <>''Y'''
);
4.可以在GL_CODE_NUMBER项的WHEN-VALIDATE-ITEM触发器中,对所选择的科目进行核查。
IF : BlockName.CODE_COMBINATION_ID = -1 then
fnd_message.debug('所选科目组合无效!');
raise form_trigger_failure;
end if;
?
2.根据会计科目取得CODE_COMBINATION_ID
http://www.voidcn.com/article/p-oaordsxr-bch.html
?网上说当在第一步建表时,可以建一个字段作为外键,基于表GL_CODE_COMBINATIONS(CODE_COMBINATION_id),
这时当保存数据时,CODE_COMBINATION_ID会自动保存过来,不过我没试验成功。
我使用以下方法取得:
?:CUX_17_CST_MAPP_RULE_ALL.CODE_COMBINATION_ID:=
??????????????? fnd_flex_ext.get_ccid(application_short_name => 'SQLGL',
????????????????????????????????????? key_flex_code????????? => 'GL#',
????????????????????????????????????? structure_number?????? => 50470,
????????????????????????????????????? validation_date??????? => to_char(sysdate,'YYYY/MM/DD HH24:MI:SS'),
????????????????????????????????????? concatenated_segments? =>:CUX_17_CST_MAPP_RULE_ALL.ACCOUNTING);
?其中concatenated_segments?参数格式为:'YBHN0.139999.6001100301.10000001.1013579.110101.0.0.0.0'
?
注意:如果表GL_CODE_COMBINATIONS中不存在所选组合,即不存在这个ID.就会新建一条纪录插入到表GL_CODE_COMBINATIONS中。