Derive Expressions
Hello All,
My sample data xml file is
<Mappings>
<Mapping LogicalTableSource="OLTP Forecast Summary">
<Expression xmlns:xlink="http://www.w3.org/1999/xlink">
<RefPhysicalColumn dataType="DOUBLE" id="3003:61335" name="S_FCST_ITEM_DTL.REV_AMT" nullable="true"/> *
<RefPhysicalColumn dataType="DOUBLE" id="3003:61338" name="S_FCST_ITEM_DTL.WIN_PROB" nullable="true"/> / 100.0 * IFNULL(
<RefPhysicalColumn dataType="DOUBLE" id="3003:66526" name="S_ETL_EXCH_RATE (Fcst Summary).EXCH_RATE" nullable="false"/>, VALUEOF("ETL Unknown Exchange Rate"))
</Expression>
<PhysicalColumn phycolname="REV_AMT" PhysicalTable="S_FCST_ITEM_DTL" PhysicalSchema="dbo" PhysicalCatalog="Catalog" PhysicalDatabase="Forecasting Siebel OLTP">
<Mappings/>
</PhysicalColumn>
<PhysicalColumn phycolname="WIN_PROB" PhysicalTable="S_FCST_ITEM_DTL" PhysicalSchema="dbo" PhysicalCatalog="Catalog" PhysicalDatabase="Forecasting Siebel OLTP">
<Mappings/>
</PhysicalColumn>
<PhysicalColumn phycolname="EXCH_RATE" PhysicalTable="S_ETL_EXCH_RATE (Fcst Summary)" PhysicalSchema="dbo" PhysicalCatalog="Catalog" PhysicalDatabase="Forecasting Siebel OLTP">
<Mappings/>
</PhysicalColumn>
</Mapping>
</Mappings>
In my report output i want to derive this expression as something like this
S_FCST_ITEM_DTL.REV_AMT * S_FCST_ITEM_DTL.WIN_PROB / 100 * IFNULL(S_ETL_EXCH_RATE (Fcst Summary).EXCH_RATE,VALUEOF("ETL Unknown Exchange Rate"))
Any hep please?
I thought one should be able to.
The "problem" I had was that I'd thrown a Data Viewer on the pipeline, and the Data Viewer grid only showed the first derived column. I jumped to the conclusion that the second column wasn't being created.
I don't know if anyone else has experienced this with Data Viewers following a Derived Column transform. When I had two separate transforms with a Data Viewer following the second, both derived columns appeared in the Data Viewer.
I was able to get both derived columns accomplished in one transform.
Thanks for the help
Chris
Similar Messages
-
Changes to Derived Logical Column not reflected in Answers
Before I go off my rocker and stab myself with my IPhone lightsabre... :-)
I created a new logical column for an existing table in my BM, deriving from an existing column (a datetime field called ESTIMATEDCLOSE) as follows:
MONTHNAME(Sales.OPPORTUNITY.ESTIMATEDCLOSE) || ' - ' || CAST(Year(Sales.OPPORTUNITY.ESTIMATEDCLOSE) AS CHAR(4))
...which should give me something like "Jan - 2008". The problem is that it returned something like "2008/01/31 00:00:00" in Answers - completely unexpected.
I decided to start out small and try something simpler, changing my derived column to be only Sales.OPPORTUNITY.ESTIMATEDCLOSE. This returned "2008/01/31 00:00:00" in Answers - sort of expected.
Then I changed it to MONTHNAME(Sales.OPPORTUNITY.ESTIMATEDCLOSE). This also returned "2008/01/31 00:00:00" in Answer!!!
It almost seems as if a derived logical column is cached in some weird way and changes to the formula is not reflecting in answers. Thinking that something so simple must work and I made a simple mistake somewhere I have spend a good part of the past day playing around with this and trying every possible solution I can think of - no luck. The odd thing is that I would rename my logical column and this will be reflected in Answers, but changes to the derived expression is not reflected.
- I deleted the column and started all over - no luck
- tried creating derived columns using different datetime expressions or even just concatenating strings to each other - no luck.
- Restarted all the Oracle services, thinking it's a cach'ing issue - no luck.
- I rebooted the server - no luck.
Once, when I started out with only MONTHNAME(Sales.OPPORTUNITY.ESTIMATEDCLOSE) I got back correct values in Answers (Jan, Feb, Mar..) and I thought the problem was finally gone. So I added || ' - ' || CAST(Year(Sales.OPPORTUNITY.ESTIMATEDCLOSE) AS CHAR(4)) to the derived formula. Guess what, Answers kept on giving me back only the Month names, completely ignoring my updated formula.
Anybody else ran into this problem? Something so simple should surely work...John,
Yes, cleared the cache (from Dashboard Administration) and also used nqcmd Call SAPurgeAllCache. Restarted BI Server. Still no luck.
I tried your formula and then only got back "2008/01/31" (just the date without the timestamp) - very strange.
Then I noticed the following amazing thing (by accident):
I started with a request in Answers that does not contain my derived column and then add my derived column to the report. The text would be all wrong in this column (Jan, Feb, March). Then I add the same column again to the report and the second added column will magically show the correct strings (Jan - 2008) !!! Even stranger is that the moment I added the same column again to the report, the text on the first column would also magically jump to the correct values (Jan - 2008).
I did a bit more testing and created a blank request and added my derived column as the only column - this time it will show the correct values immediately. It does seem like it's tied to the content already in the request. I went a step further and saved my buggy request and added it to a Dashboard - it worked perfectly in the Dashboard.
Must be something buggy here in Answers when working with derived columns. I'm on 10.1.3.4... -
Error in generating form with 6i
I have installed designer 6i rel 2 with form developer 6i on NT
4.0.
When in design editor, I want to generate the form with generate
module, the system generate "CDR-21600: A running Generator or
Utility has failed."
Also in action column writes: " It is possible that the internal
cache is now in an inconsistent state. You are therefore
recommended to close and restart the application."
Could anyone tell me what is the problem and how to solve it.
thanksHere is an document which describes some known causes of CDR-
21600 errors. I hope it will help you.
PURPOSE
To describe some known causes of CDI-21600 errors and to
suggest possible solutions and workarounds.
SCOPE & APPLICATION
This note was written for users of Oracle Designer releases 2.1.x
and 6.0.
CDI-21600 errors occur most frequently during Design Capture and
when generating forms with the Forms and WebServer generators.
Investigating CDI-21600 errors
In Oracle Designer Release 2.1.2 and Release 6.0, this error has
the form:
CDI-21600 'A running generator or utility has failed'
The Release 2.1.1 error message was: 'Generator or Utility throw
an Exception'
The CDI-21600 error message means that the generator is hitting
an unhandled exception, also known as a GPF (general protection
fault). The CDI-21600 error masks the underlying exception error.
To see the real error do the following:
1. Go into the Registry Editor (REGEDIT).
2. Navigate to HKEY_LOCAL_MACHINE\software\oracle\des2_70
3. Set EXCEPT_HANDLING to 0 (by default it is 1).
Repeat the action that resulted in the error.
Known Causes of CDI-21600 Errors and Possible Solutions
Some of the reasons why CDI-21600 errors occur are listed below.
1. A common cause of CDI-21600 errors is failure to install the
necessary
Developer patches.
See [NOTE:64630.1] Developer Patches required to run
Designer with Developer
2. Check that Designer is running on a supported database. Also
check that the
TNS connection is correct.
See [NOTE:60705.1] Designer Certification Matrix (HTML)
3. Check for 'dangling' foreign keys, in other words FKs no longer
owned by any
table in the repository. Delete all invalid constraints.
Invalid constraints may be created if you use the repository
dump utility to
dump and restore external foreign keys referencing tables
shared into the
application system, without dumping and restoring the tables
that own them.
If you restore a complete dump (rather than a 'skeleton' one),
and then use
the 'Reconnect Share Links' option when restoring, you may be
able to
resolve this problem.
To get a complete list of 'dangling' constraints in your
repository, connect
using SQL*Plus and use the following query:
SELECT app.name, key.name
FROM ci_application_systems app, ci_constraints key
WHERE key.table_reference IS NULL
AND key.application_system_owned_by = app.id;
You can also run CKAZANAL.ANAL_REFERENCES on your
repository and delete all
the invalid constraints that it finds. You can run the Repository
Analyzer
from: Front Panel -> Repository Administration Utility -> Utilities.
NOTE: There may be inconsistencies in the repository that the
Repository
Analyzer cannot fix. You might solve such problems by
dropping all the
tables of your application, recreate them from the ERD,
then use the
DDT and recreate your modules.
[BUG:847190] CDI-21600 during forms generation: 'dangling'
foreign key
"Since the generator is running on a repository that contains
invalid
constraints and the Repository Analyzer solves the problem,
bug closed as
unfeasible to fix."
4. Check your modules for invalid or missing references such as
missing window
placements.
5. Try generating your module against default templates and
object libraries.
6. When capturing forms or libraries, try capturing the form or
library without
application logic, then capture the application logic on its own.
See [NOTE:1064690.6] CDI-21600 when capturing design of
form with
application logic
[BUG:757541] DESCAP: CDI-21600 error reported when
capturing with
application logic
Fixed In Ver: 6.0
[BUG:926383] Duplicate of [BUG:757541] This has been fixed in
2.1.2 patch
779559. However you would be advised to apply a later patch
such as 855635
which fixes more bugs in this area.
7. Make sure that all objects that are referenced by the form have
been
captured into the repository before capturing the form.
8. A CDI-21600 will occur if a lookup usage displays only one
column of
datatype DATE or if the column of datatype DATE is displayed
as the first
item in the block.
Workaround
Add more column usages to the lookup block and do not
display the DATE data
type column usage as the first item in the block.
9. [BUG:810472] CDI-21600 when 'Argument in Caller' is set
Fixed In Ver: 6.5.3.0
Workaround
Make sure that you have an argument in the called module that
is mapped to
the "Argument Passed Value" in the calling module. The only
way to get this
mapping back once the APV has the <Module Argument> label
is to delete it
and recreate it.
10. [BUG:801736] CDI-21600 on design capture of a form with
subclassed object
Fixed In Ver: 6.0.3.1.0 (backport)
Fixed In Ver: 6.5
You have an item that has been subclassed to an object.
Checking the Design
Capture option 'Capture Control Blocks' causes the CDI-21600
error. Uncheck
'Capture Control Blocks' and the problem does not occur. Open
the FMB in
Forms*Builder and look at Data Blocks -> Items. Break the link
to the
object, save the FMB, and the form will capture (similar to
[BUG:794872]).
Alternatively, ensure the link can be established.
11. [BUG:850436] CDI-21600 on generation of a form with template
having
subclassed object group
You try to generate a form out of Designer that uses a user-
defined
template. If a collection of objects in the template is grouped
into an
object group, dragged into the object library and then either
copied or
subclassed into a form, when the form is generated you get a
CDI-21600
error.
12. [BUG:822659] Module generation fails (CDI-21600) with multi-
column PK having
long prompt text
Fixed In Ver: 6.5.3.2
Module generation with multi-column primary key having long
prompt text
causes CDI-21600 with preference MSGSFT set.
Workaround
Shorten the prompt text of PKs may not be not applicable. You
may loose end
user information.
You may have the same problem with a mandatory compound
FK. CASEOFG tries to
generate a message '<P1> must be entered', where <P1>
contains all the
prompts of the bound items from the FK. If you reduce the
length of the
prompts, or set MSGSFT = NULL or WEDI = S or property
Mandatory?=No, it
works correctly.
13. [BUG:792542] Capturing application logic causes CDI-21600
(V2 style
triggers)
Fixed In Ver: 6.5.5
After removal of the v2 triggers, the form captures/merges OK
on 5.0.24.8,
provided patch 875027 has not been applied.
14. [BUG:790877] CDI-21600 if the primary/foreign keys have no
key components
Fixed In Ver: 6.5.11
Generating a module with tables having a primary key not
correctly defined
(no PK component) will cause a CDI-21600 error. This can
occur when
unloading a module from the RON. If you pick up the module
(and only the
module) in the unload set, the table and its PK are unloaded as
a skeleton.
Loading the .DAT file into a new application will create a PK
without a
component.
15. [BUG:771549] CDI-21600 if cannot connect to the DB with
connect string in
Options (Compile)
Fixed In Ver: 6.5.13
If you cannot connect to the DB with the connect string
specified in options
(Compile), the forms generator will fail with CDI-21600.
This problem occurs when you cannot connect to the DB
because:
- the username or password is wrong;
- or the SQL*Net alias is not defined in the TNSNAMES.ORA
file;
- or the SQL*Net listener is not started;
- or the DB is down.
16. [BUG:785106] CDI-21600 when generate master detail form
with preserve layout
[BUG:855812] is a duplicate of this bug.
Fixed In Ver: 5.0.24.6.0 (Bug:860426 Backport request for 2.1.2)
Fixed In Ver: 6.0
Fixed In Ver: 6.5.3
You have a master-detail Form with the Master having items
partly on a TAB
Canvas. Generate Module works OK. You enter Forms Builder
and move some
items on the tabs (just small changes, items are still on the
same tabs).
You change the look of the Detail and change Records
Displayed. Now in
Designer you generate the Module with Preserve Layout. You
get a CDI-21600
error. The problem might reproduce without doing any changes
in Forms
Builder, just by generating with Preserve Layout.
17. [BUG:891306] If primary key column of lookup in check
constraint comment of
base table
Fixed In Ver: 6.5.5
Workaround
Do not use the name of the bound item that is based on the
primary key
column of the lookup table in a check constraint comment of
the base table.
18. [BUG:896026] Forms gen throws assertion failure in
CVINI/BUILDACTIONITEM@/CV/CVI/CVIBNI.CPP
Fixed In Ver: 6.5.7
A problem is caused by a PL/SQL definition (function, package,
procedure)
being defined as a called module for the module you are trying
to generate.
To resolve the problem and enable the module to be generated,
remove all
Called Modules that are PL/SQL definitions (functions,
procedures or
packages).
See [NOTE:2107207.6] CDI-21600 during generation of module
or Assertion
Failure \cv\cvi\cvibni.cpp
19. [BUG:812333] CDI-21600 generating a web module after
adding an unbound item
Fixed In Ver: 6.5.3.0
Backport [BUG:1280667] raised to fix by 6.0.3.9
You add an unbound item (SQL expression) to a Web module.
When you try to
generate the module you get a CDI-21600 error. If you delete the
unbound
item the Web module generates correctly.
In a test case the problem occurred during validation of the
derivation
text, if the master module component was in a different module.
A workaround
was to rearrange module components so that this was not the
case.
20. [BUG:1627963] CCVDIAG::TRACEGENERATORMESSAGE
WHEN GENERATING INCORRECT
DERIVATION EXPRESSION
Message
CDR-21605: Failed while processing Module <mod> in function
CCVDiag::TraceGeneratorMessage BOF
Cause
The generator failed due to an unexpected error - the
error indicates the object the generator was processing
when it failed.
Helena -
RuleFrame and BR's that should be handled the PRE or before triggers.
When a business rule must be handled before INSERT/UPDATE/DELETE of an record, it looks to me like it cannot be implemented using a CAPI.
For example the following BR:
'When value of column is NULL use default value retrieved from other column.'
Do I have to defer from CAPI implementation and use TAPI to implemented this BR in PRE-TRIGGER? Or is there a better way that fits more in the CAPI structure??
Regards,
SebastiaanSebastiaan,
From the CDM Standards & Guidelines Library, volume 2, chapter 7:
"However some change event rules should be implemented using the derivation expression mechanism given in Oracle Designer. This mechanism should be used when a value within the inserted or updated record must be derived or calculated as before the data is written to the database. [...] If more complex derivations are required, you will probably choose to create a derivation function as part of the Custom API, and then call this function in the derivation expression. Note that you must then set the
derivation expression type to Function Call."
For default values you may be able to use the Default Value property of a column (can also be a CAPI function call). However, it will only be applied if that column was not included in the insert call to the TAPI. Otherwise, you will have to use the Derivation Expression, and in the CAPI function you will then have to make sure that it is not executed during update, for example:
if g_inserting
then
return 100000;
else
return p_total_prj_limit;
end if;
Hope this helps,
Sandra -
Query problem in viewobject wizard
I have problem to viewobject creation
In the sql Query of viewobject wizard, I can not use build-in sql function like trunc, nvl to the attribute
if I use function, there is no problem with query test(query is valid). However when I click ok or apply button
it popup message like this:
"the following attributes will be set as transients. Derived expression will be lost"
Does this mean I can not use any build-in fuction in select list in view obect wizard?
Another question is how can I nest sql in the select list?
for instance:
in my select list in Query(viewobject wizard)
I have Query:
select Customer.CUSTOMER_ID,
Customer.BANK_NUMBER,
Customer.TRANS_AMOUNT,
from CUSTOMER Customer
where Customer.CUSTOMER_ID =:0
it works without problem
But if add nested select query:
select Customer.CUSTOMER_ID,
Customer.BANK_NUMBER,
(select sum(c.TRANS_AMOUNT)
from CUSTOMER c
where......
) as "Amount"
Account.FILE_NAME,
from CUSTOMER Customer, ACCOUNT Account
where Customer.CUSTOMER_ID =:0
It did not work.
Can somebody tell me how to solve this problem?
Or is there another way to achieve this?
thankssory i wrote the wrong one
function CF_ITEMFormula return number is
v_item number(30);
begin
IF :P_state ALL then
IF :P_STATE = 'SMALL' THEN
SELECT aa.item
INTO v_item
FROM tableA aa,
tableb bb
WHERE aa.code = bb.code
AND aa.date = :P_date
AND aa.name = :P_name
AND bb.state LIKE '%et%''
AND (case :P_DIV
when ('west') then aa.division = 1
when ('east') then aa.division = 2
when ('south') then aa.division = 3
when ('south & west) then aa.division in (1,3)
else aa.division in (1,2,3)
end);
end if;
IF :P_STATE = 'BIG' THEN
SELECT aa.item
INTO v_item
FROM tableA aa,
tableb bb
WHERE aa.code = bb.code
AND aa.date = :P_date
AND aa.name = :P_name
AND bb.state LIKE '%wa%''
AND (case :P_DIV
when ('west') then aa.division = 1
when ('east') then aa.division = 2
when ('south') then aa.division = 3
when ('south & west) then aa.division in (1,3)
else aa.division in (1,2,3)
end);
end if;
end if;
EXCEPTION
WHEN NO_DATA_FOUND THEN RETURN (0)
end; -
How to implement simple CEV rules?
Hi,
I have some doubts how to implement very simple CEV rules (ex: When enddate is filled then determinationdate is sysdate)
When i follow the CDM Guidelines then I have to create a custom routine and make a derivation expression for the column.
When i use commom sense I do a update in the BR implementation. Saves a lot of work.
What is the opinion of the Headstart team?
Regards, Jan-DerkHi Kathyaini,
For using a XML connection as data source then you have to follow the below:
Configure the following elements as described below:
u2022 <JavaDir>
u2022 <Classpath>
u2022 <JDBCURL>
u2022 <JDBCUserName>
u2022 <JDBCClassName>
It will prompt you for the class name and path of the URL using, that also depends upon the data base you use.
It is different for each database like oracle, sql and DB2.
For configuring the connection you should follow the process for each database.
JDBCURL - The JDBCURL parameter value is the default JDBC connection URL that will be displayed in Crystal Reports when you create a new JDBC data connection. The exact format of the connection URL is specific to the database driver and is provided by the database driver vendor.
For example, the connection URL for the Oracle JDBC driver is:
jdbc:oracle:thin:@<hostname>:<port>:<sid>
Sample for SQL Server:
jdbc:microsoft:sqlserver://SERVERNAME:1433
Sample for DB2:
jdbc:db2:XTREME
JDBCUserName - Default username for the Database
JDBCDriverName - The JDBCDriverName is the default full classname of the JDBC driver that will be displayed in Crystal Reports when creating a new JDBC data connection..
Oracle: oracle.jdbc.driver.OracleDriver
Let me know if any.
Regards,
Naveen. -
We are currently planning or codepage conversion to ASCII. One of our consultants provided us with a converted physical file (from another client) for us to do an initial test with DataMirror's Transformation Server.
These initial tests are failing because DataMirror's Transformation Server does not seem to support derived expressions for data type GRAPHICS.
If I use the command, DSPFFD FILE(ASCIIDATA/MAKT)to display the attributes of the test file MAKT, I get the following output.
=========================================================
Display File Field Description
Input parameters
File . . . . . . . . . . . . . . . . . . . : MAKT
Library . . . . . . . . . . . . . . . . . : ASCIIDATA
File Information
File . . . . . . . . . . . . . . . . . . . : MAKT
Library . . . . . . . . . . . . . . . . . : ASCIIDATA
File location . . . . . . . . . . . . . . . : *LCL
Externally described . . . . . . . . . . . : Yes
Number of record formats . . . . . . . . . : 1
Type of file . . . . . . . . . . . . . . . : Physical
File creation date . . . . . . . . . . . . : 06/08/06
Text 'description'. . . . . . . . . . . . . : Defaults changed by R3loaddb
Record Format Information
Record format . . . . . . . . . . . . . . . : MAKT
Format level identifier . . . . . . . . . . : 350BA14FF8C30
Number of fields . . . . . . . . . . . . . : 5
Record length . . . . . . . . . . . . . . . : 204
Field Level Information
Data Field Buffer Buffer Field Column
Field Type Length Length Position Usage Heading
MANDT GRAPHIC 3 6 1 Both MANDT
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
MATNR GRAPHIC 18 36 7 Both MATNR
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
SPRAS GRAPHIC 1 2 43 Both SPRAS
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
MAKTX GRAPHIC 40 80 45 Both MAKTX
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
MAKTG GRAPHIC 40 80 125 Both MAKTG
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
=========================================================
Can someone with an ASCII system run the same command and send me the output. I just want to verify that the file our consultant sent to us has been converted properly.
Thank you,
RoyHi Roy,
Our MAKE of ECC 5.0 ASCII looks like same - see below.
Mimix has no problem synchronizing it.
Regards,
Victor Lin
Display File Field Description
Input parameters
File . . . . . . . . . . . . . . . . . . . : MAKT
Library . . . . . . . . . . . . . . . . . : R3TSTDATA
File Information
File . . . . . . . . . . . . . . . . . . . : MAKT
Library . . . . . . . . . . . . . . . . . : R3TSTDATA
File location . . . . . . . . . . . . . . . : *LCL
Externally described . . . . . . . . . . . : Yes
Number of record formats . . . . . . . . . : 1
Type of file . . . . . . . . . . . . . . . : Physical
SQL file type . . . . . . . . . . . . . . . : TABLE
File creation date . . . . . . . . . . . . : 12/25/05
Text 'description'. . . . . . . . . . . . . : Defaults changed by R3loaddb
Record Format Information
Record format . . . . . . . . . . . . . . . : MAKT
Format level identifier . . . . . . . . . . : 350BA14FF8C30
Number of fields . . . . . . . . . . . . . : 5
Record length . . . . . . . . . . . . . . . : 204
Field Level Information
Data Field Buffer Buffer Field Column
Field Type Length Length Position Usage Heading
MANDT GRAPHIC 3 6 1 Both MANDT
Default value . . . . . . . . . . . . . . :
UX'003000300030'
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
MATNR GRAPHIC 18 36 7 Both MATNR
Default value . . . . . . . . . . . . . . :
UX'0020'
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
SPRAS GRAPHIC 1 2 43 Both SPRAS
Default value . . . . . . . . . . . . . . :
UX'0020'
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
MAKTX GRAPHIC 40 80 45 Both MAKTX
Default value . . . . . . . . . . . . . . :
UX'0020'
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT
MAKTG GRAPHIC 40 80 125 Both MAKTG
Default value . . . . . . . . . . . . . . :
UX'0020'
Coded Character Set Identifier . . . . . : 13488
UCS2 or Unicode conversion . . . . . . . : *CONVERT -
Hello,
I need a concatenation of 2 names and I don't get it to work properly...
As Unbound Type i have SQL Expression and for Derivation Expression there is L_FWR_ACHTERNAAM||' '||L_FWR_ROEPNAAM
I also tried this with the function concat() itself but this result in the same problem. When I try to generate the module I have the error message:
CDG-01061 ERROR: Unbound Item OIFF0420301.ILD.FWR_NAAM: Invalid derivation expression 'L_FWR_ACHTERNAAM||' '||L_FWR_ROEPNAAM' for this item's type
Anyone who knows what to do?
SofieHi Sofie,
I think you can't do that on a lookup column usage, because these fields are filled using a post-query trigger (and using a SQL Expression it should be part of the main block query). Try using a 'client side function' or create a function in the database that will return the "fwr_naam" using the "fwr_id" and call that function in the SQL Expression - using only columns from the 'main' table usage.
HTH
Roel -
I am new to Oracle Designer. Is there a good guide that explains the product in detail from concept to how-to for 10gR2? I did not find anything except install guides, release notes, and bug fixes at oracle.com. I am specifically trying to understand the table "API"s and why there are 12 triggers being generated for each table. I am unclear as to whether these are necessary or just being accepted as a pre-configured default.
Thank you in advance.
Ajflack wrote:
Certainly it is possible to generate surrogate keys that are not populated from a Sequence. And you don't have to fool with the column's data type either. Go to the key column in the Design Editor or the RON and view the property palette. Under "Definition", you will see the property "Sequence". If this was to be populated from a Sequence, this property would name the Sequence to be used. But since you aren't using a Sequence, you clear this property. Instead, I assume that you have a different way of generating the key. The normal way would be with a PL/SQL function. Change the property named "Server Derived" to "Yes", "Derivation Expression Type" from blank to "Function Call". You could also use a SQL Expression, but that isn't very common. Then write the function name and any parameters to the function in the "Derivation Expression". The only caveat is that you may only use columns from the same table, or pseudo-columns like SYSDATE and USER as parameters to the function.I think that this at a stage 'too late' for me? In my case, I'm using the DDT to convert my entities to table definitions. Those entities that have not had a primary UID defined for them will have an 'ID' column generated on the table definition and, by default, a sequence will also be generated with references between the 'ID' and the sequence.
I think that what you are suggesting is that I modify the 'ID' columns once transformation is complete, whilst I'd prefer to find a way to prevent the creation of sequences during the DDT.
If all else fails, I can always 'force delete' the sequences on completion of the DDT.
Thanks for our help, -
Hi,
I am generating a master-detail-report and want to get
linenumbers for each row, beginning with 1 for each new
master-row.
I have chosen the following approach:
- generated a stored package with
- a package variable num_row
- a function num_increment return number
- a procedure num_reset
- added a DCU with derivation expression num_increment
- added a highlightning condition for one master-DCU with
num_reset;
return(true);
Is there an easier approach to solve the problem ?
Thanks for answers
regards
nullsay l_no is the column to represent the line number and
this should be in the group which reprsents the
detail part
in the detail group create a formula column
name : l_no
datatype : number
u query should be like this
select x,y,1 l_no from xyz where.......
coding for procedure
begin
:l_no := :l_no + 1;
end;
angelika walz (guest) wrote:
: Hi,
: I am generating a master-detail-report and want to get
: linenumbers for each row, beginning with 1 for each new
: master-row.
: I have chosen the following approach:
: - generated a stored package with
: - a package variable num_row
: - a function num_increment return number
: - a procedure num_reset
: - added a DCU with derivation expression num_increment
: - added a highlightning condition for one master-DCU with
: num_reset;
: return(true);
: Is there an easier approach to solve the problem ?
: Thanks for answers
: regards
null -
Entity Object (EO) issue using "Derived from SQL Expression" funtionality
I am using JDeveloper 11.1.1.6
In my use case I am trying to get my EO to return results from a query such as the following:
SELECT table1.my_id,table1.my_des,
count(table2.store_num) as storeCount
FROM table1
LEFT JOIN table2
ON table1.my_id = table2.my_id
group by table1.my_id,table1.my_des
I have chosen to follow the path described in the following URL:
http://www.exploreoracle.com/2010/09/07/using-transient-attribute-with-derived-from-sql-expression-in-jdeveloper-11g/
To begin with, I created my EO's and VO's by using the "Business Components from Tables" wizard. This created EO and VO's for my 2 tables based on the DB schema.
I added the VO's to an app module and tested both VO's. I was able to navigate both VO's.
I then crreated a new attribute for the table1 EO. Please note that table1 does include 7 fields prior to this field therefore this becomes the 8th field. That is important once you get to the exception being thrown. The XML is as follows
<Attribute
Name="StoreCount"
IsUpdateable="false"
IsQueriable="false"
IsPersistent="false"
Precision="5"
Scale="0"
ColumnName="STORECOUNT"
SQLType="NUMERIC"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
Expression="(select coalesce(count(*),0) as StoreCount from table2 where my_id = table1.my_id)">
<Properties>
<SchemaBasedProperties>
<LABEL
ResId="STORE_COUNT"/>
</SchemaBasedProperties>
</Properties>
</Attribute>
I then tested the VO's again in the app module and everything continues to work fine.
I then added the new attribute to the VO by doing "Add Attribute from Entity".
I then tested the VO for Table1 and now get the following error. Could you please advise me as to what I might be doing wrong.
[132] oracle.jbo.AttributeLoadException: JBO-27021: Failed to load custom data type value at index 8 with java object of type oracle.jbo.domain.Number due to java.sql.SQLException.
at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1375)
at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:2536)
at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:3885)
at oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:2555)
at oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:6044)
at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5822)
at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3693)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3548)
at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2261)
at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:5111)
at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2971)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2827)
at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:3068)
at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2785)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1259)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1060)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2810)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2787)
at oracle.jbo.server.ViewRowSetIteratorImpl.first(ViewRowSetIteratorImpl.java:1616)
at oracle.jbo.server.ViewRowSetImpl.first(ViewRowSetImpl.java:3544)
at oracle.jbo.server.ViewObjectImpl.first(ViewObjectImpl.java:10165)
at oracle.adf.model.binding.DCIteratorBinding.setupRSIstate(DCIteratorBinding.java:779)
at oracle.adf.model.binding.DCIteratorBinding.refreshControl(DCIteratorBinding.java:679)
at oracle.jbo.uicli.binding.JUIteratorBinding.refreshControl(JUIteratorBinding.java:474)
at oracle.adf.model.binding.DCIteratorBinding.refresh(DCIteratorBinding.java:4474)
at oracle.adf.model.binding.DCExecutableBinding.refreshIfNeeded(DCExecutableBinding.java:347)
at oracle.adf.model.binding.DCIteratorBinding.getRowSetIterator(DCIteratorBinding.java:1605)
at oracle.jbo.jbotester.panel.BindingPanel.setBindingContext(BindingPanel.java:116)
at oracle.jbo.jbotester.panel.BindingPanel.<init>(BindingPanel.java:88)
at oracle.jbo.jbotester.panel.BindingPanel.<init>(BindingPanel.java:71)
at oracle.jbo.jbotester.form.BindingForm.createMasterPanel(BindingForm.java:63)
at oracle.jbo.jbotester.form.BindingForm.init(BindingForm.java:98)
at oracle.jbo.jbotester.form.JTForm.<init>(JTForm.java:72)
at oracle.jbo.jbotester.form.BindingForm.<init>(BindingForm.java:50)
at oracle.jbo.jbotester.form.FormType$1.createForm(FormType.java:63)
at oracle.jbo.jbotester.form.FormType.createForm(FormType.java:199)
at oracle.jbo.jbotester.form.FormType.createTab(FormType.java:270)
at oracle.jbo.jbotester.form.FormType.showForm(FormType.java:248)
at oracle.jbo.jbotester.form.FormType.showForm(FormType.java:207)
at oracle.jbo.jbotester.form.FormType.showForm(FormType.java:203)
at oracle.jbo.jbotester.tree.ObjTreeNode.showForm(ObjTreeNode.java:140)
at oracle.jbo.jbotester.tree.ObjTreeNode.showForm(ObjTreeNode.java:123)
at oracle.jbo.jbotester.tree.ObjTreeNode$ShowAction.doAction(ObjTreeNode.java:399)
at oracle.jbo.jbotester.AbstractJboAction.actionPerformed(AbstractJboAction.java:97)
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.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
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:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
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:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
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: java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OracleResultSetImpl.getBytes(OracleResultSetImpl.java:1494)
at oracle.jbo.domain.Number$1facClass.createDatum(Number.java:113)
at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1326)
... 81 more
## Detail 0 ##
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OracleResultSetImpl.getBytes(OracleResultSetImpl.java:1494)
at oracle.jbo.domain.Number$1facClass.createDatum(Number.java:113)
at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1326)
at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:2536)
at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:3885)
at oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:2555)
at oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:6044)
at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5822)
at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3693)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3548)
at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2261)
at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:5111)
at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2971)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2827)
at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:3068)
at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2785)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1259)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1060)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2810)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2787)
at oracle.jbo.server.ViewRowSetIteratorImpl.first(ViewRowSetIteratorImpl.java:1616)
at oracle.jbo.server.ViewRowSetImpl.first(ViewRowSetImpl.java:3544)
at oracle.jbo.server.ViewObjectImpl.first(ViewObjectImpl.java:10165)
at oracle.adf.model.binding.DCIteratorBinding.setupRSIstate(DCIteratorBinding.java:779)
at oracle.adf.model.binding.DCIteratorBinding.refreshControl(DCIteratorBinding.java:679)
at oracle.jbo.uicli.binding.JUIteratorBinding.refreshControl(JUIteratorBinding.java:474)
at oracle.adf.model.binding.DCIteratorBinding.refresh(DCIteratorBinding.java:4474)
at oracle.adf.model.binding.DCExecutableBinding.refreshIfNeeded(DCExecutableBinding.java:347)
at oracle.adf.model.binding.DCIteratorBinding.getRowSetIterator(DCIteratorBinding.java:1605)
at oracle.jbo.jbotester.panel.BindingPanel.setBindingContext(BindingPanel.java:116)
at oracle.jbo.jbotester.panel.BindingPanel.<init>(BindingPanel.java:88)
at oracle.jbo.jbotester.panel.BindingPanel.<init>(BindingPanel.java:71)
at oracle.jbo.jbotester.form.BindingForm.createMasterPanel(BindingForm.java:63)
at oracle.jbo.jbotester.form.BindingForm.init(BindingForm.java:98)
at oracle.jbo.jbotester.form.JTForm.<init>(JTForm.java:72)
at oracle.jbo.jbotester.form.BindingForm.<init>(BindingForm.java:50)
at oracle.jbo.jbotester.form.FormType$1.createForm(FormType.java:63)
at oracle.jbo.jbotester.form.FormType.createForm(FormType.java:199)
at oracle.jbo.jbotester.form.FormType.createTab(FormType.java:270)
at oracle.jbo.jbotester.form.FormType.showForm(FormType.java:248)
at oracle.jbo.jbotester.form.FormType.showForm(FormType.java:207)
at oracle.jbo.jbotester.form.FormType.showForm(FormType.java:203)
at oracle.jbo.jbotester.tree.ObjTreeNode.showForm(ObjTreeNode.java:140)
at oracle.jbo.jbotester.tree.ObjTreeNode.showForm(ObjTreeNode.java:123)
at oracle.jbo.jbotester.tree.ObjTreeNode$ShowAction.doAction(ObjTreeNode.java:399)
at oracle.jbo.jbotester.AbstractJboAction.actionPerformed(AbstractJboAction.java:97)
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.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
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:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
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:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
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)
[133] JUErrorHandlerDlg.reportException(oracle.jbo.AttributeLoadException)
[134] LoadFromResultSet failed (8)
[135] DCBindingContainer.reportException :oracle.jbo.AttributeLoadException
[136] oracle.jbo.AttributeLoadException: JBO-27021: Failed to load custom data type value at index 8 with java object of type oracle.jbo.domain.Number due to java.sql.SQLException.
at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1375)
at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:2536)
at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:3885)
at oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:2555)
at oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:6044)
at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5822)
at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3693)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3548)
at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2261)
at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:5111)
at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2971)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2827)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2787)
at oracle.jbo.server.ViewRowSetIteratorImpl.first(ViewRowSetIteratorImpl.java:1616)
at oracle.jbo.server.ViewRowSetImpl.first(ViewRowSetImpl.java:3544)
at oracle.jbo.server.ViewObjectImpl.first(ViewObjectImpl.java:10165)
at oracle.adf.model.binding.DCIteratorBinding.internalGetCurrentRowInBinding(DCIteratorBinding.java:2258)
at oracle.jbo.uicli.binding.JUIteratorBinding.internalGetCurrentRowInBinding(JUIteratorBinding.java:500)
at oracle.adf.model.binding.DCIteratorBinding.getCurrentRow(DCIteratorBinding.java:2203)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.internalCheckPermission(JUCtrlActionBinding.java:2050)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.isOperationEnabled(JUCtrlActionBinding.java:325)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.isActionEnabled(JUCtrlActionBinding.java:296)
at oracle.jbo.uicli.controls.JUNavigationBar._isEnabled(JUNavigationBar.java:1342)
at oracle.jbo.uicli.controls.JUNavigationBar._updateButtonStates(JUNavigationBar.java:1331)
at oracle.jbo.jbotester.NavigationBar._updateButtonStates(NavigationBar.java:99)
at oracle.jbo.uicli.controls.JUNavigationBar$3.run(JUNavigationBar.java:1246)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1585)
at java.awt.Component.setVisible(Component.java:1537)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at oracle.jbo.uicli.controls.JUErrorDialog.showError(JUErrorHandlerDlg.java:289)
at oracle.jbo.uicli.controls.JUErrorHandlerDlg$1myRunnable.run(JUErrorHandlerDlg.java:370)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
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: java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OracleResultSetImpl.getBytes(OracleResultSetImpl.java:1494)
at oracle.jbo.domain.Number$1facClass.createDatum(Number.java:113)
at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1326)
... 60 more
## Detail 0 ##
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OracleResultSetImpl.getBytes(OracleResultSetImpl.java:1494)
at oracle.jbo.domain.Number$1facClass.createDatum(Number.java:113)
at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1326)
at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:2536)
at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:3885)
at oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:2555)
at oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:6044)
at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5822)
at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3693)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3548)
at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2261)
at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:5111)
at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2971)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2827)
at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2787)
at oracle.jbo.server.ViewRowSetIteratorImpl.first(ViewRowSetIteratorImpl.java:1616)
at oracle.jbo.server.ViewRowSetImpl.first(ViewRowSetImpl.java:3544)
at oracle.jbo.server.ViewObjectImpl.first(ViewObjectImpl.java:10165)
at oracle.adf.model.binding.DCIteratorBinding.internalGetCurrentRowInBinding(DCIteratorBinding.java:2258)
at oracle.jbo.uicli.binding.JUIteratorBinding.internalGetCurrentRowInBinding(JUIteratorBinding.java:500)
at oracle.adf.model.binding.DCIteratorBinding.getCurrentRow(DCIteratorBinding.java:2203)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.internalCheckPermission(JUCtrlActionBinding.java:2050)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.isOperationEnabled(JUCtrlActionBinding.java:325)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.isActionEnabled(JUCtrlActionBinding.java:296)
at oracle.jbo.uicli.controls.JUNavigationBar._isEnabled(JUNavigationBar.java:1342)
at oracle.jbo.uicli.controls.JUNavigationBar._updateButtonStates(JUNavigationBar.java:1331)
at oracle.jbo.jbotester.NavigationBar._updateButtonStates(NavigationBar.java:99)
at oracle.jbo.uicli.controls.JUNavigationBar$3.run(JUNavigationBar.java:1246)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1585)
at java.awt.Component.setVisible(Component.java:1537)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at oracle.jbo.uicli.controls.JUErrorDialog.showError(JUErrorHandlerDlg.java:289)
at oracle.jbo.uicli.controls.JUErrorHandlerDlg$1myRunnable.run(JUErrorHandlerDlg.java:370)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)
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)The Is Updatable attribute on the EO is false which I assume is the same as never. Here is the current config for it:
<Attribute
Name="StoreCount"
IsUpdateable="false"
IsQueriable="false"
IsPersistent="false"
Precision="5"
Scale="0"
ColumnName="STORECOUNT"
SQLType="NUMERIC"
Type="oracle.jbo.domain.Number"
ColumnType="NUMBER"
Expression="(select coalesce(count(*),0) as StoreCount from table2 where my_id = table1.my_id)">
<Properties>
<SchemaBasedProperties>
<LABEL
ResId="STORE_COUNT"/>
</SchemaBasedProperties>
</Properties>
</Attribute>
This attribute is in the same order in the VO and it is in the EO. The VO code is as follows:
<ViewAttribute
Name="StoreCount"
IsUpdateable="false"
IsQueriable="false"
IsPersistent="false"
PrecisionRule="true"
EntityAttrName="StoreCount"
EntityUsage="MyTable2EO"/>
The VORowImpl has the attributes in the same order as well.
Do you have any additional suggestions. -
SSIS: Using CASE Statement Within A Derived Column Transformation Expression
The following is my Data Flow:
Ole DB Source > Copy Column > Derived Column >Ole DB Command
My OLE DB Source has the following SQL command task:
SELECT *
FROM Repair R
LEFT OUTER JOIN Vehicle V
ON R.SN = V.SN
AND R.Reg = V.Reg
LEFT OUTER JOIN Product P
ON R.PID = P.PID
This yields a column of concern for me named PartNumber, which are represented by the following 2 formats:
The following are my Copied Columns:
Input Column = PartNumber
Output Alias = Copy of PartNumber
The following are my Derived Column expressions:
Derived Column Name Derived Column Expression
Name Replace 'PartNumber' LEFT(PartNumber,FINDSTRING(PartNumber,"-",1) - 1)
Copy of Name Replace 'Copy of PartNumber' RIGHT([Copy of PartNumber],LEN([Copy of PartNumber]) - FINDSTRING([Copy of PartNumber],"-",1))
So My PartNumber Column is Replaced with ######### of type
string and the Copy of PartNumber column is replaced with
#### of type int
As I stated earlier PartNumber also is in the format of %-%-% which raises the following question:
How can I replace PartNumber Column with NULL if in format of
%-%-% and take the PartNumber and put it in new column named
SubPart while keeping all the logic within SSIS objects?
So in essence I want to do something like the following:
PartNumber = CASE
WHEN 'PartNumber' LIKE '%-%-%'
THEN ABC = PartNumber AND PartNumber IS NULL
END
I have tried the case statement in a Derived Column expression and is not working. Would I add the
CASE statement to the SQL command task in my OLE DB Source?
I hope this question is concise for you.If it must be in SSIS, I would put a derived column stage earlier in the process to do my check for me. Then in the second derived column stage do the check against each output column (part, subpart, copy of part) to decide which way it goes
PS Not sure if it's a 2012 function but SSIS has a function called TOKEN that will allow you to pull your subparts for you rather than the left/right you are doing -
DIfference b/w expression builder logical column and derived logical column
Hi Experts,
Can anyone tellme the difference between expression builder (when we double click the logical column) of derived logical column and expression builder of logical column( we see this in column mapping of LTS) ??
Thanks in advance.Hi,
Formula given in the "expression builder of logical column( we see this in column mapping of LTS)" is performed on the physical layer of the RPD. I guess it is calculated in the Physical Query which is good for performance.
Formula in the expression builder of derived column is calculated in the BMM layer i.e in the logical query.
Regards,
Amrutha. -
I have an column in my source table as
Valyyyymmdd [Valyyyymmdd]
[nvarchar](24) NULL
=================
20130503
20120403
00000000
20110523
20100715
I want to get the difference with getdate()
so i used the below query in my source
DATEDIFF(DAY, IIF( [Valyyyymmdd] ='00000000', CONVERT(VARCHAR(8), GETDATE(), 112), [Valyyyymmdd]) , getdate()) as SalesStageAging
but i need to get the Valyyyymmdd and do ssis derived column to get the difference in date resulting in int value.
I tryed as below
DATEDIFF("d",[Valyyyymmdd] == "00000000" ? GETDATE() : (DT_DBDATE)(SUBSTRING([Valyyyymmdd],1,4) + "-" + SUBSTRING([Valyyyymmdd],5,2) + "-" + SUBSTRING([Valyyyymmdd],7,2)),GETDATE())
kindly provide me the expression which has to be written in derived column expression
ShanmugaRajNote :
SourceColumn [Valyyyymmdd]
[nvarchar](24) NULL
DestinationColumn [DestColumn] [int] NULL,
After Implementing
((DT_WSTR,24)DestColumn == "00000000" ? GETDATE() : (DT_DBDATE)(SUBSTRING((DT_WSTR,10)DestColumn,1,4) + "-" + SUBSTRING((DT_WSTR,10)DestColumn,5,2) + "-" + SUBSTRING((DT_WSTR,10)DestColumn,7,2)))
[OLE_DST TargetTable [89]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 11.0" Hresult: 0x80004005 Description: "Invalid character value for cast specification".
[OLE_DST TargetTable [89]] Error: There was an error with OLE_DST TargetTable.Inputs[OLE DB Destination Input].Columns[DestColumn] on OLE_DST TargetTable.Inputs[OLE DB Destination Input]. The column status returned was: "The value could not be converted because
of a potential loss of data.".
[OLE_DST TargetTable [89]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "OLE_DST TargetTable.Inputs[OLE DB Destination Input]" failed because error code 0xC0209077 occurred, and the error row disposition on "OLE_DST TargetTable.Inputs[OLE
DB Destination Input]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE_DST TargetTable" (89) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (102). The identified component returned
an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.
ShanmugaRaj -
Convert SQL Query to Derived Column Expression
I'm in the process of reworking some SSIS packages I inherited. A lot of these use Execute SQL Statement components to update certain fields in the tables once they've been loaded. I'd like to replace these individual UPDATE statements with Derived Column
components.
I've got 95% of them converted, except for a couple, one of which has me a bit perplexed and was hoping someone could provide some insight.
Essentially, there is a column called POSTPERIOD which is a date in string format YYYYMM (i.e., 201503). The SQL update parses out the month piece and converts it to the month name and populates a column called POSTPERIOD_MONTH.
Here is the SQL:
select DateName(month , DateAdd(month, CONVERT(INT, SUBSTRING(POST_PERIOD,5,2)), 0 ) - 1 )
I'd like to accomplish this using a Derived Column, but not sure how to go about doing this...
If someone could point me in the right direction, it would be greatly appreciated!
Thanks!
A. M. RobinsonVisakh:
Thank you for the reply! I've tried your solution but am getting the following error(s):
Warning 17 Validation warning. Populate STAGING_DIM_AP_DETAIL - RADIO: {ACAA99C4-272C-4641-BF44-B4D4409D1EFB}: The expression "(DT_STR,8,1252)((DT_I4)[SUBSTRING](#85,5,2) == 1 ? (DT_STR,8,1252)"January" : ((DT_I4)[SUBSTRING](#85,5,2)
== 2 ? (DT_STR,8,1252)"February" : ((DT_I4)[SUBSTRING](#85,5,2) == 3 ? (DT_STR,8,1252)"March" : ((DT_I4)[SUBSTRING](#85,5,2) == 4 ? (DT_STR,8,1252)"April" : ((DT_I4)[SUBSTRING](#85,5,2) == 5 ? (DT_STR,8,1252)"May" :
((DT_I4)[SUBSTRING](#85,5,2) == 6 ? (DT_STR,8,1252)"June" : ((DT_I4)[SUBSTRING](#85,5,2) == 7 ? (DT_STR,8,1252)"July" : ((DT_I4)[SUBSTRING](#85,5,2) == 8 ? (DT_STR,8,1252)"August" : ((DT_I4)[SUBSTRING](#85,5,2) == 9 ? (DT_STR,8,1252)"September"
: ((DT_I4)[SUBSTRING](#85,5,2) == 10 ? (DT_STR,8,1252)"October" : ((DT_I4)[SUBSTRING](#85,5,2) == 11 ? (DT_STR,8,1252)"November" : (DT_STR,8,1252)"December")))))))))))" will always result in a truncation of data. The expression
contains a static truncation (the truncation of a fixed value). Dimension Finance - Load STAGING_DIM_AP_DETAIL_DERIVED_COLUMNS.dtsx 0 0
This is the derived column expression I'm using:
(DT_STR,8,1252) ((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 1? (DT_STR,8,1252) "January" : ((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 2 ? (DT_STR,8,1252) "February" : ((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 3 ? (DT_STR,8,1252) "March" :((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 4 ? (DT_STR,8,1252) "April":((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 5 ? (DT_STR,8,1252) "May" : ((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 6 ? (DT_STR,8,1252) "June" : ((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 7 ? (DT_STR,8,1252) "July" : ((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 8 ? (DT_STR,8,1252) "August":((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 9 ? (DT_STR,8,1252) "September":((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 10? (DT_STR,8,1252) "October": ((DT_I4)SUBSTRING([POST_PERIOD],5,2) == 11 ? (DT_STR,8,1252) "November" : (DT_STR,8,1252)"December")))))))))))
Some info that might be of some help in the matter...the POST_PERIOD field is a VARCHAR(8), the POST_PERIOD_MONTH field is also a VARCHAR(8).
There is a computed column Any help would be appreciated once again!!!
A. M. Robinson
Maybe you are looking for
-
IMac 27" does not show "apple logo" on boot, keeps on restarting.
Hello there is something wrong with my girlfriend's iMac. She has the iMac 27" 2.8GHz, Quad-Core Intel Core i5, 8GB RAM She bought it two days ago, it gave her problems last night (after less than a day of usage), when she tried to call the call cent
-
Questions on using classes inside BSP pages
Hi Group, I have a few questions on how to use classes,interfaces,parameters in classes, and etc., relating to OOPs concepts that can be implemented in BSPs. Pls send me some link wherein I can explore things and use it in BSPs. Thanks & Regards, Vis
-
Receiver File adapter encoding
Hi All , My scenario is ABAP Proxy --> XI -->Flat file. My receiver is flat file , comma separated to a NFS.... there is a character ß in one of the fields of source payload. When I am using UTF-8 in the receiver channel , this character is displayed
-
3DMark03 PCMark04 not identifying k8n neo plat
Has anyone had a problem with 3Dmark03 and PCMark04 not identifying their K8N neo platinum thoroughly? When I click on System info for example, I get Model: MS-7030, which is correct, but that's about it. Things like "manufacturer" or the AGP por
-
Can't mount root filesystem, even though it's there
I've moved my system to a new hard drive as described at http://oreilly.com/pub/h/2504 , but I'm having issues booting. GRUB starts the kernel okay, which runs fine until it tries to mount the root drive. It does the "Waiting 10s for /dev/whatever" b