创建会计科目KEY弹性域
1.数据库中包含了对应CCID的数据库列:ACCOUNT_CCID,在块中创建非数据库项(Data最大长度为2000)
2.在BLOCK级添加如下触发器:
PRE-QUERY: FND_FLEX.EVENT('PRE-QUERY');
PRE-INSERT: FND_FLEX.EVENT('PRE-INSERT');
PRE-UPDATE: FND_FLEX.EVENT('PRE-UPDATE');
POST-QUERY: FND_FLEX.EVENT('POST-QUERY');
WHEN-VALIDATE-RECORD: FND_FLEX.EVENT('WHEN-VALIDATE-RECORD');
在ITEM级添加如下触发器
WHEN-NEW-ITEM-INSTANCE: FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE'); --执行顺序:before
WHEN-VALIDATE-ITEM: FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');
3. KEY弹性域定义及更新
fnd_key_flex.define(BLOCK=>'CUX_GL_JE_LINES', FIELD=>'ACCOUNT_DSP', APPL_SHORT_NAME=>'SQLGL', CODE=>'GL#', NUM=>':PARAMETER.CHART_OF_ACCOUNTS_ID', --KEY FLEXFIELD STRUCTURE DEFINING COLUMN ID=>'CODE_COMBINATION_ID', DESCRIPTION=>'ACCOUNT_DESCRIPTION', VALIDATE=>'FULL', updateable=>'ALL', INSERTABLE=>'ALL', DISPLAYABLE=>'ALL', REQUIRED=>'Y', VRULE=>'\\nSUMMARY_FLAG\\nI\\nAPPL=SQLGL;NAME=GL_NO_PARENT_SEGMENT_ALLOWED\\nN');
FND_KEY_FLEX.UPDATE_DEFINITION(BLOCK=>'CUX_GL_JE_LINES', FIELD=>'ACCOUNT_DSP', ENABLED=>'N');
NUM的值会根据不同的SOB来对应不同的Structure
以下SQL可以简单的查询不同的KEY弹性域的定义
SELECT app.application_short_name, app.application_name, flx.id_flex_code, flx.id_flex_name, str.id_flex_num, str.id_flex_structure_code, str.id_flex_structure_name FROM fnd_id_flexs flx, fnd_id_flex_structures_vl str, fnd_application_vl app WHERE flx.application_id = str.application_id AND flx.id_flex_code = str.id_flex_code AND flx.application_id = app.application_id ORDER BY 1, 3, 5
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步