Report Bursting with RESTful Web Services SDK
Hi,
We are looking to upgrade to BI 4.x from BI 3.1. We are not sure whether RESTful Web Services SDK is the way to go. We have a requirement where we need to be able to refresh a report, save the whole report content to a specified forma for a team lead/manager, and then section/burst each report to separate files that each is corresponding to the individual employee. In other words, for example, we have a team constent of 1 manager and 4 employees. We want to save one report for the manager with all the content from the 4 employees, and then 4 individual reports that each belong to each employee. We current have a macro code that does this in BI 31 refreshing Deski reports. We want to upgrade to BI 4.X, but the Deski and macro are no longer supported. The macro in BI 3.1 we used to control when to refresh, where to save the reports and update our external datasource that the reports finished refreshing and available for view. We want to keep the same functionality so that it is not a whole redesign of the system when the upgrade happens. Thank you so much for your help. Any sample code, tips and guides are helpful. I am looking to prototype first before I can confirm this will work when upgrading. I have a code snippet in macro (VBA) from BI 3.1 in the attached file for reference if you know of the equivalent.
Hi Raghunath,
Looking at your macro, most of the functionality would be available with REST SDK. With BI 4.x REST is now only SDK which provides APIs to work with webi report. With .NET or Java SDK we could not eeven schedule a webi doc with prompts.
With BI 4.1 REST APIs include.
refresh report, schedule report, save report, export which is done by your macro.
For detailed tasks, such as saving and modifying the report for specific users and send to schedule, you would need to play around with REST Urls to understand the workflow.
For starters take a look at the devleopers guide for REST here:
http://help.sap.com/businessobject/product_guides/sbo41/en/sbo41_webi_restful_ws_en.pdf
Here is the doc which compares the availability of SDK APIs with different BI versions.
http://scn.sap.com/docs/DOC-53285
For any Enterprise level tasks, you could always use .NET or Java enterprise SDk and comibe it with your REST app.
- Bhushan
Senior Engineer
SAP Active Global Support
Follow us on Twitter
Got Enhancement ideas? Try the SAP Idea Place
Similar Messages
-
Is it possible to add a user using the RESTful Web Services SDK
Others have asked before about user management features in the RESTful Web Services SDK. However I can find no answers or links which provide an answer to the question 'Is it possible to add a user using the BI 4.1 SP2 RESTful Web Services SDK'?
Any help would be appreciated.
Regards,
SteveHi Steve
Unfortunately, not possible. The BI RESTful can only get "stuff" that is already there. I suppose this would fall under some sort of "Object Creation" API and that is not there. Yet. Rumors abound, but nothing firm. Just as a BTW.; the Business Intelligence platform RESTful Web Service Developer Guide 4.1 is here:
http://help.sap.com/businessobject/product_guides/sbo41/en/sbo41_bip_rest_ws_en.pdf
SAP Web Intelligence RESTful web service SDK User Guide, SAP BusinessObjects Business Intelligence platform 4.1
SAP Crystal Reports RESTful web services - SAP Crystal Reports RESTful web services
- Ludek
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter -
Hi,
I am trying to update the Query of an existing WEBI document's dataprovider, through the RESTful Web service SDK.
For this, first i will get the Dataprovider information,
Example:
URI: http://localhost:6405/biprws/raylight/v1/documents/11111/dataproviders/DP0
Expected result;
<dataprovider>
<id>DP0</id>
<name>Query 1</name>
<dataSourceId>1234</dataSourceId>
<updated>2014-04-18T11:55:21.000-08:00</updated>
<duration>1</duration>
<isPartial>false</isPartial>
<rowCount>113</rowCount>
<flowCount>11</flowCount>
<dictionary>
<expression qualification="Dimension" dataType="String">
<id>DP0.DO1</id>
<name>EmpID</name>
<description>Employee ID.</description>
<dataSourceObjectId>DS0.DO1</dataSourceObjectId>
</expression>
<expression qualification="Dimension" dataType="String">
<id>DP0.DO2</id>
<name>EmpName</name>
<description>Employee Name.</description>
<dataSourceObjectId>DS0.DO2</dataSourceObjectId>
</expression>
</dictionary>
<query>SELECT Employee.EmpID, Employee.EmpName FROM Employee</query>
</dataprovider>
Then Changing the above dataprovider's Query to some thing like below,
<query>SELECT Employee.EmpID, Employee.EmpName FROM Employee where Upper(Employee.EmpName)='RAJ'</query>
Please let me know the RESTful Call required to do this.
Thanks in advance.
Thanks,
Mahendra.FYI, the output of this call returns something like:
<?xml version="1.0" encoding="UTF-8"?>
<queryplan>
<union>
<fullOuterJoin>
<statement index="1">SELECT 'FY' || to_char(SALES.invoice_date,'yy'), count( distinct SALES.inv_id) FROM SALES GROUP BY 'FY' || to_char(SALES.invoice_date,'yy')</statement>
<statement index="2">SELECT 'FY' || to_char(SALES.invoice_date,'yy'), sum(INVOICE_LINE.nb_guests) FROM SALES, INVOICE_LINE, SERVICE_LINE, SERVICE WHERE ( SALES.INV_ID=INVOICE_LINE.INV_ID ) AND ( INVOICE_LINE.SERVICE_ID=SERVICE.SERVICE_ID ) AND ( SERVICE.SL_ID=SERVICE_LINE.SL_ID ) AND ( SERVICE_LINE.service_line = 'Accommodation' ) GROUP BY 'FY' || to_char(SALES.invoice_date,'yy')</statement>
</fullOuterJoin>
<fullOuterJoin>
<statement index="3">SELECT 'FY' || to_char(SALES.invoice_date,'yy'), count( distinct SALES.inv_id) FROM SALES GROUP BY 'FY' || to_char(SALES.invoice_date,'yy')</statement>
<statement index="4">SELECT 'FY' || to_char(SALES.invoice_date,'yy'), sum(INVOICE_LINE.days * INVOICE_LINE.nb_guests * SERVICE.price) FROM SALES, INVOICE_LINE, SERVICE WHERE ( SALES.INV_ID=INVOICE_LINE.INV_ID ) AND ( INVOICE_LINE.SERVICE_ID=SERVICE.SERVICE_ID ) GROUP BY 'FY' || to_char(SALES.invoice_date,'yy')</statement>
</fullOuterJoin>
</union>
</queryplan> -
Composite Application with RESTful Web Services
Hello!
Is it possible to build Composite Application with RESTful Web Services only. I use Glassfishe 2.1 and OpenESB 2.1.
Can you point me on some tutorials on the net to read about using RESTful Web Services in BPEL?Hi Gabriel,
Let me try to answer some of your questions:
1) The "Requires Secure Access" attribute of a resource handler controls whether this handler must be accessed/consumed only over SSL (HTTPS). Oracle Database Cloud Schema Service is only offered over SSL, so this attribute does not have any effect on RESTful services deployed in this environment (because secure access is always required and there is no other way). That said, if you want to access such web service from your own APEX instance, your instance must have Oracle Wallet configured with appropriate SSL certificate.
2) The URI parameters are not required. If your web service returns data for many entities (for example, list of employees in employees/), you may not need a parameter. If your web service returns data for one specific entity (for example, details of one employee in employees/{id}), you may want to identify that entity with a URI parameter.
3) You can have many URI parameters, for example: customers/{id}/orders/{order_id}.
4) Yes, these are the same HTTP methods/verbs you would use from PHP.
5) If you are trying this POST example from your own APEX instance (not Oracle Database Cloud Schema Service) and you are trying to access a web service over SSL, then it is likely that the Oracle Wallet used by your instance does not include the required SSL certificate(s), or the Oracle Wallet is not configured at all.
6) I recommend to check RESTful Web Services for the Oracle Database Cloud white paper and Oracle REST Data Services Developers Guide. Oracle REST Data Services is the technology that enables RESTful services in the Oracle Database Cloud Schema Service.
You can certainly create your own web services in the Oracle Database Cloud Schema Service and consume them from the same environment.
Vlad -
Where is the Restful web services sdk?
I'm confused as to where to get this SDK, is it part of
51046777_2
SBOP BI PLATFORM 4.1 SP1 ENTER .NET SDK RUNTIME WINDOWS
or is it contained in a different package somewhere?
If you know where to get it, let me know, thanks in advance.
MattHi Matt,
Please search before posting, a lot of information is available on the forum.
Take a look at these docs.
http://scn.sap.com/docs/DOC-40754
http://scn.sap.com/community/restful-sdk/blog/2012/11/22/sap-bi-platform-restful-web-service-sdk-demos
http://help.sap.com/businessobject/product_guides/sbo41/en/sbo41_webi_restful_ws_en.pdf
REST service is a part of BI Server installer.
- Bhushan
Senior Engineer
SAP Active Global Support
Follow us on Twitter
Got Enhancement ideas? Try the SAP Idea Place -
Refreshing a document with Restful Web Services
Hello,
I want to refresh a document with Restful Web Services. The document is based on a BEx query with a date variable, which is set as a prompt.
In order to refresh I send a PUT request like:
PUT <webiURL>/documents/{documentId}/parameters
and add the parameter, which is the prompt variable, to the body:
{"parameters":{"parameter":[{"id":0,"answer":{"@type":"Date","values":{"value":"2014-07-01T00:00:00.000+00:00"}}}]}}
Then I get a result like:
{"success":{"message":"The resource of type 'Document' with identifier '1234' has been successfully updated.","id":1234}}
Now I assume that the document is refreshed. However if I now read the properties with:
GET <webiURL>/documents/{documentId}/properties
the lastrefreshtime is not changed.
Has anybody an idea what happens during a refresh and what is updated?
Kind regards,
MichaelHi,
I have analyzed that the refresh seems to be only valid for the current session. This means, if I logon, refresh the document and determine the properties, I get the new refresh time.
However, if I logoff, I still get the old refresh time. So the refresh is lost or only valid for a session.
Is this the default behaviour?
Regards,
Michael -
Report Repointing using RESTful Web Services
With respect to this link: Changing Dataproviders for a Webi Report using RESTful Web Services
Cosider the following scenario:
You have an automation code using which, you accepts 20 report id and their respective Current universe id and New universe id.
If suppose, you have user input prompts in 10 reports and you don't know those 10 reports, how will you provide values to those prompts at a single execution of the code?
OR
Is there any function using which you can provide associated random value to those prompts?Hi Raghunath,
Looking at your macro, most of the functionality would be available with REST SDK. With BI 4.x REST is now only SDK which provides APIs to work with webi report. With .NET or Java SDK we could not eeven schedule a webi doc with prompts.
With BI 4.1 REST APIs include.
refresh report, schedule report, save report, export which is done by your macro.
For detailed tasks, such as saving and modifying the report for specific users and send to schedule, you would need to play around with REST Urls to understand the workflow.
For starters take a look at the devleopers guide for REST here:
http://help.sap.com/businessobject/product_guides/sbo41/en/sbo41_webi_restful_ws_en.pdf
Here is the doc which compares the availability of SDK APIs with different BI versions.
http://scn.sap.com/docs/DOC-53285
For any Enterprise level tasks, you could always use .NET or Java enterprise SDk and comibe it with your REST app.
- Bhushan
Senior Engineer
SAP Active Global Support
Follow us on Twitter
Got Enhancement ideas? Try the SAP Idea Place -
How to schedule Webi Documents with Prompts with RESTful Web Services
Hello,
I am trying to schedule Webi Documents with Prompts using RESTful Web Services with prompts. I am using Simple Rest Client app provided by Google Chrome. We have Business Objects SP6 Patch 1.
However the documentation for RESTful Web Services has only examples for the following
1. Schedule Documents without any Prompts to various destinations and recurrences.
2. Refresh Documents with Prompts.
Is there any example for scheduling documents with prompts? Please advise
Thanks in advanceHi Peter,
With Rest Client, on BI4.0 SP6, you can schedule Webi documents with prompts using the following:
URL: http://<servername>:6405/biprws/raylight/v1/documents/<docid>/schedules
Method:POST
Request Body:
<schedule>
<name>Enter values for City:</name>
<format type="webi"/>
<destination>
<inbox/>
</destination>
<once retriesAllowed="2" retryIntervalInSeconds="60">
<startdate>2013-08-26T15:58:51.000+02:00</startdate>
<enddate>2013-08-27T15:58:51.000+02:00</enddate>
</once>
<parameters>
<parameter optional="false" type="prompt" dpId="DP0">
<id>0</id>
<technicalName>Enter values for City:</technicalName>
<answer constrained="false" type="Text">
<values>
<value>Austin</value>
</values>
</answer>
</parameter>
</parameters>
</schedule>
Using the above request you can schedule the Webi document with prompts to inbox destination and set for once.
The schedule can be sent in different formats to several destinations and set just for once, daily,
hourly or monthly.
You can also check the example for this on page 275 of SAP Webi RESTful SDK user guide for BI4.0 SP6 below:
http://help.sap.com/businessobject/product_guides/boexir4/en/xi4sp6_webi_restful_ws_en.pdf
Regards,
Swati
Message was edited by: Swati Ikhe -
Problem with BO Web Services SDK.
Hello, We are developing a reporting framework using BO Enterprise where different types of reports are available to external users. We are trying to use the Web Services SDK so that CR, WEBI and even Xcelcius reports can be made available. We have the WS installed on the BO enterprise and we can view the WSDL for all the services.
I am able to use the API to establish the connection:
BusinessObjects.DSWS.Connection boConnection = new BusinessObjects.DSWS.Connection("http://linux1608.icallinc.com:7070/dswsbobje/services/session");
Establish the session:
wSession = new BusinessObjects.DSWS.Session.Session(boConnection);
wSession.Login(credential);
Successfully login:
wSession.Login(credential);
Successfully establish the BIPlatform and ReportEngine objects:
bipService = new BIPlatform(boConnection, wSession.ConnectionState);
boRepEng = new ReportEngine(boConnection, wSession.ConnectionState);
The problem occurs when using the BIPlatform to Get an InfoObject.
ResponseHolder reportRH = bipService.Get path:////Conference, null);
Error:
"An XSD Exception occurred. (Error: WBP 42029)"
CallStackTrace = "com.businessobjects.sdk.biar.exception.XSDException$XSDResourceNotFoundException: The resource 'zip:/usr/local/bea/user_projects/domains/BO_SWN_DEV_DOMAIN/servers/BO_SWN_DEV_SRVR/tmp/_WL_user/dswsbobje/thikq6/war/WEB-INF/lib/_wl_cls_gen.jar!/META-INF/xsd/'...
The name of the report is: Conference Details and itu2019s in a folder u201CCRS Prototype Reportsu201D under Public Folders. I have tried the following variations on the PATH parameter:
path://InfoObjects/Root Folder/**/Conference Details
path://InfoObjects/Root Folder/CRSPrototype Reports/Conference Details
path:////Conference
Please note the when I use an improper folder name it does return the appropriate exception.
Could it be the WS SDK is not properly installed or configured? Thanks in advance for your help.We have similar situation: when we use the following search path with one * at the end the report list returns less than 30sec.
Searching path://InfoObjects/Root Folder/SALES Reports/*...
But when we do a recursive search on this folder with 2 ** at the end it times out. Searching path://InfoObjects/Root Folder/SALES Reports/**...
In the log file we see this error when it times out:
org.apache.axis2.AxisFault: Read timed out
Environment:
We are on UNIX Sun Solaris OS, XI 3.1, JAVA SDK, Tomcat/Apache
Any idea?
Thank You -
Problem with RESTful web service
I am running into a problem with Flex Web Services (REST) in trying to get the proper format returned. I can see that the HTTP header is set to
Accept: */*;
rather than
Accept: application/xml
when sending the request. The web service was generated via the web services HTTP data services wizard. I edited it to set the resultFormat to xml
// Constructor
public function _Super_UsersService()
// initialize service control
_serviceControl = new mx.rpc.http.HTTPMultiService();
var operations:Array = new Array();
var operation:mx.rpc.http.Operation;
var argsArray:Array;
operation = new mx.rpc.http.Operation(null, "getUsers");
operation.url = "http://localhost:8888/users";
operation.contentType = "";
operation.method = "GET";
operation.resultFormat = "xml";
//operation.serializationFilter = serializer0;
operation.properties = new Object();
operation.properties["xPath"] = "/";
operation.resultType = valueObjects.Users;
operations.push(operation);
_serviceControl.operationList = operations;
model_internal::initialize();
How does one configure the accept header?Hi,
I have posted a simple application with the RESTful reference:
http://apex.oracle.com/pls/apex/f?p=13758
I can give you full privileges on this so you can look at the WEB service reference. Shall I send to you separately for login user?
It is using the RESTful service: http://apex.oracle.com/pls/apex/nd_pat_miller/demo/employee/{deptno}
This RESTful service tests fine when I test from within the RESTful web service module of the Workspace.
I based this on the Video demo tutorial for RESTful web service that Oracle published for 4.2 release. The video seemed to exclude the {deptno} in the URL but when I try that, it doesn't work either.
This is the error I am getting when I run this on my Apex environment: (it, of course, will not run the web service in the apex.oracle.com environment)
class="statusMessage">Bad Request</span>
</h3>
</div>
</div>
<div id="xWhiteContentContainer" class="xContentWide">
<div class="xWhiteContent">
<div class="errorPage">
<p>
<ul class="reasons"><li class="badRequestReason"><span class="target" style="display:none;">uri</span><span class="reason">Request path contains unbound parameters: deptno</span></li>
</ul>Thanks,
Pat
Edited by: patfmnd on May 8, 2013 3:33 AM -
Basic auth with RESTful WEb service and Web Service reference
Hi, All,
We have made much progress on getting an application working wtih RESTful web services but now are trying to figure out how to lock down a RESTful Web service while making it available for a particular application.
We are using one of the sample 'emp' table web services that come with Apex 4.2 and are trying to apply Basic Auth to the WEb Service via Weblogic filter defined in the web.xml file. That works fine. I now get challenged when I try to go to :
https://wlogic.edu/apex/bnr/ace/hr/empinfo/
And when I authenticate to that challenge I am able to get the data. (we are usiing LDAP authentication at the Weblogic level)
However, I am not sure how to get same basic authentication to work with the Web Service reference in my application. I see the error message in the application when I try to call that Web Service:
401--Unauthorized<
And I see:
"The request requires user authentication. The response MUST include a WWW-Authenticate header field (section 14.46) containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field (section 14.8). If the request already included Authorization credentials"
How do I provide the credentials in the Web REference or do I provide credentials in the Application?
Web service works fine if I remove the RESTful web service basic auth from the Web.xml file.
Should we NOT use Weblogic basic auth and instead use basic auth from Workspace RESTful web service definition. If so, how do we implement THAT basic auth in the Web Service definition and in the Web SErvice Reference on the application?
Thanks,
PatWhat I mean is diid you try to use the PL/SQL package for APEX webservice. Here is an example I use (modified and shortened, just to show how much better this is than to use it from the application).
CREATE OR REPLACE PACKAGE webservice_pkg
IS
PROCEDURE create_webservice (
p_id IN NUMBER,
p_message OUT VARCHAR2,
p_workspace IN VARCHAR2 DEFAULT 'MY_WORKSPACE',
p_app_id IN NUMBER DEFAULT v ('APP_ID'),
p_app_session IN VARCHAR2 DEFAULT v ('SESSION'),
p_app_user IN VARCHAR2 DEFAULT v ('APP_USER')
END webservice_pkg;
CREATE OR REPLACE PACKAGE BODY webservice_pkg
IS
PROCEDURE set_credentials (
p_workspace IN VARCHAR2,
p_app_id IN NUMBER,
p_app_session IN VARCHAR2,
p_app_user IN VARCHAR2
IS
v_workspace_id NUMBER;
BEGIN
SELECT workspace_id
INTO v_workspace_id
FROM apex_workspaces
WHERE workspace = p_workspace;
apex_util.set_security_group_id (v_workspace_id);
apex_application.g_flow_id := p_app_id;
apex_application.g_instance := p_app_session;
apex_application.g_user := p_app_user;
END set_credentials;
PROCEDURE create_webservice (
p_id IN NUMBER,
p_message OUT VARCHAR2,
p_workspace IN VARCHAR2 DEFAULT 'MY_WORKSPACE',
p_app_id IN NUMBER DEFAULT v ('APP_ID'),
p_app_session IN VARCHAR2 DEFAULT v ('SESSION'),
p_app_user IN VARCHAR2 DEFAULT v ('APP_USER')
IS
v_envelope VARCHAR2 (32000);
v_server VARCHAR2 (400);
v_url VARCHAR2 (4000);
v_result_url VARCHAR2 (1000);
v_collection_name VARCHAR2 (40) := 'PDF_CARD';
v_message VARCHAR2 (4000);
v_xmltype001 XMLTYPE;
BEGIN
v_url := v_server || '.myserver.net/services/VisitCardCreator?wsdl';
FOR c IN (SELECT *
FROM DUAL)
LOOP
v_envelope :=
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" '
|| 'xmlns:bran="http://www.myaddress.com">'
|| CHR (10)
|| '<soapenv:Header/><soapenv:Body>'
|| CHR (10)
|| '<parameter:'
|| 'some_value'
|| '>'
|| CHR (10)
|| '<bran:templateID>'
|| p_id
|| '</bran:templateID>'
|| '</soapenv:Body>'
|| CHR (10)
|| '</soapenv:Envelope>';
END LOOP;
set_credentials (p_workspace, p_app_id, p_app_session, p_app_user);
BEGIN
apex_web_service.make_request
(p_url => v_url,
p_collection_name => v_collection_name,
p_envelope => v_envelope
p_message := 'Some message.';
EXCEPTION
WHEN OTHERS
THEN
v_message :=
v_message
|| '</br>'
|| 'Error running Webservice Request. '
|| SQLERRM;
END;
BEGIN
SELECT v_result_url
|| EXTRACTVALUE (VALUE (t),
'/*/' || 'Return',
'xmlns="http://www.myaddress.com"'
xmltype001
INTO v_result_url,
v_xmltype001
FROM wwv_flow_collections c,
TABLE
(XMLSEQUENCE (EXTRACT (c.xmltype001,
'//' || 'Response',
'xmlns="http://www.myaddress.com"'
) t
WHERE c.collection_name = v_collection_name;
EXCEPTION
WHEN OTHERS
THEN
v_message := v_message || '</br>' || 'Error reading Collection.';
END;
EXCEPTION
WHEN OTHERS
THEN
p_message := v_message || '</br>' || SQLERRM;
END create_webservice;
END webservice_pkg;
/If you use it this way, you will find out what the problem is much faster.
Denes Kubicek
http://deneskubicek.blogspot.com/
http://www.apress.com/9781430235125
http://apex.oracle.com/pls/apex/f?p=31517:1
http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
------------------------------------------------------------------- -
Problem with RESTful web service with header value
Hi,
I am on Apex 4.2.2 and Listener 2.1 and the listener is on WEblogic.
I succeeded to get a RESTful web service working in an application with no header to obtain a full set of data. The data set is very large, so I am now just trying to set up a web service to get a set of data based on a student ID.
I followed the examples shown in the RESTful web service module of SQL Workshop and set up a handler of this type:
https://ourweblogicserver/apex/bnr/ace/students/course_grades/{stid}
The test for this handler succeeded both for JSON output and CSV output in the Workshop test environment.
However, when I try it from a Web Service Reference that I created for my application following what looked like the same approach used on the example video, I get NO data back. If I put a 'stid' directly into a URL of a web browser and do the basic authentication I get the data!!
This is what I have for the Web service reference:
https://ourweblogicserver/apex/bnr/ace/students/course_grades/{stid}
Basic auth set to Yes -- and this is working -- I am able to authenticate
HTTP method Get
output format Text
no response Xpath
no response namespace
defaults for new record and parameter delimiter
NO REST input parameters
Output set for all the fields in the data set queried (same set of data as in my rest service which does not have any http header)
REST HTTP Header : Name stid
I there something I am missing. I am not sure how to troubleshoot this further.
PatHi,
I have posted a simple application with the RESTful reference:
http://apex.oracle.com/pls/apex/f?p=13758
I can give you full privileges on this so you can look at the WEB service reference. Shall I send to you separately for login user?
It is using the RESTful service: http://apex.oracle.com/pls/apex/nd_pat_miller/demo/employee/{deptno}
This RESTful service tests fine when I test from within the RESTful web service module of the Workspace.
I based this on the Video demo tutorial for RESTful web service that Oracle published for 4.2 release. The video seemed to exclude the {deptno} in the URL but when I try that, it doesn't work either.
This is the error I am getting when I run this on my Apex environment: (it, of course, will not run the web service in the apex.oracle.com environment)
class="statusMessage">Bad Request</span>
</h3>
</div>
</div>
<div id="xWhiteContentContainer" class="xContentWide">
<div class="xWhiteContent">
<div class="errorPage">
<p>
<ul class="reasons"><li class="badRequestReason"><span class="target" style="display:none;">uri</span><span class="reason">Request path contains unbound parameters: deptno</span></li>
</ul>Thanks,
Pat
Edited by: patfmnd on May 8, 2013 3:33 AM -
Details on how to use the RESTful Web Services SDK
Hello,
this sounds really interesting for an important use case we're currently developing. Unfortunately, I am not a skilled developer and would therefore need to know two more things:
1) in the beginning, it says ''assumes that there are no parameter values that need to be set'. Is this a core restriction or just to keep things simpel for this example? For our specific use case, we would need to at least transmit a report name and an execution date (which is not necessarily always equal to 'today')
2) can we have the PDF sent to a Netweaver App Server? Can the target location there be parameterized somehow?
3) I understzand that there's also the Open Doc interface that could achieve similar features. Could you please elaborate which are the differences in the two approaches, maybe even pros and cons?
Thanks
PhilippHi Philipp,
1) This is just to keep things simple for the example
2) You would need to first send the PDF to a file system, and then have a separate process to send it to the Netweaver App Server. There isn't built-in integration to the Netweaver App Server.
3) Stated simply:
OpenDocument allows you to reference content via a single URL, best used for embedding content in your web page or application. Pro: Simplest Option Con: Less power than REST API
The REST API allows you to manipulate report objects in Web Intelligence and do things like set datasource and create report scheduling jobs. Pro: More Power and Flexibility Con: Requires knowledge of programming with REST APIs.
Best Regards,
Terry -
HTTP error when trying to access RESTful web service from application
Hi,
We are getting the following error when trying to access a RESTful web service coming from Apex workspace 4.2.1 and Apex listener 2.1:
ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-29024: Certificate validation failure
In the Debug report, besides the above I also see:
error_backtrace: ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 543 ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 1164 ORA-06512: at "APEX_040200.WWV_FLOW_PROCESS", line 396
We get that error whether we use https or http in the URI pointing to the web service. When I test the Web Service in Workspace RESTful service GUI, I get the data back. When I go build an application with a report calling the RESTful Web Service I get that error. Both the Application and the Workspace RESTful services are on the same Apex environment and even the same workspace.
What is odd is that I can actually put the URL of the web service into a browser and I get the data: (using the demo hr data in sample RESTful services.)
IN browser-- https://weblogic-dev.edu/apex/ace/hr/empinfo/
yields:
7839,KING,PRESIDENT,,1981-11-17T05:00:00Z,5000,,10 7698,BLAKE,MANAGER,7839,1981-05-01T04:00:00Z,2850,,30 7782,CLARK,MANAGER,7839,1981-06-09T04:00:00Z,2450,,10 7566,JONES,MANAGER,7839,1981-04-02T05:00:00Z,2975,,20 7788,SCOTT,ANALYST,7566,1982-12-09T05:00:00Z,3000,,20 7902,FORD,ANALYST,7566,1981-12-03T05:00:00Z,3000,,20 7369,SMITH,CLERK,7902,1980-12-17T05:00:00Z,800,,20 7499,ALLEN,SALESMAN,7698,1981-02-20T05:00:00Z,1600,300,30 7521,WARD,SALESMAN,7698,1981-02-22T05:00:00Z,1250,500,30 7654,MARTIN,SALESMAN,7698,1981-09-28T04:00:00Z,1250,1400,30 7844,TURNER,SALESMAN,7698,1981-09-08T04:00:00Z,1500,0,30 7876,ADAMS,CLERK,7788,1983-01-12T05:00:00Z,1100,,20 7900,JAMES,CLERK,7698,1981-12-03T05:00:00Z,950,,30 7934,MILLER,CLERK,7782,1982-01-23T05:00:00Z,1300,,10
Any ideas on what would be causing the Error above in our application?
Thanks,
Pat
Edited by: patfmnd on Mar 11, 2013 3:25 PM
In reviewing the above error, I think we are realizing that we have to have the Weblogic layer SSL cert (actually the CERT from our BigIP load balancer which also does our SSL termination) imported into the Oracle server wallet where Apex is installed. Am I correct?
PMWe resolved our problem. The Apex Administrative Guide made us realize that we had to set up Wallet path in the Instance. This required working with DBAs to follow the Advanced networking guide to get the wallet set up on our server. We then added that path to the Instance configuration. (Manager Instance --> Instance settings). We ran into another other issue related to our implementation of CAS but were able to resolve that, and 'voila' were able to get the sample RESTful service consumed by our application!!
Now to the task of figuring out how to get Basic Auth working between client application and RESTful web service. If anyone has that working, let us know!!
It would be helpful if in the documentation of the Apex 2.x listener or Apex install/configuration there was clear reference to the above steps required for HTTPS access to RESTful web services.
Pat -
How to build complex object to be sent to a RESTful web service?
Hi,
I'm working with RESTful web services on J2EE 1.6.
I create the database, generate the entities and generate the web services.
I must implement Javascript clients and I don't want to use any open source for that.
I have a simple example that works just fine. For the database :
CREATE TABLE Shopper(
shopperId MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
firstName VARCHAR(40),
lastName VARCHAR(40),
phone VARCHAR(40),
email VARCHAR(50) NOT NULL,
receiveEmailNotification ENUM('Y', 'N'),
index(email)
I create this xml information with javascript :
*<shopper>*
*<email>c</email>*
*<firstName>c</firstName>*
*<lastName>c</lastName>*
*<phone>c</phone>*
*<receiveEmailNotification>Y</receiveEmailNotification>*
*</shopper>*
and it is saved in the database. I have a more complex application with relationships between entites. For this database :
CREATE TABLE Shopper(
shopperId MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
firstName VARCHAR(40),
lastName VARCHAR(40),
phone VARCHAR(40),
email VARCHAR(50) NOT NULL,
receiveEmailNotification ENUM('Y', 'N'),
index(email)
CREATE TABLE Address(
addressId MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
street VARCHAR(60),
streetNo VARCHAR(20),
postalCode VARCHAR(30),
city VARCHAR(40),
country VARCHAR(40),
otherInfo TEXT,
shopperId MEDIUMINT NOT NULL,
foreign key (shopperId) REFERENCES shopper(shopperId) ON DELETE CASCADE,
index(shopperId)
I was expecting that xml information sent from the browser should be:
*<address>*
*<city>c</city>*
*<country>c</country>*
*<otherInfo>c</otherInfo>*
*<postalCode>c</postalCode>*
*<street>c</street>*
*<streetNo>c</streetNo>*
*<shopper>*
*<email>c</email>*
*<firstName>c</firstName>*
*<lastName>c</lastName>*
*<phone>c</phone>*
*<receiveEmailNotification>Y</receiveEmailNotification>*
*</shopper>*
*</address>*
but I keep on getting errors.
I want to send one XML structure that will be stored in two tables according to the foreign key relation.
Does the RESTful web services code generated by Netbeans or Eclipse support this?
Is my XML structure not built correctly?Kevin,
My object base class is Abstract and class I am using in Flex 3 is class inheriting abstract class. But when calling webservice Flex creating soap message of base class and I am getting error in .Net web services that "Can not create instance of Abstract class".
Below is the soap message difference calling same WCF method from .Net and Flex. For example Constraint is the base class and JobConstraint is the class which inherit Constraint class. But flex send message forming only Constraint while .Net soap is specifying i:type="JobConstraint".
Part of soap message Calling from .Net
<
Constraints><
Constraint i:type="JobConstraint"><Position
>true</Position><
Rank>2</Rank><
Requirement>true</Requirement></
Constraint></
Constraints>
Part of Soap message calling from Flex 3
<ns0:Constraints>
<ns0:Constraint>
<ns0:Position>true</ns0:Position>
<ns0:Rank>2</ns0:Rank>
<ns0:Requirement>true</ns0:Requirement>
</ns0:Constraint>
</ns0:Constraints>
Maybe you are looking for
-
How can I remove the battery from my IPhone
my phone will not complete a call.
-
Ipad will not automatically set date and time
My ipad drained and when I recharged it the date read 31 Dec 1970. Now it will not automatically connect and update the date and time, and cannot connect to itunes. I can recieve emails on this device but I can's send emails. So it must have some
-
Older AC adapter w/ Classic ???
just picked up a new 80gig Classic . . . is it OK to use the USB AC converter from the older forth generation iPod ??? . . . (that's the last model with a mono screen) . . .
-
How can I set the height of a JCheckBox? I have nine JCheckBoxes in a JPanel. I need to set them closer together vertically than they are now. myJCheckBox.getHeight() returns 0 so I can't reduce that. myJCheckBox.HEIGHT has a value of 2, but I cannot
-
Dynamic image gallery on detail page
I have a master page listing 8 products. I have inserted a dynamic image gallery on the detail page which looks ok, but has one major flaw: when you click on a thumbnail the main image opens on the wrong page. e.g. if you click on page ../dragons.php