In this blog, I would be talking about the Hyperion Planning
REST API. Well, very often you come across a tool that is easy to use and
solves a business problem with simple and elegance that you really need to
appreciate the thought process that went behind designing the tool. Solving
something with simplicity is very difficult and all the good algorithms in
computer science do just that. Well, for anyone who has worked with PBCS in the
recent past, there is small little tool called EPM Automate that basically
automates the common administrative tasks in PBCS. And having used this tool,
it is quite a handy little tool that solves most of the common administrative
tasks in a jiffy. So, there I was the other day, looking up EPM Automate to see
how its implemented, when I came upon this blog by John Goodwin regarding
Planning REST API (http://john-goodwin.blogspot.in/2015/09/planning-rest-api.html)
So, finally found that the Planning REST API is the building
block of the EPM Automate. Now, I am trying to do this on my native
installation of EPM that I have which is not a cloud based implementation.
So, the URL I used for testing the REST API on my native
installation is of this type: -
As you can see in the above snapshot, it gave me a response
of the different versions for the rest api in JSON format.
The entire output is shown below: -
{"items":[{"version":"v1","lifecycle":"deprecated","isLatest":false,"links":[{"rel":"canonical","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/v1"},{"rel":"successor-version","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/11.1.2.3.600"}]},{"version":"v2","lifecycle":"deprecated","isLatest":false,"links":[{"rel":"canonical","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/11.1.2.3.600"},{"rel":"predecessor-version","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/v1"},{"rel":"successor-version","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/11.1.2.4"}]},{"version":"v3","lifecycle":"active","isLatest":true,"links":[{"rel":"canonical","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/11.1.2.4"},{"rel":"predecessor-version","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/11.1.2.3.600"}]}],"links":[{"rel":"self","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/"},{"rel":"canonical","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/"},{"rel":"current","href":"http://WIN-LD9C40U8DI5:19000/HyperionPlanning/rest/11.1.2.4"}]}
If you check the entry for 11.1.2.4, you will see that this
is the active one and the latest one as well… So basically any query to the
application will now take the form of http://localhost:19000/HyperionPlanning/rest/11.1.2.4/.....
I now tried to see if I can list the applications in the
Planning environment but I got an error as shown in the below snapshot: -
So I got an IllegalArgumentException saying that cssUser is
NULL which makes sense since I am not supplying any user name and password…
Now, in order to control these basic things like user name
and password, you can install the RESTClient addon in Mozilla, that basically
acts as an interpreter for all your REST API requests… I installed it and below
snapshots show me setting the user name and password in the Basic
Authentication tab…
Once I entered and saved the credentials, the same query for
listing out the applications works perfectly as shown in the below snapshot.
Note that I am interested in getting all he information that is exchanged via
http so this includes response headers and stuff…
The response header is as shown in the below snapshot.
Observe the status message (200 OK) and the time stamp info… Status messages
are quite useful for debugging and checking connection issues…
Response body in raw format is as shown below: -
Response
body with JSON tags formatted is as shown below…
Now, the best part…The real motivation for trying this was
to see if I could design a Java program that would interact with the REST api
using the java.net package…
Well, good thing is that I managed to get the first set of
output using Java…Below snapshots of connecting to the server using Java and
the sample output…
This output is similar to the one from the RESTCient addon…
Will try to implement a full-fledged solution using the networking package in
Java… More sleepless nights in sight…Will keep you posted…
I think there is a need to look for some more crucial aspects of SQL and REST API.Its certainly because both are very useful in breaking down complex IT problems.
ReplyDeletePowerbi Read Rest
Data Science online courses
ReplyDeletelinux online courses
etl testing online courses
web methods online courses
business analyst online course