Error in GetObjectName
Hi,
I'm having trouble using the context and logical schema in the command below:
UPDATE <%=odiRef.getObjectName("L","LOG_CARGA_FUSION","L_DW_FUSION_SYS_DESENV","D")%>
set flag_execucao = 'V'
where flag_execucao = 'F'
and rownum = 1
and nm_origem = '#vg_TABLE_ORIGEM'
and nm_destino = '#vg_TABLE_DESTINO'
and cd_carga = '#vg_CD_CARGA'
I'm not leaving the procedure set in context and not the logical schema, for it to come through the command.
the operator it returns me the following error:
java.lang.Exception: Erro interno: objeto ConnectConnection
ColConnectId:null
ColContextCode:01_CTX_DESENV
ColConName:null
ColIndCommit:null
ColIsolLevel:null
ColLschemaName:null
ColPlanComp:null
ColTechIntName:ORACLE
DefConnectId:null
DefContextCode:01_CTX_DESENV
DefConName:null
DefIndCommit:null
DefIsolLevel:null
DefLschemaName:null
DefPlanComp:null
DefTechIntName:ORACLE
ExeChannel:J
IndErr:0
IndLogMethod:null
IndLogNb:null
LogLevDet:3
Nno:18
OrdTrt:0
ScenTaskNo:38
SessNo:364001
TaskName1:Procedimento
TaskName2:INSERE_LOG_CARGA
TaskName3:INSERE_LOG
TaskType:S
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source)
what can this go wrong?
thanks,
Cristina,
Check have you selected the correct Technology in the Procedure , since you are getting the error -java.lang.Exception: Erro interno: objeto ConnectConnection. Its related to connection .
If you have ? , are you using the Command on Source , with Command on Target as Null . In that case move the codes to Command to Target and execute.
Please let me know if you need any other help.
Thanks
Similar Messages
-
Can substitution methods other than the Global be used in a procedure ?
Hi All,
I am very much new to ODI .Apologies if the question seems silly.
As part of an exercise I am working with ODI variables and substitution methods.
My question is substitution methods like odiRef.getColList,odiRef.getFrom,getTargetColList() used in KM's for Code Generation while executing an interface,
can they be used in a ODI procedure giving the necessary parameters as they require .
Eg : Command on source :
select
<%=odiRef.getColList("", "[COL_NAME]", ",\n\t", "", "")%>
from <%=odiRef.getObjectName( "TABLE_NAME" )%>
Command on target :
insert into <%=odiRef.getTable("L", "TABLE_NAME", "D")%>
<%=odiRef.getColList("", "[CX_COL_NAME]", ",\n\t", "","")%>
values
<%=odiRef.getColList("", ":[CX_COL_NAME]", ",\n\t", "","")%>
Ofcourse ,this is what an interface does but my requirement is to pass table name as variables and run this code iteratively to load targets,which again will be passed as variable.
Will this run as a ODI procedure ?I tried and am getting exception errors.The getobjectName being global works fine with the proper table name generated in the code,but the getCollist does not work .Hence wanted to know if this standalone procedure is possible or will this code run only as part of KM over a interface?
Thanks,Hi ,
I had gone through this document,and from other sources also got a same answer that it cant be used.But is there a way it can be done?
Actually we have many number of the small tables with just 10 records to be brought into the warehouse.The idea is to instead of doing it via an interface , why not try with a control table with an just the relevant entries and a procedure as above posted code.
Some ideas would help.
Thanks, -
Error while Inserting data into flow table
Hi All,
I am very new to ODI, I am facing lot of problem in my 1st interface. So I have many questions here, please forgive me if it has irritated to you.
========================
I am developing a simple Project to load a data from an input source file (csv) file into a staging table.
My plan is to achieve this in 3 interfaces:
1. Interface-1 : Load the data from an input source (csv) file into a staging table (say Stg_1)
2. Interface-2 : Read the data from the staging table (stg_1) apply the business rules to it and copy the processed records into another staging table (say stg_2)
3. Interface-3 : Copy the data from staging table (stg_2) into the target table (say Target) in the target database.
Question-1 : Is this approach correct?
========================
I don't have any key columns in the staging table (stg_1). When I tried to execute the Flow Control of this I got an error:
Flow Control not possible if no Key is declared in your Target Datastore
With one of the response (the response was - "FLOW control requires a KEY in the target table") in this Forum I have introduced a column called "Record_ID" and made it a Primary Key column into my staging table (stg_1) and my problem has been resolved.
Question-2 : Is a Key column compulsary in the target table? I am working in BO Data Integrator, there is no such compulsion ... I am little confused.
========================
Next, I have defined one Project level sequence. I have mapped the newly introduced key column Record_Id (Primary Key) with the Project level sequence. Now I am got another error of "CKM not selected".
For this, I have inserted "Insert Check (CKM)" knowledge module in my Project. With this the above problem of "CKM not selected" has been resolved.
Question-3 : When is this CKM knowledge module required?
========================
After this, the flow/interface is failing while loading data into the intermediar ODI created flow table (I$)
1 - Loading - SS_0 - Drop work table
2 - Loading - SS_0 - Create work table
3 - Loading - SS_0 - Load data
5 - Integration - FTE Actual data to Staging table - Drop flow table
6 - Integration - FTE Actual data to Staging table - Create flow table I$
7 - Integration - FTE Actual data to Staging table - Delete target table
8 - Integration - FTE Actual data to Staging table - Insert flow into I$ table
The Error is at Step-8 above. When opened the "Execution" tab for this step I found the message - "Missing parameter Project_1.FTE_Actual_Data_seq_NEXTVAL RECORD_ID".
Question-4 : What/why is this error? Did I made any mistake while creating a sequence?Everyone is new and starts somewhere. And the community is there to help you.
1.) What is the idea of moving data from stg_1 and then to stg_2 ? Do you really need it for any other purpose other than move data from SourceFile to Target DB.
Otherwise, its simple to move data from SourceFile -> Target Table
2.) Does your Target table have a Key ?
3.) CKM (Check KM) is required when you want to do constraint validation (Checking) on your data. You can define constraints (business rules) on the target table and Flow Control will check the data that is flowing from Source File to Target table using the CKM. All the records that donot satisfy the constraint will be added to E$ (Error table) and will not be added to the Target table.
4.) Try to avoid ODI sequences. They are slow and arent scalable. Try to use Database sequence wherever possible. And use the DB sequence is target mapping as
<%=odiRef.getObjectName( "L" , "MY_DB_Sequence_Row" , "D" )%>.nextval
where MY_DB_Sequence_Row is the oracle sequence in the target schema.
HTH -
Error while creating OAM MBean Conection
I am in the process of integrating OAM with OIM. When I run the idmConfigTool, I get the following error. Any suggestions
[oracle@idmhost2 bin]$ /u01/app/oracle/middleware/Oracle_IDM1/idmtools/bin/idmConfigTool.sh -configOAM input_file=/u01/OAMconfigPropertyFile
Enter ID Store Bind DN password :
Enter User Password for WLSPASSWD:
Confirm User Password for WLSPASSWD:
Enter User Password for OAM11G_OIM_WEBGATE_PASSWD:
Confirm User Password for OAM11G_OIM_WEBGATE_PASSWD:
Enter User Password for IDSTORE_PWD_OAMSOFTWAREUSER:
Confirm User Password for IDSTORE_PWD_OAMSOFTWAREUSER:
Enter User Password for IDSTORE_PWD_OAMADMINUSER:
Confirm User Password for IDSTORE_PWD_OAMADMINUSER:
oracle.idm.automation.exception.ExecutionFailedException: Error while creating OAM MBean Conection
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.getObjectName(OAM11gIntegrationHandler.java:934)
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.configOAM11gIdStore(OAM11gIntegrationHandler.java:306)
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.execute(OAM11gIntegrationHandler.java:696)
at oracle.idm.automation.AutomationTool.configOAM(AutomationTool.java:593)
at oracle.idm.automation.AutomationTool.parseCmdLine(AutomationTool.java:218)
at oracle.idm.automation.AutomationTool.main(AutomationTool.java:132)
There were errors found. Details have been logged to automation.log
The Automationlog file details
FINER: ENTRY
Jul 16, 2013 2:09:36 AM oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler getObjectName
SEVERE: Error while creating OAM MBean Conection
java.lang.Exception: No foundation mbeans found
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.getObjectName(OAM11gIntegrationHandler.java:915)
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.configOAM11gIdStore(OAM11gIntegrationHandler.java:306)
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.execute(OAM11gIntegrationHandler.java:696)
at oracle.idm.automation.AutomationTool.configOAM(AutomationTool.java:593)
at oracle.idm.automation.AutomationTool.parseCmdLine(AutomationTool.java:218)
at oracle.idm.automation.AutomationTool.main(AutomationTool.java:132)
Jul 16, 2013 2:09:36 AM oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler configOAM11gIdStore
SEVERE: Error while configuring User ID Store
oracle.idm.automation.exception.ExecutionFailedException: Error while creating OAM MBean Conection
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.getObjectName(OAM11gIntegrationHandler.java:934)
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.configOAM11gIdStore(OAM11gIntegrationHandler.java:306)
at oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler.execute(OAM11gIntegrationHandler.java:696)
at oracle.idm.automation.AutomationTool.configOAM(AutomationTool.java:593)
at oracle.idm.automation.AutomationTool.parseCmdLine(AutomationTool.java:218)
at oracle.idm.automation.AutomationTool.main(AutomationTool.java:132)
Jul 16, 2013 2:09:36 AM oracle.idm.automation.impl.oam.handlers.OAM11gIntegrationHandler configOAM11gIdStore
SEVERE: Error while creating OAM MBean ConectionCaused by: java.net.ConnectException: Connection refused
Is the Oracle application server running? -
ODI -OBIEE Lineage:Error while running ODI Procedure
Hi ,
I am using prebuilt mapping provided by oracle to achive dtata lineage between odi and obiee.
I am getting error when i run scenario at Create "Same Column dummy Exp" procedure step.
Error Info :
ODI-1228: Task Create the "Same Column" dummy Expression (Procedure) fails on the target ORACLE connection ORACLE_XPONE.
Caused By: java.sql.SQLSyntaxErrorException: ORA-00984: column not allowed here
Procedure info:
insert into <%=odiRef.getObjectName("LINEAGE_EXPRESSION")%>
(I_LINEAGE_EXPRESSION, PROJECT_NAME, FOLDER_NAME, JOB_NAME, EXPRESSION, EXPRESSION_ORIGIN)
values
(<%=odiRef.getObjectName("BI_OBJ_ID.NEXTVAL")%>, 'Dummy', 'Dummy', 'Dummy', '(Same Column)', 'Dummy')
Please let me know how to overcome this problem if anybody have achived lineaged by using oracle provided mappings.
Thanks in AdvanceHi,
If you are on ODI 11g remove the odiRef.getObjectName("BI_OBJ_ID.NEXTVAL") function call and just give the sequence BI_OBJ_ID.NEXTVAL where ever its being used.
Regards,
Rajesh -
While executing the Procedure Getting Error
Hi I am New to ODI.
I create one new Procedure just to delete the Target table.
delete from <%=snpRef.getTable("L","T_CUSTOMER","D")%>. T_Customer is my target table.Technology:Oracle(Both Source and Target)
I selected the correct Context ,Schema and Technology.
While executing the procedure i am getting following error
java.lang.Exception: Internal error: object ConnectConnection
ColConnectId:null
ColContextCode:DEV
ColConName:null
ColIndCommit:null
ColIsolLevel:null
ColLschemaName:null
ColPlanComp:null
ColTechIntName:null
DefConnectId:null
DefContextCode:DEV
DefConName:null
DefIndCommit:null
DefIsolLevel:null
DefLschemaName:FCS
DefPlanComp:null
DefTechIntName:ORACLE
ExeChannel:J
IndErr:1
IndLogMethod:null
IndLogNb:null
LogLevDet:3
Nno:1
OrdTrt:0
ScenTaskNo:1
SessNo:61001
TaskName1:Procedure
TaskName2:Delete
TaskName3:Delete
TaskType:S
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execSrcOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source)
Thanks in advance.i Used the below syntax and checked its working fine.
delete from <%=snpRef.getObjectName("L","T_CUSTOMER","D")%> -
IKM file to file (java) error
Hi Team,
I am using IKM file to file (java) to laod the data and am getting the following error at compile step. Please help me out here.
com.sunopsis.tools.core.exception.SnpsSimpleMessageException: ODI-17517: Error during task interpretation.
Task: 2
java.lang.Exception: BeanShell script error: Sourced file: inline evaluation of: ``out.print("OdiOutFile \"-FILE=") ; out.print(snpRef.getSchemaName("CT_Sample", " . . . '' : Unary operation "+" inappropriate for object : at Line: 178 : in file: inline evaluation of: `` /* This function is used to replace at code generation time the column names in . . . '' : + ");" ) ;
BSF info: Create transformer at line: 0 column: columnNo
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:485)
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:711)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.bsf.BSFException: BeanShell script error: Sourced file: inline evaluation of: ``out.print("OdiOutFile \"-FILE=") ; out.print(snpRef.getSchemaName("CT_Sample", " . . . '' : Unary operation "+" inappropriate for object : at Line: 178 : in file: inline evaluation of: `` /* This function is used to replace at code generation time the column names in . . . '' : + ");" ) ;
BSF info: Create transformer at line: 0 column: columnNo
at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:471)
... 11 more
Text: OdiOutFile "-FILE=<?=snpRef.getSchemaName("CT_Sample", "W") ?>/<?= getOdiClassName() ?>.java"
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.Reader;
import java.io.FileReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.FileWriter;
import java.io.File;
import java.io.IOException;
import java.io.FilenameFilter;
import java.util.Scanner;
import java.util.HashMap;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.lang.String;
import java.lang.StringBuilder;
import java.lang.RuntimeException;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.math.BigDecimal;
public class <?= getOdiClassName() ?> {
/* Number of threads that are to be run in parallel */
static int NB_THREADS = 1;
BufferedWriter pBufferedWriter;
BufferedWriter pBufferedLogWriter;
BufferedWriter pBufferedBadWriter;
int nbError;
int nbErrorInPrevFiles;
int nbLine;
int nbTotalLine;
int nbWarning;
int nbFiles;
int nbFilter;
int nbFilterInPrevFiles;
int nbHeader;
int nbInserted;
boolean doWeContinueBatch = true;
boolean maxErrorReach = false;
//boolean warning = false;
//String warning_txt ="";
Date debut = new Date();
Date end = new Date();
static int maxError=0;
* @param pBufferedWriter
* @param pBufferedLogWriter
* @param pBufferedBadWriter
* @param nbError
* @param nbLine
* @throws IOException
public <?= getOdiClassName() ?>(String targF,String logF,String badF) throws IOException {
super();
this.pBufferedWriter = new BufferedWriter(new FileWriter(targF, false));
this.pBufferedLogWriter = new BufferedWriter(new FileWriter(logF, false ));
this.pBufferedBadWriter = new BufferedWriter(new FileWriter(badF, false ));
pBufferedLogWriter.append("Oracle Data Integrator * File to File:\nCopyright (c) Oracle Corporation. All rights reserved.");
pBufferedLogWriter.append("\n\nNumber of threads: "+NB_THREADS);
pBufferedLogWriter.append("\n\nDiscardmax: 1");
pBufferedLogWriter.append("\n\nOutputFile:\t\t"+targF+"\nBAD file:\t\t"+badF+"\n");
this.nbError = 0;
this.nbErrorInPrevFiles = 0;
this.nbLine = 0;
this.nbTotalLine=0;
this.nbWarning=0;
this.nbFiles=0;
this.nbHeader=0;
this.nbFilter=0;
this.nbFilterInPrevFiles = 0;
this.nbInserted=0;
/* A simple object used to synchronize the reads of the source file and avoid overlap between the various threads */
static Object lock = new Object();
HashMap<Object, BigDecimal> sequenceMap = new HashMap<Object, BigDecimal>();
HashMap<Object, BigDecimal> counterMap = new HashMap<Object, BigDecimal>();;
public boolean getDoWeContinueBatch()
return doWeContinueBatch;
public void addInserted()
synchronized(lock) {
nbInserted+=1;
public void addWarning()
synchronized(lock) {
nbWarning+=1;
public void addFilter()
synchronized(lock) {
nbFilter+=1;
public BigDecimal getCounter(Object pFieldValue, long pStartValue) {
if (counterMap.containsKey(pFieldValue)) {
return counterMap.get(pFieldValue);
} else {
counterMap.put(pFieldValue, new BigDecimal(pStartValue));
return counterMap.get(pFieldValue);
public BigDecimal incrementCounter(Object pFieldValue, long pStartValue) {
if (counterMap.containsKey(pFieldValue)) {
counterMap.put(pFieldValue, counterMap.get(pFieldValue).add(BigDecimal.ONE));
return counterMap.get(pFieldValue);
} else {
counterMap.put(pFieldValue, new BigDecimal(pStartValue));
return counterMap.get(pFieldValue);
public BigDecimal smartSequence(Object pField, Object pValue, long pStartValue) {
if (pField.equals(pValue)) {
return incrementCounter(pValue, pStartValue);
} else {
return getCounter(pValue, pStartValue);
public BigDecimal smartSequence(Object pField, Object pValue) {
return smartSequence(pField, pValue, 0);
public BigDecimal normalSequence(Object pSequenceName, long pStartValue) {
if (sequenceMap.containsKey(pSequenceName)) {
synchronized(sequenceMap.get(pSequenceName)) {
sequenceMap.put(pSequenceName, sequenceMap.get(pSequenceName).add(BigDecimal.ONE));
return sequenceMap.get(pSequenceName);
} else {
synchronized (sequenceMap) {
sequenceMap.put(pSequenceName, new BigDecimal(pStartValue));
return sequenceMap.get(pSequenceName);
public BigDecimal normalSequence(Object pSequenceName) {
return normalSequence(pSequenceName, 0);
/* Utility class used for String processing */
class OdiStringUtils {
/* This method is used to write Input String into the StringBuilder that contains the target row and pad with spaces if necessary */
public void pad(StringBuilder pStringBuilder, String pString, int pLength) {
pStringBuilder.append(pString);
for (int i=0;i<pLength-pString.length();i++) {
pStringBuilder.append(' ');
/* This class is the formatter for Strings that are to be written to the target file */
class OdiStringFormatOUT{
OdiStringUtils myStringUtils;
String colName;
String colMandatory;
String colFormat;
String colDecSep;
String colNullIfErr;
int colBytes;
String xString;
private void check(Warning Odiwarn) throws Exception
if (xString.length() > colBytes)
{if (colNullIfErr=="0"){
throw new Exception ("Column "+ colName+" : "+xString+" Value too long\n");
if (colNullIfErr=="1")
Odiwarn.AddWarn("Column "+ colName+" : "+xString+" Value too long\n");
xString="";
return;
if (xString.length() ==0)
{if (colNullIfErr=="0"){
throw new Exception ("Column "+ colName+" : is mandatory\n");
if (colNullIfErr=="1")
Odiwarn.AddWarn("Column "+ colName+" : is mandatory\n");
public OdiStringFormatOUT(String pColName,String pColMandatory, String pColFormat,String pColDecSep, String pColNullIfErr,int pColBytes, OdiStringUtils pStringUtils) {
myStringUtils = pStringUtils;
colName = pColName;
colMandatory = pColMandatory;
colFormat = pColFormat;
colDecSep = pColDecSep;
colNullIfErr = pColNullIfErr;
colBytes = pColBytes;
public void format(String pString, StringBuilder pStringBuilder,Warning Odiwarn) throws Exception {
xString=pString;
this.check(Odiwarn);
pStringBuilder.append(xString);
/* This class is the formatter for Strings that are to be read from the source file */
class OdiStringFormatIN{
OdiStringUtils myStringUtils;
String odiColname;
String colNullIfErr;
public OdiStringFormatIN(OdiStringUtils pStringUtils, String pColname, String pColNullIfErr) {
myStringUtils = pStringUtils;
odiColname=pColname;
colNullIfErr=pColNullIfErr;
public String parse(String pString,Warning Odiwarn) {
return pString;
/* This class is the formatter for Numbers that are to be written to the target file.
Note that some more format() functions should be added to fully support all the possible datatypes (int, etc.) */
class OdiNumberFormatOUT{
OdiStringUtils myStringUtils;
DecimalFormat internalParser;
String colName;
String colMandatory;
String colFormat;
String colDecSep;
String colNullIfErr;
int colBytes;
private void check(Number pNumber,Warning Odiwarn) throws Exception
if (pNumber == null && colMandatory=="1" )
{if (colNullIfErr=="0"){
throw new Exception ("Column "+ colName+" is mandatory\n");
if (colNullIfErr=="1")
Odiwarn.AddWarn("Column "+ colName+" is mandatory\n");
private void check(double pDouble,Warning Odiwarn) throws Exception
if (false)
{if (colNullIfErr=="0"){
throw new Exception ("Column "+ colName+" : "+pDouble+" Value too long\n");
if (colNullIfErr=="1")
Odiwarn.AddWarn("Column "+ colName+" : "+pDouble+" Value too long\n");
private void check(long pLong,Warning Odiwarn) throws Exception
if (false)
{if (colNullIfErr=="0"){
throw new Exception ("Column "+ colName+" : "+pLong+" Value too long\n");
if (colNullIfErr=="1")
Odiwarn.AddWarn("Column "+ colName+" : "+pLong+" Value too long\n");
public OdiNumberFormatOUT(String pColName,String pColMandatory, String pColFormat,String pColDecSep, String pColNullIfErr,int pColBytes, OdiStringUtils pStringUtils) {
myStringUtils = pStringUtils;
colName = pColName;
colMandatory = pColMandatory;
colFormat = pColFormat;
colDecSep = pColDecSep;
colNullIfErr = pColNullIfErr;
colBytes = pColBytes;
if (colDecSep == null) {
colDecSep = ".";
if (colDecSep.length() != 1) {
colDecSep = ".";
DecimalFormatSymbols mySymbols = new DecimalFormatSymbols();
mySymbols.setDecimalSeparator(colDecSep.charAt(0));
internalParser = new DecimalFormat("#.#", mySymbols);
internalParser.setParseBigDecimal(true);
public void format(Number pNumber, StringBuilder pStringBuilder,Warning Odiwarn) throws Exception {
this.check(pNumber,Odiwarn);
if (pNumber == null) {
return;
pStringBuilder.append(internalParser.format(pNumber));
public void format(double pDouble, StringBuilder pStringBuilder,Warning Odiwarn) throws Exception {
this.check(pDouble,Odiwarn);
pStringBuilder.append(internalParser.format(pDouble));
public void format(long pLong, StringBuilder pStringBuilder,Warning Odiwarn) throws Exception {
this.check(pLong,Odiwarn);
pStringBuilder.append(internalParser.format(pLong));
/* This class is the formatter for Numbers that are to be read from the source file. */
class OdiNumberFormatIN{
OdiStringUtils myStringUtils;
DecimalFormat internalParser;
ParsePosition internalParsePosition;
String odiColname;
String colNullIfErr;
public OdiNumberFormatIN(String pDecimalSeparator, OdiStringUtils pStringUtils, String pColname, String pColNullIfErr) {
myStringUtils = pStringUtils;
odiColname=pColname;
colNullIfErr=pColNullIfErr;
if (pDecimalSeparator == null) {
pDecimalSeparator = ".";
if (pDecimalSeparator.length() != 1) {
pDecimalSeparator = ".";
DecimalFormatSymbols mySymbols = new DecimalFormatSymbols();
mySymbols.setDecimalSeparator(pDecimalSeparator.charAt(0));
internalParser = new DecimalFormat("#.#", mySymbols);
internalParser.setParseBigDecimal(true);
internalParsePosition = new ParsePosition(0);
/* This function returns null in case an Exception occurs during the parsing of the String as a Number */
public Number parse(String pString, Warning Odiwarn) throws Exception {
internalParsePosition.setIndex(0);
Number x= internalParser.parse(pString.trim(), internalParsePosition);
if ((pString.trim().length()>internalParsePosition.getIndex()))
{ x=null;
if (colNullIfErr=="0"){
throw new Exception (odiColname+" "+pString.trim()+" Invalid number\n");
if (colNullIfErr=="1")
Odiwarn.AddWarn(odiColname+": "+pString.trim()+" Invalid number");
return x;
/* This class is the formatter for Dates that are to be read from the source file */
class OdiDateFormatIN{
OdiStringUtils myStringUtils;
SimpleDateFormat internalParser;
ParsePosition internalParsePosition;
String odiColname;
String colNullIfErr;
String localPattern="";
public OdiDateFormatIN(String pPattern, OdiStringUtils pStringUtils, String pColname, String pColNullIfErr) {
myStringUtils = pStringUtils;
odiColname = pColname;
colNullIfErr=pColNullIfErr;
if (pPattern == null) {
localPattern = "dd/MM/yyyy";
} else localPattern=pPattern;
//internalParser = new SimpleDateFormat(pPattern);
//internalParsePosition = new ParsePosition(0);
/* This method returns null if an error occurs when parsing the String as a date */
public Date parse(String pString, Warning Odiwarn) throws Exception {
internalParser = new SimpleDateFormat(localPattern);
internalParsePosition = new ParsePosition(0);
internalParsePosition.setIndex(0);
internalParser.setLenient(false);
Date x= internalParser.parse(pString.trim(),internalParsePosition);
//trace("this is bad file");
if (internalParsePosition.getErrorIndex() > -1 && pString.length()>0 )
{ x=null;
if (colNullIfErr=="1") {
Odiwarn.AddWarn(odiColname+": "+pString.trim()+" Invalid date");
if (colNullIfErr=="0") {
throw new Exception (odiColname+" "+pString.trim()+" Invalid date\n");
return x;
/* This class is the formatter for Dates that are to be written to the target file */
class OdiDateFormatOUT{
OdiStringUtils myStringUtils;
SimpleDateFormat internalParser;
String colName;
String colMandatory;
String colFormat;
String colDecSep;
String colNullIfErr;
int colBytes;
Date xDate;
private void check(Warning Odiwarn) throws Exception
if (false)
{if (colNullIfErr=="0"){
throw new Exception ("Column "+ colName+" : "+xDate+" Value too long\n");
if (colNullIfErr=="1")
Odiwarn.AddWarn("Column "+ colName+" : "+xDate+" Value too long\n");
public OdiDateFormatOUT(String pColName,String pColMandatory, String pColFormat,String pColDecSep, String pColNullIfErr,OdiStringUtils pStringUtils)
myStringUtils = pStringUtils;
colName = pColName;
colMandatory = pColMandatory;
colFormat = pColFormat;
colDecSep = pColDecSep;
colNullIfErr = pColNullIfErr;
colBytes = 0;
if (colFormat == null) {
colFormat = "dd/MM/yyyy";
internalParser = new SimpleDateFormat(colFormat);
public void format(Date pDate, StringBuilder pStringBuilder,Warning Odiwarn) throws Exception {
xDate=pDate;
this.check(Odiwarn);
if (xDate != null) {
pStringBuilder.append(internalParser.format(xDate));
class Warning
boolean warning;
String warntext;
int currentLine;
int nbWarn;
public Warning ()
warning=false;
warntext="";
public void New (int i)
warning=false;
warntext="";
currentLine=i;
nbWarn=0;
public void AddWarn (String txt)
if (warning) {
warntext=warntext+"\n"+txt;
} else {
warntext=warntext+"\n"+txt;
warning=true;
nbWarn+=1;
/* This class contains the code of the Thread that reads a line from the source file, processes a line and writes the output to the Target */
class OdiFileTransformer extends Thread {
OdiStringUtils myStringUtils= new OdiStringUtils();
Scanner myScanner;
Warning Odiwarn=new Warning();
<?
createInputFormaters();
createOutputFormaters();
?>
String tmpString;
String[] srcCols;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C1;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C2;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C3;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C4;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C5;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C6;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C7;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C8;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C9;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C10;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C11;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C12;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C13;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C14;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C15;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C16;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C17;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C18;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C19;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C20;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C21;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C22;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C23;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C24;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C25;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C26;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C27;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C28;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C29;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C30;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C31;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C32;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C33;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C34;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C35;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C36;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C37;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C38;
<? if ("DATE".equals("STRING")) {?>Date<? } else if ("NUMERIC".equals("STRING")) {?>Number<? } else { ?>String<? } ?> srcColsCTCL_C39;
String srcRecordSeparator;
String trgRecordSeparator;
String trgLineSeparator;
StringBuilder myStringBuilder;
public OdiFileTransformer(Scanner pScanner){
super();
myScanner = pScanner;
tmpString = null;
this.setName("OdiFileTransformer");
srcCols = new String[1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1];
srcRecordSeparator = Pattern.quote(",");
trgRecordSeparator = ",";
trgLineSeparator = "\n";
myStringBuilder = new StringBuilder();
public void run() {
boolean bad = false;
try {
while (doWeContinueBatch){
/* The calls to the Scanner need to be synchronized manually as it is not threadsafe */
synchronized(lock) {
if (myScanner.hasNext()) {
tmpString=myScanner.next();
nbLine+=1;
} else {
return;
bad = false;
Odiwarn.New(nbLine);
try {
srcCols = tmpString.split(srcRecordSeparator);
/* The Filters are generated as if Statements that go to the next row to process if any condition is false */
/* We start the processing of the line by clearing the StringBuilder */
myStringBuilder.setLength(0);
<? createInputFormaters("CTCL.C1"); ?><? createInputFormaters("CTCL.C2"); ?><? createInputFormaters("CTCL.C3"); ?><? createInputFormaters("CTCL.C4"); ?><? createInputFormaters("CTCL.C5"); ?><? createInputFormaters("CTCL.C6"); ?><? createInputFormaters("CTCL.C7"); ?><? createInputFormaters("CTCL.C8"); ?><? createInputFormaters("CTCL.C9"); ?><? createInputFormaters("CTCL.C10"); ?><? createInputFormaters("CTCL.C11"); ?><? createInputFormaters("CTCL.C12"); ?><? createInputFormaters("CTCL.C13"); ?><? createInputFormaters("CTCL.C14"); ?><? createInputFormaters("CTCL.C15"); ?><? createInputFormaters("CTCL.C16"); ?><? createInputFormaters("CTCL.C17"); ?><? createInputFormaters("CTCL.C18"); ?><? createInputFormaters("CTCL.C19"); ?><? createInputFormaters("CTCL.C20"); ?><? createInputFormaters("CTCL.C21"); ?><? createInputFormaters("CTCL.C22"); ?><? createInputFormaters("CTCL.C23"); ?><? createInputFormaters("CTCL.C24"); ?><? createInputFormaters("CTCL.C25"); ?><? createInputFormaters("CTCL.C26"); ?><? createInputFormaters("CTCL.C27"); ?><? createInputFormaters("CTCL.C28"); ?><? createInputFormaters("CTCL.C29"); ?><? createInputFormaters("CTCL.C30"); ?><? createInputFormaters("CTCL.C31"); ?><? createInputFormaters("CTCL.C32"); ?><? createInputFormaters("CTCL.C33"); ?><? createInputFormaters("CTCL.C34"); ?><? createInputFormaters("CTCL.C35"); ?><? createInputFormaters("CTCL.C36"); ?><? createInputFormaters("CTCL.C37"); ?><? createInputFormaters("CTCL.C38"); ?><? createInputFormaters("CTCL.C39"); ?>
<?= replaceMappings("outC1Formatter.format(CTCL.C1,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC2Formatter.format(CTCL.C2,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC3Formatter.format(CTCL.C3,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC4Formatter.format(CTCL.C4,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC5Formatter.format(CTCL.C5,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC6Formatter.format(CTCL.C6,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC7Formatter.format(CTCL.C7,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC8Formatter.format(CTCL.C8,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC9Formatter.format(CTCL.C9,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC10Formatter.format(CTCL.C10,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC11Formatter.format(CTCL.C11,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC12Formatter.format(CTCL.C12,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC13Formatter.format(CTCL.C13,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC14Formatter.format(CTCL.C14,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC15Formatter.format(CTCL.C15,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC16Formatter.format(CTCL.C16,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC17Formatter.format(CTCL.C17,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC18Formatter.format(CTCL.C18,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC19Formatter.format(CTCL.C19,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC20Formatter.format(CTCL.C20,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC21Formatter.format(CTCL.C21,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC22Formatter.format(CTCL.C22,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC23Formatter.format(CTCL.C23,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC24Formatter.format(CTCL.C24,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC25Formatter.format(CTCL.C25,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC26Formatter.format(CTCL.C26,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC27Formatter.format(CTCL.C27,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC28Formatter.format(CTCL.C28,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC29Formatter.format(CTCL.C29,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC30Formatter.format(CTCL.C30,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC31Formatter.format(CTCL.C31,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC32Formatter.format(CTCL.C32,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC33Formatter.format(CTCL.C33,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC34Formatter.format(CTCL.C34,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC35Formatter.format(CTCL.C35,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC36Formatter.format(CTCL.C36,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC37Formatter.format(CTCL.C37,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC38Formatter.format(CTCL.C38,myStringBuilder,Odiwarn);") ?><?= "myStringBuilder.append(trgRecordSeparator);" ?><?= replaceMappings("outC39Formatter.format(CTCL.C39,myStringBuilder,Odiwarn);") ?>
myStringBuilder.append(trgLineSeparator);
pBufferedWriter.write(myStringBuilder.toString());
if (Odiwarn.warning)
pBufferedLogWriter.append("\nwarning line: "+Odiwarn.currentLine+"\t"+Odiwarn.warntext);
addWarning();
addInserted();
catch (Exception e) {
// TODO: handle exception
pBufferedLogWriter.append("\nError line: "+nbLine+"\t"+e.getMessage());
e.printStackTrace();
pBufferedBadWriter.append(tmpString+"\n");
synchronized(lock) {
nbError+=1;
if (nbError >=1)
{pBufferedLogWriter.append("Maximum number of errors reached \n");
doWeContinueBatch=false;
maxErrorReach=true;
return;}
catch (Exception e) {
throw(new RuntimeException(e.getMessage()));
static class OdiFileFilter implements FilenameFilter {
Pattern myPattern;
BufferedWriter myLogWriter;
public OdiFileFilter (String pPattern,BufferedWriter logWriter) throws IOException {
File pWorkSchema = new File("<?=snpRef.getSchemaName("CT_Sample", "D") ?>");
StringBuilder buffer = new StringBuilder();
pPattern = pWorkSchema.getAbsolutePath().replace("\\", "/") + "/" + pPattern;
myLogWriter=logWriter;
char[] chars = pPattern.toCharArray();
for (int i = 0; i < chars.length; ++i) {
buffer.append(chars[i]);
myPattern = Pattern.compile(buffer.toString());
myLogWriter.append("\nPattern: " + buffer.toString());
public boolean accept(File pDir, String pName) {
Matcher myMatcher = myPattern.matcher(pDir.getAbsolutePath().replace("\\", "/") + "/" + pName);
System.out.println("" + myMatcher.matches() + pDir.getAbsolutePath().replace("\\", "/") + "/" + pName);
return myMatcher.matches();
public static void main(String[] args) throws Exception{
LOG_FILE =
BAD_FILE =
String wbadfile = "<?=snpRef.getObjectName("L", "FILE_OK.csv", "CT_Sample", "", "D") ?>.bad";
String wlogfile = "<?=snpRef.getObjectName("L", "FILE_OK.csv", "CT_Sample", "", "D") ?>.log";
<?= getOdiClassName() ?> myIKMFileProcessing = new <?= getOdiClassName() ?>("<?=snpRef.getObjectName("L", "FILE_OK.csv", "CT_Sample", "", "D") ?>",wlogfile,wbadfile);
File[] inputFileList;
OdiFileFilter myFileFilter = new OdiFileFilter("<?=snpRef.getObjectShortName("L", "Pfizer_Regional_CT_costs_Aug2013_AP.csv", "CT_Sample", "D") ?>",myIKMFileProcessing.pBufferedLogWriter);
File inputDir = new File("<?=snpRef.getSchemaName("CT_Sample", "D") ?>");
inputFileList = inputDir.listFiles(myFileFilter);
String s="";
if (inputFileList.length==0) {myIKMFileProcessing.pBufferedLogWriter.append("\n\tError : Source file does not exist");}
for (int i=0;i<inputFileList.length;i++) {
if (myIKMFileProcessing.getDoWeContinueBatch()) {
s=myIKMFileProcessing.processInputFile(inputFileList[i]);
myIKMFileProcessing.pBufferedLogWriter.append(s);
myIKMFileProcessing.pBufferedLogWriter.flush();
public String processInputFile(File pInputFile) throws Exception {
/* We open the source File by taking the encoder into account if needed */
Scanner myScanner = new Scanner(new BufferedReader(new FileReader(pInputFile)));
pBufferedLogWriter.append("\nInput file:\t\t"+pInputFile.getAbsolutePath().replace("\\", "/"));
/* We use a Scanner as the record separator might not necessarily be \n */
myScanner.useDelimiter("\n");
/* We read the first lines in order to ignore them depending on the setting of the source datastore */
for (int i=0;i < 0;i++){
if (myScanner.hasNext()) {
myScanner.next();
nbLine+=1;
nbHeader+=1;
OdiFileTransformer[] odiFileTransformers = new OdiFileTransformer[NB_THREADS];
for (int i=0;i<NB_THREADS;i++){
odiFileTransformers[i] = new OdiFileTransformer(myScanner );
for (int i=0;i<NB_THREADS;i++){
odiFileTransformers[i].start();
for (int i=0;i<NB_THREADS;i++){
odiFileTransformers[i].join();
end=new Date();
if (maxErrorReach)
pBufferedLogWriter.append("\n\tNumber of lines read for this file:\t\t" + nbLine);
pBufferedLogWriter.append("\n\tNumber of data lines read for this file:\t\t" + (nbLine-1) + "\n\n\n");
pBufferedLogWriter.append("\n\tNumber of error lines read for this file:\t\t" + (nbError-nbErrorInPrevFiles));
pBufferedLogWriter.append("\n\tNumber of data lines read and filtered out for this file:\t\t" + (nbFilter-nbFilterInPrevFiles)+"\n");
else
pBufferedLogWriter.append("\n\tNumber of lines for this file:\t\t" + nbLine);
pBufferedLogWriter.append("\n\tNumber of data lines for this file:\t\t" + (nbLine-1));
pBufferedLogWriter.append("\n\tNumber of error lines for this file:\t\t" + (nbError-nbErrorInPrevFiles));
pBufferedLogWriter.append("\n\tNumber of data lines filtered out for this file:\t\t" + (nbFilter-nbFilterInPrevFiles)+"\n");
nbFiles+=1;
nbTotalLine+=nbLine;
nbErrorInPrevFiles = nbError;
nbFilterInPrevFiles = nbFilter;
nbLine=0;
String s = "\n\n\n\n************************** TOTAL FIGURES ********************************";
s = s + "\n\t"+nbFiles+" input file(s) processed.\n";
s = s + "\n\t"+nbTotalLine+" Rows successfully read.\n" ;
s = s +"\t"+nbHeader+" Rows skipped (Header).\n" ;
s = s + "\t"+nbInserted+" Rows successfully loaded.\n" ;
s = s +"\t\t==>"+nbWarning+" Rows loaded with warning.\n" ;
s = s +"\t"+nbError+" Rows not loaded due to data errors.\n" ;
s = s +"\t"+nbFilter+" Rows not loaded because of filter.\n" ;
s = s + "\n\n\n";
s = s + "\n\tRun began on "+debut;
s = s + "\n\tRun ended on "+end;
//long x= ;
s = s + "\n\tElapsed time was:\t"+Math.abs(end.getTime() - debut.getTime())+" milliseconde";
/* We flush the buffer for any data that has not been written on the disk yet */
pBufferedWriter.flush();
pBufferedLogWriter.flush();
pBufferedBadWriter.flush();
return s;
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:738)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)This seems like a lot of code. I would suggest to compile your custom code outside of odi first to debug any syntax errors.
-
Error calling pl/sql function in target column
Hi guys,
I get this error when calling my function in ODI:
Caused By: java.sql.SQLSyntaxErrorException: ORA-00904: "mySchema"."GET_ODI_DEFAULT_VALUE(1)": ongeldige ID --> 1 is an IN parameter
while in sql developer I get a good result with following query:
select mySchema.get_odi_default_value(1) from dual;
In my target table for the primary key I call a sequence from mySchema and this works fine.
I've tried the following synxtax in the mapping of my target column:
- <%=odiRef.getObjectName( "L","GET_ODI_DEFAULT_VALUE(1)", "D" )%>
- <%=odiRef.getObjectName( "L","GET_ODI_DEFAULT_VALUE", "D" )(1)%>
Thanks for you adviceiadgroe wrote:
how to bring oracle function into ODI
I thought for objects like sequences and functions you had to use 'odiRef.getObjectName' to get access to them.
Am I wrong because now I'm a little confused???Hi,
Best practices would be to use getobjectname method as this way your not hardcoding anything into the interface and you are referencing the logical object only, which means you can change the logical object later and not have to worry about changing the interfaces. -
Seeded Page is erroring out in JDeveloper
I copied few seeded page (MgrMainAppraiserPG, HierachyPG) from the APPL_TOP.
When I am running the MgrMainAppraiserPG, it is erroring out with error
'java.sql.SQLException: ORA-01008: not all variables bound'
I have not done any changes and running the page after copying the xml file.
Any idea why I am getting this error?
oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (select decode(fnd_profile.value('BEN_DISPLAY_EMPLOYEE_NAME'),'FN',ppf.full_name, ppf.first_name||' '|| ppf.last_name) full_name,
hr_person_type_usage_info.get_user_person_type(ppf.effective_end_date, ppf.person_id) person_type,
Decode(paf.assignment_type,
'C', hr_general.decode_lookup('CWK_ASG_CATEGORY', paf.employment_category),
hr_general.decode_lookup('EMP_CAT', paf.employment_category)
)employment_category,
ppf.start_date, ppf.original_date_of_hire,
decode(paf.period_of_service_id, null, pop.date_start, pos.date_start) date_start,
decode(paf.period_of_service_id, null, pop.actual_termination_date, pos.actual_termination_date) actual_termination_date,
Decode(paf.assignment_type,
'C', hr_general.decode_lookup('HR_CWK_TERMINATION_REASONS', pop.termination_reason),
hr_general.decode_lookup('LEAV_REAS', pos.leaving_reason)
) leaving_reason,
paf.effective_start_date,
hr_util_misc_ss.getObjectName('JOB', paf.job_id, ppf.business_group_id, jtl.name) job, paf.job_id,
orgtl.name organization, orgtl.organization_id,
bgtl.name business_group, bgtl.organization_id business_group_id,
lvl.location_code,
hr_util_misc_ss.getObjectName('GRADE', paf.grade_id, ppf.business_group_id, gtl.name) grade, paf.supervisor_id, ppf.person_id, paf.assignment_id, paf.primary_flag, paf.assignment_number,
ppf.employee_number,
ppf.npw_number cwk_number,
nvl(paf.effective_start_date, ppf.effective_start_date) Asg_start_date,
decode(nvl(paf.effective_end_date, ppf.effective_end_date), to_date('31/12/4712','DD/MM/RRRR'), null, nvl(paf.effective_end_date, ppf.effective_end_date) ) Asg_end_date,
hr_general.decode_lookup('YES_NO', paf.primary_flag) Prim_Flag,
lvl.derived_locale,
v.vendor_name Supplier,
paf.VENDOR_ASSIGNMENT_NUMBER Supplier_id_assignment,
paf.VENDOR_EMPLOYEE_NUMBER Supplier_id_worker,
Decode(paf.assignment_type,
'C', hr_general.decode_lookup('HR_CWK_TERMINATION_REASONS', pop.termination_reason),
hr_general.decode_lookup('LEAV_REAS', pos.leaving_reason)
)term_reason,
decode(ppf.rehire_recommendation, 'N', null, hr_general.decode_lookup('YES_NO', ppf.rehire_recommendation)) rehire,
ast.user_status assignment_status,
decode(paf.period_of_service_id, null, pop.date_start, pos.date_start) latest_hire_date,
hr_util_misc_ss.getObjectName('POSITION', paf.position_id, ppf.business_group_id, ptl.name) position,
ppf.REHIRE_REASON,
paf.supervisor_assignment_id,
null Work_Phone,
null Position_Id,
null Disc_Title,
'Y' Manager_Enabled,
null Payroll,
null Normal_Hours,
'Y1' details_enabled,
ppf.email_address,
org_info.org_information9 LegislationCode
from per_assignments_f2 paf, per_assignment_status_types_tl ast,
per_people_f ppf,
hr_all_organization_units_tl orgtl, hr_all_organization_units_tl bgtl,
per_jobs_tl jtl, hr_all_positions_f_tl ptl, hr_locations_all_vl lvl, po_vendors v,
per_grades_tl gtl, per_periods_of_service pos, per_periods_of_placement pop, hr_organization_information org_info
where trunc(sysdate) between paf.effective_start_date and paf.effective_end_date
and trunc(sysdate) between ppf.effective_start_date and ppf.effective_end_date
and (ppf.current_employee_flag = 'Y' or ppf.current_npw_flag = 'Y')
and paf.primary_flag = decode(:0 ,'Y', paf.primary_flag, 'Y')
and paf.assignment_type in ('E','C')
and paf.person_id = ppf.person_id
and paf.vendor_id = v.vendor_id(+)
and paf.assignment_status_type_id = ast.assignment_status_type_id
and ast.language = userenv('LANG')
and paf.period_of_service_id = pos.period_of_service_id(+)
and paf.period_of_placement_date_start = pop.date_start(+)
and paf.person_id = pop.person_id(+)
and paf.job_id = jtl.job_id(+)
and jtl.language(+) = userenv('LANG')
and paf.position_id = ptl.position_id(+)
and ptl.language(+) = userenv('LANG')
and paf.organization_id = orgtl.organization_id
and orgtl.language = userenv('LANG')
and ppf.business_group_id = bgtl.organization_id
and bgtl.language = userenv('LANG')
and paf.location_id = lvl.location_id(+)
and paf.grade_id = gtl.grade_id(+)
and gtl.language(+) = userenv('LANG')
and org_info.organization_id = ppf.business_group_id
and org_information_context = 'Business Group Information') QRSLT WHERE (:1 = SUPERVISOR_ID)AND (:2 = SUPERVISOR_ASSIGNMENT_ID or hr_general2.supervisor_assignments_in_use = 'FALSE' ) ORDER BY FULL_NAME
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:888)
at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1145)
at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2898)
at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2700)
at OA.jspService(OA.jsp:48)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:209)
at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
at OA.jspService(OA.jsp:45)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:209)
at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
at OA.jspService(OA.jsp:45)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
at java.lang.Thread.run(Thread.java:534)
## Detail 0 ##
java.sql.SQLException: ORA-01008: not all variables bound
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1983)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1141)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2487)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2854)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:622)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:550)
at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:627)
at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:515)
at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3347)
at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:825)
at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4465)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:538)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2369)
at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:2586)
at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:1674)
at oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:3703)
at oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:3018)
at oracle.jbo.server.ViewRowSetIteratorImpl.notifyNavigation(ViewRowSetIteratorImpl.java:3126)
at oracle.jbo.server.ViewRowSetIteratorImpl.internalSetCurrentRow(ViewRowSetIteratorImpl.java:2910)
at oracle.jbo.server.ViewRowSetIteratorImpl.first(ViewRowSetIteratorImpl.java:1257)
at oracle.jbo.server.ViewRowSetImpl.first(ViewRowSetImpl.java:2363)
at oracle.jbo.server.ViewObjectImpl.first(ViewObjectImpl.java:5231)
at oracle.apps.fnd.framework.webui.OADataBoundValueHGrid.getValue(OADataBoundValueHGrid.java:85)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.getAttributeValueImpl(OAWebBeanHelper.java:1760)
at oracle.apps.fnd.framework.webui.beans.table.OAHGridBean.getAttributeValueImpl(OAHGridBean.java:509)
at oracle.cabo.ui.BaseUINode.getAttributeValue(Unknown Source)
at oracle.cabo.ui.laf.base.desktop.table.HGridRenderingContext.getTableDataFromBean(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.TableRenderingContext.<init>(Unknown Source)
at oracle.cabo.ui.laf.base.desktop.table.HGridRenderingContext.<init>(Unknown Source)
at oracle.cabo.ui.laf.base.desktop.HGridRenderer.createRenderingContext(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.TableRenderer.getTableRenderingContext(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.TableRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.laf.base.desktop.TableRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.laf.base.desktop.HGridRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.composite.ContextPoppingUINode$ContextPoppingRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.laf.oracle.desktop.HeaderRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer.renderIndexedChildren(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.BorderLayoutRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.oracle.desktop.PageLayoutRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.XhtmlLafRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.BodyRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.apps.fnd.framework.webui.beans.OABodyBean.render(OABodyBean.java:398)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderIndexedChild(Unknown Source)
at oracle.cabo.ui.BaseRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.renderContent(Unknown Source)
at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
at oracle.cabo.ui.laf.base.xhtml.DocumentRenderer.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.BaseUINode.render(Unknown Source)
at oracle.cabo.ui.partial.PartialPageUtils.renderPartialPage(Unknown Source)
at oracle.apps.fnd.framework.webui.OAPageBean.render(OAPageBean.java:3209)
at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2888)
at oracle.apps.fnd.framework.webui.OAPageBean.renderDocument(OAPageBean.java:2700)
at OA.jspService(OA.jsp:48)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:209)
at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
at OA.jspService(OA.jsp:45)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:209)
at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
at OA.jspService(OA.jsp:45)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
at java.lang.Thread.run(Thread.java:534)This error is due to Bind Variables.
When you run this page alone in JDEV, the page doesn't go thru the actual flow, which was designed for. So, the call to bind the variables may not be called when run in standalone.
So, to test this page, you need to setup the Environment to go thru the same flow as when deployed.
HTH
Srini -
Capturing Runtime Error Messages From ODI (Sunopsis) Operator
Hi
I have following question
1) I want to capture error message of an activity that has failed during execution
I have created a variable and used following query to capture it
select T.TXT
from <%=odiRef.getObjectName("L","SNP_EXP_TXT","D")%> T,
<%=odiRef.getObjectName("L","SNP_STEP_LOG","D")%> S
where S.SESS_NO = <%=odiRef.getSession("SESS_NO")%>
and S.I_TXT_STEP_MESS = T.I_TXT
order by T.TXT_ORD asc
unfortunatly am not getting entire error message ,instead am getting first row of the error from SNP_EXP_TXT table.How to get entire error message in a variable.
2) How can we know scenario name if we know session number?
Please provide your inputs
Thanks
BajiHi,
Don't use this query, it won't work.
Use the API GetPrevStepLog, it is simple and better...
Take a look at:
Use the http://www.oracle.com/technology/products/oracle-data-integrator/10.1.3/htdocs/documentation/oracledi_api_reference.pdf
For the session name, just use getSession() Method ( too is at the pdf)
I hope be helpful.
Cezar
Edited by: Cezar Santos on 21/11/2008 09:16 -
ODI Error while using substring function in odiref.getTable function
Hi,
I am trying to strip the interface table name in the IKM code.Below is the code
create unique index <%=odiRef.getTable("L","INT_NAME","W").substring(0,20)%>
*on <%=odiRef.getTable("L","INT_NAME","W")%>(<%=odiRef.getColList("", "[COL_NAME]", ", ", "", "UK")%>)*
*<%=odiRef.getUserExit("FLOW_TABLE_OPTIONS")%>*
But i get the below error, can some one please help ?
com.sunopsis.tools.core.exception.SnpsSimpleMessageException: Error during task interpretation
Task:8
java.lang.Exception: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Create Unique Index on flow table at line: 0 column: columnNo
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:635)
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:671)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:441)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1954)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:322)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:246)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:237)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:794)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:114)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.bsf.BSFException: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Create Unique Index on flow table at line: 0 column: columnNo
at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:621)
... 11 more
Text:create unique index <?=snpRef.getObjectN
on <?=snpRef.getObjectName("L", "%INT_PRFL1_PROC_SHR_APRC_AMTZ_RQST", "W") ?>(WKFL_ACTV_ID)
NOLOGGING
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:692)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:441)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1954)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:322)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:246)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:237)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:794)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:114)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)
Thanks,
Babu.Hi Ram,
please check, if the note 1396300 is implemented in your system?
If so, check the table T777F.
It should have the following entries:
MANDT ISTAT INFTY FCODE
002 1 **** AEND
002 1 **** COP
002 1 **** CUTI
002 1 **** DEL
002 1 **** DISP
002 1 **** INSE
002 1 **** LISD
002 1 **** PLVO
In case these entries are missing, please do an adjustment with your 000-client.
Hope this help
Sarah -
"Invalid Expression " Error with Refreshing variable
Hi
When ever i try to validata following query in Refreshing tab of a variable, I am getting invalid expression error
select USER_NAME from SNP_SESSION where SESS_NO = <%=odiRef.getSession()%>
if i use following Query
select STEP_MESS
from <%=snpRef.getObjectName("L","SNP_STEP_LOG","D")%>
where SESS_NO = <%=snpRef.getSession("SESS_NO")%>
and STEP_STATUS = 'E'
Its giving invalid table
Need your suggestions
Thanks
BajiHi
Thanks alot for your information .But when ever i click on "Refresh" button available in refrshing tab.I am able to see following error in operator
Execution
java.sql.SQLException: ORA-00900: invalid SQL statement
Description
BeanShell script error: Sourced file: inline evaluation of: ``out.print("select USER_NAME from SNP_SESSION where SESS_NO = ") ; out.print(odiR . . . '' : Error in method invocation: Method getSession() not found in class'com.sunopsis.dwg.snpreference.b' : at Line: 2 : in file: inline evaluation of: ``out.print("select USER_NAME from SNP_SESSION where SESS_NO = ") ; out.print(odiR . . . '' : odiRef .getSession ( )
BSF info: Filter_Records at line: 0 column: columnNo
out.print("select USER_NAME from SNP_SESSION where SESS_NO = ") ;
out.print(odiRef.getSession()) ;
out.print(" \n\n\n\n\n\n") ;
****** ORIGINAL TEXT ******
select USER_NAME from SNP_SESSION where SESS_NO = <%=odiRef.getSession()%>
Thanks
Baji -
Error while reverse engineering a Flat File
Hi
I am getting following error while trying to reverse engineer a Flat file. Could you help in identifying what's the problem
com.sunopsis.core.SecurityAccessException: oracle.odi.core.exception.OdiRuntimeException: OdiInstance is closed
at com.sunopsis.dwg.DwgObject.getterSecurityControl(DwgObject.java:2923)
at com.sunopsis.dwg.dbobj.generated.GeneratedSnpTechno.getMaxTabNameLen(GeneratedSnpTechno.java:1011)
at com.sunopsis.dwg.dbobj.SnpLschema.getObjectName(SnpLschema.java:626)
at com.sunopsis.dwg.dbobj.SnpLschema.getLocalObjectName(SnpLschema.java:247)
at com.sunopsis.dwg.dbobj.SnpTable.getFullTableName(SnpTable.java:1013)
at com.sunopsis.dwg.dbobj.SnpTable.fileDataStoreReversePhase1(SnpTable.java:632)
at com.sunopsis.graphical.frame.edit.EditFrameSnpTable.doReverseFromTable(EditFrameSnpTable.java:806)
at com.sunopsis.graphical.frame.edit.EditFrameSnpTable.jButtonReverseDelimiter_ActionPerformed(EditFrameSnpTable.java:3447)
at com.sunopsis.graphical.frame.edit.EditFrameSnpTable$IvjEventHandler.actionPerformed(EditFrameSnpTable.java:356)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: oracle.odi.core.exception.OdiRuntimeException: OdiInstance is closed
at oracle.odi.core.OdiInstance.verifyOpen(OdiInstance.java:921)
at oracle.odi.core.OdiInstance.getMasterRepository(OdiInstance.java:748)
at com.sunopsis.security.DefaultDwgSecurityManager.createConnections(DefaultDwgSecurityManager.java:292)
at com.sunopsis.security.DefaultDwgSecurityManager.getMethodByObject(DefaultDwgSecurityManager.java:265)
at com.sunopsis.dwg.DwgObject.consultControl(DwgObject.java:878)
at com.sunopsis.dwg.DwgObject.consult(DwgObject.java:844)
at com.sunopsis.dwg.DwgObject.getterSecurityControl(DwgObject.java:2911)
... 45 more
regards
SunilVery strange that the ODI Instance is closed. Since it's the entry point to the master/work repository, ODI is not able to write your new datastore in the work repository.
You can try to close ODI Studio and open it again.
Are you working with an out-of-the-box RKM or did you customize it?
Regards,
JeromeFr -
ODI-17517: Error during task interpretation
Hi Gurus,
I try execute my interface, and ODI gives me this error. Does anybody knows what is this? I try to load essbase cube with ODI.
com.sunopsis.tools.core.exception.SnpsSimpleMessageException: ODI-17517: Error during task interpretation.
Task: 2
java.lang.Exception: The application script threw an exception: com.sunopsis.tools.core.exception.SnpsSimpleMessageException: Exception getObjectName("L", "FACT_CUR", "LOG_ORACLE_DATABASE_PERO", "ESSBASE_CONTEXT", "D") : SnpPschemaCont.getObjectByIdent : SnpPschemaCont does not exist BSF info: Load data into essbase at line: 0 column: columnNo
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:489)
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:737)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2128)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.Exception: The application script threw an exception: com.sunopsis.tools.core.exception.SnpsSimpleMessageException: Exception getObjectName("L", "FACT_CUR", "LOG_ORACLE_DATABASE_PERO", "ESSBASE_CONTEXT", "D") : SnpPschemaCont.getObjectByIdent : SnpPschemaCont does not exist BSF info: Load data into essbase at line: 0 column: columnNo
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:476)
... 11 more
Caused by: org.apache.bsf.BSFException: The application script threw an exception: com.sunopsis.tools.core.exception.SnpsSimpleMessageException: Exception getObjectName("L", "FACT_CUR", "LOG_ORACLE_DATABASE_PERO", "ESSBASE_CONTEXT", "D") : SnpPschemaCont.getObjectByIdent : SnpPschemaCont does not exist BSF info: Load data into essbase at line: 0 column: columnNo
at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:471)
... 11 more
Text: from com.hyperion.odi.common import ODIConstants
from com.hyperion.odi.connection import HypAppConnectionFactory
from java.lang import Class
from java.lang import Boolean
from java.sql import *
from java.util import HashMap
# Get the select statement on the staging area:
sql= """select FACT_CUR.ACCOUNT "Account",FACT_CUR.PERIOD "Period",FACT_CUR.YEAR "Year",FACT_CUR.SCENARIO "Scenario",Cur "Version",FACT_CUR.ENTITY "Entity",FACT_CUR.PRODUCT "Product",FACT_CUR.CURRENCY "Currency",FACT_CUR.SEGMENT "Segment",FACT_CUR.DATA "Data" from <?=snpRef.getObjectName("L", "FACT_CUR", "LOG_ORACLE_DATABASE_PERO", "", "D")?> FACT_CUR where (1=1) """
srcCx = odiRef.getJDBCConnection("SRC")
stmt = srcCx.createStatement()
srcFetchSize=<?if("".equals(odiRef.getInfo("SRC_FETCH_ARRAY"))){out.print("1000");}else{out.print(odiRef.getInfo("SRC_FETCH_ARRAY"));}?>
#stmt.setFetchSize(srcFetchSize)
stmt.setFetchSize(1)
print "executing query"
rs = stmt.executeQuery(sql)
print "done executing query"
#load the data
print "loading data"
stats = pWriter.loadData(rs)
print "done loading data"
#close the database result set, connection
rs.close()
stmt.close().
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:764)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:465)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2128)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:724)It can't be because I have another context for that logical schema:
Physical Context Logical
Oracle_database.Pero ORACLE_CONTEXT LOG_ORACLE_DATABASE_PERO --> this is for Oracle DB
ESSBASE.KOCKA.KOCKA ESSBASE_CONTEXT LOG_ESSBASE_KOCKA_KOCKA --> this is for essbase cube
My source is on oracle db and i want load data into essbase cube. My source area is on LOG_ORACLE_DATABASE_PERO logical schema, and my target is on LOG_ESSBASE_KOCKA_KOCKA logical schema. I use "Staging Area Different from target" options. -
Error in starting Adobe Bridge in Photoshop CS2
I've just installed Photoshop CS2, however upon opening Adobe Bridge this error message appears " The application has failed to start because libagluc28.dll was not found. Reinstalling to application may fix the problem"
I have reinstalled and click repair but to no avail
I followed Adobe Support Knowledgebase solution and run CMD and this appears:
c:Documents and Settings/Jesus M Ferraris>
then i entered the command
cacls c:\windows\installer /T /E /C /G administrators:F
but an error message appears - 'cacls' is not recognized as an internal or external command, operable program or bathc file
I also entered the next command
cacls "c:\documents and setting\all users" /Y /E /C /G administrators:F
still the same error as above appears, Please help, have I miss something or was my procedure correct...
P4, 512ram, WXP 80gHDVery useful.
Good Luck.
My
Si
tes
Maybe you are looking for
-
When attempting to update my iPad from iOS 5.1.1 to iOS 7, I continue to get the message my software is up to date instead of getting a download prompt for iOS 7. Anyone else experience similar issue? If so, how do I resolve?
-
Query taking too much time with dates??
hello folks, I am trying pull some data using the date condition and for somereason its taking too much time to return the data and trunc(al.activity_date) = TRUNC (SYSDATE, 'DD') - 1 --If i use this its takes too much time and al.activity_d
-
Not able to connect SAP through internet with Windows 7 OS
Hi, I am trying to use use latest version of SAP GUI 720 with Windows 7 Home Edition. When I am connecting through Local Area Connection I am able to connet to the sap servers. But when I am trying to connect through Internet with sap router string i
-
BC4J Application Pool Question
Hi, I have created a Application Pool using PoolMgr.getInstance().createPool(poolname, appModName,connectString,env); Now the question is, if the connectString is invalid, even then it creates a pool. Is there a way where i can check the validity of
-
Keep Alive burst configuration ATA 122
Hi Guys, Sorry if this is not posted in the correct place, if it is not please advise me and i will move it. I am hoping this is very quick question but basically i have got some ATAs that when plugging in a sounder (bell) or a Cordless analogue phon