How to postFix custom SQL
Back on 9.0.4.5 (with 10.1.3.1 migration on hold for a bit).
I want to do something like the following, but am not finding the trick. Can anybody help?
ReadAllQuery query = new ReadAllQuery(foo.LocatableItem.class);
ExpressionBuilder builder = query.getExpressionBuilder();
String sqlString = SqlBuilder.buildNastyQueryString(criteria);
Expression idExpr = builder.get(QueryKeys.ActionableItem.DBKEY).in(sqlString);<-- illegal
This particular query will return a heterogeneous list of classes, so I would love to use TopLink's ability to build that out and just provide the custom SL for the incredibly nasty search.
Thanks
What's about RFC?
Similar Messages
-
How to specify custom SQL in polling db adapter with logical delete option
Hi all,
I am writing a SOA composite app using JDeveloper SOA Suite 11.1.1.4 connecting to a SQL Server db using a polling DB Adapter with the logical delete option to send data to a BPEL process.
I have requirements which go beyond what is supported in the JDeveloper UI for DB Adapter polling options, namely:
* update more than one column to mark each row read, and
* specify different SQL for the logical delete operation based on whether bpel processing of the data polled was successful or not.
A complicating factor is that the polling involves two tables. Here is my full use-case:
1) Polling will select data derived from two tables: e.g. 'headers' and 'details' simplified for this example:
table: headers
hid - primary key
name - data label
status - 'unprocessed', 'processed', or 'error'
processedDate - null when data is loaded, set to current datetime when row is processed
table: details
hid - foreign key pointed at header.hid
attr - data attribute name
value - value of data attribute
2) There is a many:1 relationship between detail and header rows through the hid columns. The db adapter polling SELECT shall return results from an outer join consisting of one header row and the associated detail rows where header.status = 'unprocessed' and header.hid = details.hid. (This is supported by the Jdeveloper UI)
3) The polled data will be sent to be processed by a bpel process:
3.1) If the bpel processing succeeds, the logical delete (UPDATE) operation shall set header.status = 'processed', and header.processedDate = 'getdate()'.
3.2) If bpel processing fails (e.g. hits a data error while processing the selected data) the logical delete (UPDATE) operation shall set header.status = 'failed', header.processedDate = 'getdate()', and header.errorMsg = '{some text returned from bpel}'.
Several parts of #3 are not supported by the JDeveloper UI: updating multiple columns to mark the row processed, using getdate() to populate a value of one of those column updates, doing different update operations based on the results of the BPEL processing of the data (success or error), and using data obtained from BPEL processing as a value of those column updates (error message).
I have found examples which describe specifying custom SQL using the polling delete option to create a template then modifying the toplink file(s) to specify custom select and update SQL to implement a logical delete. (e.g. http://dlimiter.wordpress.com/2009/11/05/advanced-logic-in-oracle-bpel-polling-database-adapter/ and http://myexperienceswithsoa.blogspot.com/2010/06/db-adapter-polling-tricks.html). But none of them match what I've got in my project, in the first case because maybe because I'm using a higher version of JDeveloper, and in the second I think because in my case two tables are involved.
Any suggestions would be appreciated. Thanks, JohnHi John,
You've raised a good scenario.
First of all let me say that the purpose of the DB polling transaction, is to have an option to initiate a process from a DB table/view and not to update multiple fields in a table (or have other complex manipulation on the table).
So, when choose to update a field in a record, after reading it, you are "telling" the engine not to poll this record again. Sure, i guess you can find a solution/workaround for it, but I don't think this is the way....
The question now is what to do?
You can have another DB adapter where you can update the data after finishing the process. In that case, after reading the data (on polling transaction) - update the header.status = 'processed' for example, and after processing the selected data update the rest of the fields.
Hope it make some sense to you.
Arik -
How to submit custom SQL to the DB in SAP system
Hi
In the project in which I had participated before, there were CRM server and WAS which had IPC server (price decision tool). There was a requirement that IPC referred CRM data, but there was no suitable BAPI in CRM. So, at the UserExit in IPC I made the programs that submit custom SQL to CRM DB via JCo.
In a similar idea, Can I submit custom SQL to the DB of SAP environment (ERP, CRM and so on) from general WAS (don't have the IPC) ?
I already know the way that I make the function module which throw SQL in SAP and call it from WAS. Could you tell me other methods if it exists ?
Best regards,What's about RFC?
-
How to add custom sql operations in Database adapters?
I have a database adapter in ESB configured with insert, update and select operations.
I wanted to add another select operation with pure sql. When I added the operation it gave me error "Start of the root element expected" while registering the service.
Can't we do like this?
I use SOA suite 10.1.3.4.
- SamHi Thanks for reply.
There is an option while configuring the DB adapter "Execute Custom SQL" where you can specify the query you want to execute. It will generate the schema as per the query you enter in the wizard.
I have created adapters with this type of custom SQLs and even I have put multiple operations in the same adapters where all use Custom SQL and they are working fine.
Thease custom SQL operations can be anything insert, update, select and they even work with other operations using procedures in the same adapter. But yes we need to modify the WSDL manuallly.
My problem was that when I try to add the custom SQL operation in the adapter which is configured with normal select, insert and update operation, I was getting the error mentioned.
- Sam -
SQL Override. How to use custom SQL in ODI?
I am new to ODI & have an Informatica background. I am looking for an SQL override capability in ODI. I have an existing SQL which has complex joins, in-line queries, filters, unions & many other complexities. The query reads many existing tables & output 5 fields, which I need to populate in the target table. In Informatica, I would simply create a Target table of these 5 fields, import the same table as both source & target, & then override the source qualifier with the existing SQL. Does ODI have a similar feature?
I know that the same can be achieved using core ODI features, but I am trying to get it done quickly without re-inventing the wheels.
Thanks,
Dinesh.Dinesh
you can not use SQL over-ride feature which informatica has. I am an informatica developer myself. So I can feel your pain. You are gonna miss a lot of features Informatica has. the one you are looking can not be done using ODI Interfaces. But can be done using ODI Procedures. When you create a step in Procedure you would mention the Source and target schema informations/Context Logical Schema info which should do the work for you. If your source and targets are in different Server then create a DBlink between two servers. Now when you put your select query in it put it like an insert query. -
I would like to use Custom SQL in the SQL Viewer. However, I cannot find any documentation in regards to the Syntax and Language features. Is there any documentation I can read to learn how to write Custom SQL?
Hi Jamie,
Please review following links :
http://help.sap.com/businessobject/product_guides/boexir31SP3/en/xi31_sp3_webi_qry_en.pdf
http://www.scribd.com/doc/88111434/Instructions-for-Custom-SQL-Objects
Instructions for Custom SQL Objects
Official Product Tutorials – SAP BusinessObjects Web Intelligence 4.x
Regards,
Veer S. -
How to make custom data validation on standard form.
Hi,
I have some little OAF experience. I have extended VO so far but I am still newbie.
I need to make custom data validation on standard form.
I Oracle Credit Management module on "Create Credit Application: Applicant" form I need
to validate chosen currency against customer setup (whether there is customer profile amount for the currency).
The page is /oracle/apps/ar/creditmgt/application/webui/ARCMCREDITAPPPAGE
There are controllers on the page:
oracle.apps.ar.creditmgt.application.webui.creditAppContentFooterCO 115.14.15104.2
oracle.apps.ar.creditmgt.application.webui.creditApplicationPageCO 115.6
oracle.apps.ar.creditmgt.application.webui.creditAppRegion2CO 115.13.15104.2
oracle.apps.ar.creditmgt.application.webui.creditApplicationCO 115.8.15104.3
oracle.apps.ar.creditmgt.application.webui.creditAppRegion1CO 115.28.15104.4
oracle.apps.ar.creditmgt.application.webui.creditAppBusBackCO 115.6
oracle.apps.ar.creditmgt.application.webui.OCMApplicantInfoRNCO 115.4
creditApplicationPageCO is pageLayout controller.
Please direct me how to achieve it.
Which controller should I extend (if any)?
How to get values from the page (customer site id, currency) and how to run custom sql in my CO class ?
Regards,
MarcinHi Marcin,
You have to find your GO button is handled in which standard controller, (if you click on the about this page, you should be able to identify the controller,
or you can download all the controller .class files and decompile and check the logic).
Then extend that controller(which has the Go button logic, you can see how it has been handled.),
The usual way to check is
if(pageContext.getParameter('<Go button name>') !=null)
Since you want to validate first your custom validation, in the extended controller ProcessFormRequest
dont call the super.processFormRequest unless your validation is success.
Call the super at the end.
Inside your extended controller you have to find your AM and then your required ViewObject to get the user entered values.
Thanks,
With regards,
Kali.
OSSi. -
How can I use the Rownum/Customized SQL query in a Mapping?
Hi,
* I need to use a Rownum for populating one of the target field? How to create a mapping with Rownum?
* How can I use an Dual table in OWB mapping?
* Can I write Customized SQL query in OWB? How can I achieve this in a Mapping?
Thanks in Advance
KishanHi Niels,
As I'm sure you know, the conundrum is that Reports doesn't know how many total pages there will be in the report until it is all done formatting, which is too late for your needs. So, one classical solution to this problem is to run the report twice, storing the total number of pages in the database using a format trigger, and throwing away the output from the first run when you don't know the total number of pages.
Alternatively, you could define a report layout so that the number of pages in the output is completely predictable based upon, say, the number of rows in the main query. E.g., set a limit of one, two, ... rows per page, and then you'll know how many pages there will be simply because you can count the rows in a separate query.
Hope this helps...
regards,
Stewart -
How to custom SQL in ADF JDeveloper 10.1.3.3
How to custom SQL in ADF JDeveloper 10.1.3.3 as follows,
SELECT A.attribute1,
A.attribute2,
B.attribute1,
B.attribute2,
FROM table1 A,
table2 B
WHERE A.id = B.id
Thanks
sumuryHi,
this isn't really a question as it is not obvious where you want to customize it. My initial idea was to suggest SQL Worksheet to you, but then this most likely isn't what you are looking for.
http://blogs.oracle.com/shay/2007/03/02
Frank -
How to update flag in multiple tables using custom sql DB adapter
hi all,
I have a scenario: I want to update flags in multiple tables in DB2. I have used toplink update only to update all tabless after creating relationships between them. But that approach is not working as it couldnot detect emmisions with DB2 and update the complete record with blank values in other columns.
So, i want to use custom sql now. Can anybody help in resolving the issue or in writing the custom sql.
Regards
RichaDear SeánMacGC thanks for reply,
But "a.changed" is not a field in GNMT_CUSTOMER_MASTER_CHG. what i am doing in this procedure is i am collecting bulck data and validating field by field from GNMT_CUSTOMER_MASTER_CHG with GNMT_CUSTOMER_MASTER table as their structure is same.. if v_name is not same as v_name_chg then i am setting changed flag to "Y" changed is "changed dbms_sql.varchar2_table" and updating GNMT_CUSTOMER_MASTER in bluck where changed flag ='Y'...
type custRec is record
n_cust_ref_no dbms_sql.number_table,
v_name dbms_sql.varchar2_table,
v_name_chg dbms_sql.varchar2_table,
rowid rowidArray,
*changed dbms_sql.varchar2_table*
i cannot use simple SQL as i need to validate field for each records with GNMT_CUSTOMER_MASTER_CHG and insert into log file as well.....
to run this procedure:
execute DO_DC_NAME_UPDATE_OTHER_TAB.DO_NAME_UPDATE_OTHER_TAB;
Thanks... -
How to operate multiple querys using DB Adapter and 'Execute Custom SQL'
I have a requirment that I need to create database adapter in your BPEL process with 'Execute Custom SQL' to operate multiple query in DB in one atomic
here are the details:
inbound request:
<ns1:Query_bpelProcessRequest>
<ns1:input>
<ns1:ItemDetail>
<ns1:ItemID>1123DDDS</ns1:ItemID>
</ns1:ItemDetail>
<ns1:ItemDetail>
<ns1:ItemID>1126EWWA</ns1:ItemID>
</ns1:ItemDetail>
<ns1:ItemDetail>
<ns1:ItemID>11208FSAA</ns1:ItemID>
</ns1:ItemDetail>
</ns1:input>
</ns1:Query_bpelProcessRequest>
I use for-each fuction in XSLT to mapping the all ItemID value:
<xsl:template match="/">
<xsl:for-each select="/tns:Query_bpelProcessRequest/tns:input/tns:ItemDetail">
<ns1:QueryFromDB_Input>
<ns1:ItemID>
<xsl:value-of select="tns:ItemID"/>
</ns1:ItemID>
</ns1:QueryFromDB_Input>
</xsl:for-each>
</xsl:template>
and in DB Adapter I use the 'Execute Custom SQL' to query the CONTENT value according the ItemID value:
select distinct CONTENT from agile.item where ITEM_NUMBER=’<ItemID>’
However, in the result, It only query the first item value for <ns1:ItemID>1123DDDS</ns1:ItemID>
<<QueryFromDB_InputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="QueryFromDB_Input_msg">
<QueryFromDB_Input xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB">
<ns1:ItemID>1123DDDS</ns1:ItemID>
</QueryFromDB_Input>
</part></QueryFromDB_InputVariable>
<QueryFromDB_OutputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="QueryFromDB_OutputCollection">
<QueryFromDB_OutputCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryFromDB">
<QueryFromDB_Output>
<ITEM_NUMBER>1123DDDS</ITEM_NUMBER>
<CONTENT >SJIFESSFFJ</CONTENT >
</QueryFromDB_Output>
</QueryFromDB_OutputCollection>
</part></QueryFromDB_OutputVariable>
the other two querys are not operated.
what can I do to operate multiple querys??
ThanksHi Rod,
I are using while loop and assign array inputvalue to the inputvarable of DBadapter now, but actually it doesn't work.
Throw expection
<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"><part name="summary"><summary>XPath query string returns multiple nodes.
According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query /client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID["ItemIndex"] should not return multipe nodes.
Please check the BPEL source at line number "89" and verify the part and xpath query /client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID["ItemIndex"].
Possible reasons behind this problems are: some xml elements has maxOccurs > 1 or the xml data is invalid according to XML Schema.
To verify whether XML data received by a process is valid, user can turn on validateXML switch at the domain administration page.
</summary>
</part></selectionFailure>
my inbound XSD:
<element name="ItemsQuery_bpelProcessRequest">
<complexType>
<sequence>
<element name="input" type="tns:inputType"/>
</sequence>
</complexType>
</element>
<complexType name="inputType">
<sequence>
<element name="inputDetail" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="ProductID" type="string" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
<element name="ItemsQuery_bpelProcessResponse">
<complexType>
<sequence>
<element name="result" type="tns:outputType"/>
</sequence>
</complexType>
</element>
<complexType name="outputType">
<sequence>
<element name="ItemOutput" minOccurs="0" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="item_id" type="string" minOccurs="0"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
DB Adapter XSD:
<xs:schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/QueryItem" xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/QueryItem" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="QueryItem_Input" type="QueryItem_Input"/>
<xs:complexType name="QueryFrom_Input">
<xs:sequence>
<xs:element name="ProductID" type="xs:string" nillable="true"/>
</xs:sequence>
</xs:complexType>
<xs:element name="QueryItem_OutputCollection" type="QueryItem_OutputCollection"/>
<xs:complexType name="QueryItem_OutputCollection">
<xs:sequence>
<xs:element name="QueryItem_Output" type="QueryItem_Output" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="QueryItem_Output">
<xs:sequence>
<xs:element name="item_id" type="xs:string" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
the bpel assign:
<assign name="Initial_Index">
<copy>
<from expression="0"/>
<to variable="ItemIndex"/>
</copy>
</assign>
<while name="While_1"
condition="bpws:getVariableData('ItemIndex')<ora:countNodes('inputVariable','payload','/client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID)">
<sequence name="Sequence_1">
<assign name="Assign_QueryInput">
<copy>
<from variable="inputVariable" part="payload"
query='/client:ItemsQuery_bpelProcessRequest/client:input/client:inputDetail/client:ProductID{bpws:getVariableData('ItemIndex')}'/>
<to variable="QueryItem_InputVariable"
part="QueryItem_nput_msg"
query="/ns2:QueryItem_Input/ns2:ProductID"/>
</copy>
</assign>
<invoke name="Invoke_QueryDB" partnerLink="QueryItem"
portType="ns1:QueryItem_ptt"
operation="QueryItem_PSFT"
inputVariable="QueryItem_InputVariable"
outputVariable="QueryItem_OutputVariable"/>
<assign name="Assign_Output">
<copy>
<from variable="QueryItem_OutputVariable"
part="QueryItem_OutputCollection"
query="/ns2:QueryItem_OutputCollection/ns2:QueryItem_Output/ns2:item_id"/>
<to variable="outputVariable" part="payload"
query='/client:ItemsQuery_bpelProcessResponse/client:result/client:ItemOutput/client:item_id{bpws:getVariableData('ItemIndex')}'/>
</copy>
<copy>
<from expression="bpws:getVariableData('ItemIndex')+1"/>
<to variable="ItemIndex"/>
</copy>
</assign>
</sequence>
</while>
I use {} instead of [] for array, because [] seams not reveal in this message board
seems I can't assign array values to the DB inputvalue, Are there any solutions for this ?
I still haven't found any way for operating multiple querys using DB Adapter.
Thanks
Edited by: user1065212 on 07-Jan-2010 19:39
Edited by: user1065212 on 07-Jan-2010 19:41
Edited by: user1065212 on 07-Jan-2010 19:44
Edited by: user1065212 on 07-Jan-2010 19:45 -
How to set one custom SQL to blank
I would like to manage the update of the objects of a given descriptor in the code of an "about to update" method (toplink event).
At the same time I would like the default update statement does not occur any more. I was thinking about setting the update sql query in my descriptor, using workbench (custom sql section). But what should I write down here.
Please advice,
ChrisThis is fairly advanced; you could do it a few different ways:
1 - Set the custom update SQL to some no-op operation, i.e. "Delete from Dual where 1 = 2".
2 - Use a redirect UpdateObjectQuery for the descriptor's update operation.
3 - Use a custom query subclass for the descriptor's update operation.
i.e. something similar to,
descriptor.getQueryManager().setUpdateQuery(new UpdateObjectQuery() {
public void executeCommit() {
// custom update code here.
public void executeCommitWithChangeSet() {
executeCommit();
4 - Use a custom call on a descriptor's update operation.
What are you doing instead of the update? -
How to invoke Oracle stored procedures in Web Intelligence Custom SQL ?
Hi,
Referring to some older posts, I see that there is a work around to invoke a stored procedure to return results for a Web Intelligence report. Its been posted for calling a MS SQL stored proc, whereas the mentioned method does not seem to work for an Oracle Stored Procedure.
Steps I followed:
a) This is the parameter I have added in the oracle.sbo file => <Parameter Name="Force SQLExecute">Procedures</Parameter>
b) My stored procedure code is as follows:
CREATE OR REPLACE PROCEDURE get_emp_details(var_first_name OUT VARCHAR) AS
BEGIN
SELECT first_name INTO var_first_name
FROM EMP_DETAILS_VIEW
WHERE EMPLOYEE_ID = 100;
END;
c) Custom SQL code I added in my Webi report:
set nocount on;
/* SELECT
EMP_DETAILS_VIEW.FIRST_NAME
FROM
EMP_DETAILS_VIEW
exec get_emp_details;
On trying to validate the SQL it gives me the following error message: "The SQL query has 0 instead of 1 columns.(WIS 10810)"
Has anyone been able to successfully call an Oracle Stored procedure using the above method ?
Version of BO: XI R3 SP2
Oracle version: 11gR2
PS: I am aware that web intelligence since XI R3.1 does allow use of a dedicated Stored Procedure Universe. I would want to know if it could
be made to run in a normal Universe(not a stored procedure Universe)
Thanks for your time and inputs.
Regards,
JezEXECUTE is a SQL Plus command. You can directly call SP in PL/SQL
DECLARE
modif number;
BEGIN
select data_length into modif from user_tab_columns where table_name='CONTROL' and column_name='POSITION';
IF modif < 10 THEN
droptable('CONTROL');
execute immediate('CRETAE TABLE CONTROL ....';
... -
How to show custom error message in WebADI Excel template?
Hi,
I've created a custom Web ADI integrator and associated it with a 'Procedure' based custom interface.
WebADI Interface API Returns is set to "Error Message".
I'm using raise_application_error(-20001, "Actual Error Message") for invalid rows,but custom error message from PL/SQL is not populated on the excel template.
Instead it is showing "SQL exception occurred during PL/SQL upload".
Am I missing anything? How to show custom error message from Pl/SQL procedure to WebADI Excel template?
TIA
NarasimhaThe custom API errors are visible in the BNE log but not on the Excel.
BNE Log=>
12/10/13 2:52 PM Web ADI Upload Job 13008 ERROR BnePLSQLUpload.doUpload: Exception while uploading to PL/SQL API. Error Code: 20001, Message: ORA-20001: -Please enter CONTAINER_ID - Enter PO_NO -
ORA-06512: at "APPS.XXPO_COSTFACTS_WEBADI_PKG", line 264
ORA-06512: at line 1
12/10/13 2:52 PM Web ADI Upload Job 13008 ERROR BnePLSQLUpload.doUpload: Stack trace: java.sql.SQLException: ORA-20001: -Please enter CONTAINER_ID - Enter PO_NO -
ORA-06512: at "APPS.XXPO_COSTFACTS_WEBADI_PKG", line 264
ORA-06512: at line 1
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:202)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1005)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3550)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4710)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
at oracle.apps.bne.integrator.upload.BnePLSQLUpload.doUpload(BnePLSQLUpload.java:284)
at oracle.apps.bne.integrator.upload.BneSAXUploader.processDeepestLevel(BneSAXUploader.java:2346)
at oracle.apps.bne.integrator.upload.BneSAXUploader.startElement(BneSAXUploader.java:1182)
at oracle.xml.parser.v2.XMLContentHandler.startElement(XMLContentHandler.java:181)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1288)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:336)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:303)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:234)
at oracle.apps.bne.integrator.upload.BneUploader.processUpload(BneUploader.java:301)
at oracle.apps.bne.integrator.upload.BneAbstractUploader.processUpload(BneAbstractUploader.java:114)
at oracle.apps.bne.integrator.upload.async.BneAsyncUploadThread.run(BneAsyncUploadThread.java:140)
12/10/13 2:52 PM AJPRequestHandler-HTTPThreadGroup-5 WARNING BneOracleWebAppsContext.getTimeZone CLIENT_TIMEZONE_ID has not been set
12/10/13 2:52 PM AJPRequestHandler-HTTPThreadGroup-5 ERROR BneOracleWebAppsContext.getExtraJDBCConnection recieved the same connection as the base connection. There may be transaction problems.
How to show the same error in the excel template?
Here is the package:
CREATE OR REPLACE PACKAGE BODY APPS.XXPO_COSTFACTS_WEBADI_PKG
AS
PROCEDURE upload_data (
P_CONTAINER_ID IN VARCHAR2
, P_SAIL_DATE IN DATE
, P_PO_NO IN VARCHAR2
) IS
--declare
lv_err_msg VARCHAR2(240);
lf_err_flag NUMBER := 0;
ln_temp NUMBER;
BEGIN
--------------------- checking for mandatory parameters---------------------------
IF (P_CONTAINER_ID IS NULL) THEN
lf_err_flag := 1;
lv_err_msg := lv_err_msg||'-'||'Please enter CONTAINER_ID - ';
END IF;
-------------Validation for Sail Date Format----------------------
IF (P_SAIL_DATE IS NULL) THEN
lf_err_flag := 1;
lv_err_msg := lv_err_msg || ' ' || 'Enter Sail Date - ';
ELSE
BEGIN
SELECT 1
INTO ln_temp
FROM DUAL
WHERE P_SAIL_DATE = TO_DATE (TO_CHAR (P_SAIL_DATE, 'DD-MON-YYYY'), 'DD-MM-YYYY');
EXCEPTION
WHEN NO_DATA_FOUND THEN
lf_err_flag := 1;
lv_err_msg := lv_err_msg || ' Enter Sail date in DD-MON-YYYY Format';
WHEN OTHERS THEN
lf_err_flag := 1;
lv_err_msg := lv_err_msg || ' Enter Sail date in DD-MON-YYYY Format'|| SQLERRM;
END;
END IF;
-------------Validation for PO_Number----------------------
IF (P_PO_NO IS NULL) THEN
lf_err_flag := 1;
lv_err_msg := lv_err_msg || ' ' || 'Enter PO_NO - ';
ELSE
BEGIN
SELECT count(1)
INTO ln_temp
FROM PO_HEADERS
WHERE Attribute4 = P_PO_NO;
EXCEPTION
WHEN NO_DATA_FOUND THEN
lf_err_flag := 1;
lv_err_msg := lv_err_msg || ' No Oracle PO for Biceps PO#'||P_PO_NO;
WHEN OTHERS THEN
lf_err_flag := 1;
lv_err_msg := lv_err_msg || ' Error getting the Oracle PO for Bicpes PO#'||P_PO_NO||' Error-' || SQLERRM;
END;
END IF;
-----------------------Insert Record----------------------------
IF lv_err_msg is NULL THEN
BEGIN
INSERT
INTO XXP2P_HW_COST_FACTORS_STG
CONTAINER_ID
,SAIL_DATE
,PO_NO
, ERROR_FLAG
, ERROR_MSG
,CREATED_BY
,CREATION_DATE
,LAST_UPDATED_BY
,LAST_UPDATE_DATE
,LAST_UPDATE_LOGIN
VALUES
P_CONTAINER_ID
,P_SAIL_DATE
,P_PO_NO
,lf_err_flag
,lv_err_msg
,FND_GLOBAL.USER_ID
, trunc (sysdate)
,FND_GLOBAL.USER_ID
, trunc (sysdate)
,FND_GLOBAL.LOGIN_ID
-- commit;
DBMS_OUTPUT.put_line
'-' || 'After ap_invoices_interface'
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
lf_err_flag := 1;
lv_err_msg := lv_err_msg || ' ' || 'error loading CONTAINER_ID-' || P_CONTAINER_ID || SQLERRM;
raise_application_error(-20001, lv_err_msg);
END;
ELSE
raise_application_error(-20001, lv_err_msg);
END IF;
END upload_data;
END XXPO_COSTFACTS_WEBADI_PKG; -
Discoverer Custom SQL Report with Group By,Having
Hi all,
I'm working with Discoverer 4.1.41.05 and retrieve data from Oracle HRMS.
I want to create a report based on a custom SQL Folder in Discoverer Administration to solve the following scenario:
SELECT EMPLOYEE_NUMBER FROM PER_ALL_PEOPLE_F
MINUS
SELECT EMPLOYEE_NUMBER FROM PER_ALL_PEOPLE_F,PER_EVENTS, PER_BOOKINGS
GROUP BY EMPLOYEE_NUMBER
HAVING SUM(PER_EVENTS.ATTRIBUTE1) >= 10)
The problem is when I run the sql from SQL*Plus is working fine producing the correct result.
When I create the Custom Folder and create a Discoverer report based on it I retrieve all employees since the second select statement retrieve no rows!
Does anyone has any idea how I can solve this problem or if there is another way to create this scenario?
Any feedback is much appreciated.
Thanking you in advance.
ElenaHi Elena,
I think you are missing some joins, you could try something like:
SELECT EMPLOYEE_NUMBER FROM PER_ALL_PEOPLE_F p
WHERE NOT EXISTS
(SELECT NULL
FROM PER_EVENTS e, PER_BOOKINGS b
WHERE b.person_id = p.person_id
AND e.event_id = b.event_id
GROUP BY b.person_id
HAVING SUM(e.ATTRIBUTE1) >= 10)
Rod West
Maybe you are looking for
-
NVSRUN (nVision-Report) - nVision process going in the error status
NVSRUN (nVision-Report) - nVision process going in the error status for all nVision reports submitted from the web. All nVision reports submitted online from the web are failing. Need to create new run control ID? How to do that for NVSRUN process? =
-
Re: - WRT54GS Latest Firmware
Well I just wanted to ask which WRT54GS Firmware is the latest 7.0 or 7.2, they both got the same release date so I really dunno which 1 to go for any suggestions ? Thanks Yours Faithfully, iR0cKtHeBl0cK, ................!Hacking Boss!...............
-
Trying to be sure I have latest versions of Lightroom and Photoshop (I am on monthly subscription plan). After I sign in - told I need "administrative privileges to continue." The initial downloads went without any problem. I am not sure what to d
-
How to pass parameters/atrributes to Servlet from ALBPM
HI Friends, I am invoking servlet from bpm using server configuration, i am able to invoke servlet, but not able to pass parameters dynamically, Also I like to receive response parameters/attributes from servlets? Can any body help me on this? Look f
-
i programmed in jsp/tomcat for quite long time. i write a simple testing servlet - 1 html, 1 servlet (simplest code i could come up with) , just dump it under webapps folder for testing purpose. (server.xml is not changed) folder - web-inf - classes