Select Data based on User Permissions
Post Author: nomore
CA Forum: General
I've got a Crystal Infoview server which is becoming quite cluttered with reports.In a lot of instances, I will have 4 or 5 copies of the same report which are tailored to specifc users. For example a sales report which will show data based on a specific customer. I could create on report with a parameter where the user could just select the customer - but i dont want some people to be able to see specific customers. So at present i have a seperate report for each customer - and then set the report permissions to only allow specific users to run it.I attended a course a while back where they showed us how, hiding particular fields/data to certain users if they should
not be allowed to view it - but for the life in me i cannot remember at
all how they did it. Any tips greatly appreciated.
Post Author: V361
CA Forum: General
In the special fields section is CurrentCEUserName, not sure if this would work for you, because I have CR XI
You could surpress based on the id logged in, but that would be a lot of work,
Perhaps you could create a "permissions" list in excel or in the database if possible, with a list of the reports that each ID can run, then based on the id, you populate the list....
CurrentCEUserName inserts (in a formula) the name that was used to log on to the current session when using the Log On to BusinessObjects Enterprise dialog box.
Similar Messages
-
How to determine Organizational Data based on User Login
Dear all,
How to determine organizational data based on user login in Activity transaction, currently org determination is happening after entering customer number in the transaction.
We have used 'Responsibility' determination rule for this configuration. Now the requirement is to determine org data based on user login.
In Org model we have assigned user to org data through a business partner. But still org data is not getting determined in the transaction.
Please help me to trace out the problem.. your suggestions will be highly appreciated.
Best regards
Raghu ramYou just have to use other organization determination rule. In your case this would be rule 10000194 (ORGMAN_12). This determination rule delivers the responsible organizational unit of the user
User is defined as a business partner in the container attribute 'PARTNER'. If not, the system user (sy-uname) is used.
So you have to do the following:
- use this determination rule
- in BP link username with employee
- assign in PPOMA_CRM employee or user to organizational unit
This should solve your problem. -
Select data based on status priority
ID PRO_ID PRO_OBJ_ID TASK_ID DEVELOPER_ID STATUS
121243 4940 37506 5250 6532 REJECTED
122063 4940 37506 5250 6532 CLOSE
138306 4940 37506 5250 6532 ACCEPTED
138307 4940 37506 5250 6532 WIP
Hi,
From the above table i need to select data based on status any status that is prior to CLOSE or ACCEPTED it must display all the status any status that is after CLOSE or ACCEPTED we must not consider.
In the above scenioro it must display only the first three status. after ACCEPTED it must not display any thing
Please suggest me a query how to write.
Thanks
Sudhir.Try:
SQL> with t as (
2 select 121243 id, 4940 pro_id, 37506 pro_obj_id, 5250 task_id, 6532 developer_id, 'REJECTED' status from dual union all
3 select 122063, 4940, 37506, 5250, 6532, 'CLOSE' from dual union all
4 select 138306, 4940, 37506, 5250, 6532, 'ACCEPTED' from dual union all
5 select 138307, 4940, 37506, 5250, 6532, 'WIP' from dual union all
6 select 138308, 4940, 37506, 5250, 6532, 'ACCEPTED' from dual union all
7 select 138309, 4940, 37506, 5250, 6532, 'REJECTED' from dual union all
8 select 121243, 4940, 37777, 5250, 6532, 'REJECTED' from dual union all
9 select 122063, 4940, 37777, 5250, 6532, 'CLOSE' from dual union all
10 select 138306, 4940, 37777, 5250, 6532, 'ACCEPTED' from dual union all
11 select 138307, 4940, 37777, 5250, 6532, 'WIP' from dual union all
12 select 138308, 4940, 37777, 5250, 6532, 'ACCEPTED' from dual union all
13 select 138309, 4940, 37777, 5250, 6532, 'WIP' from dual
14 ) -- actual query starts here:
15 select t1.id
16 , t1.pro_id
17 , t1.pro_obj_id
18 , t1.task_id
19 , t1.developer_id
20 , t1.status
21 from t t1
22 where id <= (select max(id)
23 from t t2
24 where t2.status in ( 'ACCEPTED', 'CLOSED' )
25 and t1.pro_id = t2.pro_id
26 and t1.pro_obj_id = t2.pro_obj_id
27 and t1.task_id = t2.task_id
28 and t1.developer_id = developer_id
29 );
ID PRO_ID PRO_OBJ_ID TASK_ID DEVELOPER_ID STATUS
121243 4940 37506 5250 6532 REJECTED
122063 4940 37506 5250 6532 CLOSE
138306 4940 37506 5250 6532 ACCEPTED
138307 4940 37506 5250 6532 WIP
138308 4940 37506 5250 6532 ACCEPTED
121243 4940 37777 5250 6532 REJECTED
122063 4940 37777 5250 6532 CLOSE
138306 4940 37777 5250 6532 ACCEPTED
138307 4940 37777 5250 6532 WIP
138308 4940 37777 5250 6532 ACCEPTED
10 rows selected.If that doesn't work then please provide us some representative sample data again. -
In the Date Picker, How can I default to select * dates if the user does ..
In the Date Picker, How can I default to select * dates if the user does not select a date.
Thanks,
DougDoug,
Now lets say l want everythingCould you post some sample data and the output that you want to get..? It would be much easy to understand the requirements...
When you mean everything, I am assuming you need all possible dates possible between date1 and date2.
you can use... (from asktom.oracle.com).
1 select to_date('12-jan-2009','DD-MON-YYYY') + rownum -1
2 from ALL_OBJECTS
3 where rownum <= (to_date('20-jan-2009','dd-mon-yyyy') -
4* to_date('12-jan-2009','DD-MON-YYYY') +1 )
sql> /
TO_DATE('
12-JAN-09
13-JAN-09
14-JAN-09
15-JAN-09
16-JAN-09
17-JAN-09
18-JAN-09
19-JAN-09
20-JAN-09
9 rows selected.
For your case, since you have date1 and date2...
select to_date(:p12_date1,'DD-MON-YYYY') + rownum -1
from ALL_OBJECTS
where rownum <= (to_date(:p12_date2,'dd-mon-yyyy') -
to_date(:p12_date1,'DD-MON-YYYY') +1 )Should work.. in my opinion...Haven't tested the second one in Apex .
Is this what you were looking for ..?? If not, please elaborate...
Thanks,
Rajesh. -
How to display filtered data based on user login
We have a SSRS report (.rdlc) which gives the report about Online count of machines. Report is incoperayed in Asp.net.
We have many filters in This report. Now we have to retrict the report based on user login to the application .
For ex: report has a drop down for Regional Admin. Now if one person login to the application he has to view only his region online count.
How can we do this in SSRS?. We have our application hosted in Microsoft Azure . Please suggestHi csmbrnoc,
In Reporting Services, if we want to filter data based on user login, then there must be some relationship between the UserID and the Region in the dataset. For example, there is a field named UserID in the dataset, and each ID map some region and the corresponding
“Online count of machines”. In this scenario, just as Visakh suggested, we can use built-in field User!UserID to obtain UserID of the current user, then directly add a filter to the dataset as below:
Expression: [UserID]
Operator: =
Value: [&UserID]
If there are any other questions, please feel free to let me know.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Output different data based on user select
Hi everyone,
Quick question, I would like to output different report columns based on user select, eg., users would be presented with two choices in a radiobutton list, eg., 1 and 2.
I have query results that contain columns A, B, C, D, E, F, G.
If user selects 1 then the output should be columns A, B, C, D, E.
If user selects 2 then the output should be columns A, B, C, F, G.
I am sure this is possible and easy? If so, what topic should I be reading/searching internet on?
Please advise.
Thanks!I would say that this is most often something that your user interface should be dealing with (i.e. which columns should be shown).
There is no way to do that in SQL.
In PL/SQL it is a simple situation of creating two cursors and simply deciding which one to open.
<pre>declare
l_cur sys_refcursor;
begin
if :user_selection = 1 then
open l_cur for select A, B, C, D, E from tbl;
else
open l_cur for select A, B, C, F, G from tbl;
end if;
-- use the cursor
close l_cur; -- or return to user interface
end;
/</pre>
Hope this helps. -
Filtering report data based on user login and Parameter fields
Post Author: mronquillo
CA Forum: General
Hi,I am running a report that filters data based on the user login. To do this, I created a formula called @user that compares the login name (using the CurrentCEUserName field) and returns the user's name. If the user login is not a login specified in the if statements, it returns the parameter field "user_name":For example: if CurrentCEUserName = "loginname1" then "User's Name 1"else if CurrentCEUserName = "loginname2" then "User's Name 2" else if CurrentCEUserName = "loginname3" then "User's Name 3" else if CurrentCEUserName = "loginname4" then "User's Name 4".. .else {?user_name} In select expert, I have a condition which filters data based on the string returned from that formula:{Table.Name} = {@user} This works fine and when the users run the report they only their own data. However, they are still prompted to choose a parameter field regardless if of the value returned by the @user formula. Oddly enough, regardless of what parameter field they choose, they will still only see their own data (i.e. if John chooses "Bob" from the parameter list, he will still only see John's data.)If I remove the "else {?user_name}" line from the @user formula, then the users are not prompted anymore. However, if they are not a "valid" user - that is, if any of the if statements in the formula are not true for their login name - then they will see no data. What I want to do is make the report ONLY prompt the user to choose a parameter field if their login name is not "valid". That is, if the @user formula is able to return a string value for their login name, then they will jump right into the report without being prompted to choose a parameter - otherwise, the user will be prompted to choose a name from the parameter list. I thought my formula would allow this (hence the "else" clause), but it seems that if a parameter field is present in any formula, then the report automatically prompts the user to choose a parameter. Is what I am trying to accomplish possible in CR (I'm using CR v10.0) or is there a better way to do what I am trying to do?Thanks in advance.Post Author: sharonmtowler
CA Forum: General
try, or something like that
(if CurrentCEUserName ={?user_name} then true else ({Table.Name} = {@user}) ) -
Grouping of data based on user prompt having a list of dimensions
Hi All,
I have a requirement to be able to group data in OBIEE request or Dashboard based on user prompt selection.
The prompt should list the Dimensions Available
e.g.
Dimensions: Product, Region, Employee
Fact: Sales
The report is to display sales total for the quarters of the current year.
The user prompt should list the available dimensions (In this case - Location, Employee and Product).
If I choose Product, the data is to be grouped by Products - Layout having a simple tabular grouping with Product names as Group headings.
Similarly any other choice of Dimension from the prompt should group the data by that dimension and have the dimension values used in the group headings.
How could we implement this? I understand this type of requirement (ability to choose dimension) is met in some OLAP reporting tools.
I have used multiple views and the View Selector for similar requirements previously, but looking for a dynamic solution here.
Any pointers or solution will be great.
Thanks,
Kiran
Edited by: Kiran Kudumbur on Sep 8, 2009 5:43 PM
Edited by: Kiran Kudumbur on Sep 9, 2009 12:42 PM
Edited by: Kiran Kudumbur on Sep 10, 2009 2:26 PMHi All,
I used column view to address this requirement.
Thanks,
Kiran -
Selecting records based on user formula
Post Author: Josh@RTA
CA Forum: Formula
I'm writing reports for a company that stores all of their dates as 8 digit numerical fields rather than a date or datetime datatype. I want to convert this field to a date type, then compare it to a parameter that stores user input as a date type.
However, due to the way that Crystal does it's passes over the data, I can't use a selection formula based off of another formula. So I'm wondering , has anyone ever used a selection formula that references another formula and how have you been able to do it? Maybe use group selection instead of record selection? Just not sure.
I'm including the formula I'm using to convert the date, as well as the selection formula so you get an Idea of what I'm doing.
//This converts the numeric 'date' field to a dateshared stringvar DateString := totext({wotrans.ROP_TRAN_DATE}, 0, '');shared datevar ConvertedDate :=If {wotrans.ROP_TRAN_DATE} < 19590101 then Date (1959, 01, 01) else Date ( Val (DateString [1 to 4]), Val (DateString [5 to 6]), Val (DateString [7 to 8]) );
//This is the select statement I'm using to compare the above formula to my parameter using record selection{@ConvertedTransDate} = {?TransDateRange}Post Author: SKodidine
CA Forum: Formula
Replace your formula with this and then equate it to your parameter value in your selection criteria and see if it will work.
If {wotrans.ROP_TRAN_DATE} <= 19590101 then Date (1959, 01, 01)
else
date(
tonumber(totext({wotrans.ROP_TRAN_DATE},0,'','')[1 to 4]),
tonumber(totext({wotrans.ROP_TRAN_DATE},0,'','')[5 to 6]),
tonumber(totext({wotrans.ROP_TRAN_DATE},0,'','')[7 to 8]));
The process might be faster if you convert or change the data type of your parameter to numeric and then compare to the numeric date. -
How to select data, based on a specified or preset date/time range
Hi,
I am trying to construct a requirement like this in java/jsp.
I have a table consisting of registered users info. Have a expiration date for every user, which was captured or set when they originally registered.
I have to select all those users who are expiring two weeks from now.
For example. if the current date is 14th, I should get a list of users who expire between the midnight of 24th sunday to 30th saturday. this covers the whole last 7days in that range. And so on.
So based on the current date, the last midnight sunday to midnight saturday of that two week's range should be selected.
The input fields for this range on the userend should default to this range.
And also the user should be able to specify their own range and be able to pull data.
the result should be populated as viewable as well as a downloadable tab de-limited file for mass mailing.
(ex. the table might be queried for user info like id, email, expiration date, fullname, and shown accordingly in the jsp)
I know this is a longshot.. but if somebody can guide me will be good as I am new to this forum and as well as java.Well, I can start you off with this:
Calendar now = Calendar.getInstance();
// shift 2 weeks and back to Sunday
Calendar start = Calendar.getInstance();
start.add(Calendar.DATE, 14);
end.set(Calendar.HOUR, 0);
end.set(Calendar.MINUTE, 0);
end.set(Calendar.SECOND, 0);
end.set(Calendar.MILLISECOND, 0);
while(start.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
start.add(Calendar.DATE, -1);
// shift 2 weeks and up to Saturday (following Sundat midnight, actually)
Calendar end = Calendar.getInstance();
end.add(Calendar.DATE, 14);
end.set(Calendar.HOUR, 0);
end.set(Calendar.MINUTE, 0);
end.set(Calendar.SECOND, 0);
end.set(Calendar.MILLISECOND, 0);
while(end.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
end.add(Calendar.DATE, -1);
At this point, start is the first Sunday before the day 2 weeks from today and end is the first Sunday after the day 2 weeks from today, both at midnight. You could make end stop at Saturday and make the time 23:59:59:999, of course.
If you ran it today, it should be 11/9 and 11/16. -
How to change Rendering Extension in sql server Reporting Services based on User Permissions
Hi,
I want to provide SQL server reporting services rendering extension based on user Access.
For Example
User1 can have options of Rendering to EXCEL and PDF
User2 can have a option of CSV
i read one article which is useful for report basis rendering extension changes. but i want to give user basis rendering options.
http://www.mssqltips.com/sqlservertip/3569/how-to-change-rendering-extensions-in-sql-server-reporting-services/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=20150406
Thanks in advance.
GVRSPK VENIYou can use a data driven subscription for that
Maintain a table with rendering extension information for various users ie their AD user login. Then setup a data driven subscription based on table values
You will be creating a dataset with query for retrieving userid as well as rendering extensions and then just set the value as Get value from database for render Format and To properties
For more details refer
http://beyondrelational.com/modules/2/blogs/101/posts/13460/ssrs-60-steps-to-implement-a-data-driven-subscription.aspx
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
SELECT data based on partitions
I know we have PARTITION clause in SELECT statement.
My requirement is i need to select data from Last two partitions in which data is available.
If we know the name of the 2 partitions then we can select and UNION ALL.
But In my case, i dont know the partitition names too,
I need to find out the names of the partitions using any subquery and i need to select from that.
May i know how can i achieve this?
ThanksMaybe you could adjust the below (NOT TESTED !) if the meaning of the recent 2 partitions is somehow connected with partition_position within [url http://download.oracle.com/docs/cd/E11882_01/server.112/e25513/statviews_2108.htm#REFRN20281]all_tab_partitions as I don't have a database at hand to find out how partitions are being numbered.
declare
the_sql varchar2(32000) := q'{ your sql here }'; -- assumed having a where clause
the_table varchar2(30) := 'your_table_name';
begin
for i in (select partition_name
from all_tab_partitions
where table_name = the_table
and partition_position <= 2 -- assumed ascending order for partition numbering
for i in (select partition_name
from (select partition_name,row_number() over (order by partition_position desc) rn
from all_tab_partitions
where table_name = the_table
where rn <= 2 -- assumed descending order for partition numbering
loop
substr(the_sql,1,instr(the_sql,'where')) || ' partition (' || i.partition_name || ') ' ||
substr(the_sql,instr(the_sql,'where')) || ' union all ';
end loop;
the_sql := 'select * from (' || substr(the_sql,1,instr(the_sql,' union all ',-1,1)) || ')';
dbms_output(the_sql);
end;Regards
Etbin -
Facing problem in selecting data based on the join s tatement ppls suggest
hi
cosider a sceneio as below
there are six tables table1
table2
table3 table4
table5 table6
join conditons between tables
table1-lclic (primary key) = table2-lclic
table1-lgreg = table3-lgreg (PK for table 3)
table2-pobj = table4-pobj
i have used join statment to join table 1 table 2table3
i want to select data from table5
table5-ccngn and table6-text
now condion for validation is that
table5-field1 is selected if table4-ctsex = table3-ctsty and tehre is no link between table 5 and table 3 o nly link is through table 4
table4-ctsnum=table5-ctsnum (primary keys)
can anyone suggest how to format the select statement
regards
AroraHi Nishant,
Using Table Joins for multiple tables would severely hamper the performance of the SAP system.
Instead use individual select statements for each database table, and later reconcile all the internal tables.
<b>Reward points, if helpful.</b>
Regards,
Atin -
Hi,
Is there a way to select data to select data wht is been inserted in time. means there are so many insert process keep happing In my application i need to select which is happend very recently.
How to select such data please suggest
If table name is "Contribution" .
Please suggest
Thanks
SudhirHi ,
You can include a column as inserted_time and keep the data type as date and default value is sysdate, now every time a record is being inserted the inserted_time field will get populated with value sysdate,
now to query the latest record you can use like below
select <column-names> from <table-name>
order by inserted_time descin this way you can view which all record are inserted recently. I hope it is clear :)
If you have any doubt then tell.
regards -
Displaying internal table fields data based on user selection
Hi all,
I am having a checkbox for each field in the internal table.
and i only have to display the fields of the internal table which the user has selected based on the check boxes provided.
Could you plz help me out, how can i display the data of only those fields which the user has selected initially.....
Thanks,
anil.Hi,
This is not the best solution but this can be one solution.
Check this code
REPORT z_sdn.
PARAMETERS:
p_kunnr AS CHECKBOX DEFAULT 'X',
p_land1 AS CHECKBOX,
p_name1 AS CHECKBOX.
DATA:
BEGIN OF fs_tab,
kunnr TYPE kunnr,
land(10) TYPE c,
name(10) TYPE c,
END OF fs_tab.
DATA:
t_tab LIKE
TABLE OF
fs_tab.
START-OF-SELECTION.
CLEAR fs_tab.
fs_tab-kunnr = '001'.
fs_tab-land = 'Land1'.
fs_tab-name = 'Name1'.
APPEND fs_tab TO t_tab.
CLEAR fs_tab.
fs_tab-kunnr = '002'.
fs_tab-land = 'Land2'.
fs_tab-name = 'Name2'.
APPEND fs_tab TO t_tab.
IF p_kunnr = 'X' AND p_land1 IS INITIAL AND p_name1 IS INITIAL.
WRITE: / 'KUNNR:'.
LOOP AT t_tab INTO fs_tab.
WRITE: / fs_tab-kunnr.
ENDLOOP.
ENDIF.
IF p_land1 = 'X' AND p_kunnr IS INITIAL AND p_name1 IS INITIAL.
WRITE: / 'LAND:'.
LOOP AT t_tab INTO fs_tab.
WRITE: / fs_tab-land.
ENDLOOP.
ENDIF.
IF p_name1 = 'X' AND p_kunnr IS INITIAL AND p_land1 IS INITIAL.
WRITE: / 'NAME:'.
LOOP AT t_tab INTO fs_tab.
WRITE: / fs_tab-name.
ENDLOOP.
ENDIF.
IF p_kunnr = 'X' AND p_land1 = 'X' AND p_name1 IS INITIAL.
WRITE: / 'KUNNR:',
'LAND'.
LOOP AT t_tab INTO fs_tab.
WRITE: / fs_tab-kunnr,
fs_tab-land.
ENDLOOP.
ENDIF.
IF p_kunnr = 'X' AND p_name1 = 'X' AND p_land1 IS INITIAL.
WRITE: / 'KUNNR:',
'NAME'.
LOOP AT t_tab INTO fs_tab.
WRITE: / fs_tab-kunnr,
fs_tab-name.
ENDLOOP.
ENDIF.
IF p_name1 = 'X' AND p_land1 = 'X' AND p_kunnr IS INITIAL.
WRITE: / 'LAND:',
'NAME:'.
LOOP AT t_tab INTO fs_tab.
WRITE: / fs_tab-land,
fs_tab-name.
ENDLOOP.
ENDIF.
IF p_name1 = 'X' AND p_land1 = 'X' AND p_kunnr = 'X'.
WRITE: / 'KUNNR',
'LAND:',
'NAME:'.
LOOP AT t_tab INTO fs_tab.
WRITE: / fs_tab-kunnr,
fs_tab-land,
fs_tab-name.
ENDLOOP.
ENDIF.
Regards
Abhijeet
Maybe you are looking for
-
The Universal Travel Adapter for Zen Micropho
k i li've in canada and i bought this thing. Aparently it is supposed to come with 5 different plug ins. I never got these. Dunno why but i never did.... Where can i buy them seperatly? Can i even do this? Thanks
-
What do you think of this then?
I can tell you everyone I have discussed it with thinks it is the wrong way round, that BT should compensate my friend for the damage they have caused. I do know that Wessex Autism and other agencies will be getting involved and while it is currently
-
Why doesn't my music on my laptop iTunes account sync to my iPhone?
I have the iCloud. I have authorized my laptop. Do I need to purchase iMatch to allow the titles I've burned from my own CDs to be added to the iCloud? Prior to getting my iPhone I had been unwilling to use iTunes due to problems between my wife and
-
Export JAR from NWDS does not include external JARs imported to project
Hi. I'm need to develop and run a batch java program. I'm having difficulty getting the application to find the 2 external JARs at runtime. For compile time, I have physically imported these 2 JARs into the project. To add them to the build path, I
-
What happens to iPhoto and Aperture access if I do the latest update to iMovie which supports the upcoming Photos app?