最近遇到报表中调用用户出口函数的问题,在下面的指南中找到相关内容
Oracle® Applications
Flexfields Guide
Release 12
Part No. B31456-01
December 2006
按照指南中的例子,仍然搞不明白。例子中有如下的描述:
Step 5 - Define your report query
Define your report query Q_1:
SELECT &P_FLEXDATA C_FLEXDATA
FROM CODE_COMBINATIONS_TABLE
WHERE CODE_COMBINATIONS_TABLE.STRUCTURE_DEFINING_COLUMN
= &P_STRUCT_NUM
在oracle官方论坛上提问,何谓CODE_COMBINATIONS_TABLE?有说可能是gl_code_combination之类的表,再提问何谓STRUCTURE_DEFINING_COLUMN?有答gl_code_combination的STRUCTURE_DEFINING_COLUMN是chart_of_accounts_id
例子中有如下代码:
SRW.REFERENCE(:P_STRUCT_NUM);
SRW.REFERENCE(:C_FLEXDATA);
SRW.USER_EXIT('FND FLEXIDVAL
CODE="GL#"
NUM=":P_STRUCT_NUM"
APPL_SHORT_NAME="SQLGL"
DATA=":C_FLEXDATA"
DESCRIPTION=":C_DESC_ALL"
DISPLAY="ALL"');
报表运行时报错: Rep-1517
A Formula Column Referencing a Non-formula Column Results in Rep-01517 [ID 167700.1] | |||||
| |||||
Modified 07-AUG-2002 Type PROBLEM Status PUBLISHED |
- fact: Oracle Reports Developer 6.0.8
- symptom: Report contains a formula column which references a non-formula column
- symptom: Rep-01517: Column '<column 1 name>' references column '< column 2 name>', which has incompatible frequency
- cause: A column in the data model references another column but the two columns are assigned to incompatible group levels.
在网上搜索到如下内容:
用户出口
用户出口是指在 Oracle Reports 内执行外部函数调用。用户出口的一个问题是,需要重新编译可执行文件以连接所有用户出口。这就使得产品的故障排除和升级变得非常困难。在 Oracle Reports 中,您可以使用 ORA_JAVA 程序包和 Java 导入程序调用 Java 方法。这样就减少了在报表中使用用户出口的需要,从而允许进行更开放和更可移植的部署。您还可以使用 ORA_FFI 程序包,它为调用动态库中的 C 函数提供了一个外部函数接口。随着这些内件的推出,在 Oracle Reports 中将不再鼓励使用用户出口,但是仍然会提供 makefiles,以便您能够继续使用现有的用户出口。
用户出口内件
不赞成使用的内件 | Oracle Reports 中的操作 |
srw.unknown_user_exit | 删除 srw.unknown_user_exit。代之以 ORA_FFI 或 ora_java 调用。 |
srw.user_exit | 删除 srw.user_exit。代之以 ORA_FFI 或 ora_java 调用。 |
srw.user_exit20 | 删除 srw.user_exit20。代之以 ORA_FFI 或 ora_java 调用。 |
Srw.user_exit_failure | 删除 srw.user_exit_failure。代之以 ORA_FFI 或 ora_java 调用。 |