转:客制FORM调用会计科目弹性域/根据科目取得CODE_COMBINATION_ID

1.首先在创建数据表时,添一个字段用来保存会计科目的ID。如:CODE_COMBINATION_ID

  2.在FORM相应的数据块增加两个ITEM,用来显示科目NUMBER与DESCRITION。

  例:GL_CODE_NUMBER、GL_CODE_DESC

  注 : ENABLE_LIST_LAMP是TEMPLATE模板自带的,无须手工去定义。 将GL_CODE_NUMBER项的LOV设成“ENABLE_LIST_LAMP”,数据库项设为“否”。 将 GL_CODE_NUMBER“从列表中验证”属性设成否。

  3.在Form Level 的WHEN-NEW-FORM-INSTANCE Trigger初始化弹性域

 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_FLAG\nI\n' || 
                           'APPL=SQLGL;NAME=GL_JE_SUMMARY_ACCOUNT\nN\0' ||
                           'GL_GLOBAL\nDETAIL_POSTING_ALLOWED' ||
                           '\nI\n' ||
                          'APPL=SQLGL;NAME=GL_JE_POSTING_NOT_ALLOWED\nY',
    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://blog.csdn.net/pan_tian/article/details/7535842

 网上说当在第一步建表时,可以建一个字段作为外键,基于表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中。

原文地址:https://www.cnblogs.com/toowang/p/5278435.html