XML data from a Web Service sometimes missing fields I need, any ideas on a trap?
I get reports from our ERP via a web service to SSRS. Just got asked to make a tweak in a report and find that the WebService only sends data that is needed for this transaction. My issue is our entire system is based around EACH item we make.
New Trading Partner got Case Price. We put two of our items together in a box for them is all that happened.
Need to identify package column that had "ea" hard coded.
When I get a cs item there are more elements that identify conversion factor UOM etc. They are only sent down for CASE items. How do I trap for a column not being there 99.98555% of the time?
_conv = conversion factor. I only receive it with a 2,4,6 in it whe4n the item is not an each.
=iif(Len(Fields!tcibd003_conv.Value) >0 , Fields!inh4470_qshp.Value / Fields!tcibd003_conv.Value , Fields!inh4470_qshp.Value )
How do I trap for this? I tried Fields!tcibd003_conv.IsMissing but that didn't seem to work as expected.
TIA
Hello,
Sorry, I cannot get your requirment and report design structure currently. Can you post the following information to us ? It is benefite us for further analysis.
1. The fields in your dataset. You can post the dataset with sample data if it is convenient.
2. The Report design structure: Table or Matrix and Group inforamation
3. It seems that you want to filter the report data based on a expression, please post more details about the filter logic and expected result.
Regards,
Fanny Liu
Fanny Liu
TechNet Community Support
Similar Messages
-
Get xml data from a web service into Forms?
Hello folks! I am reading active directory info from a web service into forms via imported java classes. I can read from functions that return strings just fine, but I have to get the output from getGroupUsers which returns an XmlDataDocument. How do I read this in and parse it in Forms?
I will be grateful if y'all could point me to an example.
Thank you,
Gary
P.S. Here is a snippet of how I get the full name by passing an ID:
DECLARE
jo ora_java.jobject;
rv varchar2(100);
BEGIN
jo := ADSoapClient.new;
rv := ADSoapClient.getUserName(jo, 'user_ID');
:block3.fullname := rv;Hello,
Since you are already dealing with server-side JAVA, I would suggest you create a method that would do the parsing server-side and what your PL/SQL will be dealing with is just the return string.
Here is a method I use to read an XML file (actually, it is an Oracle Reports file converted to XML) and from the string version, I will do search, replace and other things.
So, from getGroupUsers which returns an XmlDataDocument, you can adapt this method to get your data server-side and let the form module read the output data.
<blockquote>
private String processFileXml(String fileName, int iFile) throws ParserConfigurationException, SAXException,
IOException, XPathExpressionException{
try{
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
InputStream inputStream = new FileInputStream(new File(fileName));
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(inputStream);
StringWriter stw = new StringWriter();
Transformer serializer = TransformerFactory.newInstance().newTransformer();
serializer.transform(new DOMSource(doc), new StreamResult(stw));
return stw.toString();
catch (Exception e){
System.err.println(e);
System.exit(0);
return "OK";
</blockquote>
Let me know if this is of nay help.
Thanks. -
How to retrieve data from a web service
Hi
i am at very beginner level about web services.
I am searching for a simple example of retrieving data from a web services, but cant find.
How can i get xml data from a web service. i dont need to develop the web service it is already ready, i just need how could i fetch data from it.
Can somebody point out or give an example?
Thanks in advanceHi,
just create a skeleton for the Web Service. In JDeveloper, create a new project and then use the "NEW" context menu option.
Navigate to "Business Tier" --> Web Services and select "Web Service Proxy"
In teh following, provide the WSDL reference to create the Java proxy. This gives you accss to the WS without having to parse the XML yourself
Frank -
IiTunes is telling me it can't sync data from my iPhone or iPad at the moment. Any ideas why, please?
Your iPhone's iOS must be same or newer than the one in backups. In your case it is older so you need to update your iPhone and then recover it with backup.
-
How to create XML data source/ and load data from a web service to BI
All,
I m trying to find a 'how to' document (or any document) that shows how to create an XML data source to load data directly from a web service or from an XML file.
I appreciate any help.Hi Mike,
Two more for you:----
/thread/111488 [original link is broken]
http://help.sap.com/saphelp_nw70/helpdata/en/e6/1dd53bb90cbb1ae10000000a11402f/content.htm
Regards,
Suman -
Converting string data from a web service respons into XML structure of XI
Hi,
We receive a string structure from a web service.
The string structure has an xml type format, that is all the tags and its content are in one line .
The WSDL file of the webservice defines its response structure as a string type.
How do i convert this string into proper XML structure (predefined by me in Integration repository).
OR how do i make XI understand this string as an XML structure for further processing.
Later i have to map this XML message type into IDoc.
HimaniHi Himani,
Please find the code for ur requirement -
String need to parse -<response_webservice><from_date>20080101</from_date><to_date>20080202</to_date></response_webservice>
Below mentioned code will convert it to -<MT_DATA><FROMDATE>20080202</FROMDATE><TODATE>20080101</TODATE></MT_DATA>
Create a Message type and map it like this using java mapping ( no need to use Graphical mapping).
Use MT_DATA as source and map it to your target structure .
import java.io.FileInputStream;
import java.io.IOException;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerFactoryConfigurationError;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class XMLParser {
private Map param = null;
public static void main(String[] args) {
try {
XMLParser wdb = new XMLParser();
wdb.parse();
} catch (Exception e) {
e.printStackTrace();
public void setParameter(Map param) {
this.param = param;
if (param == null) {
this.param = new HashMap();
public void parse() {
String document = "<response_webservice><from_date>20080101</from_date><to_date>20080202</to_date></response_webservice>";
try {
Document sdoc;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// Using factory get an instance of document builder
DocumentBuilder db = dbf.newDocumentBuilder();
// parse using builder to get DOM representation of the XML file
sdoc = db.parse(new InputSource(new StringReader(document)));
Element docEle = sdoc.getDocumentElement();
NodeList nl = docEle.getElementsByTagName("from_date");
Element lstElmnt = (Element) nl.item(0);
NodeList nl1 = docEle.getElementsByTagName("to_date");
Element fstElmnt = (Element) nl1.item(0);
System.out.println(fstElmnt.getFirstChild().getNodeValue());
System.out.println(lstElmnt.getFirstChild().getNodeValue());
Document tdoc = db.newDocument();
Element structure = createElement("MT_DATA", null, tdoc);
tdoc.appendChild(structure);
Element statement = createElement("FROMDATE", fstElmnt.getFirstChild().getNodeValue(), tdoc);
structure.appendChild(statement);
Element statement2 = createElement("TODATE", lstElmnt.getFirstChild().getNodeValue(), tdoc);
structure.appendChild(statement2);
System.out.println("Struct is :::"+tdoc.getDocumentElement().toString());
} catch (DOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
static Element createElement(String elementName, String content,
Document document) {
Element returnElement;
returnElement = document.createElement(elementName);
if (content != null) {
Text T = document.createTextNode(content);
returnElement.appendChild(T);
return returnElement;
static Element createElement(String elementName, String content,
String attributeName, String attributeValue, Document document) {
Element returnElement = createElement(elementName, content, document);
returnElement.setAttribute(attributeName, attributeValue);
return returnElement;
Regards,
Kishore -
Retrieve data from a web service.
Hi,
I need to retrieve the data from Oracle CRM On Demand therefore I downloaded the web service "CustomObject15" from Oracle CRM On Demand then used the netbeans Tool to generate XML files then call Web Service "CustomObject15" then I created small java code to retrieve the data through a web service but the data did not retrieved.
Only retrieved "CustomObject15Data.CustomObject15Data@1be0799a"
Kindly, Can you help me and provide me small java code to the data through a web service "CustomObject15".
Best Regards.Hi,
just create a skeleton for the Web Service. In JDeveloper, create a new project and then use the "NEW" context menu option.
Navigate to "Business Tier" --> Web Services and select "Web Service Proxy"
In teh following, provide the WSDL reference to create the Java proxy. This gives you accss to the WS without having to parse the XML yourself
Frank -
Trying to pass xml data to a web service
I'm working on an Apex application that is required to pass data to a web service for loading into another (non Oracle) system. The web service expects two stings as input, the first string is simply an ID, the second string is an xml document. I generate an xml 'string' using PL/SQL in an on-submit process prior to invoking the web service. If I pass regular text for the second parameter, the web service returns an error message which is stored in the response collection and displayed on the page as expected. When I pass the the xml data, I get a no data found error and the response collection is empty. I have tried this in our development environment on Apex 3.1.2 (database version 10.2). I also tried this on our Apex 4.0.2 sandbox (with the same Oracle 10.2 database). I have found that once I have nested xml, I get the no data found message, if I pass partial xml data, I get the error response from the web service. Perhaps I am not generating the xml correctly to pass to the web service (this only just occurred to me as I write this)? Or is there an issue passing xml data from Apex to the web service? Any help will be greatly appreciated! here is the code I use to generate the xml string:
declare
cursor build_data is
select u_catt_request_buid,u_catt_request_name,u_catt_cassette_buid,u_catt_cassette_name
,u_project_name,u_sub_project,replace(u_nominator,'ERROR ','') u_nominator
,replace(replace(u_going_to_vqc,'Yes','true'),'No','false') u_going_to_vqc
,u_promoter,u_cds,u_terminator
,u_primary_trait,u_source_mat_prvd,u_pro_resistance_1,u_vector_type
,nvl(u_my_priority,'Medium') u_my_priority
,replace(replace(u_immediate_trafo,'Yes','true'),'No','false') u_immediate_trafo
,replace(replace(u_new_bps_cmpnt,'Yes','true'),'No','false') u_new_bps_cmpnt
,u_compnt_name,u_new_cmpt_desc,initcap(u_target_crop) u_target_crop,u_corn_line
,u_plant_selection,u_num_of_ind_events,u_num_plants_per_event,u_molecular_quality_events
,replace(replace(u_field,'Yes','true'),'No','false') u_field
,u_t1_seed_request,u_potential_phenotype,u_submission_date
,u_sequence_length,u_trait,u_frst_parent,u_frst_parent_vshare_id,u_cds_vshare_id
,constructid,cassetteid,description
from temp_constructs_lims
order by constructid,description;
v_xml_info varchar2(350);
v_xml_header varchar2(1000);
v_xml_data clob;
v_xml_footer varchar2(50);
v_create_date varchar2(10);
v_scientist_name v_users.full_name%type;
v_scientist_email v_users.email_address%type;
v_primas_code construct.fkprimas%type;
v_nominator_name v_nominators.full_name%type;
v_file_length number;
begin
-- initialize variables
v_create_date := to_char(sysdate,'YYYY-MM-DD');
v_xml_data := null;
-- get name and email address
begin
select full_name,email_address
into v_scientist_name,v_scientist_email
from v_users
where ldap_account = :F140_USER_ID;
exception when no_data_found then
v_scientist_name := '';
v_scientist_email := '';
v_scientist_name := 'Test, Christine';
v_scientist_email := '[email protected]';
end;
-- set up xml file
if :OWNER like '%DEV%' then
v_xml_info := '
<?xml version="1.0" encoding="utf-8"?>
<exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="deService"
xsi:schemaLocation="deService http://mycompany.com/webservices/apexdataexchange/schemas/RTPCATT.xsd">
else
v_xml_info := '
<?xml version="1.0" encoding="utf-8"?>
<exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="deService"
xsi:schemaLocation="deService http://mycompanyprod.com/webservices/apexdataexchange/schemas/RTPCATT.xsd">
end if;
-- populate xml header records
v_xml_header := '<header xmlns="">
<stdXmlVer>2.0</stdXmlVer>
<sendingUnit>'||:P36_UNIT_NUMBER||'</sendingUnit>
<sendingPerson>'||v_scientist_name||'</sendingPerson>
<notification>'||v_scientist_email||'</notification>
<creationDate>'||v_create_date||'</creationDate>
</header>
<entities xmlns="">
for rec in build_data loop
begin
-- get primas code for current construct
select fkprimas
into v_primas_code
from construct
where constructid = rec.constructid;
exception when no_data_found then
v_primas_code := null;
end;
begin
-- get nominator name for current construct
select full_name
into v_nominator_name
from v_nominators
where nominator_id = rec.u_nominator;
exception
when no_data_found then
v_nominator_name := null;
when invalid_number then
v_nominator_name := catt_pkg.full_name_from_user_id(p_user_id => rec.u_nominator);
v_nominator_name := 'Test, Christine';
end;
v_xml_data := v_xml_data||'
<Construct>
<requestBUID>'||rec.u_catt_request_buid||'</requestBUID>
<requestName>'||rec.u_catt_request_name||'</requestName>
<cassetteBUID>'||rec.u_catt_cassette_buid||'</cassetteBUID>
<cassetteName>'||rec.u_catt_cassette_name||'</cassetteName>
<scientist>'||v_scientist_name||'</scientist>
<projectNumber>'||v_primas_code||'</projectNumber>
<subProject>'||rec.u_sub_project||'</subProject>
<comments>'||rec.description||'</comments>
<nominator>'||v_nominator_name||'</nominator>
<goingToVqc>'||rec.u_going_to_vqc||'</goingToVqc>
<primaryTrait>'||rec.u_primary_trait||'</primaryTrait>
<sourceMatPrvd>'||rec.u_source_mat_prvd||'</sourceMatPrvd>
<prokaryoticResistance>'||rec.u_pro_resistance_1||'</prokaryoticResistance>
<vectorType>'||rec.u_vector_type||'</vectorType>
<priority>'||rec.u_my_priority||'</priority>
<immediateTrafo>'||rec.u_immediate_trafo||'</immediateTrafo>
<newComponent>'||rec.u_new_bps_cmpnt||'</newComponent>
<componentName>'||rec.u_compnt_name||'</componentName>
<newComponentDescription>'||rec.u_new_cmpt_desc||'</newComponentDescription>
<targetCrop>'||rec.u_target_crop||'</targetCrop>
<Line>'||rec.u_corn_line||'</Line>
<plantSelection>'||rec.u_plant_selection||'</plantSelection>
<numOfIndEvents>'||rec.u_num_of_ind_events||'</numOfIndEvents>
<numOfPlantsPerEvent>'||rec.u_num_plants_per_event||'</numOfPlantsPerEvent>
<molecularQualityEvents>'||rec.u_molecular_quality_events||'</molecularQualityEvents>
<toField>'||rec.u_field||'</toField>
<potentialPhenotype>'||rec.u_potential_phenotype||'</potentialPhenotype>
</Construct>
end loop;
-- complete xml data
v_xml_footer := '
</entities>
</exchange>
-- complete submission data
:P36_XML_SUBMISSION := null;
:P36_XML_SUBMISSION := v_xml_info||v_xml_header||v_xml_data||v_xml_footer;
:P36_XML_SUBMISSION := trim(:P36_XML_SUBMISSION);
end;Here is an example of :P36_XML_SUBMISSION:
<?xml version="1.0" encoding="utf-8"?> <exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="deService" xsi:schemaLocation="deService http://mycompany.com/webservices/apexdataexchange/schemas/RTPCATT.xsd"> <header xmlns=""> <stdXmlVer>2.0</stdXmlVer> <sendingUnit>10</sendingUnit> <sendingPerson>Test, Christine</sendingPerson> <notification>[email protected]</notification> <creationDate>2011-12-20</creationDate> </header> <entities xmlns=""> <Construct> <requestBUID>150000123</requestBUID> <requestName>AA0000123</requestName> <cassetteBUID>160000123</cassetteBUID> <cassetteName>AB000123</cassetteName> <scientist>Test, Christine</scientist> <projectNumber>T000123</projectNumber> <subProject>Discovery Plus</subProject> <comments>AA0000123 From CATT on 20-DEC-11 </comments> <nominator>Test, Christine</nominator> <goingToVqc>true</goingToVqc> <primaryTrait>promoter::intron::transit:gene::terminator</primaryTrait> <sourceMatPrvd>seed - stuff</sourceMatPrvd> <prokaryoticResistance></prokaryoticResistance> <vectorType>Plant Vector</vectorType> <priority>Medium</priority> <immediateTrafo>true</immediateTrafo> <newComponent></newComponent> <componentName>gene</componentName> <newComponentDescription>unknown function; sequence has some similarity to others</newComponentDescription> <targetCrop>Crop</targetCrop> <Line>Inbred</Line> <plantSelection>smidge ver2</plantSelection> <numOfIndEvents>6</numOfIndEvents> <numOfPlantsPerEvent>1</numOfPlantsPerEvent> <molecularQualityEvents>NA</molecularQualityEvents> <toField>true</toField> <potentialPhenotype></potentialPhenotype> </Construct> </entities> </exchange>My application page is accessed by an action from another page. The user reviews the data in a sql report region. When the use clicks on the Upload (SUBMIT) button, the xml string is generated first and then the web service is invoked. I have tried passing a simple string as the second parameter ("dummydata") and partial data in the xml string ("<sendingPerson>Test, Christine</sendingPerson>") the web service returns this error in both cases:
Error[Validate Data]: (XML) = Data at the root level is invalid. Line 1, position 1.. Cannot validate the XML! Data Exchange not accepted!Once I pass the entire xml string above, I get an Oracle-01403: no data found error. I have opened the web service in IE and pasted my xml input string and received a valid, verified result, so I am sure that the generated xml is correct. I have spoken with the web service developer; there are no log entries created by the web service when I submit the full xml string, so I suspect the failure is in the Apex application.
Thanks,
Christine
I should add that once I have nested tags in the xml, I get the Oracle no data found error ("<header xmlns=""> <stdXmlVer>2.0</stdXmlVer> <sendingUnit>10</sendingUnit> </header>"). I f I do not have nested tags in the xml ("<notification>[email protected]</notification> <creationDate>2011-12-20</creationDate>"), I get the web service response (error).
Edited by: ChristineD on Dec 20, 2011 9:54 AMOk, I think I'm getting closer to thinking this all the way through. When I have used clobs in the past, I've always used the DBMS_CLOB package. I use this to create a temp clob and then make the above calls. I had to go find an example in my own code to remember all of this. So, here is another suggestion... feel free to disregard all the previous code snippets..
declare
cursor build_data is
select u_catt_request_buid,u_catt_request_name,u_catt_cassette_buid,u_catt_cassette_name
,u_project_name,u_sub_project,replace(u_nominator,'ERROR ','') u_nominator
,replace(replace(u_going_to_vqc,'Yes','true'),'No','false') u_going_to_vqc
,u_promoter,u_cds,u_terminator
,u_primary_trait,u_source_mat_prvd,u_pro_resistance_1,u_vector_type
,nvl(u_my_priority,'Medium') u_my_priority
,replace(replace(u_immediate_trafo,'Yes','true'),'No','false') u_immediate_trafo
,replace(replace(u_new_bps_cmpnt,'Yes','true'),'No','false') u_new_bps_cmpnt
,u_compnt_name,u_new_cmpt_desc,initcap(u_target_crop) u_target_crop,u_corn_line
,u_plant_selection,u_num_of_ind_events,u_num_plants_per_event,u_molecular_quality_events
,replace(replace(u_field,'Yes','true'),'No','false') u_field
,u_t1_seed_request,u_potential_phenotype,u_submission_date
,u_sequence_length,u_trait,u_frst_parent,u_frst_parent_vshare_id,u_cds_vshare_id
,constructid,cassetteid,description
from temp_constructs_lims
order by constructid,description;
v_xml_info varchar2(350);
v_xml_header varchar2(1000);
v_xml_data clob;
v_xml_footer varchar2(50);
v_create_date varchar2(10);
v_scientist_name v_users.full_name%type;
v_scientist_email v_users.email_address%type;
v_primas_code construct.fkprimas%type;
v_nominator_name v_nominators.full_name%type;
v_file_length number;
v_xml_body varchar2(32767); --added by AustinJ
v_page_item varchar2(32767); --added by AustinJ
begin
-- initialize variables
v_create_date := to_char(sysdate,'YYYY-MM-DD');
--v_xml_data := null; --commented out by AustinJ
dbms_lob.createtemporary( v_xml_data, FALSE, dbms_lob.session ); --added by AustinJ
dbms_lob.open( v_xml_data, dbms_lob.lob_readwrite ); --added by AustinJ
-- get name and email address
begin
select full_name,email_address
into v_scientist_name,v_scientist_email
from v_users
where ldap_account = :F140_USER_ID;
exception when no_data_found then
v_scientist_name := '';
v_scientist_email := '';
v_scientist_name := 'Test, Christine';
v_scientist_email := '[email protected]';
end;
-- set up xml file
if :OWNER like '%DEV%' then
v_xml_info := '
<?xml version="1.0" encoding="utf-8"?>
<exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="deService"
xsi:schemaLocation="deService http://mycompany.com/webservices/apexdataexchange/schemas/RTPCATT.xsd">
else
v_xml_info := '
<?xml version="1.0" encoding="utf-8"?>
<exchange xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="deService"
xsi:schemaLocation="deService http://mycompanyprod.com/webservices/apexdataexchange/schemas/RTPCATT.xsd">
end if;
-- populate xml header records
v_xml_header := '<header xmlns="">
<stdXmlVer>2.0</stdXmlVer>
<sendingUnit>'||:P36_UNIT_NUMBER||'</sendingUnit>
<sendingPerson>'||v_scientist_name||'</sendingPerson>
<notification>'||v_scientist_email||'</notification>
<creationDate>'||v_create_date||'</creationDate>
</header>
<entities xmlns="">
for rec in build_data loop
begin
-- get primas code for current construct
select fkprimas
into v_primas_code
from construct
where constructid = rec.constructid;
exception when no_data_found then
v_primas_code := null;
end;
begin
-- get nominator name for current construct
select full_name
into v_nominator_name
from v_nominators
where nominator_id = rec.u_nominator;
exception
when no_data_found then
v_nominator_name := null;
when invalid_number then
v_nominator_name := catt_pkg.full_name_from_user_id(p_user_id => rec.u_nominator);
v_nominator_name := 'Test, Christine';
end;
v_xml_body := '
<Construct>
<requestBUID>'||rec.u_catt_request_buid||'</requestBUID>
<requestName>'||rec.u_catt_request_name||'</requestName>
<cassetteBUID>'||rec.u_catt_cassette_buid||'</cassetteBUID>
<cassetteName>'||rec.u_catt_cassette_name||'</cassetteName>
<scientist>'||v_scientist_name||'</scientist>
<projectNumber>'||v_primas_code||'</projectNumber>
<subProject>'||rec.u_sub_project||'</subProject>
<comments>'||rec.description||'</comments>
<nominator>'||v_nominator_name||'</nominator>
<goingToVqc>'||rec.u_going_to_vqc||'</goingToVqc>
<primaryTrait>'||rec.u_primary_trait||'</primaryTrait>
<sourceMatPrvd>'||rec.u_source_mat_prvd||'</sourceMatPrvd>
<prokaryoticResistance>'||rec.u_pro_resistance_1||'</prokaryoticResistance>
<vectorType>'||rec.u_vector_type||'</vectorType>
<priority>'||rec.u_my_priority||'</priority>
<immediateTrafo>'||rec.u_immediate_trafo||'</immediateTrafo>
<newComponent>'||rec.u_new_bps_cmpnt||'</newComponent>
<componentName>'||rec.u_compnt_name||'</componentName>
<newComponentDescription>'||rec.u_new_cmpt_desc||'</newComponentDescription>
<targetCrop>'||rec.u_target_crop||'</targetCrop>
<Line>'||rec.u_corn_line||'</Line>
<plantSelection>'||rec.u_plant_selection||'</plantSelection>
<numOfIndEvents>'||rec.u_num_of_ind_events||'</numOfIndEvents>
<numOfPlantsPerEvent>'||rec.u_num_plants_per_event||'</numOfPlantsPerEvent>
<molecularQualityEvents>'||rec.u_molecular_quality_events||'</molecularQualityEvents>
<toField>'||rec.u_field||'</toField>
<potentialPhenotype>'||rec.u_potential_phenotype||'</potentialPhenotype>
</Construct>
'; --modified by AustinJ
dbms_lob.writeappend( v_xml_data, length(v_xml_body), v_xml_body); --added by AustinJ
end loop;
-- complete xml data
v_xml_footer := '
</entities>
</exchange>
-- complete submission data
v_page_item := null;
v_page_item := v_xml_info||v_xml_header||wwv_flow.do_substitutions(wwv_flow_utilities.clob_to_varchar2(v_xml_data))||v_xml_footer; --added by AustinJ
:P36_XML_SUBMISSION := trim(v_page_item); --added by AustinJ
dbms_lob.close( v_xml_data); --added by AustinJ
if v_xml_data is not null then
dbms_lob.freetemporary(v_xml_data); --added by AustinJ
end if; --added by AustinJ
end;This code will use the Database to construct your clob and then convert it back to a varchar2 for output to your webservice. This makes more sense to me now and hopefully you can follow what the process is doing.
You don't technically need the two varchar2(36767) variables. I used two for naming convention clarity sake. You could use just one multipurpose variable instead.
If you have any questions, just ask. I'll help if I can.
Austin
Edited by: AustinJ on Dec 20, 2011 12:17 PM
Fixed spelling mistakes. -
Loading data from a web service to BW
Hi
I have a web service from a company we work with,
It looks like http://xxxx.info/CustomerMissions.asmx
I want to take the data that the web service returns and upload it into SAP BW.
We are in BW 70105.
I've read about the soamanager transaction and I want to know if that's the way to go.
I've managed to run the transaction and started configuring it, but I couldn't find a good guide.
Any suggestions?
ShlomiHi Sholmi,
Have a look at this link.
[http://www.****************/Tutorials/BI/WebService/Index.htm]
Thanks,
Vishall. -
How to update data from a web service
Hi all,
I have a webservice that returns some data as e4x type. I
pull the data i need and put it into an object. I manipulate that
data, then I want to write it back with another webservice. I get
serialization errors when I call the update method. I must be doing
something wrong here. Can anyone help?
Webservice Methods:
<mx:operation name="FetchfrmContact" resultFormat="e4x"
result = "fetchfrmContactResultHandler()">
<mx:request/>
</mx:operation>
<mx:operation name="updatefrmContactCampaigns"
resultFormat="e4x"
result="updatefrmContactCampaignsResultHandler()">
<mx:request/>
</mx:operation>
Below is what .lastResult looks like from the fetch method of
the webservice. I update the different campaign fields by adding or
removing them in an object called contactData.
<FetchfrmContactResponse xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns="urn:DefaultNamespace" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<FetchfrmContactReturn>
<campaignsOptedOut>
"BP - 411"
</campaignsOptedOut>
<campaignsOptedOut>
"200700 - Avnet Leads"
</campaignsOptedOut>
<campaignsOptedOut>
"200700 - BP-AdHoc"
</campaignsOptedOut>
<campaignsReceived>
"BP - 411"
</campaignsReceived>
<campaignsSubscribed>
"200700 - Avnet Leads"
</campaignsSubscribed>
<campaignsSubscribed>
"200700 - BP-AdHoc"
</campaignsSubscribed>
<campaignsSubscribed>
"200700 - BP - BCS"
</campaignsSubscribed>
<campaignsSubscribed>
"200700 - BP - Extracomm"
</campaignsSubscribed>
<campaignsSubscribed>
"200700 - BP - IBM"
</campaignsSubscribed>
<campaignsSubscribed>
"BP - 411"
</campaignsSubscribed>
<companyDocID>
"CMDPDN-65HTAK"
</companyDocID>
<companyName>
"Provena Hospitals"
</companyName>
<contactDocID>
"CTGSCG-6AHLWW"
</contactDocID>
<contactEmail>
"[email protected]"
</contactEmail>
<contactFirst>
"Steve"
</contactFirst>
<contactLast>
"Rieger"
</contactLast>
<docID xsi:nil="true"/>
<fetchBy>
"email"
</fetchBy>
<form xsi:nil="true"/>
<locationDocID/>
</FetchfrmContactReturn>
</FetchfrmContactResponse>
The fetch method returns an object of type FrmContactType and
the update method takes an object of type FrmContactType as it's
parameter
package com.psc.components
import mx.collections.ArrayCollection;
import mx.collections.XMLListCollection;
[Bindable]
public class FrmContactType
// field variables
public var contactDocID : String;
public var companyDocID : String;
public var locationDocID : String;
public var campaignsOptedOut : XMLListCollection; //
SFProfileField_70
public var campaignsReceived : XMLListCollection; //
SFProfileField_68
public var campaignsSubscribed : XMLListCollection; //
SFProfileField_69
public var contactEmail : String = "";
public var fetchBy : String;
public var docID : String;
public var form : String;
public var contactFirst : String = "";
public var contactLast : String = "";
public var companyName : String = "";
Here is the result handler of the fetch method
private function fetchfrmContactResultHandler() : void
contactData.contactFirst =
wsfrmContactLookup.FetchfrmContact.lastResult..contactFirst;
contactData.contactLast =
wsfrmContactLookup.FetchfrmContact.lastResult..contactLast;
contactData.companyName =
wsfrmContactLookup.FetchfrmContact.lastResult..companyName;
contactData.contactDocID =
wsfrmContactLookup.FetchfrmContact.lastResult..contactDocID;
if( wsfrmContactLookup.FetchfrmContact.lastResult )
contactData.campaignsReceived = new XMLListCollection(
wsfrmContactLookup.FetchfrmContact.lastResult..campaignsReceived );
contactData.campaignsSubscribed = new XMLListCollection(
wsfrmContactLookup.FetchfrmContact.lastResult..campaignsSubscribed
contactData.campaignsOptedOut = new XMLListCollection(
wsfrmContactLookup.FetchfrmContact.lastResult..campaignsOptedOut );
if( contactData.campaignsSubscribed.length > 0 )
for( var index : int = 0; index <
checkBoxSubscribed.length; index++ )
checkBoxSubscribed[index].selected = true;
if( contactData.campaignsOptedOut.length > 0 )
for( index = 0; index < checkBoxOptedOut.length; index++
checkBoxOptedOut[index].selected = true;
In my code I update the contactData object, then call the
update method passing contactData as it's parameter and it barks at
me. Any ideas why I'd be getting the error message shown below?
<soapenv:Fault xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="
http://www.w3.org/2001/XMLSchema"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<faultcode>
"soapenv:Server.generalException"
</faultcode>
<faultstring>
"org.xml.sax.SAXException: SimpleDeserializer encountered a
child element, which is NOT expected, in something it was trying to
deserialize."
</faultstring>
<detail/>
</soapenv:Fault>Hi,
just create a skeleton for the Web Service. In JDeveloper, create a new project and then use the "NEW" context menu option.
Navigate to "Business Tier" --> Web Services and select "Web Service Proxy"
In teh following, provide the WSDL reference to create the Java proxy. This gives you accss to the WS without having to parse the XML yourself
Frank -
How to add "Prepare Data" from a web service to the form
Hello,
Can any one please advise on how to add the "Prepare Data" process from the existing web service and have the form to pre-populate the data from this "Prepare Data" process instead of using schema xsd. I heard that this is an alternative or may be a better way to pre-populate data in ES2/ES3 to avoiding creating a data source in Form Designer. I try to find a sample on Adobe site but could not find one, most of them are using schema.
Any guidance or URL to the sample would be helpful.
Thanks,
HDThanks
-
Showing data from a web service in a DataGrid
My web service returns a complex XML document (ie. not a
"flat" one). I'm able to consume the web service and create an
XMLList and XMLListCollection based on the return value. If I make
parts of the XML simple ("flat") I'm also able to bind values into
a DataGrid row. However, I haven't succeeded in trying to display
XML attribute values in this same DataGrid or values from elements
in other XML branches of the XML.
So, I have an XML structure
<root>
<element1>
<se1>A</se1>
<se2>B</se2>
</element1>
<element2>
<se3 value="1"/>
<se4 id="2">C</se4>
</element2>
</root>
I can easily display (A,B) in a DataGrid, but how about (A,
B, 1, 2, C) in a single row?
I can find a bit similar examples in the internet, but for
some reason I can't make it work. I'm using web services from
ActionScript with a handler, I imported WSDL into the project, I
don't have any MXML WebService components (would they make a
difference?), I haven't specified E4X anywhere (should I ?). I can
display single attribute values in a normal text field.
Could someone please tell me the trick or point some
directions to look at. Thanks.Hi Sholmi,
Have a look at this link.
[http://www.****************/Tutorials/BI/WebService/Index.htm]
Thanks,
Vishall. -
Reading XML file from java web service
Hi
I am developing web service using Netbeans and the application server is glassfish.
but I am facing a problem
I have folder called "config" which will include the xml files. What I need to do setting path into that folder
but it will read from another location when I am deploying it
How to set our own path ?
Error
DPL5306:Servlet Web Service Endpoint [NewWebService] listening at address [http://kapila.epic.lk:8080/WebApplication2/NewWebServiceService]
deployed with moduleid = WebApplication2
java.io.FileNotFoundException: /root/MyWorks/glassfish-v2/domains/domain1/config/OSconfig/MConfig.xml (No such file or directory)
at java.io.FileInputStream.open(Native Method)
My "conifg" folder, i have put in to working directory but it will read from "/root/MyWorks/glassfish-v2/domains/domain1/config/OSconfig/MConfig.xm"
below method is used for getting its contain value
public String getMainCofig() {
String v ="";
try{
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File("OSconfig/MConfig.xml"));
doc.getDocumentElement().normalize();
NodeList listOfSPRMs = doc.getElementsByTagName("MainConfig");
Node firstSPRMNode = listOfSPRMs.item(0);
if (firstSPRMNode.getNodeType() == Node.ELEMENT_NODE) {
Element firstSPRAMElement = (Element) firstSPRMNode;
// Getting platform
NodeList server_port = firstSPRAMElement
.getElementsByTagName("RunningPlatform");
Element server_port_el = (Element) server_port.item(0);
NodeList server_port_List = server_port_el.getChildNodes();
v= ((Node) server_port_List.item(0))
.getNodeValue().trim();
}catch (Exception e){
e.printStackTrace();
return v;
Regards
I didn't quite get what the problem is but if the the desired file is in custom directory why don't you just use absolute path to reference it?
Like: "/home/my/OSconfig/MConfig.xml" -
How to remove actual XML content from Weather Web Service Client's standard output?
Hi,
I tried web service example examples.webservices.rpc.weatherEJB.Weather with WLS6.1,
it works fine, but on client side, ( either Client or DClient ), I always see
the actual XML content being sent and received from standard output, like
"------------- RECEIVING XML -------------", and I can't find any related System.out.println
statement in client source code, Please explain how to remove it, may there is
a configurable parameter for this? any help will be highly appreciated.
Thanks
NaichenHi Naichen,
To suppress showing the actual SOAP request and response going to standard out,
change the following line in the Client.java:
h.put("weblogic.soap.verbose", "true" );
to read:
h.put("weblogic.soap.verbose", "false" );
Regards,
Mike Wooten
"Naichen Liu" <[email protected]> wrote:
>
Hi,
I tried web service example examples.webservices.rpc.weatherEJB.Weather
with WLS6.1,
it works fine, but on client side, ( either Client or DClient ), I always
see
the actual XML content being sent and received from standard output,
like
"------------- RECEIVING XML -------------", and I can't find any related
System.out.println
statement in client source code, Please explain how to remove it, may
there is
a configurable parameter for this? any help will be highly appreciated.
Thanks
Naichen -
Stacked Bar Chart with data from a Web Service
Hi,
I'm working on Dashboard Design (version 14.0.1.287) and I'm trying to create a chart linked to data from a webservice.
With a Year in input, my webservice gives an Amount per Cities and Products
Data retrieved look like this (Sheet1) :
Paris Tablets 45
Paris Laptops 12
Paris Cellulars 89
New-York Tablets 56
New-York Laptops 36
New-York Cellulars 1
Londres Tablets 150
Londres Laptops 3
Londres Cellulars 45
Then I use a Pivot Table (created manually in Excel) looking like this (Sheet2) :
Tablets Laptops Cellulars
Paris 45 12 89
New-York 56 36 1
Londres 150 3 45
The chart is a Stacked Bar Chart plugged on the previous Pivot Table
I create 3 series (one per Product), values (X) are set with Amount
Category labels (Y) are set with Cities
The goal is to have a dynamic chart (series and categories must update if a new city or a new product appears)
So my question is : how can I set up the chart directly with data retrieved from webservice on Sheet1?
Thx a lot !
Nicolas
Edited by: nicolasheurtevin on Sep 14, 2011 4:58 PMhi
First thing , bad news if you are using .Net framework 1,
just forget it, Flex 2 doesn't work well with framework 1, but 2nd,
good news, if you want to use webservices, you'll have to make an
array of objects on .Net Side and send it as objects to flex, i saw
an example on the net but i can't seem to remember where, on the
other hand,if you want to simply use, like i do, HTTPSERVICE its a
very nice way to talk with .Net and you can see my example here
http://flex1-for-dummies.blogspot.com
By the way, in your code, you have a request tag , but you
aren't requesting anything, because if you were you would have to
make like this
<mx:request>
<Artist>{yourinputtext.text}</Artist>
</mx:request>
So if you don't have an input text, you don't need a request
tag, only the operation.
Maybe you are looking for
-
Xml data convert into only element data
Hello everybody, I create a form which use the web service. My output is come in xml form like.. <NewDataSet> <Table> <PRIVATE_MARKA_BATCH_NO>0622</PRIVATE_MARKA_BATCH_NO> </Table> <Table> <PRIVATE_MARKA_BATCH_NO>DOOR CABINET</PRIVATE_MARKA_BATCH_NO>
-
How to create a fillable form that can be saved in Acrobat Reader
I'm new with fillable forms. I looked at it several months ago and I was sure I saw something about making the filled forms saveable in Reader but now I can't seem to find it. Anybody know?
-
I have a PDF file that is returned from a web service that is Base64 encoded. I decode the string and populate an internal table. The internal table now contains the binary data of a PDF file. Is there a way in abap to send this PDF file to the SA
-
Upgrade to 10.4.10 - won't sleep, slow to shutdown
Hi All, Upgraded my MDD G4 desktop to 10.4.10 and the latest security update last night. Since then, I can't put it to sleep. It takes forever to shutdown as well. Any ideas? Thanks, Jeff
-
SharePoint returned the following error: Invalid URI: The URI is empty.
When I try to add Site Feed (News Feed) in the SharePoint 2013, I get "SharePoint returned the following error: Invalid URI: The URI is empty. Contact your system administrator for help in resolving this problem" error message. Could you please provi