Automate report download from SAP Business Object Infoview - selenium

I am new to SAP Business Objects Infoview and was asked if I can automate the report data generation for an existing report.
Here is what I would do manually through the Infoview web interface:
Click schedule for the report in question, which brings up the Schedule dialog
Change the recurrence to Now
Change the report prompts (start date and end date) so that start date=today and end date=today-14 days
Set the format to CSV and output the report to the Inbox
Schedule the report
Wait for the report to succeed
Download the generated report data
I can see how I could build a tool using Java and Selenium to automate this. However I am wondering if there is a more elegant way to doing this that still allows me to set the prompts dynamically. Are there existing 3rd party tools? Can I use JDBC?
What I have at my disposal is a user name/password to log on to Infoview. If a more elegant solution requires additional access or software please let me know.

It's possible with a simple addition to the universe (but this, of course, requires universe developer access). For your example, you could create a new universe-based Predefined Condition object with a definition of: (assuming Oracle)
start_date = trunc(sysdate) and end_date = trunc(sysdate-14)
Adding this object to a report will produce the desired timeframe whenever it's run, whether it's scheduled or interactive.
If you want the same report to run with this logic when scheduled, but still allow users to select dates via the prompts. You can use magic dates. See this blog post for info.
Lastly, you could write a custom program that would open the report, populate the prompts with the appropriate values, and run it. But I would consider that a less-preferable option than the ones above.

You can use UiPath in order to easily automate SAP GUI without writing code.
Here's a tutorial on how to automate data entry, menu navigation and screen scraping on SAP.
You can use it from code (SDK) or you can create workflows (visual automation) directly from UiPath Studio.
Note: I work at UiPath. You should also try other visual automation tools like Automation Anywhere, WinAutomation, Jacada, use them side by side and choose the one that suits better your needs.
Here's how automating SAP Business One menus, buttons and typing looks like:

Related

Uipath automation

