Lov list from Web Service in ADF pages
Hi We have successfully created web service data control and bind them to the field to get the LOV list.
Now the requirement is that
when the user goes to the next screen we dont want to retive the date again from DB, But i want the same LOV list which i received first time.
In short we want the same LOV list until the process end which has n number of screens. we don't want the fresh list every time the screen comes up.
Hi,
in this case you don't use the WebService Data Control but a WebService proxy client and then a wrapper in front of it. This way the wrapper POJO can cache the data for as long as you need it. The wrapper POJO is then exposed as a JavaBean data control (building the select list is thenthe same as with the WS DC). The wrapper POJO exposes a method that returns a collection (List) of values. On each query for the LOV the wrapper pojo checks if it already contains data - and if so - returns existing data. The wrapper POJO can expose a method or flag for you to indicate that it should re-fetch data from a web service
Frank
Similar Messages
-
How to get data from web service in ADF mobile
I'm new to ADF mobile application development. I'm currently blocked in a scenario. I have a web service(from third party) which needs <wsse:Security> to retrieve data. In soapUI, the web service will retrieve the response only when there is this security tag. Otherwise it will give response as invalid security. The web service looks like this:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xx="http://xmlns.oracle.com/apps/csf/soaprovider/plsql/xx_fs_mob_login/" xmlns:get="http://xmlns.oracle.com/apps/csf/soaprovider/plsql/xx_fs_mob_login/get_login/">
<soapenv:Header>
<xx:SOAHeader>
<!--Optional:-->
<xx:Responsibility>XXX</xx:Responsibility>
<!--Optional:-->
<xx:RespApplication>XXX</xx:RespApplication>
<!--Optional:-->
<xx:SecurityGroup>XXX</xx:SecurityGroup>
<!--Optional:-->
<xx:NLSLanguage>XXX</xx:NLSLanguage>
<!--Optional:-->
<xx:Org_Id>XXX</xx:Org_Id>
</xx:SOAHeader>
<The portion which is excluded from the soap, but which is required for getting response>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-1">
<wsse:Username>XXX</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXX</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">XXX</wsse:Nonce>
<wsu:Created>2013-02-13T08:58:50.649Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
<The portion which is excluded from the soap, but which is required for getting response>
</soapenv:Header>
<soapenv:Body>
<get:InputParameters>
<!--Optional:-->
<get:P_USERNAME>XXX</get:P_USERNAME>
</get:InputParameters>
</soapenv:Body>
</soapenv:Envelope>
I tried the steps described in ADF mobile tutorial to get web service data. But I'm getting response code 500 from the server. I tried the steps for secured web service also. But I'm not sure which security policy has been implemented in the web service. I tried with oracle/wss_username_client_token_policy and some others but didn't succeed. Later I tried by creating web service client/proxy. But as Oracle ADF only supports java 1.4, I got errors in the generated code(errors on generics and annotation).
The WSDL for the web service is as follows:
<definitions xmlns:tns="http://xmlns.oracle.com/apps/csf/soaprovider/plsql/xx_fs_mob_login/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns1="http://xmlns.oracle.com/apps/csf/soaprovider/plsql/xx_fs_mob_login/get_login/" name="XX_FS_MOB_LOGIN" targetNamespace="http://xmlns.oracle.com/apps/csf/soaprovider/plsql/xx_fs_mob_login/">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/apps/csf/soaprovider/plsql/xx_fs_mob_login/get_login/">
<include schemaLocation="http://27.251.157.211:8000/webservices/SOAProvider/plsql/xx_fs_mob_login/APPS_XX_FS_MOB_LOGIN_GET_LOGIN.xsd"/>
</schema>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xmlns.oracle.com/apps/csf/soaprovider/plsql/xx_fs_mob_login/">
<element name="SOAHeader">
<complexType>
<sequence>
<element name="Responsibility" minOccurs="0" type="string"/>
<element name="RespApplication" minOccurs="0" type="string"/>
<element name="SecurityGroup" minOccurs="0" type="string"/>
<element name="NLSLanguage" minOccurs="0" type="string"/>
<element name="Org_Id" minOccurs="0" type="string"/>
</sequence>
</complexType>
</element>
</schema>
</types>
<message name="GET_LOGIN_Input_Msg">
<part name="header" element="tns:SOAHeader"/>
<part name="body" element="tns1:InputParameters"/>
</message>
<message name="GET_LOGIN_Output_Msg">
<part name="body" element="tns1:OutputParameters"/>
</message>
<portType name="XX_FS_MOB_LOGIN_PortType">
<operation name="GET_LOGIN">
<input message="tns:GET_LOGIN_Input_Msg"/>
<output message="tns:GET_LOGIN_Output_Msg"/>
</operation>
</portType>
<binding name="XX_FS_MOB_LOGIN_Binding" type="tns:XX_FS_MOB_LOGIN_PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GET_LOGIN">
<soap:operation soapAction="http://XXX:8000/webservices/SOAProvider/plsql/xx_fs_mob_login/"/>
<input>
<soap:header message="tns:GET_LOGIN_Input_Msg" part="header" use="literal"/>
<soap:body parts="body" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="XX_FS_MOB_LOGIN_Service">
<port name="XX_FS_MOB_LOGIN_Port" binding="tns:XX_FS_MOB_LOGIN_Binding">
<soap:address location="http://XXX:8000/webservices/SOAProvider/plsql/xx_fs_mob_login/"/>
</port>
</service>
</definitions>
Please help me to figure out a solution for this.
Thanks in advance
Rinohow to store the data in the mobile which i fetched from the server using RMS. Can u give me a eg. code. here and send me a link to my email id. [email protected]
I am using Oravle10g as the database. It is installed in the server.
I made a connection in servlet using ODBC:JDBC.
I am able to see the data fetched from the server in my mobile.
Now, i am trying to save the data. But i dont know how to use the RMS to connect to the Oracle database or pass the string etc.
Do help me if you dont mind.
I kept reading and tried some codes but i failed.
Me still trying...........
Thanks in Advance. -
How to get available fields list from web service
hi,
i'm using webservices to create ,update and deleting a alead.
what i want is i want all the id of available fields in my account ?
how acn i get those id's ?
regards,
praneethhi,
thank u for reply.
i would like to create a servlet to insert alead to OCRM,
but for that the user selects the fields he want to insert and provides corresponding values to those selected fields.
so that i need to display all the fields available in my OCRM account.
regards,
Praneeth -
Displaying data from Web Service Data Control on a page
Hi,
I have a problem with a Web Service Data Control.
The web service is executed:
1) When the page (.jspx) is loading. Every time that the page is loaded, the web service is executed!
2) From a submit button. In this case the web servide is executed two times, in the submit and in the loading of the page.
I want to avoid the first case because i have to reduce the called to ws. I want to use the second case to call the web service (only one time).
How can i avoid the execution of the web service when the page (form) is loading?
ThanksHello Arun,
I've set refreshCondition property for the iterator to #{!adfFacesContext.initialRender} but doesn't work correctly.
I'm testing the property with the example in:
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/wssamplebase-321929.zip
I am using Oracle IDE 11.1.1.5.
Have you got any ideas what might be the problem.
Thanks in advance. -
While consuming Fusion CRM web service in ADF mobile throwing an error
Hi,
I am developing ADF Mobile using JDeveloper
11.1.2.3 and consuming Fusion CRM ADF Web Services.
While executing CRUD operations with these web services
in ADF mobile app, I am getting SOAP response as *Error in getting response
and got result nothing *.
And also noticed as using JDeveloper ADF mobile App, unable to create URL service
Data Control - REST based for FUsion CRM web services. Where as I am able to
create SOAP based web services data control. It' strange or surprise.
Did anyone face the above problems. Kindly let me know any suggestions or
samples to the below contacts
Regards
Bhaskara Reddy S
00919008466722
bhaskara.sannapureddy at Crmit.comDear Frank,
Based on below links, Fusion CRM also supports REST also apart from regular SOAP Web Services.
http://niallcblogs.blogspot.in/2012/10/204-calling-rest-service-from-fusion-crm.html AND
http://docs.oracle.com/cd/E15586_01/fusionapps.1111/e20388/F412758AN17B21.htm
(For e.g one of linked in profile :http://www.linkedin.com/in/minalkhodani , many teams are developing using SOAP & REST)
Designed and developed integration services using SOAP and REST web services for Oracle Fusion CRM Marketing Modules.)
When creating URL based data control, getting an Error as "Forbidden" , (Does it mean NOT SUPPORTED??) . Kindly advice.
I am calling WEB SERVICE thru SOAP in AMX PAGE code as below after creating Web Services Data Control from ADF Mobile UI thru JDeveloper IDE.
== CODE SNIPPET OF AMX PAGE CALLING SOAP FUSION CRM WEB SERVICE =======
<?xml version="1.0" encoding="UTF-8" ?>
<amx:view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:amx="http://xmlns.oracle.com/adf/mf/amx"
xmlns:dvtm="http://xmlns.oracle.com/adf/mf/amx/dvt">
<amx:panelPage id="pp1">
<amx:panelFormLayout id="pfl2">
<amx:inputText value="#{bindings.name.inputValue}" label="Person First Name" id="it1"/>
<amx:inputText value="300000001210220" label="Person Object Id" id="it2"/>
</amx:panelFormLayout>
<amx:facet name="header">
<amx:outputText value="Create Person in Fusion CRM" id="ot1"/>
</amx:facet>
<amx:facet name="primary">
<amx:commandButton id="cb1" text="Back" action="__back"/>
</amx:facet>
<amx:facet name="secondary">
<amx:commandButton id="cb2"/>
</amx:facet>
<amx:panelFormLayout id="pfl1">
</amx:panelFormLayout>
<amx:outputText value="#{bindings.message.inputValue}" id="ot2"/>
<amx:outputText value="#{bindings.code.inputValue}" id="ot3"/>
*<amx:commandButton actionListener="#{bindings.createPerson.execute}" text="createPerson"*
*disabled="#{!bindings.createPerson.enabled}" id="cb3"/>*
<amx:iterator var="row" value="#{bindings.personParty1.collectionModel}" id="i1">
<amx:panelLabelAndMessage label=" 300000001210220" id="plam2">
<amx:outputText value="#{row.PartyId}" id="ot5">
<amx:convertNumber groupingUsed="false"/>
</amx:outputText>
</amx:panelLabelAndMessage>
<amx:panelLabelAndMessage label="#{bindings.name.inputValue}" id="plam1">
<amx:outputText value="#{row.PersonFirstName}" id="ot4"/>
</amx:panelLabelAndMessage>
</amx:iterator>
</amx:panelPage>
</amx:view>
Regards
Bhaskara Reddy -
Hi,
I have an ADF 10g application (JSF + ADF BC) in which I am creating LOVs (selectInputText) that need to be populated from web services.The LOV would consist of a search form and an ADF table to show the results. I realise that there are a couple of approaches to achieve this.
Approach1:
1. Create Web service proxies from the available WSDL file.
2. Create an Application Module
3. Create a method in the Application module that calls methods on generated proxies to obtain results (results are mostly of type array).
4. Populate read-only VOs from the above results
5. Create the LOV based on the above Application Module data control (via the read-only VOs)
I have tested this approach and it seems to be pretty clean and I felt I had complete control over any search parameters passed from the LOV. My only worry is the performance hit incurred while creating proxy object from the Service Object. Each time the user searches for items in the LOV, I create a proxy from the Service object and execute a method on it. Is this something to worry about and is there any way to avoid it? Can we cache references to the proxies in say session scope etc?
Approach2:
1. Create a Web Service data control from the WSDL file.
2. Create the LOV from the above data controls.
When I tried to follow this approach, I realised that I was unable to declaratively pass parameters of type arrays etc.
I need your advice to decide upon the approach. Is there any other better way to achieve what I am trying to do. Any pointers would be helpful.
Thank you.Hi,
3rd option is to
- create a Web Service proxy
- create a wrapper bean for this proxy class so you don't have to change your app when the proxy changes. The wrapper exposes the methods you want to use in ADF
- generate a data control from the wrapper class
Frank -
Facing problem while going to catch return result from web-services.
Hi everybody,
I am new to BPEL. I am facing problem while going to catch the attributes of resultsets returning from web-services(QAS). As far as my knowledge, two types of results it should return - XML entities and another is attributes which is coming as the part of XML entitites. I am able to catch the XML entities, but can't catch the attributes under it. Even, I am not able to see whether web-services returning something within that field.
When, I tried to catch the attribute and store to a temporary varilable using the following code:
*<assign name="AssignQASDoGetAddress1">*
*<copy>*
*<from variable="InvokeQAS_DoSearch_OutputVariable"*
part="body"
query="/ns6:QASearchResult/ns6:QAPicklist/ns6:PicklistEntry/@PostcodeRecoded"/>
*<to variable="temp"/>*
*</copy>*
*</assign>*
but, I am facing the following selectionFailure errors after running it:
*"{http://schemasxmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.*
-<selectionFailure xmlns="http://schemasxmlsoap.org/ws/2003/03/business-process/">
-<part name="summary">
*<summary>*
empty variable/expression result.
xpath variable/expression expression "bpws:getVariableData('InvokeQAS_DoSearch_OutputVariable', 'body', '/ns6:QASearchResult/ns6:QAPicklist/ns6:PicklistEntry/@PostcodeRecoded')" is empty at line 269, when attempting reading/copying it.
Please make sure the variable/expression result "bpws:getVariableData('InvokeQAS_DoSearch_OutputVariable', 'body', '/ns6:QASearchResult/ns6:QAPicklist/ns6:PicklistEntry/@PostcodeRecoded')"is not empty.
*</summary>*
*</part>*
*</selectionFailure>*
Getting this error it seems to me that web-service is returning nothing, but, it returns something as it has been catched using a method called isPostcodeRecoded() Java Code in Oracle ADF. This method has been used as it should return boolean whereas for catching the xml entities using java code we used the method like getPostcode(), getMoniker().
For your information, we are using Jdeveloper as the development tool for building the BPEL process.
Am I doing any syntax error. Please consider it as urgent and provide me asolution.
Thanks in advance.
Chandrachur.Thanks Dave and Marc, for your suggestions. Actually what I found is QAS web-service is returning nothing as attributes when the attributes are set to the default value. For example, following is the part of the wsdl of the result which QAS webservice returns.
<xs:element name="QASearchResult">
- <xs:complexType>
- <xs:sequence>
<xs:element name="QAPicklist" type="qas:QAPicklistType" minOccurs="0" />
<xs:element name="QAAddress" type="qas:QAAddressType" minOccurs="0" />
</xs:sequence>
<xs:attribute name="VerifyLevel" type="qas:VerifyLevelType" default="None" />
</xs:complexType>
</xs:element>
<xs:complexType name="QAPicklistType">
- <xs:sequence>
<xs:element name="FullPicklistMoniker" type="xs:string" />
<xs:element name="PicklistEntry" type="qas:PicklistEntryType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Prompt" type="xs:string" />
<xs:element name="Total" type="xs:nonNegativeInteger" />
</xs:sequence>
<xs:attribute name="AutoFormatSafe" type="xs:boolean" default="false" />
<xs:attribute name="AutoFormatPastClose" type="xs:boolean" default="false" />
<xs:attribute name="AutoStepinSafe" type="xs:boolean" default="false" />
<xs:attribute name="AutoStepinPastClose" type="xs:boolean" default="false" />
<xs:attribute name="LargePotential" type="xs:boolean" default="false" />
<xs:attribute name="MaxMatches" type="xs:boolean" default="false" />
<xs:attribute name="MoreOtherMatches" type="xs:boolean" default="false" />
<xs:attribute name="OverThreshold" type="xs:boolean" default="false" />
<xs:attribute name="Timeout" type="xs:boolean" default="false" />
</xs:complexType>
<xs:complexType name="PicklistEntryType">
- <xs:sequence>
<xs:element name="Moniker" type="xs:string" />
<xs:element name="PartialAddress" type="xs:string" />
<xs:element name="Picklist" type="xs:string" />
<xs:element name="Postcode" type="xs:string" />
<xs:element name="Score" type="xs:nonNegativeInteger" />
</xs:sequence>
<xs:attribute name="FullAddress" type="xs:boolean" default="false" />
<xs:attribute name="Multiples" type="xs:boolean" default="false" />
<xs:attribute name="CanStep" type="xs:boolean" default="false" />
<xs:attribute name="AliasMatch" type="xs:boolean" default="false" />
<xs:attribute name="PostcodeRecoded" type="xs:boolean" default="false" />
<xs:attribute name="CrossBorderMatch" type="xs:boolean" default="false" />
<xs:attribute name="DummyPOBox" type="xs:boolean" default="false" />
<xs:attribute name="Name" type="xs:boolean" default="false" />
<xs:attribute name="Information" type="xs:boolean" default="false" />
<xs:attribute name="WarnInformation" type="xs:boolean" default="false" />
<xs:attribute name="IncompleteAddr" type="xs:boolean" default="false" />
<xs:attribute name="UnresolvableRange" type="xs:boolean" default="false" />
<xs:attribute name="PhantomPrimaryPoint" type="xs:boolean" default="false" />
</xs:complexType>
here the attributes like FullAddress, PostcodeRecodedare , etc. are not being return by the web-service when it is getting the default value false. But, if it gets true then , it is being displayed at the BPEL console.
Do you have any idea how can I catch the attributes and its value even when it gets the default value which is already set. Previously, it was returning(it was not being displayed at the console).
Thanks once again for your valuable suggestions...!!!
Chandrachur. -
Hi,
I'm currently trying to consume in VC a CAF Application Service exposed as a Web Service. I'm able to retrieve what I want but I have a problem with dates format.
The web service returns dates in the following format: YYYY-MM-DDTHH:NN:SS
When I test my data service in VC it works fine. When I run my iview, VC swap the month and the day and compute the new date...
It's not just a problem of formatting with DVAL and DSTR because the date is already computed.
Example:
Date returned from web service: 2007-09-21T00:00:01
Date returned from test data service in VC: 21.09.2007
Date returned at runtime: 09.09.2008
VC understand 21.09.2007 not like DD.MM.YYYY but like MM.DD.YYYY so 21.09.2007 becomes 09.09.2008
I also tried to check on the server Regional and Language option but it doesn't come from there.
Have you ever faced this problem?
ThxHi,
It is a Web Service generated by NWDS (to expose my CAF Application Service)and deployed on the server.
The url si like http://<hostname>:<port>/mywebservice/Config1?wsdl
The Web Service runs correctly.
When I call a method of my web service to retrieve a list of objects (CAF Entity Services) and their attributes, it returns attributes of type String and Dates of type 'java.util.GregorianCalendar'.
It seems that VC doesn't correctly understand this type of Date at runtime
Regards,
Thomas -
How to use a cascading LOV as a Web Services Consumer?
How to use a cascading LOV as a Web Services Consumer?
We are trying to populate a prompt programmatically.
Our program is a Web Services Consumer.
As an example we use Island Resorts Marketing
The cascading LOV for City is
Country -> Region -> City
The City object is key-aware to the customer table
The query is
Customer | Revenue
(where) City = [prompt]
In order to make the key-awareness work, we must select the value (rowIndex) from the LOV
When we run our program below, the LOV for City is not populated, as expected since we must first select the Country, then the Region.
The code snippet below shows that the LOV for Country is populated. We have no idea how to go from there.
Any hint will be immensely appreciated.
Let us know if anything is unclear in the code.
Source
RetrieveMustFillInfo retrieveMustFillInfo = RetrieveMustFillInfo.Factory.newInstance();
RetrievePromptsInfo retrievePromptInfo = RetrievePromptsInfo.Factory.newInstance();
retrievePromptInfo.setPromptLOVRetrievalMode(PromptLOVRetrievalMode.ALL);
retrievePromptInfo.setRefreshReturnedLOVs(true);
retrievePromptInfo.setReturnLOVOnMustFillPrompts(true);
retrieveMustFillInfo.setRetrievePromptsInfo(retrievePromptInfo);
// *-- need the "Refresh" action to get the .promptToBeFilled
Action[] boActions = new Action[1];
boActions[0] = Refresh.Factory.newInstance();
try {
documentInformation = reportEngine.getDocumentInformation(Integer.toString(infoObject.getID()), retrieveMustFillInfo, boActions, null, null);
m_Token = documentInformation.getDocumentReference();
} catch (Exception ex) {
System.out.println(GetWSError(ex));
return;
if (documentInformation.getMustFillPrompts()) {
PromptInfo[] promptInfoS = documentInformation.getPromptInfoArray();
for (PromptInfo promptInfo : promptInfoS) {
System.out.println(String.format("Prompt '%1$s', hasLOV=%2$s", promptInfo.getName(), (promptInfo.getHasLOV() ? "Yes" : "No")));
if (promptInfo.getHasLOV()) {
LOV boLOV = promptInfo.getLOV();
for (Value boLOVValue : boLOV.getValuesArray()) {
System.out.println(String.format(" LOV item '%1$s' RowIndex=%2$s", boLOVValue.getColumnsArray(0), (boLOV.getRowIndexed() ? boLOVValue.getRowIndex() : "")));
System.out.println("--End LOV");
PromptInfo[] promptInfoS2 = promptInfo.getPromptToBeFilledArray();
if (promptInfoS2.length > 0) {
PromptInfo promptInfo2 = promptInfoS2[0];
System.out.println(String.format(" linked to %1$s", promptInfo2.getName()));
if (promptInfo2.getHasLOV()) {
LOV boLOV2 = promptInfo2.getLOV();
for (Value boLOVValue : boLOV2.getValuesArray()) {
System.out.println(String.format(" LOV item '%1$s' RowIndex=%2$s", boLOVValue.getColumnsArray(0), (boLOV2.getRowIndexed() ? boLOVValue.getRowIndex() : "")));
System.out.println("--End LOV");
Result
Prompt 'Enter value(s) for City:', hasLOV=Yes
--End LOV
linked to Enter value for Country of origin
LOV item 'Australia' RowIndex=6
LOV item 'France' RowIndex=2
LOV item 'Germany' RowIndex=4
LOV item 'Holland' RowIndex=7
LOV item 'Japan' RowIndex=5
LOV item 'UK' RowIndex=3
LOV item 'US' RowIndex=1
--End LOVHi,
Refer SAP Note 1278947. You would require a Service Market Place logon to access this article.
Let me know if this helps.
Regards,
Shreyans Surana -
Web service call and page fowarding
I just started with HTML DB. I have a customer that requires the use of HTML DB for there standard look and feel, since they are using it for other applications.
I need to use HTML DB to create a front end that is backed by either EJBs or Web services that front the EBJs, to create a single application. I can not go directly to the DB since there is to much business logic contained in the EJBs that I would be circumventing. I dont think this is a good use of tech. from either side (J2EE or HTML DB) but I did not make the decision.
I have not seen integration with EJBs addressed (if you know of any please speak up), so I was happy to see that web services are supported.
So....
I have been able to call a webservice and get a result. I need to be able to format the result and create buttons based on the results returned by the web services. These buttons will call other pages that may or may not call additional webservices. In addition, I need to pass values in the web services response to pages called by the buttons generated. Any and all help would be appreciated.
Also does the syntax for #somethine# and &someone get evaluated if used in the XSL that renders the webservice response?Please disregard my "additional information" post to this
item. I posted it here by mistake! -
Set listbox items from web service response
Hi All
I am trying to set list box items from a web service response. Couple of issues over here:
1. The user should be able to select multiple items from the list. Hence if I set "Allow multiple values" and set Commit on "exit", then after the web service returns the output, no data is displayed in the listbox. I need to click inside the list box to see the data returned by the web service. How to overcome this..?? ( However this problem (clicking inside the listbox to see the items) does not exist if "Allow multiple values" is unchecked and Commit is set on "Select". )
2. After the list box is filled up, certain default values should be selected. This selection is based on one of the response field (which is actually a table with multiple values... ). Hence, how to capture this response field and set the default values in the above list..??
3. The same case for a dropdown. The values are visible in dropdown. However, a default value should be selected and displayed after returning a response from web service. Again, this default value is dependant on another field in the response as in point no.2
I am trying to use postExecute event as described in [this|http://forms.stefcameron.com/2009/03/23/pre-process-web-service-responses/] link...however not able to achieve the functionality. Please provide suggestions / inputs.
Thanks
DeepakHello,
first: I don´t know anything about the right solution. I am unaware of the existence of the solution, because there were quite many of question about this multiple selection problem and I don´t remember a single "answer".
I can recommend you to simplify everything and create the functionality yourself. I have done that before to avoid these "Adobe-standard" problems. If you have a problem with autofill of the object, ask your WS to send you a single string and pass it yourself using scripting (JS).
And if you have problems with multiple selection, create your own field/ object. Get the string of values, parse it, create multiple lines of the dynamic table with some suitable tool to check/ select the rows you need (use checkbox for example, and your text as a table row). This way you can selected anything you want with no problems at all. It wil only cost you some extra work.
Regards, Otto -
Presence data from web service
Hello,
i like to get presence data from the presenceconsumer web service. But everytime a call getUserPresence i get a PolicyException (POL0002): 'Privacy verification failed for address %1, request is refused'.
I use a web service proxy generated from the wsdl of the presenceconsumer web service. Authentication is made against the appregationproxy by setting username and password. Both users (the one i use for authentication and the one whose presence data i want to get) are registered in the timesten database.
The user whose presence data should be accessed is logged in the OracleCommunicator and has the other user on the allowed list for presence data.
All other operations of the presence web services work without any problem, so why not getUserPresence?
Thanks for helpHi,
I have found the problem and fixed it :)
If you see my code, I was checking for the pending subscriptions after publish() method. When I tried this check before publish() method, I got the expected results (All the pending subscriptions).
Also, I got an error (ServiceException) while dynamically retrieving the subscribed attributes for some reason. I have found an alternative solution, by manually allowing only the PresenceAttributeType.Activity (instead of all getSubscribedAttributes()).
Note: This code was working fine in my local machine because, I have already setup-ed the users (Buddy list) through Oracle communicator in my machine. I was not able to install OC in the VM for some reason though OS is same in both my machine and the VM (OS: Windows 2000 SP4).
thanks & regards,
S.Vasanth Kumar.
My latest code for your reference.
=======================================================
package presencedemo;
import java.net.URI;
import java.rmi.RemoteException;
import java.util.Calendar;
import org.csapi.schema.parlayx.common.v2_0.PolicyException;
import org.csapi.schema.parlayx.common.v2_0.ServiceException;
import org.csapi.schema.parlayx.common.v2_0.SimpleReference;
import org.csapi.schema.parlayx.presence.v2_0.ActivityValue;
import org.csapi.schema.parlayx.presence.v2_0.AttributeTypeAndValue;
import org.csapi.schema.parlayx.presence.v2_0.CommunicationMeans;
import org.csapi.schema.parlayx.presence.v2_0.CommunicationMeansType;
import org.csapi.schema.parlayx.presence.v2_0.CommunicationValue;
import org.csapi.schema.parlayx.presence.v2_0.OtherValue;
import org.csapi.schema.parlayx.presence.v2_0.PlaceValue;
import org.csapi.schema.parlayx.presence.v2_0.PresenceAttribute;
import org.csapi.schema.parlayx.presence.v2_0.PresenceAttributeType;
import org.csapi.schema.parlayx.presence.v2_0.PresencePermission;
import org.csapi.schema.parlayx.presence.v2_0.PrivacyValue;
import org.csapi.schema.parlayx.presence.v2_0.SphereValue;
import org.csapi.schema.parlayx.presence.v2_0.SubscriptionRequest;
import org.csapi.wsdl.parlayx.presence.consumer.v2_0.interface_.PresenceConsumerClient;
import org.csapi.wsdl.parlayx.presence.supplier.v2_0.interface_.PresenceSupplierClient;
/* PresenceDemoClient.java
* This class contains the primary functionality for
* connecting to the Presence Server and retreiving
* presence information for a set of buddies
public class PresenceDemoClient {
PresenceSupplierClient supplier;
PresenceConsumerClient consumer;
private String PresenceServer;
private String PresenceUsername;
private String PresencePassword;
private String PresenceRealm;
private String PresencePort;
URI BuddyList[];
PresenceAttributeType[] pat1;
// Constructor - creates a supplier and consumer presence client
// for publishing, subscribing to, and retrieving user presence.
public PresenceDemoClient(String server, String username, String password,
String realm, String port, URI[] buddies) {
try {
supplier = new PresenceSupplierClient();
consumer = new PresenceConsumerClient();
PresenceServer = server;
PresenceUsername = username;
PresencePassword = password;
PresenceRealm = realm;
PresencePort = port;
BuddyList = new URI[buddies.length];
BuddyList = (URI[])buddies.clone();
} catch (Exception e) {
System.out.println(e.toString());
// publishPresence - this method publishes presence on behalf of the
// current user. Allowed information includes and activityString and a note
public void publishPresence(String activityString, String note) {
try {
System.out.println("Publishing presence for " + PresenceUsername);
// create supplier web service endpoint
supplier.setEndpoint("http://" + PresenceServer + ":" +
PresencePort +
"/aggregationproxy/presencesupplierws/presencesupplier");
System.out.println("Supplier URL: " + "http://" + PresenceServer + ":" +
PresencePort +
"/aggregationproxy/presencesupplierws/presencesupplier");
supplier.setMaintainSession(true);
supplier.setUsername(PresenceUsername);
supplier.setPassword(PresencePassword);
ActivityValue activity = null;
String expires = "3600"; // default expiration of subscription
if (note == null || note.length() < 1)
note = "From Web Service Client";
if (activityString == null)
activity = ActivityValue.ActivityNone;
else if (activityString.equals("Available"))
activity = ActivityValue.Available;
else if (activityString.equals("Busy"))
activity = ActivityValue.Busy;
else if (activityString.equals("Meeting"))
activity = ActivityValue.Meeting;
else if (activityString.equals("Away"))
activity = ActivityValue.Away;
else
activity = ActivityValue.ActivityNone;
PresenceAttribute pa = new PresenceAttribute();
AttributeTypeAndValue typeValue = new AttributeTypeAndValue();
typeValue.setActivity(activity);
if (Integer.parseInt(expires) == 0)
typeValue.setUnionElement(PresenceAttributeType.Other);
else
typeValue.setUnionElement(PresenceAttributeType.Activity);
CommunicationMeans mean = new CommunicationMeans();
System.out.println(new URI("sip:" + PresenceUsername + "@" +
PresenceRealm));
mean.setContact(new URI("sip:" + PresenceUsername + "@" +
PresenceRealm));
mean.setPriority(1);
mean.setType(CommunicationMeansType.Chat);
CommunicationValue commValue = new CommunicationValue();
commValue.setMeans(new CommunicationMeans[] { mean });
typeValue.setCommunication(commValue);
OtherValue other = new OtherValue();
other.setName("Expires");
other.setValue(expires);
typeValue.setOther(other);
typeValue.setPrivacy(PrivacyValue.PrivacyNone);
typeValue.setPlace(PlaceValue.PlaceNone);
typeValue.setSphere(SphereValue.SphereNone);
pa.setTypeAndValue(typeValue);
pa.setNote(note);
//Allowing all pending subscriptions
SubscriptionRequest[] srArray = supplier.getOpenSubscriptions();
for (SubscriptionRequest sr:srArray) {
URI watcher = sr.getWatcher().normalize();
/*System.out.println("Blocking: " + watcher);
supplier.blockSubscription(watcher);*/
System.out.println("Allowing: " + watcher);
/*PresenceAttributeType patArray[] = supplier.getSubscribedAttributes(watcher.toString());
PresencePermission permissions[] = new PresencePermission[supplier.getSubscribedAttributes(watcher.toString()).length];
for(int i=0;i<patArray.length;i++){
PresenceAttributeType pat = patArray;
System.out.println("\tPermission: " + pat);
PresencePermission pp = new PresencePermission();
pp.setPresenceAttribute(pat); //You always pass in Activity
pp.setDecision(true); //Put the user on the allow list
permissions[i] = pp;
supplier.updateSubscriptionAuthorization(watcher,permissions);*/
PresenceAttributeType pat = PresenceAttributeType.Activity;
PresencePermission pp = new PresencePermission();
pp.setPresenceAttribute(pat); //You always pass in Activity
pp.setDecision(true); //Put the user on the allow list
supplier.updateSubscriptionAuthorization(watcher,new PresencePermission[]{pp});
Calendar dateTime = Calendar.getInstance();
pa.setLastChange(dateTime);
supplier.publish(new PresenceAttribute[] { pa });
System.out.println("Publish done: " + "sip:" + PresenceUsername + "@" +
PresenceRealm);
} catch (Exception e) {
System.out.println("Publish failed: " + e.toString());
e.printStackTrace();
// subscribePresence - this method subscribes to
// presence information of buddylist members
public void subscribePresence() {
try {
// create web services endpoint
consumer.setEndpoint("http://" + PresenceServer + ":" +
PresencePort +
"/aggregationproxy/presenceconsumerws/presenceconsumer");
System.out.println("Consumer URL: " + "http://" + PresenceServer + ":" +
PresencePort +
"/aggregationproxy/presenceconsumerws/presenceconsumer");
consumer.setMaintainSession(true);
consumer.setUsername(PresenceUsername);
consumer.setPassword(PresencePassword);
// Setting the attribute to activity.
PresenceAttributeType pa = PresenceAttributeType.Activity;
PresenceAttributeType[] pat = new PresenceAttributeType[] { pa };
// These input are required but not used.
SimpleReference sr = new SimpleReference();
sr.setCorrelator("unused_correlator");
sr.setInterfaceName("unused_interfacename");
sr.setEndpoint(new URI("http://unused.com"));
int counter = 0;
// Calling the subscribe web service with sip
// address of each buddy
for (counter = 0; counter < BuddyList.length; counter++) {
System.out.println("Subscribing presence for: " + BuddyList[counter]);
consumer.subscribePresence(BuddyList[counter], pat, "unused",
sr);
Thread.sleep(3000); // Give the backend enough time to get the subscription.
// Define Presence Activity types and attribute storage
PresenceAttributeType pa1 = PresenceAttributeType.Activity;
pat1 = new PresenceAttributeType[] { pa1 };
} catch (Exception e) {
System.out.println("Exception " + e.toString());
e.printStackTrace();
// getUserPresence - this method retuns the presence information
// of a particular buddy(user)
public PresenceAttribute getUserPresence(URI user) {
PresenceAttribute pa;
try {
System.out.println(consumer.getEndpoint() + "," + consumer.getUsername());
pa = consumer.getUserPresence(user, pat1)[0];
} catch (PolicyException pEx) {
pa = null;
System.out.println("PolicyException:getUserPresence: " + pEx.getMessageId() + ":" + pEx.getText());
String[] variables = pEx.getVariables();
for(String str:variables){
System.out.println(str);
} catch (ServiceException serEx) {
pa = null;
System.out.println("ServiceException:getUserPresence: " + serEx.toString());
} catch (RemoteException rEx) {
pa = null;
System.out.println("RemoteException:getUserPresence: " + rEx.toString());
return pa;
public static void main(String args[]) throws Exception{
URI[] buddy_list = {new URI("sip:[email protected]"),new URI("sip:[email protected]"),new URI("sip:[email protected]")};
PresenceDemoClient client = new PresenceDemoClient("192.168.111.222","employee1","welcome1","vitkovice","8888",buddy_list);
client.publishPresence("Available",":)");
client.subscribePresence();
URI[] buddy_list2 = {new URI("sip:[email protected]"),new URI("sip:[email protected]"),new URI("sip:[email protected]")};
PresenceDemoClient client2 = new PresenceDemoClient("192.168.111.222","employee2","welcome1","vitkovice","8888",buddy_list2);
client2.publishPresence("Available",":)");
client2.subscribePresence();
URI[] buddy_list3 = {new URI("sip:[email protected]"),new URI("sip:[email protected]"),new URI("sip:[email protected]")};
PresenceDemoClient client3 = new PresenceDemoClient("192.168.111.222","employee3","welcome1","vitkovice","8888",buddy_list3);
client3.publishPresence("Available",":)");
client3.subscribePresence();
URI[] buddy_list4 = {new URI("sip:[email protected]"),new URI("sip:[email protected]"),new URI("sip:[email protected]")};
PresenceDemoClient client4 = new PresenceDemoClient("192.168.111.222","employee4","welcome1","vitkovice","8888",buddy_list4);
client4.publishPresence("Available",":)");
client4.subscribePresence();
Thread.sleep(10000); //Allow some time for all the subscription notifications.
PresenceAttribute pa = client.getUserPresence(buddy_list[0]);
System.out.println(buddy_list[0] + ": " + pa.getTypeAndValue().getActivity() + " " + pa.getNote());
PresenceAttribute pa2 = client2.getUserPresence(buddy_list2[0]);
System.out.println(buddy_list2[0] + ": " + pa2.getTypeAndValue().getActivity() + " " + pa2.getNote());
PresenceAttribute pa3 = client2.getUserPresence(buddy_list3[0]);
System.out.println(buddy_list3[0] + ": " + pa3.getTypeAndValue().getActivity() + " " + pa3.getNote());
PresenceAttribute pa4 = client2.getUserPresence(buddy_list4[0]);
System.out.println(buddy_list4[0] + ": " + pa4.getTypeAndValue().getActivity() + " " + pa4.getNote()); -
We would like to implement SMS web services using ADF BC. Could u please help us to point us to the right path to start this. The SMS web services will send the logs, errors or exception generated by Oracle ADF based application to mobile phones. The recipient of this is an IT administrator or those who will maintain the application.
Aside from the software architecture, what are necessary technical implementation or hardware infrastructure needed to implement this? Is the Oracle wireless already integrated with the Oracle 10g AS?Are you already familiar with ADF BC and just trying to implement a web service with it?
I'm not familiar with what special facility an "SMS Web Service" would need. If you can implement it as a simple java class, you can implement it as a simple java class that uses ADF Business Components for sure. -
Don't show data from web service to Cross-Tab in xcelsius
Hi all visitors
I have created one web service and my web service will show data like this.
Group ___Floor ____Amount
Member__Floor 1__1000000
Member__Floor 2__1000000
Member__Floor 1__1000000
Member__Floor 2__1000000
Member__Floor 2__2200000
Member__Floor 1__ 1000000
Member__Floor 1__ 1000000
In my xcelsius, i have option to make it to cross-tab.
when i use that data( data above by manual) to excel spreadsheet. The data will change to
Group______________Floor1________________Floor2______________GrandTotal
Member____________5000000_____________ 3200000_____________8200000
GrandTotal__________5000000_____________ 3200000_____________8200000
But when i load the data from web service,It doesn't show anything.
(when i use list view to show data from web server, i see all data)
How can i load data from web service and show the data like manually?
Best Regards,Hi Tony,
As per your example i have used the SUMIF fucntion
have a glance at that and let me know if you need help
Data coming from webservice >> Concat Group Floor Amount
=C7&D7 Member Floor1 1000000
=C8&D8 Member Floor2 1000000
=C9&D9 Member Floor1 1000000
=C10&D10 Member Floor2 1000000
=C11&D11 Member Floor2 2200000
=C12&D12 Member Floor1 1000000
=C13&D13 Member Floor1 1000000
Cross Tab >>Group Floor1 Floor2
Member =SUMIF($B$7:$B$13,$H$7&I6,$E$7:$E$13) =SUMIF($B$7:$B$13,$H$7&J6,$E$7:$E$13)
Grand Total =SUM(I7) =SUM(J7)
Original data after
Group Floor1 Floor2
Member 4,000,000 4,200,000
Grand Total 4,000,000 4,200,000
Hope this may solve your issue.
Ley me know if you have any other issues.
Regards,
AnjaniKumar C.A. -
Have the capability that let Entity Objects from Web Services Datasources?
Have the capability that let Entity Objects from Web Services Datasources? or
where can we found the example about implement Entity Objects from Web Services Datasources ?I'm not sure what are you asking for. If you are looking to create a data-control based on a web service then this online demo might help:
http://www.oracle.com/technology/products/jdev/viewlets/1013/WebServicesAndADF_viewlet_swf.html
Or are you asking how to expose an ADF Business Component as a Web service?
Maybe you are looking for
-
Can no longer connect to HFM Office provider via Smartview
Can connect to Essbase and Reporting and Analysis via Smartview. Just not HFM. This worked for over 1 month and suddenly just stopped! Nothing changed on the servers that we know of. Our TQA environment is still working fine. Just our production envi
-
Stored Procedure in Crystal Report
Dear Experts, I have created one Stored Procedure where Baseentry of invoice is the parameter. Now want to design a crystal report based on that. How to proceed? Please guide stpwise. I am using ODBC connection. And in Crystal report also the paramet
-
Easy way to transfer photos from multiple computers to one library ?
Hi, At home we have a couple of macs and of course every user has it's own iphoto library. I am now looking for a way to backup all those iPhoto libraries to a "main" computer in an easy way. This main computer is an iMac with multiple external drive
-
Config file access denied while Jheadstart UIX apps migration to 10.1.3.2
Hi All, I am migrating UIX application from 10.1.2.0 to 10.1.3.2.0 .When I am running Jheadstart generator on view components ,It throws me following error, Error while loading template bindings property file: java.io.FileNotFoundException: C:\<direc
-
Fastest way to add multiple images, one after the other, in DW5.5
There has to be a faster way to add multiple images, one after the other, in a web page rather than just dragging each from the Files tab w/in DW 5.5 I was a little surprized I couldn't select multiple images and just drag a block and have DW just in