So you have your shiny new Hyperion Planning application in
place, with a spiffy and speedy ASO reporting cube to go along with it, you’ve
impressed the C-Level with how great it is, and they have given you the go to
roll it out to all 500 Business users, spread across 50 cities
in 10 different countries. Sounds like
you’re ahead of the game at this point, but you have one issue, none of these
users have Smart View installed. If
promoting Self-Service reporting capabilities for users is a stated goal of the
project, then getting the Smart View deployments to users right is a critical
step to complete.
So being the
resourceful individual you are, you reach out to the IT team for a mass
deployment to be pushed out to these users. IT comes back the next day and says
they don’t have the capabilities to do this, or it might take months for IT to
figure this out, so you are in a bit of a situation. Now you have to figure out
how to get this installed and configured for all of these users.
This is exactly the situation I recently encountered, to
make it even more fun, users are
typically not given local admin rights to their desktops (standard IT policy)
and restricted from doing any installs
in there systems on their own; local IT
team would need to do the install. But
Local IT would not do the configuration even if they did the install, since it
was considered personal preferences, and outside of their scope. Making this an
easy transition for the users was key, if you have ever set up Smart View, you
know that setting the shared connections URL is in the ‘Advanced’ options, this
is not a big deal for most people, but some of the users are afraid of words
like Advanced, URL, Server, etc. so how do we get past all of these struggles?
We put together a plan.
My 3 step plan ensures a smooth (as possible) roll out of Smart
View to these users and here it is:
Step 1 – Install
Instructions
Local IT departments love to archive the installer for quick
reference when they have new users asking for the install, unfortunately they
often do not update that file to the latest version when you do. To prevent installation of old versions,
inform your users of what they need to do with instructions. “Go have IT install Smart View” is not a set
of instructions. Users need to know what
to tell IT, so tell your users where the install file is, what version they
should be getting, and how to actually run the installation, and finally how they
can check/test that the they have successfully completed installing it in their system and have the right ‘version’ of Smart View. A
PowerPoint with a few pictures and arrows can do this with ease.
Step 2 – Make the
install file central and easy to get
To make sure all users are on the same version of Smart View
do not let them find the install file on their own, give them the install
file. There are 2 ways to do this, and
you can use either/both depending on your environment
1 –
Have users install through workspace, this is great for local users, but some
users might not want to wait for a 130MB+ file to download from a server on the
other side of the world. But it’s easy for you to update, as the file is only
in one place.
2 – Put
the install file into local share drives in each region, this allows all users
to access the same file, and to gain the benefits of local file shares. The
only drawback is if you update the file, you need to update all of the local
shares, not just one. In my case, we set
up a share in each region (APAC, Americas, and EMEA) for the users to access.
Step 3 – Configuring Smart
View
So like I mentioned earlier configuring Smart View tends to
be the biggest obstacle for a lot of users, fortunately for us Smart View comes
with a whole suit of VBA functions that make this process easy to automate. As part of your instruction set, include an
excel macro file that is simple for users to use, one button in the middle of
the file that says “Click Here” tends to do it.
With the method in mind, the question is only what options can I set,
and how do I do that? the Smart View Developers Guide has some very detailed information
on the VBA functions, but we really only need a few of these:
- HypSetSharedConnectionsURL
- HypConnectionExists
- HypRemoveConnection
- HypCreateConnection
- HypSetOption
Before you can use the VBA functions, you need to import
them into your workbook. To do this just import the Smart View.bas file into
the project in the VBA editor, by default you can find this file in the C:\Oracle\Smart View\bin directory. Now that
we have the functions in our file, let’s build our macro.
The first thing I like to do is confirm that the user wants
to continue, because using the macro will overwrite their existing settings, a
quick message box can take care of this:
If MsgBox("Clicking ok will overwrite some options you may have already
set, are you sure you want to continue?",
vbYesNo, "Warning") = vbNo Then
Exit Sub
Now we have our disclaimer, lets change some
settings. First thing I want to change
is the Shared connections URL, we can do this with HypSetSharedConnectionsURL
function:
x =
HypSetSharedConnectionsURL("http://YOURSERVER:PORT/workspace/Smart
ViewProviders")
That was easy, but what if this did not work? Let’s
capture any error messages as we go along, we can check them at the end.
sErrors = sErrors
& x & ","
This will create a string of comma separated errors
that we can later reference in case of issues.
Moving on, let’s set up any private connections that
may be required, this is a bit more involved and we are going to use a few
functions to do it. First we need to
check if the connection, or connection with the same name, already exists. If it does, we want to remove it, and put our
connection in its place. Because some of the parameters are reused, let’s use
variables for those.
hProvider = "http://yourserver:19000/aps/Smart View"
hServer = "EssbaseCluster-1"
hAlias = "CoolNewASO"
sApp = "YOURAPP"
sCube = "YOURCUBE"
x =
HypRemoveConnection(hAlias)
If HypConnectionExists(hAlias) = False Then
x = HypCreateConnection(Empty,
"", "", "HYP_ESSBASE", _
hProvider, hServer, sApp,
sCube, hAlias, "Analytic
Provider Services")
Else
x = HypRemoveConnection(hAlias)
x = HypCreateConnection(Empty,
"", "", "HYP_ESSBASE", _
hProvider, hServer, sApp,
sCube, hAlias, "Analytic
Provider Services")
End If
sErrors = sErrors
& x & ","
Note that we are again capturing the errors in our
ever growing error string. You can repeat this as needed for your case, you can
do this with more than just Essbase connections as well, check out the
documentation for more details on providers that can be used
Our connections are now all set up, so let’s set some
options HypSetOption gives us a lot of items to work with. Now there are a lot of options you can set in
Smart View and luckily for us Oracle was nice enough to create some constants
for us to use, these are in the Smart View.bas that we imported earlier. For this example I will only set a few, but
you can go through the full list to find all the options you want to set. Using the function is fairly straight forward,
chose the option you want to set, and the value to set it to, put that in a
function and your all set.
x = HypSetOption(HSV_INCLUDE_SELECTION,
False, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_INDENTATION,
False, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_SUPPRESSROWS_MISSING,
False, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_SUPPRESSROWS_ZEROS,
False, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_MISSING_LABEL,
"#NumericZero", "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_SHOW_PROGRESSINFORMATION,
True, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_PROGRESSINFO_TIMEDELAY,
1, "")
sErrors = sErrors & x &
","
Again each time we change a setting, we capture the
errors if they exist. So now all of the
options have been set, we have to check for errors and provide an error report
if needed, since our error is a string, we can do a if statement to check if it
matches a clean string, and show the user if needed.
If sErrors = "0,0,0,0,0,0,0,0,0," Then
MsgBox "All
options set without issue"
Else
x = MsgBox("Some options have not been set, please contact EPM Team,
please include the bellow Error Code: "
& vbCrLf & vbCrLf & "Error Code: "
& iErrors, vbCritical, "Error")
End If
Hopefully everything ran correctly, but if not, you
have a starting point for troubleshooting the problem.
For reference, this is what your VBA code should look
like:
Sub SET_Smart View_Options()
If MsgBox("Clicking
ok will overwrite some options you may have already set, are you sure you want
to continue?", vbYesNo, "Warning") = vbNo Then Exit Sub
x =
HypSetSharedConnectionsURL("http://YOURSERVER:PORT/workspace/Smart
ViewProviders")
sErrors = sErrors
& x & ","
hProvider = "http://chnvel2bin02:19000/aps/Smart View"
hServer = "EssbaseCluster-1"
hAlias = "CoolNewASO"
sApp = "YOURAPP"
sCube = "YOURCUBE"
x =
HypRemoveConnection(hAlias)
If HypConnectionExists(hAlias) = False Then
x = HypCreateConnection(Empty,
"", "", "HYP_ESSBASE", _
hProvider, hServer, sApp,
sCube, hAlias, "Analytic
Provider Services")
Else
x = HypRemoveConnection(hAlias)
x = HypCreateConnection(Empty,
"", "", "HYP_ESSBASE", _
hProvider, hServer, sApp,
sCube, hAlias, "Analytic
Provider Services")
End If
sErrors = sErrors
& x & ","
x = HypSetOption(HSV_INCLUDE_SELECTION,
False, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_INDENTATION,
False, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_SUPPRESSROWS_MISSING,
False, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_SUPPRESSROWS_ZEROS,
False, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_MISSING_LABEL,
"#NumericZero", "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_SHOW_PROGRESSINFORMATION,
True, "")
sErrors = sErrors & x &
","
x = HypSetOption(HSV_PROGRESSINFO_TIMEDELAY,
1, "")
sErrors = sErrors & x &
","
If sErrors = "0,0,0,0,0,0,0,0,0," Then
MsgBox "All
options set without issue"
Else
x = MsgBox("Some options have not been set, please contact the EPM
support team with the bellow Error Code: " & vbCrLf & vbCrLf & "Error Code: "
& iErrors, vbCritical, "Error")
End If
End Sub
Now just remember to save your file as an Excel Macro-Enabled Workbook and add this Excel macro file to your Smart View
Instructions PowerPoint and ask the users to click the macro button in it
after they complete their Smart View Install to configure their Smart View connections.
I know Step 3 sounds excessive, but trust me, spending
a little bit of time setting this up will save you hours down the road. And
that’s it, you now have a deployment plan, and you can start to get your users
set up.
It’s worth noting that this macro is not reserved for
new installs or large deployments, you can use this for a small group as well,
I have found that having consistent settings in Smart View makes everyone life
easier. I hope that this helps you get your team set up and running, and look
for a future post on using VBA macros to improve your Smart View user experience.
There I will take you through how creating a couple of very simple macros can turn Smart
View from good to great.
Comments
Post a Comment