SAP WEBI - how to run two different query in same document - sap

I have 2 reports in the WEBI document, for every report, i need to use different SQL
I tried to create another report with different SQL, but it changed the same query to the first report.
Second questions :
I need to display some rows in different colors based on the amount. how to do it.
thanks

When you have more than one question it would be better to post them separately.
1. Multiple Queries
If you want a query with different SQL you need add another query from within the Query Panel.
By default it will be named "Query 2". If you are running a query for the first time WebI will put all of the Result Objects on your report. Otherwise you will need to manually add them to your report.
When I have multiple queries I always change the view at the bottom of the Available Objects pan to "Arranged by Query". Also, if you have the same object name in more than one query WebI will qualify it with the query name.
2. Different Colors Based on Value
You want to do what is referred to as Conditional Formatting. Here is YouTube video on that. The link for that video came from the SAP BusinessObjects Web Intelligence link on the Official Product Tutorials - SAP BusinessObjects BI Suite website. I would recommend you spend some significant time reviewing the information there.
StackOverflow is very focused on code. Your questions are more about how to use Web Intelligence. Those types of question would be a better fit for the BusinessObjects Board.
Noel

From the menu bar Analysis -> conditional -> new rule ..
You can create different rule (specify rule condition in it ) and for each rule you can give particular formatting option.
[Webi]enter image description here
After selecting the column for which u need to apply the rule press FORMATTING Rules and check all the rules you need to apply .Hence you can achieve different color for different value (by assigning different rule )

Related

Update Fields Automatically

I'm pretty new here and usually don't resort to forum post unless I really can't figure things out by searching for a solution on my own but I'm stuck. I work in an IT department and I am developing a tool that will be used to compare across three data pulls to see where we are missing data. All data is supposed to be accounted for in all three databases so we need to find discrepancies where it does not match. This is data used across all of our car dealerships and it is pulled from three providers who give it to us. (Example: Our website listing, cars actually on sale in our inventory, and the third deals with web listings on other sites).
Unfortunately, whenever we do an export from each site the dealership locations do not match with the exact same syntax. I have all three tables in a sql database that is reuploaded by the user each month. I have case statements written so I can run a query to change each matching dealership in a way that matches syntax across all three tables. For example 'Ford Denham' and 'Denham Ford' are all changed to 'ASFD' which is an acronym we use for that dealership.
Now we have reports which I have created with SQL Report Builder. My problem is, all of my queries are written as if the Location is always 'ASFD' so I can match records based on location. When the user uploads data how can I automatically have my Case Statement run on the new files in the database without having to trigger the query myself? If I don't run the Case Statement rename then none of the reports will run correctly because Locations do not match correctly.
Thank you for any help. Let me know if I should have gone about this a different way since I have never really posted here before. I tried to be as descriptive as possible.

Best way to create a shared data source with Report Builder

I am using report builder 3.0 (very similar to SQL server reporting services) to create reports for users on an application using SQL server 2012 database.
To set the scene, we have a database with over 1200 tables. We actually only need about 100 of these for reporting purposes. But it is very common that we need to combine fields from multiple tables together to get a common resource of data that my colleagues and I need for our reports.
Eg if I want a view of a customer, I would want to bring in information about the customer from the customer_table, information about his phone details from the Phone table, information about his account(s) from the accounts table and so on. Then I might need another view of the accounts - account type, various balance amounts, opening date, status etc.
What I would love to do is create a "customer view" where we combine all these fields into a single combined virtual table. Then we have an "Accounts view". It would be easier to use, easier to manage etc. Then we use this for all our reports going forwards. And when we need to, we can combine the customer and accounts view to use on a report plus actual tables into one combo-dataset to use on a report.
I am unsure about the right way to do this.
I see I can create a data source. This doesn't seem right as this appears to be what one might do if working off 2 or more databases. We are using just 1 database.
Then there are report models. It seems these are being deprecated and phased out so this doesn't seem a good option.
Finally I see we can create shared datasets. However, this option (as far as I can tell) won't allow me to combine this with another dataset. So using the example above, I won't be able to combine the customer view and the account view with this approach to use for a report to display details about the customer and his/her accounts.
Would appreciate guidance on the best way to achieve what I am trying to do...
Thanks
I can only speak from personal experience, but using the the data source approach has been good for our purposes. We have a single database with 50+ tables in it. This is linked to as a shared data source in the project so is available to all 50+ reports.
We then use Stored Procedures to make the information in the databases available to the reports, each report has it's own Stored Procedure that joins as many tables as required to provide the data for the report. The advantage of using Stored Procedures also allows you to only return rows you are interested in, rather than entire tables.
I'm not certain if this is the kind of answer that you were after, but describes how we solve a similar (smaller) issue.

Create Dynamic a Crystal Report with many queries

Good night, sorry for my question but I haven't found too much information about it.
I'm designing some reports to my work (for accounting) and I'm forced to use Crystal Reports with VS2005 however I have a problem because I need to use dynamic information, I have two important views the first one give me general data like: Account ID, Account Name, Description, Opening Balance, Charges, Deposits, Ending Balance, Code Month.
In next query I need to use each Account ID because I'll get its Details (if they have data) and it gives information like: Date, Policy ID, Description, Charges, Deposits, Code Month.
My problem is not get information because the DBA gave me both views, my problem is that I don't know how can I add those views in a Crystal Report and show their information Dynamic. Because first query is going to give all general data and with each value I need show their details (if they have). Maybe the next draw could give you and idea what I'm talking. Thank you very much if any of you have any example (not necessary about my topic, just with two queries) I'll be very happy.
http://s30.postimg.org/e84fkimep/test.png
Sorry because I haven't given you any code but I just have those two views and I don't know how to create the dynamic report. I have tried to find information and I couldn't.
one option is to link the views in database expert, If this is not possible then use sub report in crystal report where use 1st view in main report and 2nd view in sub report.
Link the views and use grouping for accounts. Subreports are an option too but the report will be slower

Hide / remove columns from certain users in a SSAS tabular model

I've got a nice SSAS tabular model with users processing away. Certain users need access to certain information, such as confidential info (e.g., SS numbers), that should not be visible to everyone. How should I handle this?
This indicates that there is no way to use roles to remove columns, only rows. Is my only option to make a copy of the model and maintain both? This can't be such an edge case...
I guess I can jury-rig something with a scm fork and code-generation, but I'd rather not go down that road.
Alternatively, is there any way to hide the columns (per user/role), so that at least they don't show up in client tools?
One method that requires very little additional development is to use the method described in the following blog post. http://blog.westmonroepartners.com/a-workaround-for-column-security-in-the-sql-server-analysis-services-bism-tabular-model/
The blog contains a link to an SSIS package which will replicate an existing cube, with the exception of the sensitive data columns. The users who cannot view the sensitive data columns can be given access to the second cube that does not contain sensitive data columns.
One way to achieve this is to create Perspectives. You can create different perspectives for different group of users. And end users can connect to their specific model.

Creating reports in Access after the DB is completed

I have a fully functional DB developed in Access. It was done using a very "interactive" developer-client increment-iterative process as no one really knows what the final DB is to show. All tables were developed (and normalized) as well as forms (and sub-forms), however, now reports must be designed and implemented.
The forms of course, are based on queries which take the criteria from the form itself to run the queries and show information in the subforms. Now, as in practice, the reports have to basically be pretty printable versions of the on-screen forms for distribution. From my research, the reports are also based on queries, but since the queries I have are using the fields from the forms to display the relevant information in subforms, I don't see anyway to create these reports unless I basically duplicate all my queries to not pull values from forms. This seems very tedious and inefficient. Is this the "best practice" way to create reports for a database?
V.K.
You can put a button on the form which launches the report using the same query. The report query will then use the fiels/query from the form, and should then return the same result set.
Hard-coding form fields in a query is the problematic part here -- that's definitely not "best practice". I guess you need these values in your WHERE clause? What you could do is to remove the field references from your queries (so that the query returns all records). In the Subform or Report, don't use the query directly as the record source. Instead, use some SQL that accesses your (generalized) query and and additional filter criteria. For example, the record source of your subform could be
SELECT * FROM myQuery WHERE someQueryField = Me.Parent!SomeFormField
allowing you to use the same myQuery with a different WHERE clause (which does not reference a Form) in your report.
I'm not sure I'm understanding your question, but having recently worked with an app that used a form to drive a report, I might have an inkling.
You don't want your report tied to the single record of the form. You want your report to use the same recordsource as the form, insofar as they are displaying the same data, of course.
The reason for this is that if you hardwire your report to the form fields, the report can't be used except when the form is open, and it can't display anything but one record.
If you create your report so it loads all records, then you'll need to be able to print one record at a time, and for that you just use the WHERE argument of the DoCmd.OpenReport command, using the PK value as your criterion.
So, yes, you should use the same recordsource. Why would anyone consider that a problem?