WebADI_数据验证5_建立基于Key Flexfields的LOV验证(案例)

 20150906 Created By BaoXinjian

一、摘要


在Interface Attribute中定义Key Flexfiled类型字段

一般可以通过两种方式

1. 通过手工定义的方式

首先建立客制化栏位,用以引用弹性域

最为关键的一步,创建弹性域引用的Group

查看客制化栏位的相关属性,确保已引用了Flexfield Group

2. 直接通过调用标准API (BNE_INTEGRATOR_UTILS.CREATE_CCID_LOV),来创建Key Flexfield

 

二、通过页面定义Key Flexfield


1. 查看所用引用的Accounting Flexfield,已经相关栏位,最好是Key Flexfield Column需要和Interface Attribue一一对应

2. 创建一个客制化的Attribute,用以存放弹性域组Group

3. 创建弹性域组Group,最为关键的一步

(1). Attribute Name:刚创建的客制化栏位C_EMP_ACCOUNT_KFF

(2). Validate Type:选择为Key Flexfield

(3). Key Flexfield:所引用的会计科目弹性域

(4). Component Name:引用已存在的一个组件

(5). Group Attribute:选中弹性域所有科目存放的Segment,与科目定义一一对应

4. 定义后,查看所创建的三个必须栏位

(1). C_EMP_ACCOUNT_KFF,客制化栏位,用以存放引用弹性域定义的Group

(2). Accounting_Date 和 Curreny Code,因为引用的是标准GL Accounting弹性域,这两个栏位是必须的,否则会提示错误

5. 运行测试,选中对应的会计科目名称

6. 运行测试,选中后显示该会计科目所有科目栏位

 

三、通过API定义Key Flexfield


带补充

BEGIN
   BNE_INTEGRATOR_UTILS.CREATE_CCID_KFF (
      P_APPLICATION_ID        => 200,             --Your custom application id
      P_INTERFACE_CODE        => 'BXJADI_XINTG_INTF1', --Your custom interface code
      P_INTERFACE_COL_NAME    => 'P_EMP_ACCOUNT_ID', -- Your CCID item in interface
      P_NUM_FLEX_SEGS         => 5, --GL code combination segments count, 最大30,实际显示的为启用的段
      P_GROUP_NAME            => 'Employee Account Group', --Attribute Group name, 随便写
      P_FLEX_APPLICATION_ID   => 101,                      --GL application id
      P_FLEX_CODE             => 'GL#',                    --Account flex code
      P_FLEX_NUM              => 101, --Charts of account id , 这里可用参数,比如“SOB.ChartOfAccountsID "
      p_vrule                 => NULL,
      p_effective_date_col    => 'P_ACCOUNT_EFFECTIVE_DATE', --如interface中有effective date 字段的话,会提供CCID的effective date 到此字段(还没测)
      p_prompt_above          => 'EmpCCID Above',
      p_prompt_left           => 'EmpCCID Left',
      p_user_hint             => 'EmpCCID Hint',
      p_user_id               => 1318);
   COMMIT;
   DBMS_OUTPUT.PUT_LINE ('Run Successfully');
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.PUT_LINE ('SQLCODE=' || SQLCODE);
      DBMS_OUTPUT.PUT_LINE ('SQLERRM=' || SQLERRM);
END;

 

Thanks and Regards

posted on 2012-11-25 12:34  东方瀚海  阅读(618)  评论(0编辑  收藏  举报