OBIEE prompts for separate reports interlinked - prompt

I have two separate reports on a page in OBIEE, each having its own prompt. Both the prompts are on the same column in a subject area. The problem is that when I change the value in one of these prompts, the other one also automatically changes. I do not want this to happen i.e I want them to remain independent of each other. I have changed the scope of both prompts to 'dashboard', but the problem still exists.
How can this be done? Any help would be appreciated.

Firstly, you may want to try changing the scope of the prompt to 'Page' and changing the break on the column containing the second prompt & Answer to 'Page Break with Column Break' first. I believe when I've tried it before though, that didn't work.
Otherwise, you can make a subtle edit to the column formula in one of the prompts and corresponding Answers. Essentially what you need to do is make OBI think the column is different in each prompt. Obviously you don't actually want to change the column result, so a neat way to do it is if it's a string append an empty string to the end, if it's a number then add 0 to it.
CONCAT("My Dimension"."My String Column", '')
"My Dimension"."My Number Column" + 0
Make sure to do that in one of the prompts and the Answers you want that prompt to affect.

Related

Generate a report based on check box choices

I am trying to add check boxes to a simple data entry form (I didn't use VBA) to monitor defect types. The problem that I am facing right now is that if an user select more than one check box (there are 15 different check boxes options), I would like to see the chosen options in different cells. I was trying to use the following formula for the each of 15 options:
=if(a1=TRUE,"Name of the defect","")
and then using this other formula to see the name of the defect:
=concatenate(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a15)
And this works fine if the person only selected only one defect type, but the problem is that if someone selects more than one type, it will appear: "Defect type1Defect type2". I was thinking to add commas but I would like to see those defect types in other cells instead of having all errors listed inside the same cell. What do you suggest me?

How to Highlight Specific Cells that Meet Criteria or Filter it for Specific List

So I have an excel sheet, and need to clean up the users within our database...I don't like using Excel, and was curios if there is anyway I can print a False or True column to see if an entry within a specific cell matches the other two columns plus a convention. The caveat is that all of the Username Logins need to match firstname.lastname, but not all of our users have that within the list of elements. As a result, I need to filter out the ones that do have it so I can see all of the users that do not have it.
As you can see there may be users within the User Name column that may not match the convention as a result I would like to have it print FALSE in Column I. This would allow me to have a filter and see all of the users that are misaligned within the database.
By the way I am forbidden to use any programmatic way or SQL update command on the database, so please limit suggestions on how to accomplish this in Excel.
Many Thanks to #Naresh Bhople
His formula
=A2=E2&"."&D2
Worked, then I just dragged and copied it all the way down to what I needed.
It helped me clean up our Active Directory to get all of the systems working with AD Authentication and Kerberos Auth.

Garbage Data Checker Using Excel VBA

My team and I have created a consolidator tool that consolidates data from worksheets uploaded using a button. However, there's an added enhancement that our leads would like to have.
I don't know if it's possible in VBA but what they wanted is a button that checks and highlights "garbage data" (for example: if First Name column contains a blank or if it contains ajsajdj or something similar), it will prompt the user and ask them if they want to delete it.
We already have the code for the consolidator tool (and it's working perfectly) however, this feature is headache inducing as I don't know if it's possible. I would really like to ask suggestions regarding this as I'm really new to VBA and programming.
Maybe, I would be enlightened on what next step I should take.
Let's see how a human would validate that
He would look at the name ajsajdj and think "I have never seen this name in my life before so it must be nonsense data". But he might fail because the fact that he never came accross this name doesn't mean it's not an existing name (parents can be inventive sometimes).
So what a human actually does is comparing the ajsajdj with a list of names (he has in mind because of his experience in life).
Now a program can do the same
You can write a code that compares ajsajdj with a list of valid names. But here we are at the same point where the human can fail too. The list will never be complete because tomorrow parents invent a new name (that you don't have in that list).
Conclusion
This task cannot be coded unless you define a rule for either valid or invalid data. Some programs look like they could do magic, but actually it is only working because of the rules you give them.
I do automated auditing of this type prolifically so I would approach it like this;
Your 'audit macro' is basically an iterator with many quality checks - is 'name' = "", etc. You can run this auto macro either.
On a single line of data each step of the consolidation
After the consolidation has completed.
The first is easiest to use, and works like this:
After your consolidation step run 'auditing macro' on line of data just brought in.
If an issue is found, write the line of data to a separate Tab leaving column A blank; not to your consolidation. At the end of your consolidation give user a warning message if there have been any issue lines found at the end of the consolidation
User skim reads data on separate tab, puts 1s for 'keep' in Column A.
User clicks a button to run a macro which adds the rows with a '1' against them back to your full data set (e.g. on the end if order doesn't matter).
Equally you could approach this by running the audit when the consolidation is totally complete; in this case you'd need to delete or otherwise track rows which may be removed if a user chooses not to keep them.
I like this approach because it is non-blocking; user can leave your consolidator to run without supervising and then deal with exceptions at their convenience. Also you can write/edit as many tests as you want without fundamentally changing your consolidator at all; you can then also start for example counting the number of each issue per import and putting this into a report for continuous improvement... there are options to extend.
In terms of pseudocode its an iterator full of if-else blocks, with a single 'there is an issue' flag, which if it's 1 causes the row to be treated as an issue;
For rowCount = startRow to endRow
' startRow and endRow correspond to lines of data you just imported
'Test 1
if (Some condition e.g. cells(rowCount ,2).value = "") then
issueFlag = 1
End if
'Test n...
if (Some condition e.g. cells(startRow,2).value = "") then
issueFlag = 1
End if
next rowCount
if issueFlag = 1 then
'CODE TO PASTE DATA
'Set some flag/variable which then triggers a Error Message at the end of the whole consolidation or audit
End if
You can put a Exit For at the end of the IF block so if the issueFlag is triggered you immediately exit and skip all further tests.

Remove a button in SuiteScript

I need to be able to remove the delete button when today is greater than a particular calculated date.
There are 2 ideas I had and issues with each:
1 - Set a custom field on the record for the particular calculated date. Then use a workflow action of Remove Button where the custom field is <= today. My issue is I am wondering if there is a way to get "today" because I expected the condition to change allowing me to do that. I tried to use a formula and can't find Now() as a valid function listed.
2 - Workflow are truly scripts in the background. That means the Remove Button should be available in API. Therefore, my idea was to do my conditioning in suite script and then call this function. However, this function also does not exist in supported form. Has anyone hacked this to find what the function that is called in Remove Button is?
If we can get either idea to work, or if you have a third I haven't thought of that accomplishes the same task, that would be great.
I figured out my own answer. In case someone else ever needs this (as I didn't see anything like this on stack overflow), here is how to do option #1:
Save the value to a custom field - custbody_block_dlt_date
In a workflow, use the Remove Button function and use a formula condition
The condition is: {custbody_block_dlt_date} < sysdate
"sysdate" is the way you can get "Now()" or "today" in the condition
An alternative could be to create a User Event Script, on the before load function, get the button object then use the .setVisible(visible) method to hide it based on a date criteria, you may also want to set other restrictions based on roles that allow certain individuals to still be able to delete the record, like high positioned accountants. That avoids creating unnecessary fields on your records, while still providing the functionality that you desire. This could easily be done in < 4 lines of JavaScript.
See nlobjButton for examples.

Using VBA with Checkboxes and vLOOKUP?

I'm trying to make a small info sheet that has a drop down menu with a bunch of names. When you pick a name it automatically fills out a bunch of info on them. I also want it to have a checkbox that is checked if that person has a job. The problem I'm having calling/saving that value.
I'm trying to make it so all the saved information is on a second hidden sheet. Calling the information is easy enough. But changing it and having it save over what was previously there seems really hard.
Well, in the hidden sheet you should reserve one column with all the names and another column with two values that tells wether the person has a job or not, so say either 1/0 or Y/N.
The checkbox click/change event is what causes the column with the Y/N values to change. So I would just simply change the relevant value in the column that has al the Y/N values.

Resources