I'm looking to write an app that extracts info from the CMS. This will get just all the users and user groups, and it will get all the reports and their paths. I can worry about getting more later. Maybe I can deploy it once and it will update nightly. I was going to write it in Java and not .NET, I feel a bit more comfortable in Java. Although I do love Visual Studio, the last couple times I set it up it was a real pain if I didn't have the latest and greatest MSDN subscription to go with it.
I know I can just create an application that sits on the BOE box and schedule it with windows scheduler. Has anyone done this before with an SAP BI SDK app?
While I appreciate knowing all the possible ways of doing something, I'm not looking here to get all of the ways to do this. Unless there is a single best practice that pretty much everyone does.
Thanks!
A few things I'd like to remark:
Write your app in Java, especially if you're more comfortable with that language already. While the BOBJ SDK is largely available in .NET as well, for some reason it has always played second fiddle. Perhaps this has something to do with the fact that a very large part of the server codebase is written in Java as well, but that's just speculation.
While you can create an external app and schedule that using the Windows Scheduler, you could just as well implement the Program Object interface and publish your program as an object (a Program Object) inside of the BusinessObjects repository and schedule it using the built-in scheduling features. This also means that you can automatically have it notify you when it finishes, or fails, etc.
The purpose of your program (collecting information regarding users, user groups and documents) is quite straightforward. Keep in mind that you can test your queries using the Query Builder (web application that is deployed with BusinessObjects, the URL depends on the version you're using).
Query results only return 1000 records by default; if you need more, add the TOP xxx argument to your SELECT statement (were xxx is the maximum number of records you expect to retrieve).
Relationships (e.g. between users and user groups) are calculated on the fly by the CMS, so this is an expensive operation. When you query relationships, they will be returned as a list of integers, corresponding to the IDs of the objects they relate to.
Here are some resources that may help you: