SAP Business Objects - List for every report with its user access right - crystal-reports

I'm looking for a way to generate in an excel or csv file a List for every report on Business Objects server with its user access right.
My report should be like: Folder / Report Name / User or Group Name / Privileges
Is there any way to generate such report?

The query builder has no export function built in – the best I’ve been able to do with it is to copy and paste to Excel, which can be pretty messy.
Here’s an example of a query that should work for you:
select SI_NAME, SI_OWNER, SI_PROCESSINFO, SI_SCHEDULEINFO from CI_INFOOBJECTS where SI_SCHEDULEINFO.SI_STARTTIME>=’2009.05.16.05.00.00′ and SI_SCHEDULEINFO.SI_STARTTIME<‘2009.05.17.05.00.00’ – would be from midnight on the 16th to midnight on the 17th if you?re in the Central time zone during DST ? the results are in local time
I think the QB was intended as an example of what you can do with the BOE SDK and has pretty limited functionality, but it can give you some very useful information without any .net or java development.

Related

Tableau Include Latest Revision (Publish) Date in Dashboard

I have a dashboard I am developing in 2018.2.3 Desktop that will eventually get published to our internal Tableau Web Portal. I am writing a "Help" tab that has some documentation, directions, etc. for users to view in case they are curious what report is for, how to use it, definitions, etc..
One piece that I want to include at the header of this are three dates:
Report Created
Report Data Refresh
Report Publish Date
The first two are simple, the "Report Created" is just text, since I have no idea how to get the date the report was actually started. Text is fine for this. The Data Refresh is simple as using the, "". That works perfectly.
My only issue is I'd like to include the most recent publish date / revision. Now, I see this in the Tableau Web as meta data on the dashboard, but I'd like it to be part of this "Help" page. Is there a way to do this with some sort of dimension or variable? Thanks in advance.
If you are on Server and not Online, you can take a look at getting this data from the WORKGROUP database that Tableau Server runs from. Use this guide from Tableau to get that setup.
Then you will want to look at the workbook, sites and workbook_versions tables. Here is a sample query that could help.
select s.name site, w.name workbook, wv.version_number, wv.published_at, w.updated_at
from workbooks w
left join sites s on w.site_id = s.id
left join workbook_versions wv on w.id = wv.workbook_id
where upper(w.name) like '%<WORKBOOK>%'
group by 1,2,3,4,5
having w.updated_at = max(w.updated_at)
published_at is a timestamp of the initial publish.
updated_at is the last date it was updated.
version_number is a count of how many times the workbook has been published to on that site.
Here is a data dictionary for all the other available tables.
You can pull this query as a new data source and build the text that you want to display.

Dynamic Reporting Day in Tableau Dashboard

I have been trying my hands on something in Tableau and finding it hard to implement. I have attached my sample workbook and the data source I am using from excel. The second tab in Excel shows the final dashboards I want to see as the end result; the first of which I have accomplished in Tableau using the desktop version.
There are 5 kinds of products for which the quality runs happen at different times. My goal is to return the 'Result' of the product based on the latest available 'Quality Run Time' which is 29th March 2018. I got to this part using two calculated fields below:
{FIXED [Product] : MAX([Quality Run Time])} as 'Max_Date'
IF [Quality Run Time] = [Max_Date] THEN [Result] END as 'Max_Result'
The result of this is in the workbook. The problem is I want a dynamic 'Reporting Period' filter for the user to be able to choose from available dates in the 'Quality Run Time.' For example if I wanted to run a report for 27th March 2018, based on the logic I should see the dashboard below (ex from Tab 2 in Excel). I am guessing my calculated fields need to be dynamic somehow and I have tried many different options but it hasn't worked yet.
Please pickup data source and workbook from here
Your logic doesn't work as expected.
You need to create a parameter with datatype DATE and then use that in filter.
I have changed the report and attached in the same link.
I have changed in Tableau version 10.5
Edit---------------------------------------------------
Updated with v10.4 in same link

