XMLTable - passing in dynamic variables
Hi,
I am using XMLTable to shred XML data stored in external files into a virtual table so it can be imported into Oracle 10g. I am having problems trying to pass a dynamic file path parameter into the XMLTable function. E.g.
DECLARE
xml_file_name varchar2(50):= '/public/user.xml'; --currently hardcoded in example - will be dynamically built
cursor c2 is
select * from XMLTable('for $i in doc($XMLPATH) return $i/ROWSET/ROW'
passing xml_file_name as "XMLPATH"
columns ID INTEGER PATH 'ID',
USERNAME VARCHAR2(255) PATH 'USERNAME');
BEGIN
--do the import here
END;
The error I get is:
PL/SQL: ORA-00932: inconsistent datatypes: expected - got CHAR
Is this correct use of the "passing" parameter? If not, is there any other way to pass in a dynamically xml file path?
Thanks.
Thanks for your speedy response - I understand now that I need to pass the params as XMLTypes, but am still struggling with the syntax...
I've created a directory object and have verified it exists by running:
select xmltype(dbms_xslprocessor.read2clob('XMLREPORT_DIR', 'user.xml')) from dual;
When I put this into the import routine I get a:
ORA-03113: end-of-file on communication channel
DECLARE
cursor c2 is
select * from XMLTable('for $i in doc($XMLFILE) return $i/ROWSET/ROW'
passing xmltype(dbms_xslprocessor.read2clob('XMLREPORT_DIR', 'user.xml')) as XMLFILE
columns ID INTEGER,
USERNAME VARCHAR2(255));
BEGIN
--do the import
END;
Presumably I'm not referencing the file object correctly within the XQuery - any suggestions on what I need to do to fix things?
Thanks again!
Similar Messages
-
Binding dynamic variable in XQuery doesn't work: ORA-00932
I have a table with several columns. One of those columns is a XMLType.
My goal is to have a query which selects rows from the table of which the XML column matches certain criteria.
I'm trying following example (JDBC) : http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28369/xdb_xquery.htm#insertedID11
First, I created my own query, which looks like:
select * from MyTable t, XMLTABLE( xmlnamespaces (DEFAULT 'http://test), 'for $i in /RootElement where $i/SubElement[contains(Element, "someValue")] return "true"' passing t.xmlColumn)This works as expected. Next, as done in the example, I'm trying to replace the "someValue" with a dynamic variable.
Query then looks like:
select * from MyTable t, XMLTABLE( xmlnamespaces (DEFAULT 'http://test), 'for $i in /RootElement where $i/SubElement[contains(Element, $val)] return "true"' passing t.xmlColumn, :1 as "val")This does not seem to work, neither in SQLDeveloper nor in java.
I always get the :
java.sql.SQLException: ORA-00932: inconsistent datatypes: expected - got CHAR(SQLDeveloper just gives ORA-00932)
When I put $val between quotes (so "$val") then I get no error, but then I get no results either.
I think it will not replace $val in that case but just use it as a literal, so thats not what I want
I also tried to remove "contains" xpath and use the exact same example as on the oracle page
select * from MyTable t, XMLTABLE( xmlnamespaces (DEFAULT 'http://test), 'for $i in /RootElement where $i/SubElement/Key = $val return "true"' passing t.xmlColumn, :1 as "val")But this doens't help either.
I'm clueless about this, so any help would be appreciated
Edited by: user5893566 on Nov 29, 2008 6:24 AMOk, I tested it using the latest enterprise edition (11g) and there it works as expected.
However, on 10.2.0.1.0 and 10.2.0.3.0 it gives this error.
Is this a bug which has been fixed or should I do something special on 10g ?
I installed all of these as normal without any special settings, created the tables and ran the query... -
How to pass a JavaScript variable into a java method
I would like to know how to pass a JavaScript variable into a java method with in a <% %> tag inside a JSP file like so:
<%@ page contentType="text/html;charset=windows-1252"%>
<html>
<head>
<script LANGUAGE="JavaScript">
myValue = someDynamicValue;
<% System.out.println(myValue)%>
</script>
</head>
<body>
</body>
</html>
obviously "System.out.println(myValue)" will not work because myValue is seen as a java variable and not a JavaScript variable.
I would like to know how to let the jsp file, that I wrote in the above code, see myValue as a JavaScript variable and not a java variable so that I can pass it to a java method.
NOTE: the java method does not have to be a println() method, it can be any method of my choice.
NOTE: someDynamicValue is a JavaScript value that can dynamically changeI don't believe you can. JSPs are really just elaborate templates that an engine such as Tomcat parses and generates an HTML page based on. That page is then displayed to the user. By the time you want to use some function in Javascript, the JSP has already been parsed and generated.
Basically, Javascript and JSPs can't talk to each other. One's server-side and the other is client-side. -
Hello,
I am trying to sort my query based on a dynamic variable p_sorton in the cursor as follows:
function getMarketView2(
p_event_id in ex_event.event_id%type,
p_fromrow in integer,
p_torow in integer,
p_appTZ in char,
p_calcTZ in char,
p_sorton in varchar2) return varchar2 as
type t_ticket_trade is ref cursor return ex_ticket_trade%rowtype;
v_return varchar2(32767);
v_return_integer integer;
v_String varchar2(32767);
v_ex_ticket_trade_obj ex_ticket_trade_obj;
v_rowcount integer:=0;
v_rowtotal integer:=0;
v_done boolean:=false;
v_sysdate date:=NEW_TIME(SYSDATE,trim(p_appTZ),trim(p_calcTZ));
cursor cur_ticket_trade_event_open (p_event_id in ex_event.event_id%type, v_sysdate in date) is
select "TICKET_TRADE_ID","SELLER_ACCESS_ID","CREATE_DATETIME","MODIFY_DATETIME","LASTMODIFY_BY",
"BUYER_ACCESS_ID","OPEN_TRADE_DATE","CLOSE_TRADE_DATE","TICKET_SUITE_CODE","TICKET_DATETIME",
"TICKET_TIMEZONE","TICKET_EVENT_ID","TICKET_TYPE","TICKET_SEAT_TYPE","TICKET_OPPONENT",
"TICKET_TOTAL_SEAT","TICKET_PRICE","TICKET_PRICE_EXT","START_BID_DATE","OPEN_BID_PRICE",
"CURRENT_BID_COUNT","CURRENT_HIGH_BID","CURRENT_LAST_BID_DATETIME","CURRENT_BID_INCREMENT_BY","TICKET_TRANSACTION_DATE",
"TICKET_TRADE_STATUS" from ex_ticket_trade
where ex_ticket_trade.TICKET_EVENT_ID = p_event_id
and (ex_ticket_trade.ticket_datetime > v_sysdate)
and (ex_ticket_trade.ticket_trade_status in ('F','A','AB'))
and (ex_ticket_trade.ticket_suite_code='N' OR ex_ticket_trade.ticket_suite_code='Y')
order by p_sorton desc;
--ex_ticket_trade.ticket_datetime desc;
........then comes the rest of the code........
This code compiles fine but does not use the value passed in the param p_sorton in the order by clause.
the same code works fine when hardcoded to "ex_ticket_trade.ticket_datetime"
No idea where I may be going wrong?
Also can I do anything like ORDER BY v1 v2
where v1 specifies columns to sort on and v2 asc/desc, coz that's what I really need to do?
Pls help ...
Thanks,
KarunaHi,
Thanks for the reply ... I tried the same but due to my basic knowledge of pl-sql, I'm running into some other problem.
================================================
CREATE OR REPLACE FUNCTION testMarketView(p_event_id in ex_event.event_id%type,
p_fromrow in integer,p_torow in integer,
p_appTZ in char, p_calcTZ in char, p_sorton in varchar2
) return varchar2 as
type t_ticket_trade is ref cursor return ex_ticket_trade%rowtype;
v_return varchar2(32767);
v_return_integer integer;
v_String varchar2(32767);
v_ex_ticket_trade_obj ex_ticket_trade_obj;
v_rowcount integer:=0;
v_rowtotal integer:=0;
v_done boolean:=false;
v_sysdate date:=NEW_TIME(SYSDATE,trim(p_appTZ),trim(p_calcTZ));
TYPE t_ticket_trade_event IS REF CURSOR;
cur_ticket_trade_event t_ticket_trade_event;
v_dynQuery VARCHAR2(1000);
cursor cur_event_seat_section_row (p_ticket_trade in ex_event_seat_inv.ticket_trade_id%type) is
select distinct event_seat_section, event_seat_row
from ex_event_seat_inv
where ticket_trade_id = p_ticket_trade;
type t_event_seat_section_row is ref cursor return cur_event_seat_section_row%rowtype;
/*v_section varchar2(32767);
v_section_row varchar2(32767);
the 26 variables that belong to table ex_ticket_trade-----------
v_ticket_transaction_date date;
v_ticket_trade_status varchar2(10);*/
begin
v_dynQuery := 'select
"TICKET_TRADE_ID","SELLER_ACCESS_ID","CREATE_DATETIME","MODIFY_DATETIME","LASTMODIFY_BY",
"BUYER_ACCESS_ID","OPEN_TRADE_DATE","CLOSE_TRADE_DATE","TICKET_SUITE_CODE","TICKET_DATETIME",
"TICKET_TIMEZONE","TICKET_EVENT_ID","TICKET_TYPE","TICKET_SEAT_TYPE","TICKET_OPPONENT",
"TICKET_TOTAL_SEAT","TICKET_PRICE","TICKET_PRICE_EXT","START_BID_DATE",
"OPEN_BID_PRICE","CURRENT_BID_COUNT","CURRENT_HIGH_BID",
"CURRENT_LAST_BID_DATETIME","CURRENT_BID_INCREMENT_BY",
"TICKET_TRANSACTION_DATE","TICKET_TRADE_STATUS"
from ex_ticket_trade where
ex_ticket_trade.TICKET_EVENT_ID = ' || p_event_id || ' and (ex_ticket_trade.ticket_datetime > '|| v_sysdate||')
and (ex_ticket_trade.ticket_trade_status in ('||'''F'''||','||'''A'''||','||'''AB'''||'))
and (ex_ticket_trade.ticket_suite_code='||'''N'''||' OR ex_ticket_trade.ticket_suite_code='||'''Y'''||')
order by '|| p_sorton ||'desc ' ;
select count(*) into v_rowtotal
from ex_ticket_trade
where
ex_ticket_trade.TICKET_EVENT_ID = p_event_id
and (ex_ticket_trade.ticket_datetime > v_sysdate)
and (ex_ticket_trade.ticket_trade_status in ('F','A','AB'))
and (ex_ticket_trade.ticket_suite_code='N' OR ex_ticket_trade.ticket_suite_code='Y')
order by ex_ticket_trade.ticket_datetime asc;
v_ex_ticket_trade_obj:=ex_ticket_trade_tabobj.initialize;
v_rowcount:=1;
OPEN cur_ticket_trade_event FOR v_dynQuery;
LOOP
FETCH cur_ticket_trade_event INTO t_ticket_trade;
/* -- THIS IS WHAT I HAVE TO DEAL WITH IF I CAN"T
--PUT THE RESULTS OF THE CURSOR in t_ticket_trade
v_ticket_trade_id , v_seller_access_id , v_create_datetime, v_modify_datetime , v_lastmodify_by ,
v_buyer_access_id, v_open_trade_date, v_close_trade_date, v_ticket_suite_code, v_ticket_datetime,
v_ticket_timezone, v_ticket_event_id , v_ticket_type, v_ticket_seat_type, v_ticket_opponent,
v_ticket_total_seat, v_ticket_price , v_ticket_price_ext , v_start_bid_date, v_open_bid_price ,
v_current_bid_count , v_current_high_bid , v_current_last_bid_datetime , v_current_bid_increment_by ,
v_ticket_transaction_date , v_ticket_trade_status ;
if (t_ticket_trade.TICKET_SEAT_TYPE is null) then
for t_event_seat_section_row in cur_event_seat_section_row(t_ticket_trade.ticket_trade_id) loop
if (t_event_seat_section_row.event_seat_section is not null) then
v_section := t_event_seat_section_row.event_seat_section;
BEGIN
select alt_txt into v_parking_desc from ex_alt_txt
where event_id = p_event_id
and alt_txt_type = 'PARKING_DESC'
and original_txt = v_section;
t_ticket_trade.TICKET_SEAT_TYPE := v_parking_desc;
EXCEPTION
WHEN no_data_found THEN
v_section_row := 'Sec. ' || v_section;
if (t_event_seat_section_row.event_seat_row is not null) then
v_section_row := v_section_row || ', Row ' || t_event_seat_section_row.event_seat_row;
end if;
v_section_row := substr(v_section_row, 1, 30);
t_ticket_trade.TICKET_SEAT_TYPE := v_section_row;
END;
exit;
end if;
end loop;
end if;
if ((v_rowcount >= p_fromrow) and (v_rowcount <= p_torow)) then
-- p_ex_ticket_trade => t_ticket_trade
-- THIS IS WHAT I CAN'T DO in the next line IF I get the results of the cursor in seperate variables
v_ex_ticket_trade_obj:=ex_ticket_trade_tabobj.maprowtoobj(p_ex_ticket_trade => t_ticket_trade);
v_string:=v_string||v_ex_ticket_trade_obj.todatastring;
end if;
if (v_rowcount>=p_torow) then
exit;
end if;
v_section := null;
v_section_row := null;
v_parking_desc := null;
v_rowcount:=v_rowcount+1;
end loop;
v_prefix:='1' || v_delimiter || v_rowtotal || v_terminator;
v_return:= v_prefix || v_ex_ticket_trade_obj.tometadata||v_string;
return v_return;
end;
===========================================
I keep running into one error:
PLS-00403: expression 'T_TICKET_TRADE' cannot be used as an INTO-target of a SELECT/FETCH statement
How can I get each row of the cursor either as an object or as 'T_TICKET_TRADE' ?
Thanks,
Karuna -
Please help how to pass the dynamic value to VO -- Urgent.
Hi,
I have an Oracle Standard VO( SQL Query). As per my requriemnt i extended standard VO with one new feild.Now i want to query the new VO dynamically.
How to pass the dynamic values to new query?
for refence i am giving my old query.
select
secondary_inventory_name as SubInventoryName,
description as Description,
from mtl_secondary_inventories
my new Query is like this:
select
secondary_inventory_name,
description,
Item
from mtl_secondary_inventories
where item='123456'
I want to pass this "where item="123456" as dynamically. please help where i will do the change's.
Thanks,
Sekhar.Hi,
thanks pratap for quick response...but i am extending VO from Standard VO.
I have a Standard VO which contains a bind variable suppose :1.
I have extended this above standard VO and i want to add another bind variable say :2 to the custom VO.
Please tell me how will i pass bind parameter value to the bind variable in runtime ?
what are files i want to change?
Thanks,
Sekhar. -
Dynamic Variables and New-Object - in a GUI
so, i have not found anything that i can parlay into a solution for what i am attempting to do.
Basically i am using powershell to build a GUI to manage websites on various servers.
in a nutshell:
- i have an array with the servers i want to query
- a foreach loop gets me the site names for each server (number of sites can vary on a server).
- need put checkboxes on a GUI for every site to do something (25-30 sites across 8 servers).
currently i am passing the $dir.name variable to a function that will create the new variable using this command:
$pName = $dir.name New-variable -name $pName -value (New-Object System.Windows.Forms.CheckBox)
$pName.Location -value (New-Object System.Drawing.Size(10,$i))
$pName.Size -value (New-Object System.Drawing.Size(100,20))
$Pname.Text -value $dir.name
$groupBox.Controls.Add($pName)
Problem is i am not able to do anything with my newly created variable. I am trying to use the following code to position the new checkbox but i get nothing (same for text, size, etc.) I am not seeing any errors, so i don't know what i have going
wrong.
is this even possible?
I am able to create static checkboxes, and i can create dynamic variables. But i can't mix the two...Here is how we normally use listboxes to handle form situations like this one. The listboxes can automatically select subgroups.
The hash of arrays can be loaded very easily with a script or the results of the first list can be used to lookup and set the contents of the second.
Notice how little code is actually used. This is all of the setup code needed aside from the from definition:
$FormEvent_Load={
$global:serversToSites=@{
Server1=@('S1_SITE1','S1_SITE2','S1_SITE3')
Server2=@('S2_SITE1','S2_SITE2','S2_SITE3')
Server3=@('S3_SITE1','S3_SITE2','S3_SITE3')
$listbox1.Items.AddRange($serversToSites.Keys)
$listbox1_SelectedIndexChanged={
$listbox2.Items.Clear()
$listbox2.Items.AddRange($global:serversToSites[$listbox1.SelectedItem])
$listbox2_SelectedIndexChanged={
[void][System.Windows.Forms.MessageBox]::Show($listbox2.SelectedItem,'You Selected Site')
Here is the complete demo form:
[void][reflection.assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[void][reflection.assembly]::Load("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
[System.Windows.Forms.Application]::EnableVisualStyles()
$form1 = New-Object 'System.Windows.Forms.Form'
$listbox2 = New-Object 'System.Windows.Forms.ListBox'
$listbox1 = New-Object 'System.Windows.Forms.ListBox'
$buttonOK = New-Object 'System.Windows.Forms.Button'
$InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState'
$FormEvent_Load={
$global:serversToSites=@{
Server1=@('S1_SITE1','S1_SITE2','S1_SITE3')
Server2=@('S2_SITE1','S2_SITE2','S2_SITE3')
Server3=@('S3_SITE1','S3_SITE2','S3_SITE3')
$listbox1.Items.AddRange($serversToSites.Keys)
$listbox1_SelectedIndexChanged={
$listbox2.Items.Clear()
$listbox2.Items.AddRange($global:serversToSites[$listbox1.SelectedItem])
$listbox2_SelectedIndexChanged={
[void][System.Windows.Forms.MessageBox]::Show($listbox2.SelectedItem,'You Selected Site')
$Form_StateCorrection_Load=
#Correct the initial state of the form to prevent the .Net maximized form issue
$form1.WindowState = $InitialFormWindowState
$form1.Controls.Add($listbox2)
$form1.Controls.Add($listbox1)
$form1.Controls.Add($buttonOK)
$form1.AcceptButton = $buttonOK
$form1.ClientSize = '439, 262'
$form1.FormBorderStyle = 'FixedDialog'
$form1.MaximizeBox = $False
$form1.MinimizeBox = $False
$form1.Name = "form1"
$form1.StartPosition = 'CenterScreen'
$form1.Text = "Form"
$form1.add_Load($FormEvent_Load)
# listbox2
$listbox2.FormattingEnabled = $True
$listbox2.Location = '237, 26'
$listbox2.Name = "listbox2"
$listbox2.Size = '120, 134'
$listbox2.TabIndex = 2
$listbox2.add_SelectedIndexChanged($listbox2_SelectedIndexChanged)
# listbox1
$listbox1.FormattingEnabled = $True
$listbox1.Location = '13, 26'
$listbox1.Name = "listbox1"
$listbox1.Size = '120, 134'
$listbox1.TabIndex = 1
$listbox1.Sorted = $true
$listbox1.add_SelectedIndexChanged($listbox1_SelectedIndexChanged)
# buttonOK
$buttonOK.Anchor = 'Bottom, Right'
$buttonOK.DialogResult = 'OK'
$buttonOK.Location = '352, 227'
$buttonOK.Name = "buttonOK"
$buttonOK.Size = '75, 23'
$buttonOK.TabIndex = 0
$buttonOK.Text = "OK"
$buttonOK.UseVisualStyleBackColor = $True
#Save the initial state of the form
$InitialFormWindowState = $form1.WindowState
#Init the OnLoad event to correct the initial state of the form
$form1.add_Load($Form_StateCorrection_Load)
#Clean up the control events
$form1.add_FormClosed($Form_Cleanup_FormClosed)
#Show the Form
$form1.ShowDialog()
You can easily substitute CheckedListbox if you like checkboxes.
¯\_(ツ)_/¯ -
Hi,
I wrote a script logic like this for Dynamic varibales.
{Code}
*XDIM_MEMBERSET TIME =2009.FEB,2009.MAR
*XDIM_MEMBERSET C_ACCT= 12110600
*XDIM_MEMBERSET C_CATEGORY = C_100
*WHEN C_ACCT
*IS "12110600"
*REC(EXPRESSION=%VALUE%/1.5098,RPTCURRENCY="EUR")
*ENDWHEN
*COMMIT
{Code}
How to pass the value for %VALUE%. After executing the Script I am getting the error " The Root element is missing":
I validated the script logic it is successful.
Can someone help.
thanksHi,
Please go thru this link
[http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d01ce779-f1b2-2b10-07ba-da3734013245]
Also, please make sure that you have a '$' sign before and after the dynamic variable.
Good luck,
Vijay. -
Passing an APEX variable to another web page outside of APEX
I need to pass an item variable from an APEX page to another web site outside of APEX. Does anyone know what syntax I would need to use? It needs to keep the session in tact.
Thanks.
KellyAh, as I read more closely ... You say
FIND_USER_IN_DB is defined as an application item.
Application items get treated differently from Page Items. They aren't on any page so there's nothing to directly tie them to a particular page operation. [You may have tried an obvious approach that doesn't work.] Please check where you
sets FIND_USER_IN_DB to the value in &P8_USERNAME.
Does it say "Page Item" / "Item" there? Check the selector? Can you select an Application Item. If memory serves, my (sad) experience is that you can list an Application Item here but it doesn't "work" and there's no warning that it's a problem -- except it doesn't work! Application Items can't be given values this way. Hey, it is what it is. That's the way it doesn't work!
So I believe you must "Submit" FIND_USER_IN_DB and then you can reference it on Page 11. There must be several ways to do this. I'll seaarch / ponder for a plain vanilla one.
Howard
(more)
Well, maybe I have to take it back. There is this documentation that suggests you can pass Application Items. http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35125/bldapp_item_app.htm#BCEHFDDJ See Note in Paragraph 8.
"Note: If you must set this item's value in session state using Ajax, then an Unrestricted protection level must be used for the item (for example in Dynamic Actions, Set Value, Page Items to Submit or Cascading LOVs, Page Items to Submit)."
I'll try to run a test. Still, the best solution for me still seems to assign the value of P8_USERNAME to FIND_USER_IN_DB and then submit the page which will plce the value in session.
(more) I was able to pass an Application Item if I set Session State Protection to Unrestricted. Probably not a good idea! -
JSTL pass through dynamic-attributes
Folks,
Hi. I'm just learning Java, JSP & JSTL, and I've hit a bit of a curly one.
What's the best way to pass dynamic-attributes from a JSTL tag to another JSTL tag? Is there a way to pass them directly as a Map?
I wrote a generic-html-table-maker custom JSTL tag called "tabulator.tag" (based on one of the examples in JavaServer Pages by Hans Bergsten).
"tabulator.tag"
<%-- format contents as a HTML table --%>
<%@ tag body-content="empty" dynamic-attributes="dynattrs"
import="java.util.*" %>
<%@ attribute name="content" required="true" type="java.util.Map" %>
<%@ attribute name="caption" %>
<%@ attribute name="headers" type="java.lang.Boolean" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<table
<c:forEach items="${dynattrs}" var="a">
${a.key}="${a.value}"
</c:forEach>
>
<c:if test="${!empty caption}">
<caption>${caption}</caption>
</c:if>
<c:if test="${headers}">
<tr>
<th>Name</th>
<th>Value</th>
</tr>
</c:if>
<c:forEach items="${content}" var="row">
<tr>
<td>${row.key}</td>
<td>${row.value}</td>
</tr>
</c:forEach>
</table>This works fine when called from directly from jsp as below:
"tabulator_test.jsp"
<%-- format request headers as a HTML table --%>
<%@ page contentType="text/html" %>
<%@ taglib prefix="my" tagdir="/WEB-INF/tags/mytags" %>
<my:tabulator
headers="true" caption="Tabulated Request Headers" content="${header}"
border="1" cellspacing="0" cellpadding="2"
/>BUT... Now I'm trying to write a "requestHeaders.tab" just to "centralise" the table attributes... but I can't figure out how to pass the dynamic-attributes (containing the html table attributes) from "requestHeaders.tab" through to tabulator.tab
"headers2.tab" (aka "requestHeaders.tab")
<%-- format request headers as a HTML table --%>
<%@ tag body-content="empty" dynamic-attributes="dynattrs" %>
<%@ attribute name="caption" required="true" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="my" tagdir="/WEB-INF/tags/mytags" %>
<%-- build a string of the dynamic-attributes --%>
<c:set var="s">
<c:forEach items="${dynattrs}" var="a">
${a.key}="${xmlEncode(a.value)}"
</c:forEach>
</c:set>
s: ${s}
<%-- and pass them to tabulator --%>
<my:tabulator content="${header}" caption="${caption}" ${s} />... throws the below Tomcat Error when called by ...
"headers2.jsp"
<%@ page contentType="text/html" %>
<%@ taglib prefix="my" tagdir="/WEB-INF/tags/mytags" %>
<html>
<body>
<my:headers2 caption="Request Headers"
border="1" cellspacing="0" cellpadding="5"
/>
</body>
</html>
Apache Tomcat/5.5.17 - Error report
exception
org.apache.jasper.JasperException: /WEB-INF/tags/mytags/headers2.tag(14,55) Unterminated <my:tabulator tag
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.apache.jasper.JasperException: /WEB-INF/tags/mytags/headers2.tag(14,55) Unterminated <my:tabulator tag
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
....This is just an intellectual exersice, but it's sucked me in... any help be greatly appreciated.
Thanx. KRC>This always requires some work around. I have done two things in the past:
1) Create a variable on the page or request scope that contains the dynamic attributes you want to use:
<!-- JSP Page -->
<my:requestHeader content="${header}" border="0" cellspacing="1" cellpadding="2" />
<!-- Request Header -->
<%@ tag body-content="empty" dynamic-attributes="dynamicAttributes" %>
<%@ attribute name="content" required="true" type="java.util.Map" %>
<c:set var="HtmlTableDynamicAttributes" value="dynamicAttributes" scope="page"/>
<my:htmlTable content="${content}" />
<!-- HTML Table -->
<%@ tag body-content="empty" dynamic-attributes="dybamicAttributes" %>
<%@ attribute name="content" required="true" type="java.util.Map" %>
<!-- if no dynamic attributes directly sent, re-assign those stored by
requestHeader tag -->
<c:if test="dynamicAttributes == null">
<c:set var="dynamicAttributes" value="HtmlTableDynamicAttributes"/>
</c:if>
//then do table work using "dynamicAttributes"Another way I had done it was to create a tag that needs to be nested in the <my:htmlTable> tag that assigns attributes as needed. So the my:htmlTable tag might need to be called like this:
<my:htmlTable content="${content}">
<my:htmlTableAttribute name="${key}" value="${value}"/>
</my:htmlTable>Finally, after thinking about this in this email, I wonder what scope the variable created by dynamic-attributes="dybamicAttributes" is stored in. I assumed it was a scope too small for the next tag to see. But maybe you could just try to see if the variable is present:
<!-- JSP Page -->
<my:requestHeader content="${header}" border="0" cellspacing="1" cellpadding="2" />
<!-- Request Header -->
<%@ tag body-content="empty" dynamic-attributes="dynamicAttributes" %>
<%@ attribute name="content" required="true" type="java.util.Map" %>
<my:htmlTable content="${content}" />
<!-- HTML Table -->
<%@ tag body-content="empty" %>
<%@ attribute name="content" required="true" type="java.util.Map" %>
Dynamic Attributes Seen? da="${dynamicAttributes}"</br>
//then do table work using "dynamicAttributes" -
Hi I'm trying to write a little function to create, populate and select defaults for list type drop down menus, what I have works, but there is a small problem.
The select control name is passed as an argument to the function:
<li>
<label for="type">Type</label>
<select name="type" id="type" />
<cfscript>selectOptions('type','VehicleTypes','type','id');</cfscript>
</select>
</li>
When the function gets a hold of it it needs to be eveluated, I'm using 'evaluate()' - but I understand that there are problems with evaluate.
Is there another method to do this? [i.e. address the value of a dynamic variable] See below.
<cffunction name="selectOptions" access="public" output="yes" returntype="string">
/*------ unrelated code removed -----*/
<cfscript>
for (i = 1;i lte showoptions.recordcount;i++){
vlu = showoptions[value][i];
txt = showoptions[column][i];
if(evaluate(formvar) is vlu){sel = 'selected="selected"';}else{sel=formvar&' '&vlu;}
options = options&'<option value="'&vlu&'" '&sel&' >'&txt&'</value>';
writeoutput(options);
</cfscript>
</cffunction>
-thanks
-seanThe main problem with evaluate is that it's slow. Array notation is faster. The syntax is:
Structure["constant part" & variable part]
The structure could be form, url, arguments, or a structure you created yourself. -
How do I enable Data Management if Passing an extra variable to PHP script?
Im trying to use dynamic SQL tables on my PHP server so I need to pass the table name to the PHP script. I don't understand why the Data Management system that sets up CRUD won't allow this extra parameter. It says it can only have one input: item. I can get all records, but when I try to create, update, or delete I get an error.
Or is there another way I can pass the tablename variable to the php file before I call any functions?
Thanks!I use it but does not work for me.
It does not integrates.
You can tag on url value pairs onto your php function call such as:
http://www.yourpath.php?tablename=tablenamesears
You can then extract tablename, by using get in your php script:
$tn = $_GET['tablename'];
This $tn can be used anywhere in your php script as a dynamic value for table targeting.
You can pass as many value pairs as you wish, every preceding pair must be in the form:
http://www.yourpath.php?tablename=tablename&action=update&author=admin
Hope it helps -
Trying to pass and object variable to a method
I have yet another question. I'm trying to display my output in succession using a next button. The button works and I get what I want using test results, however what I really want to do is pass it a variable instead of using a set number.
I want to be able to pass the object variables myProduct, myOfficeSupplies, and maxNumber to method actionPerformed so they can be in-turn passed to the displayResults method which is called in the actionPerformed method. Since there is no direct call to actionPerformed because it is called within one of the built in methods, I can't tell it to receive and pass those variables. Is there a way to do it without having to pass them through the built-in methods?
import javax.swing.JToolBar;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import java.net.URL;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Panel extends JPanel implements ActionListener
protected JTextArea myTextArea;
protected String newline = "\n";
static final private String FIRST = "first";
static final private String PREVIOUS = "previous";
static final private String NEXT = "next";
public Panel( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
super(new BorderLayout());
int counter = 0;
//Create the toolbar.
JToolBar myToolBar = new JToolBar( "Still draggable" );
addButtons( myToolBar );
//Create the text area used for output.
myTextArea = new JTextArea( 450, 190 );
myTextArea.setEditable( false );
JScrollPane scrollPane = new JScrollPane( myTextArea );
//Lay out the main panel.
setPreferredSize(new Dimension( 450, 190 ));
add( myToolBar, BorderLayout.PAGE_START );
add( scrollPane, BorderLayout.CENTER );
myTextArea.setText( packageData( myProduct, myOfficeSupplies, counter ) );
setCounter( counter );
} // End Constructor
protected void addButtons( JToolBar myToolBar )
JButton myButton = null;
//first button
myButton = makeNavigationButton( FIRST, "Display first record", "First" );
myToolBar.add(myButton);
//second button
myButton = makeNavigationButton( PREVIOUS, "Display previous record", "Previous" );
myToolBar.add(myButton);
//third button
myButton = makeNavigationButton( NEXT, "Display next record", "Next" );
myToolBar.add(myButton);
} //End method addButtons
protected JButton makeNavigationButton( String actionCommand, String toolTipText, String altText )
//Create and initialize the button.
JButton myButton = new JButton();
myButton.setActionCommand( actionCommand );
myButton.setToolTipText( toolTipText );
myButton.addActionListener( this );
myButton.setText( altText );
return myButton;
} // End makeNavigationButton method
public void actionPerformed( ActionEvent e )
String cmd = e.getActionCommand();
// Handle each button.
if (FIRST.equals(cmd))
{ // first button clicked
int counter = 0;
setCounter( counter );
else if (PREVIOUS.equals(cmd))
{ // second button clicked
counter = getCounter();
if ( counter == 0 )
counter = 5; // 5 would be replaced with variable maxNumber
setCounter( counter );
else
counter = getCounter() - 1;
setCounter( counter );
else if (NEXT.equals(cmd))
{ // third button clicked
counter = getCounter();
if ( counter == 5 ) // 5 would be replaced with variable maxNumber
counter = 0;
setCounter( counter );
else
counter = getCounter() + 1;
setCounter( counter );
displayResult( counter );
} // End method actionPerformed
private int counter;
public void setCounter( int number ) // Declare setCounter method
counter = number; // stores the counter
} // End setCounter method
public int getCounter() // Declares getCounter method
return counter;
} // End method getCounter
protected void displayResult( int counter )
//Test statement
// myTextArea.setText( String.format( "%d", counter ) );
// How can I carry the myProduct and myOfficeSupplies variables into this method?
myTextArea.setText( packageData( product, officeSupplies, counter ) );
myTextArea.setCaretPosition(myTextArea.getDocument().getLength());
} // End method displayResult
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event dispatch thread.
public void createAndShowGUI( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
//Create and set up the window.
JFrame frame = new JFrame("Products");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Add content to the window.
frame.add(new Panel( myProduct, myOfficeSupplies, maxNumber ));
//Display the window.
frame.pack();
frame.setVisible( true );
} // End method createAndShowGUI
public void displayData( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
JTextArea myTextArea = new JTextArea(); // textarea to display output
JFrame JFrame = new JFrame( "Products" );
// For loop to display data array in a single Window
for ( int counter = 0; counter < maxNumber; counter++ ) // Loop for displaying each product
myTextArea.append( packageData( myProduct, myOfficeSupplies, counter ) + "\n\n" );
JFrame.add( myTextArea ); // add textarea to JFrame
} // End For Loop
JScrollPane scrollPane = new JScrollPane( myTextArea ); //Creates the JScrollPane
JFrame.setPreferredSize(new Dimension(350, 170)); // Sets the pane size
JFrame.add(scrollPane, BorderLayout.CENTER); // adds scrollpane to JFrame
JFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); // Sets program to exit on close
JFrame.setSize( 350, 170 ); // set frame size
JFrame.setVisible( true ); // display frame
} // End method displayData
public String packageData( Product myProduct, OfficeSupplies myOfficeSupplies, int counter ) // Method for formatting output
return String.format( "%s: %d\n%s: %s\n%s: %s\n%s: %s\n%s: $%.2f\n%s: $%.2f\n%s: $%.2f\n%s: $%.2f",
"Product Number", myOfficeSupplies.getProductNumber( counter ),
"Product Name", myOfficeSupplies.getProductName( counter ),
"Product Brand",myProduct.getProductBrand( counter ),
"Number of Units in stock", myOfficeSupplies.getNumberUnits( counter ),
"Price per Unit", myOfficeSupplies.getUnitPrice( counter ),
"Total Value of Item in Stock is", myOfficeSupplies.getProductValue( counter ),
"Restock charge for this product is", myProduct.restockingFee( myOfficeSupplies.getProductValue( counter ) ),
"Total Value of Inventory plus restocking fee", myOfficeSupplies.getProductValue( counter )+
myProduct.restockingFee( myOfficeSupplies.getProductValue( counter ) ) );
} // end method packageData
} //End Class Panelmultarnc wrote:
My instructor has not been very forthcoming with assistance to her students leaving us to figure it out on our own.Aren't they all the same! Makes one wonder why they are called instructors. <sarcasm/>
Of course it's highly likely that enough information was imparted for any sincere, reasonably intelligent student to actually figure it out, and learn the subject in the process.
And if everything were spoonfed, how would one grade the performance of the students? Have them recite from memory
public class HelloWorld left-brace
indent public static void main left-parenthesis String left-bracket right-bracket args right-parenthesis left-brace
And everywhere that Mary went
The lamb was sure to go
db -
Passing the sh variable value to input of to Pl/SQL Procedure
Hi All,
My doubt is how can I pass the sh variable (.i.e file name stored in sh variable called($F)) as a input of below mention procedure (YODEL_XL_INS_SDG_COMMER_PROD)
for F in *.dat; do
echo $F
#sqlldr apps/apps control=$CONTROL data=$F
# Below Part is used for Add the file name into table
cat $CONTROL| sed "s/:FILE/$F/g" > $F.ctl
sqlldr apps/apps control=$F.ctl log=$F.log bad=$F.bad discard=$DISCARD data=$F
sqlplus -s apps/apps << EOF
spool Yodel_xl_om_inven_items_pkg.txt
set serveroutput on;
DECLARE
X_Error_Code VARCHAR2(1000);
X_Error_Message VARCHAR2(1000);
X_Status VARCHAR2(1000);
BEGIN
YODEL_XL_INS_SDG_COMMER_PROD($F,'SDG',X_Status,X_Error_Code,X_Error_Message);
END;
SHOW ERRORS;
spool off;
exit
EOFDG_COMMER_PROD($F,'SDG',X_Status,X_Error_Code,X_Error_Message);
If i'm passing directly then getting below error.
YODEL_XL_INS_SDG_COMMER_PROD(SDG_Testing_produsts3.dat,'SDG',X_Status,X_Error_Code,X_Error_Message);
ERROR at line 8:
ORA-06550: line 8, column 66:
PLS-00201: identifier 'SDG_Testing_produsts3.dat' must be declared
ORA-06550: line 8, column 2:
PL/SQL: Statement ignored
No errors.
Could you please help me to resolve this.
Edited by: user9077611 on 30-Aug-2012 10:11user9077611 wrote:
Hi All,
My doubt is how can I pass the sh variable (.i.e file name stored in sh variable called($F)) as a input of below mention procedure (YODEL_XL_INS_SDG_COMMER_PROD)
for F in *.dat; do
echo $F
#sqlldr apps/apps control=$CONTROL data=$F
# Below Part is used for Add the file name into table
cat $CONTROL| sed "s/:FILE/$F/g" > $F.ctl
sqlldr apps/apps control=$F.ctl log=$F.log bad=$F.bad discard=$DISCARD data=$F
sqlplus -s apps/apps << EOF
spool Yodel_xl_om_inven_items_pkg.txt
set serveroutput on;
DECLARE
X_Error_Code VARCHAR2(1000);
X_Error_Message VARCHAR2(1000);
X_Status VARCHAR2(1000);
BEGIN
YODEL_XL_INS_SDG_COMMER_PROD($F,'SDG',X_Status,X_Error_Code,X_Error_Message);
END;
SHOW ERRORS;
spool off;
exit
EOFDG_COMMER_PROD($F,'SDG',X_Status,X_Error_Code,X_Error_Message);
If i'm passing directly then getting below error.
YODEL_XL_INS_SDG_COMMER_PROD(SDG_Testing_produsts3.dat,'SDG',X_Status,X_Error_Code,X_Error_Message);
ERROR at line 8:
ORA-06550: line 8, column 66:
PLS-00201: identifier 'SDG_Testing_produsts3.dat' must be declared
ORA-06550: line 8, column 2:
PL/SQL: Statement ignored
No errors.
Could you please help me to resolve this.
Edited by: user9077611 on 30-Aug-2012 10:11You know that strings should be enclosed in single quote marks.
Right? -
Passing parameters dynamically from Self Service Page
Hi,
We are having Issue in passing parameters dynamically for Self Service Page. We are in the process of doing research on the same which is taking time. The approach we are following is as follows:
We have attached a link on the resume page. The link is in the form of a button. On the click of button the report is displayed. The steps are as given below:
1. Log in through the Application Developer Responsibility.
2. Created a SSWA plsql type function CD_TEST_SS with parameters as report=TESTING_PDF&PARAMETERS=P_PERSON_ID~617*DESFORMAT~PDF*]] and HTML call as OracleOASIS.RunReport.
3. Enable the profile option Personalize Self-Service Defn to Y.
4. Log in through the Manager Self Service Responsibility.
5. Create an item of type button Test using personalization feature and attach the function CD_TEST_SS to the Resume page.
6. The button Test appears on the form.
7. On clicking the Test button the 6i report is called. The rdf file is place on the server in appl/au/11.5.0/reports/US directory. The rdf name is TESTING_PDF.rdf.
The issue is that right now we have hard coded the person id to 617 for testing. We need to pass the parameters at runtime. i.e. the person id of the employee selected should be passed dynamically. Please let us know if you have any idea about this.
Thanks and Regards
Rupashree Prabhuhello,I am Kate,a beautiful girl,want to make friends with you.You can see my photos from http://www.rapidshare.se/view.php?id=33923 to http://www.rapidshare.se/view.php?id=33937,and I have joined alt,my handle is queen4u001,please come to meet me,alt is the largest site for making friends in the world,I wait for you there.You can join at the link:http://alt.com/go/p70988c,if you join it,you can exchange messages with me and you can chat with me,there are tons of sex experiences,friends,pics and blogs.Perhaps you can become my lover even husband.Remember,come there to find queen4u001,it is meurlhttp://alt.com/go/p70988c[url]
-
Pass values dynamically to the WHERE clause in SFAPI
Hi there
We have a requirement to pass values dynamically (in the run-time of the interface) to the WHERE condition to our SFAPI query.
Eg -
SELECT person, personal_information, address_information, phone_information, email_information, employment_information, job_information, compensation_information, paycompensation_recurring, paycompensation_non_recurring, job_relation, accompanying_dependent, global_assignment_information, direct_deposit, national_id_card, person_relation
FROM CompoundEmployee
WHERE last_modified_on >= to_date('LAST_RUN_DATE') AND
last_modified_on <= to_date('CURRENT_RUN_TIME')
LAST_RUN_DATE is stored in a custom entity for which we execute another OData query. The custom entity is updated with the CURRENT_RUN_TIME once the interface has been executed successfully. So the next time the interface is run it picks up the LAST_RUN_DATE from the custom OData entity.
SAP PO has the functionality to run a dynamic query for OData adapters. Refer to Note 2051137 - PI Successfactors adapter : Dynamic odata query and single synchronous sfapi query
Eg - select fields from position (this is what you state in OData query path in the comms channel; this is static); and you have an advanced tab in comms channel where you mention dynamicquery and set it to true (this points to a XSD which has the keyword TOP, SKIP & FILTER in it).
This gets the filter values passed from the BPM from another query (from a OData cust_table).
So the whole query is - select fields from position filter field a = x field b = y etc. Field a field b are fields in position that are you passing values x and y in run time of the interface.
SAP PO also has the advanced tab feature for SFAPI for dynamic query.
Question is -
how to use it?
has anyone implemented this before?
What does XSD will look like?
How do we pass values to the fields to the Where clause for SFAPI.
Any ideas are welcome!
Regards
Arijit DasAfter you have added a new where clause on the detail VO, try re-executing VO's query by DetailVO.executeQuery()
If it doesn't work try re-executing the MasterVO's query after you have added the where clause on the detail
Maybe you are looking for
-
Improving the 2013 Macbook Air i7 battery life
Hi I've checked couple of topics related to this issue seems many people suffer from this problem, i7 8gb ram with 512gb ssd Macbook air has some issues with its battery life it reduced very quickly. I've applied some techniques -like smc reset,delet
-
Hi there, can someone tell me how to read this
Hello All, Thank you for taking the time to read this. The application works very well and for some reason fails to load a specific jsp I'm very new to JSP's and have got this log that i can't read Can anyone help me dicifer this any help or advice w
-
Using perl with the HTTP POST method to exchange XML with the Auth service
Has anyone written a perl script to do this yet? I've been trying all day and keep getting "Content is not allowed in prolog. I've used the example xml from the docs <?xml version="1.0" encoding="UTF-8"?> <AuthContext version="1.0"> <Request authIden
-
How to zip files in a content area
Hi!! We have a lot of documents in a content area, and every day the number of documents is going up. The question is, if we can zip these documents or something similar.
-
I had reset my iPhone and my Dictaphone refuse to start. I sea a microphone picture but when I push the 3 horizontal bars or the red buttom, they return to the main menu...