I want to take the report of last one download details from the mysql database and sent to my project manager on every monday through the email so the process remains same only date would be change dynamically so, I would like to automate this process using RPA UIpath.
Anyone could you help me to achieve this process.
Thanks
Use 'Database' package to connect to sql db and and run the query.
Schedule the program to run every Monday using Orchestrator.
Create the report with current date using DateTime function
There will be some extra steps like transforming data as necessary etc, but the basic outline of this process is as follows
Download MySQL ODBC Drivers MySQL site
Control Panel -> Setup ODBC Data Sources (32-bit) setup User or System DSN, make sure to test your connection to see if it works OK (it's similar to how you set it up in MySQL Workbench or read about it here)
In your UiPath Studio Package Manager, add Database Activities Pack.
Get your data using UiPath.Database.Activities.ExecuteQuery activity to a DataTable
Write your data to an Excel file using Write Range activity
Send your mail through SMTP using UiPath.Mail.SMTP.Activities.SendMail including freshly created Excel file as attachment
First step Take the data using database activity
Create an automation in UiPath to attach and send to your respective email
Schedule it own orchestrator.
Though not exactly but atleast sending a mail by taking credential from Orchestrator is shown in this article
https://www.c-sharpcorner.com/article/create-a-sequence-project-for-sending-a-mail-using-smtp-activity-by-taking-crede/

Advantage to using SSRS or Crystal reports when the output is simple and static?

I have an ASP.NET/C# web app in which the user needs to run reports with various criteria that will ALWAYS yield simple, 2-dimensional, tabular data. I'm tempted to use a sophisticated reporting engine like SSRS or Crystal Reports, but these seem like overkill, since there's really nothing to design (all outputs will be to CSV, or JSON for the browser to render in an HTML table).
In this scenario, am I eating too much complexity by trying to use SSRS or Crystal Reports? Should I instead just write custom classes to dynamically assemble SQL statements (based on user selections) that will be fired against the database?
Does SSRS or CR add anything that is of value (within the requirements constraints I've already described)...?
Its depend on your requirement if you want to minimal overhead on your web app then please go ahead and use your custom codes since you are not required any styling or extra functions.
Just get JSON objects and fill in HTML and go Head !!
I am working with ssrs So i will talk just about it:
ssrs is a very useful tool for building a Reports
all You need is sql server Stored Procedure to build your report
then deploy it to report server and use this report from your app
-now all you need in your app just one page for all reports and you path the URL
dynamically with report name
You need to know this :
-ssrs did not work correctly with all browser
for Exp :
-Print Btn just work with IE
so Mozila and Google you need to use java script to print Report
-some issue with criteria section :
there is no way to rename the 'select value' with drop down
so you need to use java scrip to handle it
also you find ( Null and chick box ) any customer did not know what null mean so
you need first to remove null keyword or to rename it to anther Keyword
also you need java script to do this
the most problem i have :
all reports in reports server so
when i go to a new client what i need
just Sql server no need to setup visual studio and ssrs tool
just to deploy all reports on client report server
its very bad ..
i solved this issue with tool i had make to deploy the all the report
and no need to setup VS just to deploy the report
i think that the most important problem i have
and all of it i found a work around to solve .. and it takes more time
finally :
use ssrs or CR its very easy to use and make report very fast no need to create a custom page for report and develop all its control just like print and export
report to PDF,excel or any type
but if you have a few report i think no need to use any reports tool

edit or modify crystal report within vb.net application

how can i edit crystal report within vb.net application.
let me explain in deep.
i have an application for student management, i have use crystal report for reporting and now i deploy that app. everything it working completely, now different-different user have different-different requirement for reporting. now i want to provide and facility to the end user to edit or modify the crystal report within my .net application. can it is Possible? if it is possible than describe the whole process for that.
There is no such designer for crystal report that you can invoke at run time and enable your users to design reports.
Look for alternative approaches and make your and everyone's life easy :)
Install crystal reports for each user who want to create reports. But this may involve licensing.
Identify users' current and future requirements in details and based on these provide them generic type of reports with well designed filters and formats.
Design your reports in way where users' can customize the format i.e., whatever columns they want to see or hide.
One more thing, whatever business user asks is not always right or the best choice so educate users' for better solutions.

SSRS 2005 Subscription changes

OK this is my question(s) and its SSRS 2005 and SQL Server 2005/2008
I had been tasked with rebuilding a dozen or so reports that our users use on their data systems. We just build them and since every DB instance is schematically the same for all our clients, we push the reports out to their report servers for use.
So modified a great many reports, but the reports have blown away the clients subscriptions. So every user that uses these reports, that can be a great many seeing as how everyone can have their own set of parameters, has to run the reports manually or redo their subscriptions.
My company would very much like to avoid that, but I can not figure out how to change a report, and even with the same parameter set going in as the last report, keep the subscription there.
Even when I copy the report down to their report server and replace the old with the new using same name. The subscription is still there, but it gets modified.
I am looking either for a way to push down a subscription as part of the report, so that they will have minimal input to their subscriptions in order to tailor it to their needs
--OR ideally--
Upload a new version of the report to their report server and just have the subscription apply to the newest report that I have put on their server
It doesn't really matter which one but the second is best seeing as how individual users use the reports with individual names as a parameter
Many thanks in advance for anyone that can point me to the way to manage out subscriptions on my side, or enable my reports to assume the subscriptions of same named reports on their server.
--edit--
Want to put a clearer picture out there
I have a master copy of a report. The users use the report on their own systems.
I do some heavy modifications to the master copy of the report, and upload it to their systems. using the same name and same parameter set as the original report.
I want the subscriptions on their report server to find this report using the same name.
so XXX.report has a subscription. I change it to XXX.report locally, and upload to their servers. The subscriptions are not synching though.
Thanks
I'm not sure how you're accessing SSRS but you can use the following webservice methods to download and upload report subscriptions
ListSubscriptions
GetSubscriptionProperties
GetDataDrivenSubscriptionProperties
DeleteSubscription
CreateDataDrivenSubscription
CreateSubscription
Using those methods, you use ListSubscriptions to get a report's subcriptions. The Subscription.IsDataDriven property will tell you if it's data driven or not. For data driven subscriptions, use GetDataDrivenSubscriptionProperites to get the subscription properties, otherwise use GetSubscriptionProperties. All of those classes are XML serializable so you can save them to disk out of the box using the XmlSerializer.
To readd the subscriptions, use DeleteSubscription to delete the subcriptions one by one and then CreateSubscription or CreateDataDrivenSubscription to readd the subscriptions.
This is a hack though, because you should be able to modify reports without breaking the subscriptions. You should to the following to help diagnose the issue
Set SSRS logging to verbose for all components
Use the click once report builder to change the title of a report and see if the subscriptions break when you click save
Have the SQL profiler running on the ReportServer database to see what SQL is being generated when the subscriptions break
there's a tool called Reporting Services Scripter from Jasper Smith. I think it should work for you.
What I had to wind up doing was going back and change all the input parameters, including the sql content for the drop downs, back to what they originally were. Then playing with the SQL for the report to accept the new(old) parameters.
Thanks for your input. I accepted the web services answer as that is a path I will have to explore for our next update.

Command to script database structure and data

Every time I want to create a script of the database structure (and data) of our deployment database (a brand new database with the software's basic data), I have go to SSMS, select the database, Tasks -> Scripts -> Generate Scripts. Then I have a very specific setting which I have to change every single time to the same values.
This is very time consuming and looks like a task that could very well be automated. Is it possible to automate this task from within SSMS, with my specific settings? If not, is there a way to automate it outside SSMS? I do not discard writing a C# console program to perform that, this task is not for the final user it's for our labs.
UPDATE
The objective here, as usual, is getting the solution which will take less time. So, before I got to the C# coding level, I would like to try automating the existing tools. The order would be:
Can I automate from SSMS?
Can I automate by running a outside script?
How can I automate with C# coding? (the learning resources were pointed out by Nicholas Carey)
What are you using the script for? (I can think of backup, release versioning, source control for logging each change)
backup -> could be done by keeping a database backup
release versioning -> perhaps use SMO as suggested, you'd have control of what gets scripted and in what order
source control -> for the time it would take to develop/test/refine, Red Gate's
http://www.red-gate.com/products/sql-development/sql-source-control/
might be a better answer
Look at SMO: http://msdn.microsoft.com/en-us/library/ms162169(v=SQL.100).aspx
Then script your database, put the scripts in source control and require that changes be made via scripts.