We have an Oracle SOA gateway setup that we can pass SOAP requests to. Right now, I'm trying to use SoapUI to create test cases. In this particular one, I'm trying to create a customer account. I've got the skeleton setup, but I'm having issues setting the correct XPath up to extract the account ID from the SOAP response.
The response I get back from the SOA gateway is:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/apps/hz/soaprovider/plsql/hz_cust_account_v2pub/create_cust_account__1/">
<X_CUST_ACCOUNT_ID>1459660</X_CUST_ACCOUNT_ID>
<X_ACCOUNT_NUMBER>58946</X_ACCOUNT_NUMBER>
<X_PARTY_ID>3101110</X_PARTY_ID>
<X_PARTY_NUMBER>215767</X_PARTY_NUMBER>
<X_PROFILE_ID>3322847</X_PROFILE_ID>
<X_RETURN_STATUS>S</X_RETURN_STATUS>
<X_MSG_COUNT>0</X_MSG_COUNT>
<X_MSG_DATA xsi:nil="true"/>
</OutputParameters>
</env:Body>
</env:Envelope>
From this, I'm trying to extract the returned X_CUST_ACCOUNT_ID, and put it into a property. The XPath that I'm using is
//OutputParameters/X_CUST_ACCOUNT_ID
However, doing so, all I get is an error stating
"Missing match for Source XPath [//OutputParameters/X_CUST_ACCOUNT_ID]"
I've spent hours trying various XPath expressions, and all I get are either missing match or syntax errors.
You were missing the fact that OutputParameters also has a default namespace defined by
xmlns="http://xmlns.oracle.com/apps/hz/soaprovider/plsql/hz_cust_account_v2pub/create_cust_account__1/"
To also ignore this namespace, you can use the following expression:
//*[local-name()='OutputParameters']/*[local-name()='X_CUST_ACCOUNT_ID']
Related
I'm wondering if anyone can be of assistance.
I am trying to generate some dynamic Amazon Polly SSML to be used on the Plivo PHLO platform. When someone dials into a particular number, they should be greeted with a custom message (in a particular language) and prompted to enter a number.
I have an HTTP request that hits my API, which receives the request and generates the SSML using Plivo's PHP Server SDK.
$response = new Response();
$speak_elem = $response->addSpeak($result['text'], ['language'=> 'en-US, 'voice'=>"Polly.Joanna"]);
Header('Content-type: text/xml');
die( $response->toXML() );
It seems to me that this HTTP Request is working perfectly and returning perfect SSML. When I copy and hard-code-paste the SSML into the Get Input node, it works OK.
<?xml version="1.0" encoding="utf-8"?>
<Response><Speak language="en-US" voice="Polly.Joanna">Welcome To 101 Broadway. For English, press 1.</Speak></Response>
However, when I try to add a Get Input component and link it's "prompt" audio to the resulting SSML, I am getting an error that says Invalid SSML (See Screenshots at the bottom).
WHAT I'VE TRIED
I've tried returning the SSML in plain XML and using {{HTTP_Welcome.response}}
I've tried returning the SSML as text in a JSON object called SSML and using {{HTTP_Welcome.response.SSML}}
I've tried returning the SSML both with and without the xml tag.
I've tried returning the SSML both with and without the Result tag.
I've tried taking a break and coming back to it. Hey, you never know.
No matter how I return the SSML, and how I try to link it to the Get Input prompt, I am unsuccessful. I'm starting to wonder if this is even possible?
Any help would be immensely appreciated. Thanks!
SCREENSHOT 1
SCREENSHOT 2
My name is Mohammed Huzaif, and I work for Plivo as a Developer Evangelist.
Unfortunately, the "GetInput node" in PHLO does not yet implement the feature you are searching for. The best option is to use a standard speak which is customisable in your way, which may have a less natural feel than SSML.
Currently, I've narrow information about your use case as of now but If you still want to use a custom SSML, I'd recommend utilising a framework instead of PHLO to design your call flow. Here's a tutorial that covers a few use cases by Plivo in several frameworks to help you develop one.
If you experience any problems, please feel free to contact our support team.
I have followed the example here for adding a custom lexicon to my speech SSML. However, it is being ignored. I tried it with my own lexicon and also with the sample. At first the sample seemed to work, but when I removed the lexicon it still expanded out BTW as "By the Way" so it appears it was having no impact for the sample either.
For reference, here is the sample code used to create the lexicon
<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0"
xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
alphabet="ipa" xml:lang="en-US">
<lexeme>
<grapheme>BTW</grapheme>
<alias>By the way</alias>
</lexeme>
<lexeme>
<grapheme> Benigni </grapheme>
<phoneme> bɛˈniːnji</phoneme>
</lexeme>
</lexicon>
And here is the sample SSML (in which the lexicon is ignored)
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
xmlns:mstts="http://www.w3.org/2001/mstts"
xml:lang="en-US">
<voice name="en-US-JennyNeural">
<lexicon uri="MY_PATH_TO/customlexicon.xml"/>
BTW, we will be there probably at 8:00 tomorrow morning.
Could you help leave a message to Robert Benigni for me?
</voice>
</speak>
I have tried accessing the lexicon from local storage as well as from a site hosted by Azure App Service. I also looked to see if the Javascript had any sort of "addLexicon" method within SpeechConfig or SpeechSynthesizer, but I couldn't find anything. Anyone have any ideas why this isn't working and what I need to do to fix it?
According to Microsoft, a path to the lexicon on your local machine does not work. It must be hosted on the web somewhere. If you have any app service plan, this is extremely lightweight (it's just hosting an XML file) so you can just create a new app service to host it. Of course if you have other methods to expose files via web uri that should work fine too.
Also, I was having issues with the hosted files using sapi alphabet. The alphabet abbreviation in the documentation is incorrect. It should be x-microsoft-sapi, not just sapi. Once I corrected that I was able to get both ipa (which is correct as ipa) and sapi lexicons working when hosted on a remote server.
I have an XML request with me, which needs to be sent over an IBM MQ channel. The client has not provided us the MQ connection details and has asked us to provide parametrised XML which they will manually copy and post it to MQ till the time they don't get the connection details
The issue is the XML's are big and they have to manually change each attribute and then Post it to MQ and thus they are asking for this process to be automated.
The idea is they will provide the data sheet and I would parameterize the xml, which I have already done.
I am also getting the different XML's with different data set in the HTTP request under View results tree.
The thing is I dont want to manually copy those request XML's and save it to notepad.
Is there a way using which I can directly save those Request XML's to a file?
Capturing Response is easy but how to capture the request itself!! Wejust need to capture the request!
PS: I have tried multiple option right from Bean shell to some Plugins as well as making changes to the User properties file of Jmeter but nothing worked.
It dosent matter if the requests are failing I just need to capture that request and save each of them seperately for multiple threads.
I have just executed 1 thread in the sample picture attached.Thanks for help in advance.
The easiest is going for the Flexible File Writer, the relevant configuration would be:
---------REQUEST----------------------\r\n|requestData|\r\n
As the result you will get the file which looks like:
---------REQUEST----------------------
POST http://example.com/
POST data:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>jane</to>
<from>john</from>
<heading>hi</heading>
<body>how are you</body>
</note>
[no cookies]
---------REQUEST----------------------
POST http://example.com/
POST data:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>john</to>
<from>jane</from>
<heading>Re:hi</heading>
<body> I'm perfect!</body>
</note>
[no cookies]
You can install Flexible File Writer using JMeter Plugins Manager
You probably missing configuration, Either in Test Plan level, check the Functional checkbox
Or Configure button in Listener and check relevant Request checkboxes
OIBEE has ExternalReportWSSService webserive with method deliveryService to send pdf contents as an attachment. Only problem with this attachment always came with a default name as "ReportData"
I setup SOAP request to send a pdf to my email as below:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:pub="http://xmlns.oracle.com/oxp/service/PublicReportService">
<soap:Header/>
<soap:Body>
<pub:deliveryService>
<pub:deliveryRequest>
<pub:contentType>application/pdf</pub:contentType>
<pub:documentData>abadadfasdfaf</pub:documentData>
<pub:emailOption>
<pub:emailBCC></pub:emailBCC>
<pub:emailBody>V1RG</pub:emailBody>
<pub:emailCC></pub:emailCC>
<pub:emailFrom>test#gmail.com</pub:emailFrom>
<pub:emailReplyTo>test#gmail.com</pub:emailReplyTo>
<pub:emailServerName>DefaultEmail</pub:emailServerName>
<pub:emailSubject>test</pub:emailSubject>
<pub:emailTo><EMAIL ID></pub:emailTo>
</pub:emailOption>
</pub:deliveryRequest>
</pub:deliveryService>
</soap:Body>
</soap:Envelope>
But not sure where to specify the attachment file name.
Pardon me asking but are you sure that's an "OBIEE service"? The few existing references all point to Fusion - so Fusion BI Publisher and not OBIEE the analytical platform.
There was a defect in the WSDL. It worked when we put the pub:emailTo tag outside the pub:emailOption. Oracle acknowledged the defect and we proceeded by modifying the WSDL and using it in our integration. In the later releases this issue is fixed now.
I am looking for a complete example of how to use Soap4r to send a request to document/literal style web service request? The very same question on SOAP::RPC::Driver formatting problems. How can I change it? on Stackoverflow is there, but I couldn't find the way to call the method. Below is how my current request is generated.
<env:Body>
<n1:GetUserContact xmlns:n1="xmlns:http://foo.bar.baz.com/faz" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<userID xsi:type="xsd:string">
0123456
</userID>
</n1:GetUserContact>
</env:Body>
but I want my request to be in the following format, which is document/literal
<env:Body>
<n1:GetUserContact xmlns:n1="xmlns:http://foo.bar.baz.com/faz" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<n1:userID xsi:type="xsd:string">
0123456
</n1:userID>
</n1:GetUserContact>
</env:Body>
Or
<env:Body>
<GetUserContact xmlns="http://foo.bar.baz.com/faz" env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<userID xsi:type="xsd:string">
0123456
</userID>
</GetUserContact>
</env:Body>
I also looked at this but I couldn't set the elementformdefault in my application because my Soap4r does not support this element name. I am not good at Ruby so excuse me if I am making any mistake. I am using ruby 1.8.6 on Ubuntu 8.04 and I installed soap4r-1.5.8 but even without that gem, my application runs(default soap4r library may be at work)
I don't know how to get ruby soap4r-1.5.8 lib to work instead of default soap4r library. You might wonder what my question is, and desperately all I want is to get this working anyway by any means.