How to write the queries in power bi

I am using Power BI in my current project for making charts. My data source is Azure SQL database.
I would like a table chart to display today and yesterday data only, for which i used advanced filtering by setting the filter to today and yesterday dates. However, I want to be able to open my report tomorrow and see charts use data from tomorrow and today respectively.
With advanced filtering the charts appear static, not dynamic.
It would be good if someone could explain how to write queries in Power BI on my tables.
You could either
1) modify your sql query to only return today and yesterday data
or
2) add a calculated boolean column, something along the lines of
"IsCurrent = IF(AND(DATEVALUE(Table1[Date])<=TODAY() , 1.0*(DATEVALUE(Table1[Date])-TODAY())<=2),True,False)"
Then filter by IsCurrent.
Using the SDK you can apply filter(s) dynamically to the report. This allows you to simulate the user filtering the report data to the current day and yesterday.
Your client app would compute the correct filter data values and apply it to the report. Using something like report.setFilters(filters)
See this related question for more information about filters:
Power BI Embed URL-multiple filters

ssrs/ssrb end user picks a date to filter by

I'm using sql server 2008 r2 and i'm new to building reports with ssrs. I have the reports built, but i'm trying to make it so when the end user, goes to the report on the site, they are able to pick a start and end date. So the data gets filtered by those, to look at it each quarter.
I've been looking through the interwebs for a few hours and it looks like people are able to do this, but i haven't seen anything on how yet.
Also i see there is a date picker thats greyed out, but I've read that it can only be used in web projects, is that what I'm looking for?
I don't have 2008 but in 2012 you would simply define 2 parameters as date/time and amend your dataset to include them. For example
SELECT SalesOrderID, OrderDate, Status, TotalDue
FROM Sales.SalesOrderHeader
where orderdate between #lodate and #hidate
The datasource in this case is advicentureworks2012.
SSRS automatically adds the parameters to the report and includes a date picker.

Export data from datafile to excel format

Background:
Our company uses Sage Line 50 as our accounting software. We generate all of our Sales Orders from this program. We also use MS Access 2010 to store order information and generate our internal shop paperwork and packing slips.
The Problem:
Data entry redundancy. We enter information from Customer Purchase Orders into our Sage software, and then enter the same information into the Access database.
What I am looking for:
A solution that will let me export raw Sales Order data after creating in Sage into MS-Access
What I have tried:
The export process from Sage only allows CSV exports, and is a manual process that cannot be automated at all. I am able to produce this export and then run an append query that will import that data into the Access data, but I am looking to automate this process, perhaps on a daily basis. I have looked into using Crystal Reports (packaged with Sage, which I am told can run automated reports and save in an MS Excel format), but I do not know how to navigate the data files to find the specific sales data I am looking for.
The guys are correct - easiest way to do this would be to use the ODBC driver, however, you must run the correct SQL query and ensure you join the Purchase Order table to the Order item table using the correct fields or it will not return the right data.
One issue you will have is that you only want to pull through the most recent transactions so use a query like this to do that your query would look something like this:-
SELECT *, PURCHASE_LEDGER.ACCOUNT_REF, PURCHASE_LEDGER.E_MAIL FROM PURCHASE_ORDER, PURCHASE_LEDGER INNER JOIN POP_ITEM ON PURCHASE_ORDER.ORDER_NUMBER = POP_ITEM.ORDER_NUMBER WHERE PURCHASE_LEDGER.ACCOUNT_REF = PURCHASE_ORDER.ACCOUNT_REF AND RECORD_MODIFY_DATE >= '2013-04-03 00:00:00'
Alternatively there are many one-click commercial solutions to this problem - do a search on Google for "Sage Integration" and you'll find various suppliers who produce products that will do this for you
What you are trying to do can be automated as I've done it for the last company that I worked for (exporting sales orders and invoices to CSV and to Excel). However, the downer is that it requires the Sage SDK which costs £1500.