DECLARE
l_segment1 GL_CODE_COMBINATIONS.SEGMENT1%TYPE;
l_segment2 GL_CODE_COMBINATIONS.SEGMENT2%TYPE;
l_segment3 GL_CODE_COMBINATIONS.SEGMENT3%TYPE;
l_segment4 GL_CODE_COMBINATIONS.SEGMENT4%TYPE;
l_segment5 GL_CODE_COMBINATIONS.SEGMENT5%TYPE;
l_segment6 GL_CODE_COMBINATIONS.SEGMENT6%TYPE;
l_valid_combination BOOLEAN;
l_cr_combination BOOLEAN;
l_ccid GL_CODE_COMBINATIONS_KFV.code_combination_id%TYPE;
l_structure_num FND_ID_FLEX_STRUCTURES.ID_FLEX_NUM%TYPE;
l_conc_segs GL_CODE_COMBINATIONS_KFV.CONCATENATED_SEGMENTS%TYPE;
p_error_msg1 VARCHAR2(240);
p_error_msg2 VARCHAR2(240);
BEGIN
l_segment1 := '00101';
l_segment2 := '28506';
l_segment3 := '00000';
l_segment4 := '14302';
l_segment5 := '00455';
l_segment6 := '00000';
l_conc_segs := l_segment1||'.'||l_segment2||'.'||l_segment3||'.'||l_segment4||'.'||l_segment5||'.'||l_segment6 ;
BEGIN
SELECT id_flex_num
INTO l_structure_num
FROM apps.fnd_id_flex_structures
WHERE id_flex_code = 'GL#'
AND id_flex_structure_code='EPC_GL_ACCOUNTING_FLEXFIELD';
EXCEPTION
WHEN OTHERS THEN
l_structure_num:=NULL;
END;
---------------Check if CCID exits with the above Concatenated Segments---------------
BEGIN
SELECT code_combination_id
INTO l_ccid
FROM apps.gl_code_combinations_kfv
WHERE concatenated_segments = l_conc_segs;
EXCEPTION
WHEN OTHERS THEN
l_ccid:=NULL;
END;
IF l_ccid IS NOT NULL THEN
------------------------The CCID is Available----------------------
DBMS_OUTPUT.PUT_LINE('COMBINATION_ID= ' ||l_ccid);
ELSE
DBMS_OUTPUT.PUT_LINE('This is a New Combination. Validation Starts....');
------------Validate the New Combination--------------------------
l_valid_combination := APPS.FND_FLEX_KEYVAL.VALIDATE_SEGS
(
operation => 'CHECK_COMBINATION',
appl_short_name => 'SQLGL',
key_flex_code => 'GL#',
structure_number => L_STRUCTURE_NUM,
concat_segments => L_CONC_SEGS
);
p_error_msg1 := FND_FLEX_KEYVAL.ERROR_MESSAGE; IF l_valid_combination then DBMS_OUTPUT.PUT_LINE('Validation Successful! Creating the Combination...');
-------------------Create the New CCID-------------------------- L_CR_COMBINATION := APPS.FND_FLEX_KEYVAL.VALIDATE_SEGS
(
operation => 'CREATE_COMBINATION',
appl_short_name => 'SQLGL',
key_flex_code => 'GL#',
structure_number => L_STRUCTURE_NUM,
concat_segments => L_CONC_SEGS );
p_error_msg2 := FND_FLEX_KEYVAL.ERROR_MESSAGE; IF l_cr_combination THEN
-------------------Fetch the New CCID--------------------------
SELECT code_combination_id
INTO l_ccid
FROM apps.gl_code_combinations_kfv
WHERE concatenated_segments = l_conc_segs;
DBMS_OUTPUT.PUT_LINE('NEW COMBINATION_ID = ' || l_ccid);
ELSE
-------------Error in creating a combination-----------------
DBMS_OUTPUT.PUT_LINE('Error in creating the combination: '||p_error_msg2);
END IF;
ELSE
--------The segments in the account string are not defined in gl value set----------
DBMS_OUTPUT.PUT_LINE('Error in validating the combination: '||p_error_msg1);
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLCODE||' '||SQLERRM);
END;

如上 验证ccid的仅能验证是否符合交叉规则、科目段值是否有效。

需要添加段值是否含有父值逻辑:

l_valid_combination := APPS.FND_FLEX_KEYVAL.VALIDATE_SEGS(operation => 'CHECK_COMBINATION',
appl_short_name => 'SQLGL',
key_flex_code => 'GL#',
structure_number => L_STRUCTURE_NUM,
concat_segments => L_CONC_SEGS,
vrule => '\nSUMMARY_FLAG\nI\n' || 'APPL=SQLGL;NAME=GL_JE_SUMMARY_ACCOUNT\nN\0');
p_error_msg1 := FND_FLEX_KEYVAL.ERROR_MESSAGE;

最新文章

  1. linux重启mysql无法启动
  2. beanstalkd----安装启动
  3. 【代码笔记】iOS-利用图片序列创建动态图片效果
  4. 自然数从1到n之间,有多少个数字含有1
  5. Tips5:通过 alt+鼠标左键 来完全展开或收缩层级
  6. JavaScript中奇葩的假值
  7. CSS display:inline和float:left两者区别探讨
  8. DM8168 解码显示模块代码阅读分析
  9. http与https与socket tcp/IP与UDP 协议等
  10. ArcGIS Earth(原谷歌地球)如何获取高精度矢量地图数据?(shp文件/要素类/kml)
  11. oracle 表空间,用户的创建及授权,表空间基本操作
  12. django-pure-pagination 组件使用
  13. Handy Collaborator :用于挖掘out-of-band类漏洞的Burp插件介绍
  14. 技巧性极强的strings命令
  15. Restful API 的设计规范(转)
  16. 【刷题】BZOJ 4025 二分图
  17. [数据库中间件]centos6.6下配置libzdb所产生的错误
  18. HDU 5667 Sequence(矩阵快速幂)
  19. linux查看电脑硬件配置
  20. 在 Linux 服务器上部署 nginx 之后不能访问

热门文章

  1. JZOJ 3447.摘取作物
  2. Shell命令-常用操作
  3. Spring Boot如何自定义监控指标
  4. JetBrains之全家桶破解
  5. C++ MFC学习 (五)
  6. vue项目引用vue-pdf打包多出worker.js文件
  7. random及循环
  8. 2021年爆出log4j漏洞修复
  9. perl的学习:将分句脚本split-sentences.perl转为python脚本
  10. springcloud 整合email的坑(Unrecognized SSL message, plaintext connection?)