Manually update cached filters outside the web interface

Bernard Anderson shared this question 2 years ago
Answered

I have been tasked with creating a Yellowfin environment as a subset of our main database (On a separate platform)


I am comfortable with using Oracle export (expdp) to get the yellowfin schema across but as the data being presented will be different I need to refresh all the cached filters (Currently scheduled) without having a user access the Admin console schedule manager (The subset system has to operate without an Admin user!).


So is there a way I can call the scheduler form outside e.g. in a windows batch file?


Incidentally on YF 7.1 (I know it's no longer supported) on Windows 10/12 Server and Oracle 11R2

Comments (7)

photo
1

Hi Bernard,

We do have a couple refresh web-service calls that you could put into a script, and run on a chron. I am not exactly sure when these were added (my guess is January 2017 in 7.1), but you could definitely give them a go.

The two most relevant to you will probably be:

REFRESH_DASHBOARD_CACHED_FILTERS
REFRESH_VIEW_CACHED_FILTERS

In each case, you will need to provide a parameters array object with the view/dashboard id (found within the config db) eg:

asr.setParameters=[613456]
Let me know if this sounds like it will work or if you have any trouble getting this to work.

Regards,

Nathan

photo
1

Sadly I have no idea how to do that :)


The sub application will be on Widows server 12 so any pointer s on how to implement it would be great.


Thanks

Bernie

photo
1

Hi Bernard,

Do you have any preferred programming language? I would recommend starting with our web-service Wiki page:

http://wiki.yellowfin.com.au/display/USER73/Administration+Service

Unfortunately this will be a bit of a learning curve, but if you are already familiar with a language I might be able to pass along language specific instructions to get you going.

Regards,

Nathan

photo
1

That's ok. Happy to learn :). I can cope with windows batch processing and SQL. One of the side issues is that the eventual users of the subset will have no technical capability so whatever we use it will need to be robust

photo
1

Hi Bernard,

Unfortunately I do not think it is possible to consume SOAP through batch scripts. Another idea is to use JSP. In our installation folder we provide web-service examples and these calls are some of those examples.

Navigate to youryellowfin/development/examples/web services/refresh_cached_filters.jsp

Copy this into your root folder: yf/appserver/webapps/ROOT

Open the file in a text editor

adjust this to be your URL:

AdministrationServiceService ts = new AdministrationServiceServiceLocator("localhost", 8080, "/services/AdministrationService", false);

adjust this to be your administrators login ID and password:

rsr.setLoginId("admin@yellowfin.com.au");rsr.setPassword("test");
adjust this to be your source Id (found in the configuration database, if you are refreshing a source look in the reportviewsource table, if you are refreshing a veiw look in the reportview table)

      rsr.setParameters(new String[] { "53543" });

You can then visit the page on your normal URL: youryellowfin/ws_admin_refresh_source_filter.jsp

Regards,

Nathan

photo
1

Great that appears to have worked but sadly only at 7.3 and we are at 7.1 I guess we will have to accelerate our plans to upgrade :)


Thanks for the guidance. Please feel free to close this call and I will raise another question if I get stymied again

photo
1

Hi Bernard,

Sounds good!

Nathan