Authorization in UCMON
Hi guys,
I have the following issue: I limited authorization on company level for tasks in UCMON. Each company can only access their own tasks, nevertheless can each company still see the status of all other companies in the hierarchy. I would like each company only to see itself. Any hints/ideas?
THX
Stefan
We resolved the issue by customer modification:
Short name:
Company Authorization
Comments on the project solution:
The project solution is aimed to define modifications in the consolidation system to limit the number of companies visible to the end users.
Description of the project solution:
1. Modifications in the consolidation system
It is recommended to make slight modifications in the SAP program code to limit the number of companies visible in the Consolidation Monitor according to user security settings.
The consolidation system will be enhanced with two new authorization objects:
· Authorization for companies in consolidation monitor
· Authorization for partner companies available for manual postings
The SAP source code will be modified to introduce check of these new authorization objects. Two SAP objects will be modified (see Appendix 1 for the detailed description of planned modifications):
· The method of the Consolidation monitor responsible for the validity check of the companies list. The authority check will mark the companies that user have no authorization for as invalid. The invalid companies are automatically not shown in the consolidation monitor.
· The function module responsible for collecting list of companies for the search help. The entries user has no authorization for will be deleted from the list.
It is necessary to mention that functional logic of the consolidation system remains intact, since the modifications only affect the visualization part of the system.
This approach has several benefits comparing to use of meaningless company codes:
· The users at Corporate Reporting Department will see the full range of clear and understandable names of companies and partners
· The users at Plants will see a limited number of companies and partners according to security settings
This approach also has a drawback:
· In case of installing new patches from SAP it is necessary to monitor the status of the modifications. In case of replacement of the modified objects with the new version the modifications should be restored in the system. This task will be performed by IT Department.
1. Authorization objects
The consolidation system will be enhanced with two authorization objects:
· Authorization for companies
· Authorization for partners
2. Proposed modification of the SAP source code
2.1. Search help
The consolidation system uses the universal search help for all fields in the consolidation monitor. The search help has technical name UG_SHELP and implemented as functional module UG_MD_REQUEST_CHAR_VALUE_EXIT.
It is recommended to create a Z* copy of this functional module and change the search help object to use the new function. The new functional module will be changed in order to limit the list of companies and partners according to the user security settings. For that purpose the authority check will be inserted at line 88 and invalid entries will be deleted from RECORD_TAB internal table.
2.2. Consolidation monitor
The number of companies in the consolidation monitor also should be restricted. For that purpose it is necessary to modify the CHECK_VALIDITY method of the CL_UC_MONITOR class. At line 634 will be inserted the authority check of companies listed in the internal table lt_chvc. This table has the VDY_VALID field that is used to mark invalid entries. If the empty value is written to this filed the corresponding companies will be deleted from the list and therefore not shown in the consolidation monitor.
Modifications are marked with bald
method check_validity .
xfm030205: derive context from io_sel
xfm251104: validity check for repgroup-combinations
xfm220704: performance
data:
lo_context type ref to if_uc_context,
ls_fprop type ucd_s_fprop,
lr_data type ref to data,
lr_data2 type ref to data,
lr_data3 type ref to data,
lr_data4 type ref to data,
ld_string type string,
lo_combi type ref to if_uc_combination,
ld_role type ug_role,
ld_fieldname type uc_fieldname,
ls_sid type ucd_s_sid,
lt_sid type ucd_th_s_sid,
ld_fsid type uc_sid,
lt_value type uc0_ts_value,
ls_value type uc0_s_value,
ld_index type sy-index value 0,
ld_index_from type sy-index, "#EC NEEDED
ld_case type uc_flg,
ls_sid_vdy type ucs_s_stm_sid_vdy,
ls_sid_vdy2 type ucs_s_stm_sid_vdy,
lt_sid_vdy type ucs_ts_stm_sid_vdy,
ld_read_flg type uc_flg,
l_fieldname type uc_fieldname,
l_fieldname1 type uc_fieldname,
l_fieldname2 type uc_fieldname,
l_fname_sid1 type uc_sid,
l_fname_sid2 type uc_sid,
l_first_run,
l_first_pair.
field-symbols:
type ucs_th_stm_combinations,
<lt_tab2> type ucs_t_stm_combinations, "xfm220704
type uc_sid.
clear e_vdy_active.
is the context initial ?
if not co_context is initial.
lo_context = co_context.
else.
if yes then create it
call method get_context
exporting
io_sel = io_sel "xfm030205
it_ffix = it_ffix
importing
eo_context = lo_context.
endif.
CASE 1 : there is a combination object(group/unit)
if not ct_comb_cu is initial or
not ct_comb_cg is initial.
check combinations
distinguish between the group/unit combination
if not ct_comb_cu is initial.
ld_role = uc00_cs_role-repunit.
assign ct_comb_cu to .
ld_case = '2'.
endif.
get the combination object
call method do_model->get_combination
exporting
i_role = ld_role
io_sel = io_sel
receiving
eo_combination = lo_combi.
store the fieldname of the combination
ld_fieldname = lo_combi->d_fieldname.
xfm251104 begin
data: ld_has_vdy type uc_flg,
lr_s_fprop type ref to ucd_s_fprop,
lo_combi2 type ref to if_uc_combination.
if ld_role eq uc00_cs_role-repgroup and ld_fieldname is initial.
clear ld_has_vdy.
loop at do_model->ds_role-repgroup into lr_s_fprop.
read table do_model->dt_fprop into ls_fprop
with key fieldname = lr_s_fprop->repug_fld.
if not ls_fprop-has_vdy is initial.
ld_has_vdy = 'X'.
exit.
endif.
endloop.
if ld_has_vdy is initial.
get the CU- combination object
call method do_model->get_combination
exporting
i_role = uc00_cs_role-repunit
io_sel = io_sel
receiving
eo_combination = lo_combi2.
read table do_model->dt_fprop into ls_fprop
with key fieldname = lo_combi2->d_fieldname.
ld_has_vdy = ls_fprop-has_vdy.
endif.
else.
xfm251104 end
check if the combination object has a validity or not
read table do_model->dt_fprop into ls_fprop
with table key fieldname = ld_fieldname.
ld_has_vdy = ls_fprop-has_vdy. "xfm251104
endif. "xfm251104
if not, then no processing is necessary
check not ls_fprop-has_vdy is initial. "xfm251104
check not ld_has_vdy is initial. "xfm251104
e_vdy_active = 'X'.
create the data structure for the validity check
the content of this structure ( context + chkeys + validity flag)
call method lo_combi->create_data_reference
exporting
i_type = do_model->gc_type_ts_chvc
importing
er_data = lr_data.
create and assuign the needed tables and structures
assign lr_data->* to .
standard table
ld_string = 'ucs_t_stm_combinations'. "xfm220704
ld_string = 'ucs_ts_stm_combinations'. "xfm220704
assign ld_string to .
loop over the entries
loop at .
if l_first_run = space.
determine the 1. edge
read table do_model->dt_fprop into ls_fprop with key
sid = -fsid1.
if the SID doesn't exist (e.g. after parameter change)
then leave the processing
if sy-subrc ne 0.
continue.
endif.
l_fname_sid1 = -fsid1.
l_fieldname1 = ls_fprop-fieldname.
1 EDGE
create and assign data structure (SID->CH) for the sid->chkey
conversion
call method do_model->create_data_reference
exporting
i_fieldname = l_fieldname1
i_type = do_model->gc_type_th_map_sid2ch
importing
er_data = lr_data.
assign lr_data->* to .
create and assign data structure (CH->SID) for the chkey->sid
conversion
call method do_model->create_data_reference
exporting
i_fieldname = l_fieldname1
i_type = do_model->gc_type_th_map_ch2sid
importing
er_data = lr_data.
assign lr_data->* to .
For Edge 2. (The same process as for the 1. edge)
create and assign data structure (SID->CH)
read table do_model->dt_fprop into ls_fprop with key
sid = -fsid2.
if the SID doesn't exist (e.g. after parameter change) then
leave the processing
if sy-subrc ne 0.
continue.
endif.
l_fname_sid2 = .
create and assign data structure (CH->SID)
call method do_model->create_data_reference
exporting
i_fieldname = l_fieldname2
i_type = do_model->gc_type_th_map_ch2sid
importing
er_data = lr_data.
assign lr_data->* to .
l_first_run = 'X'.
endif.
fill the original values into the convert table
the flag "first_pair" is necessary because we have double entries in
this table ( SID1 - SID2 und SID2 - SID1) but for the validity check
is one of them enough. After the val.check we have to take care
about the deleting of both entries !!
if l_first_pair = space.
l_first_pair = 'X'.
else.
clear l_first_pair.
endif.
endloop.
convert sid to chkey
call method do_model->do_sidmap->convert_tab_sid_to_chkey
exporting
i_fieldname = l_fieldname1
changing
ct_sid2ch = .
fill the ch-sid table
convert sid to chkey
call method do_model->do_sidmap->convert_tab_sid_to_chkey
exporting
i_fieldname = l_fieldname2
changing
ct_sid2ch = .
fill the ch-sid table
fill the table for the validity check
assign component do_model->gc_type_comp_o_context
of structure .
1. EDGE
2. EDGE
endif.
insert
endloop.
check validity
call method lo_combi->check_validity
exporting
it_ffix = lo_context->dt_context
changing
ct_chvc = = 0.
the table <lt_chvc> is sorted by sid. It means that we must convert
the actual char.values to sid, to be able to read the according entry
in the table <lt_tab2>
read the 1. edge
move-corresponding .
read the 2. edge
move-corresponding .
delete the original table with the determined keys
delete the first entry of the pair
delete .
delete the second entry of the pair
delete -vsid2.
endif.
endloop.
change : if the export table is initial, then create an dummy entry
if .
endif.
elseif not ct_sid_vdy is initial.
mass request
lt_sid_vdy = ct_sid_vdy.
ld_index = 0.
initial : all entrys are valid
loop at lt_sid_vdy into ls_sid_vdy where vdy_valid = space.
ls_sid_vdy-vdy_valid = '1'.
modify table lt_sid_vdy from ls_sid_vdy.
endloop.
loop at ct_sid_vdy into ls_sid_vdy.
ld_index = ld_index + 1.
if ld_index = 1.
ld_fsid = ls_sid_vdy-fieldname_sid.
endif.
if ls_sid_vdy-fieldname_sid = ld_fsid.
if ld_read_flg is initial.
read table do_model->dt_fprop into ls_fprop
with key sid = ld_fsid.
if sy-subrc ne 0.
continue.
endif.
ld_fieldname = ls_fprop-fieldname.
adjust from-index for later loop
if ld_index = 1.
ld_index_from = ld_index.
endif.
ld_read_flg = 'X'.
endif.
if not ls_fprop-has_vdy is initial.
insert "new kind" of sids
ls_sid-fieldname_sid = ls_sid_vdy-fieldname_sid.
ls_sid-value_sid = ls_sid_vdy-value_sid.
insert ls_sid into table lt_sid.
else.
ls_sid_vdy-vdy_valid = 1.
modify table lt_sid_vdy from ls_sid_vdy.
endif.
elseif not lt_sid is initial.
check validity of (all) previous entries
call method do_model->create_data_reference
exporting
i_fieldname = ld_fieldname
i_type = do_model->gc_type_ts_chvc
importing
er_data = lr_data.
assign lr_data->* to .
context
assign component do_model->gc_type_comp_o_context
of structure .
chkey
assign component do_model->gc_type_comp_s_chkey
of structure .
create data for the charkeys
call method do_model->create_data_reference
exporting
i_fieldname = ld_fieldname
i_type = do_model->gc_type_s_chkey
importing
er_data = lr_data.
assign lr_data->* to .
fill values into check_validity table
loop at lt_sid into ls_sid.
call method do_model->do_sidmap->convert_sid_to_chkey
exporting
is_sid = ls_sid
importing
es_chkey = .
endloop.
check validity of char values
call method do_model->check_char_validity
exporting
i_fieldname = ld_fieldname
it_ffix = lo_context->dt_context
changing
ct_chvc = dt_fprop into ls_fprop
with key sid = ld_fsid.
l_fieldname = ls_fprop-fieldname.
modify the invalid entries
loop at
importing
es_sid = ls_sid.
read the according entry from the "lt_sid_vdy"
read table lt_sid_vdy into ls_sid_vdy2 with key
fieldname_sid = ls_sid-fieldname_sid
value_sid = ls_sid-value_sid.
if sy-subrc = 0.
ls_sid_vdy2-vdy_valid = '0'.
MODIFY TABLE lt_sid_vdy FROM ls_sid_vdy2.
DELETE TABLE lt_sid_vdy FROM ls_sid_vdy2.
delete lt_sid_vdy where
fieldname_sid = ls_sid_vdy2-fieldname_sid and
value_sid = ls_sid_vdy2-value_sid.
endif.
endif.
endloop.
initialization for new kind of fields
clear ld_read_flg.
refresh lt_sid.
ld_fsid = ls_sid_vdy-fieldname_sid.
if ld_read_flg is initial.
read table do_model->dt_fprop into ls_fprop
with key sid = ld_fsid.
ld_fieldname = ls_fprop-fieldname.
ld_index_from = ld_index.
ld_read_flg = 'X'.
endif.
if not ls_fprop-has_vdy is initial.
insert "new kind" of sids
ls_sid-fieldname_sid = ls_sid_vdy-fieldname_sid.
ls_sid-value_sid = ls_sid_vdy-value_sid.
insert ls_sid into table lt_sid.
else.
ls_sid_vdy-vdy_valid = 1.
modify table lt_sid_vdy from ls_sid_vdy.
endif.
else.
initialization for new kind of fields
clear ld_read_flg.
refresh lt_sid.
ld_fsid = ls_sid_vdy-fieldname_sid.
if ld_read_flg is initial.
read table do_model->dt_fprop into ls_fprop
with key sid = ld_fsid.
ld_fieldname = ls_fprop-fieldname.
ld_index_from = ld_index.
ld_read_flg = 'X'.
endif.
if not ls_fprop-has_vdy is initial.
insert "new kind" of sids
ls_sid-fieldname_sid = ls_sid_vdy-fieldname_sid.
ls_sid-value_sid = ls_sid_vdy-value_sid.
insert ls_sid into table lt_sid.
else.
ls_sid_vdy-vdy_valid = 1.
modify table lt_sid_vdy from ls_sid_vdy.
endif.
endif.
endloop.
check validity of (all) previous entries ( after the last group)
if not lt_sid is initial.
call method do_model->create_data_reference
exporting
i_fieldname = ld_fieldname
i_type = do_model->gc_type_ts_chvc
importing
er_data = lr_data.
assign lr_data->* to .
context
assign component do_model->gc_type_comp_o_context
of structure .
chkey
assign component do_model->gc_type_comp_s_chkey
of structure .
create data for the charkeys
call method do_model->create_data_reference
exporting
i_fieldname = ld_fieldname
i_type = do_model->gc_type_s_chkey
importing
er_data = lr_data.
assign lr_data->* to .
fill values into check_validity table
loop at lt_sid into ls_sid.
call method do_model->do_sidmap->convert_sid_to_chkey
exporting
is_sid = ls_sid
importing
es_chkey = .
endloop.
check validity of char values
call method do_model->check_char_validity
exporting
i_fieldname = ld_fieldname
it_ffix = lo_context->dt_context
changing
ct_chvc = dt_fprop into ls_fprop
with key sid = ld_fsid.
l_fieldname = ls_fprop-fieldname.
*{ INSERT BDSK903109 1
Проверяем на полномочия каждую компанию из списка*
LOOP AT <lt_chvc> INTO <ls_chvc>.
IF <f_valid> = '1'.
AUTHORITY-CHECK OBJECT 'ZBCS_COMP'
ID '9ZCOMPANY' FIELD <ls_chvc_chkey>.
Если полномочия отсутствуют помечаем компанию как не валидную*
IF sy-subrc <> 0.
CLEAR <f_valid>.
MODIFY <lt_chvc> FROM <ls_chvc>.
ENDIF.
ENDIF.
ENDLOOP.
*} INSERT
modify the invalid entries
loop at
importing
es_sid = ls_sid.
read the according entry from the "lt_sid_vdy"
read table lt_sid_vdy into ls_sid_vdy2 with key
fieldname_sid = ls_sid-fieldname_sid
value_sid = ls_sid-value_sid.
if sy-subrc = 0.
ls_sid_vdy2-vdy_valid = '0'.
MODIFY TABLE lt_sid_vdy FROM ls_sid_vdy2.
DELETE TABLE lt_sid_vdy FROM ls_sid_vdy2.
delete lt_sid_vdy where
fieldname_sid = ls_sid_vdy2-fieldname_sid and
value_sid = ls_sid_vdy2-value_sid.
endif.
endif.
endloop.
endif.
ct_sid_vdy = lt_sid_vdy.
CASE 2 : there is no combination object filled
elseif not is_sid is initial.
single value
clear e_invalid.
read table do_model->dt_fprop into ls_fprop
with key sid = is_sid-fieldname_sid.
check sy-subrc = 0.
check not ls_fprop-has_vdy is initial.
ld_fieldname = ls_fprop-fieldname.
e_vdy_active = 'X'.
ls_sid = is_sid.
call method do_model->create_data_reference
exporting
i_fieldname = ld_fieldname
i_type = do_model->gc_type_ts_chvc
importing
er_data = lr_data.
assign lr_data->* to .
check validity of char value
call method do_model->check_char_validity
exporting
i_fieldname = ld_fieldname
it_ffix = lo_context->dt_context
changing
ct_chvc = = 0.
e_invalid = 'X'.
exit.
endif.
endloop.
endif.
endmethod.
corrections
jhn021002 021002 note 559186 wrong sort order of available values
FUNCTION z_ug_request_char_value_exit.
""Локальный интерфейс:
*" TABLES
*" SHLP_TAB TYPE SHLP_DESCT
*" RECORD_TAB STRUCTURE SEAHLPRES
*" CHANGING
*" VALUE(SHLP) TYPE SHLP_DESCR
*" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
EXIT immediately, if you do not want to handle this step
CLASS cl_ug_md_fieldname DEFINITION LOAD.
IF callcontrol-step <> 'SELONE' AND
callcontrol-step <> 'SELECT' AND
callcontrol-step <> 'DISP'.
EXIT.
ENDIF.
STEP SELONE (Select one of the elementary searchhelps)
This step is only called for collective searchhelps. It may be used
to reduce the amount of elementary searchhelps given in SHLP_TAB.
The compound searchhelp is given in SHLP.
If you do not change CALLCONTROL-STEP, the next step is the
dialog, to select one of the elementary searchhelps.
If you want to skip this dialog, you have to return the selected
elementary searchhelp in SHLP and to change CALLCONTROL-STEP to
either to 'PRESEL' or to 'SELECT'.
IF callcontrol-step = 'SELONE'.
PERFORM SELONE .........
EXIT.
ENDIF.
STEP PRESEL (Enter selection conditions)
This step allows you, to influence the selection conditions either
before they are displayed or in order to skip the dialog completely.
If you want to skip the dialog, you should change CALLCONTROL-STEP
to 'SELECT'.
Normaly only SHLP-SELOPT should be changed in this step.
IF callcontrol-step = 'PRESEL'.
PERFORM PRESEL ..........
EXIT.
ENDIF.
STEP SELECT (Select values)
This step may be used to overtake the data selection completely.
To skip the standard seletion, you should return 'DISP' as following
step in CALLCONTROL-STEP.
Normally RECORD_TAB should be filled after this step.
Standard function module F4UT_RESULTS_MAP may be very helpfull in this
step.
DATA rc TYPE sy-subrc.
IF callcontrol-step = 'SELECT'.
PERFORM step_select TABLES record_tab shlp_tab
CHANGING shlp callcontrol rc.
IF rc EQ space.
PERFORM authority_check TABLES record_tab shlp_tab
CHANGING shlp callcontrol.
callcontrol-step = 'DISP'.
ELSE.
callcontrol-step = 'EXIT'.
ENDIF.
EXIT. "we do not need the step DISP
ENDIF.
STEP DISP (Display values)
This step is called, before the selected data is displayed.
You can e.g. modify or reduce the data in RECORD_TAB
according to the users authority.
If you want to get the standard display dialog afterwards, you
should not change CALLCONTROL-STEP.
If you want to overtake the dialog on you own, you must return
the following values in CALLCONTROL-STEP:
- "RETURN" if one line was selected. The selected line must be
the only record left in RECORD_TAB. The corresponding fields of
this line are entered into the screen.
- "EXIT" if the values request should be aborted
- "PRESEL" if you want to return to the selection dialog
Standard function modules F4UT_PARAMETER_VALUE_GET and
F4UT_PARAMETER_RESULTS_PUT may be very helpfull in this step.
IF callcontrol-step = 'DISP'.
PERFORM authority_check TABLES record_tab shlp_tab
CHANGING shlp callcontrol.
EXIT.
ENDIF.
ENDFUNCTION..
*& Form authority_check
FORM authority_check TABLES record_tab STRUCTURE seahlpres
shlp_tab TYPE shlp_descr_tab_t
CHANGING shlp TYPE shlp_descr_t
callcontrol TYPE ddshf4ctrl.
DATA: lv_company TYPE /bic/oizcompany,
lv_pcomp TYPE /bic/oizpcomp,
lv_len TYPE i.
FIELD-SYMBOLS: <fs_shlp_descr> TYPE ddshiface,
<fs_seahlpres> TYPE seahlpres.
Получаем поле поиска*
READ TABLE shlp-interface INDEX 1 ASSIGNING <fs_shlp_descr>.
IF sy-subrc <> 0.
EXIT.
ENDIF.
CASE <fs_shlp_descr>-shlpfield.
WHEN '/BIC/ZCOMPANY'.
Компания*
Получаем длинну признака Компания*
DESCRIBE FIELD lv_company LENGTH lv_len IN CHARACTER MODE.
LOOP AT record_tab ASSIGNING <fs_seahlpres>.
Получаем код компании*
lv_company = <fs_seahlpres>-string(lv_len).
Проверяем полномочия*
AUTHORITY-CHECK OBJECT 'ZBCS_COMP'
ID '9ZCOMPANY' FIELD lv_company.
Если полномочия отсутствуют, удаляем компанию из списка*
IF sy-subrc <> 0.
DELETE record_tab WHERE string = <fs_seahlpres>-string.
ENDIF.
ENDLOOP.
WHEN '/BIC/ZPCOMP'.
Компания партнер*
Получаем длинну признака Компания*
DESCRIBE FIELD lv_pcomp LENGTH lv_len IN CHARACTER MODE.
LOOP AT record_tab ASSIGNING <fs_seahlpres>.
Получаем код компании*
lv_pcomp = <fs_seahlpres>-string(lv_len).
Проверяем полномочия*
AUTHORITY-CHECK OBJECT 'ZBCS_PART'
ID '9ZPCOMP' FIELD lv_pcomp.
Если полномочия отсутствуют, удаляем компанию из списка*
IF sy-subrc <> 0.
DELETE record_tab WHERE string = <fs_seahlpres>-string.
ENDIF.
ENDLOOP.
ENDCASE.
ENDFORM. "authority_check
*& Form step_select
FORM step_select TABLES record_tab STRUCTURE seahlpres
shlp_tab TYPE shlp_descr_tab_t
CHANGING shlp TYPE shlp_descr_t
callcontrol TYPE ddshf4ctrl
rc LIKE sy-subrc. "#EC *
DATA: ls_interface TYPE ddshiface,
ls_selopt TYPE ddshselopt,
l_application TYPE ug_application,
l_areaid TYPE ug_areaid,
l_fieldname TYPE ug_fieldname,
ls_sel TYPE ugmd_s_sel,
lt_sel TYPE ugmd_ts_sel,
lo_fieldname TYPE REF TO if_ug_md_fieldname,
l_is_comb_field TYPE ug_flg.
remove application and areaid from field descriptions
DELETE shlp-interface
WHERE shlpfield = if_ug_md_factory=>gc_fieldname_application
OR shlpfield = if_ug_md_factory=>gc_fieldname_areaid.
DELETE shlp-fielddescr
WHERE fieldname = if_ug_md_factory=>gc_fieldname_application
OR fieldname = if_ug_md_factory=>gc_fieldname_areaid.
DELETE shlp-fieldprop
WHERE fieldname = if_ug_md_factory=>gc_fieldname_application
OR fieldname = if_ug_md_factory=>gc_fieldname_areaid.
LOOP AT shlp-selopt INTO ls_selopt.
MOVE-CORRESPONDING ls_selopt TO ls_sel.
ls_sel-fieldname = ls_selopt-shlpfield.
INSERT ls_sel INTO TABLE lt_sel.
ENDLOOP.
handling COMBI F4 help
READ TABLE shlp-selopt INTO ls_selopt
WITH KEY low = if_ug_md_factory=>gc_combi_f4_dummy.
IF sy-subrc IS INITIAL AND
ls_selopt-shlpfield CS 'COMBI_'.
l_fieldname = ls_selopt-shlpfield.
ELSE.
READ TABLE shlp-interface INTO ls_interface
WITH KEY f4field = 'X'.
l_fieldname = ls_interface-shlpfield.
ENDIF.
lo_fieldname = cl_ug_md_fieldname=>if_ug_md_fieldname~get_instance(
i_fieldname = l_fieldname ).
lo_fieldname->is_combination_field(
IMPORTING ef_is_combination_field = l_is_comb_field ).
CLEAR ls_sel.
READ TABLE lt_sel INTO ls_sel
WITH KEY fieldname = if_ug_md_factory=>gc_fieldname_areaid.
DELETE lt_sel INDEX sy-tabix.
l_areaid = ls_sel-low.
CLEAR ls_sel.
READ TABLE lt_sel INTO ls_sel
WITH KEY fieldname = if_ug_md_factory=>gc_fieldname_application.
DELETE lt_sel INDEX sy-tabix.
l_application = ls_sel-low.
IF l_is_comb_field EQ space.
normal field
PERFORM step_select_single TABLES record_tab
shlp_tab
USING lt_sel
l_areaid
l_application
CHANGING shlp
callcontrol.
ELSE.
combination field
PERFORM step_select_combi TABLES record_tab
shlp_tab
CHANGING shlp
callcontrol.
ENDIF.
ENDFORM. "step_select
FORM STEP_SELECT_COMBI
FORM step_select_combi TABLES record_tab STRUCTURE seahlpres
shlp_tab TYPE shlp_descr_tab_t
CHANGING shlp TYPE shlp_descr_t
callcontrol TYPE ddshf4ctrl.
CONSTANTS: lc_combi(7) TYPE c VALUE 'COMBI_0'.
TYPES: BEGIN OF ls_char_combi,
char TYPE ug_fieldname,
combi TYPE ug_fieldname,
END OF ls_char_combi,
lt_char_combi TYPE STANDARD TABLE OF ls_char_combi,
BEGIN OF type_s_char_instance,
fieldname TYPE ug_fieldname,
char TYPE REF TO if_ug_md_char,
END OF type_s_char_instance,
type_t_char_instance TYPE SORTED TABLE
OF type_s_char_instance WITH UNIQUE KEY fieldname.
DATA: l_number_of_values LIKE callcontrol-maxrecords,
lt_field TYPE ugmd_ts_fieldname,
lt_field_1 TYPE ugmd_t_fieldname,
lt_field_2 TYPE ugmd_t_fieldname,
l_fieldname TYPE ug_fieldname,
lt_sel TYPE ugmd_ts_sel,
ls_sel TYPE ugmd_s_sel,
l_combi_field TYPE ug_fieldname,
l_application TYPE ug_application,
l_areaid TYPE ug_areaid,
lo_md_char TYPE REF TO if_ug_md_char,
lo_fieldname TYPE REF TO if_ug_md_fieldname,
lo_md_factory TYPE REF TO if_ug_md_factory,
ls_selopt TYPE ddshselopt,
lt_combi TYPE ugmd_t_fieldname,
l_compound_1 TYPE i,
l_compound_2 TYPE i,
lt_char TYPE type_t_char_instance,
ls_char TYPE type_s_char_instance,
lt_sel_1 TYPE ugmd_ts_sel,
ls_sel_1 TYPE ugmd_s_sel,
lt_sel_2 TYPE ugmd_ts_sel,
ls_sel_2 TYPE ugmd_s_sel,
ls_fdep TYPE ugmd_s_fdep,
ls_fdep_1 TYPE ugmd_s_fdep,
ls_fdep_2 TYPE ugmd_s_fdep,
l_txt_1 TYPE ug_fieldname,
l_txt_2 TYPE ug_fieldname,
lo_char_1 TYPE REF TO if_ug_md_char,
lo_char_2 TYPE REF TO if_ug_md_char,
lr_read TYPE REF TO data,
lr_t_combi TYPE REF TO data,
lr_s_combi TYPE REF TO data,
ls_key TYPE ugmd_s_field_val,
lt_key TYPE ugmd_ts_field_val,
l_replace_vdy TYPE ug_flg.
FIELD-SYMBOLS: gc_struct_resolved_combi_f4
if_table = 'X'
IMPORTING
eo_ref = lr_t_combi.
Then create the internal table with structure like the ddic table
ASSIGN lr_t_combi->* TO dt_fdep INTO ls_fdep.
INSERT ls_fdep-masterfield INTO TABLE lt_field.
INSERT ls_fdep-masterfield INTO TABLE lt_field_2.
ENDLOOP.
read all valid combinations
CALL METHOD lo_md_char->read_value
EXPORTING
it_sel = lt_sel
it_field = lt_field
IMPORTING
et_value = .
apply validity depending to user selection
PERFORM check_validity USING lt_sel
CHANGING shlp
FROM l_number_of_values.
ENDIF.
ENDIF.
changes some column content
PERFORM change_result_vdy USING l_replace_vdy
CHANGING .
read texts for compounded values
REFRESH: lt_sel_1,
lt_sel_2.
REFRESH lt_char.
LOOP AT lt_field INTO l_fieldname.
ls_char-fieldname = l_fieldname.
ls_char-char = lo_md_factory->get_char_instance( l_fieldname ).
INSERT ls_char INTO TABLE lt_char.
ENDLOOP.
DESCRIBE TABLE lo_char_1->dt_fdep LINES l_compound_1.
DESCRIBE TABLE lo_char_2->dt_fdep LINES l_compound_2.
READ TABLE lo_char_1->dt_fdep INTO ls_fdep_1 INDEX l_compound_1.
READ TABLE lo_char_2->dt_fdep INTO ls_fdep_2 INDEX l_compound_2.
prepare selection conditions
CLEAR: ls_sel_1,
ls_sel_2.
ls_sel_1-fieldname = ls_fdep_1-masterfield.
ls_sel_1-sign = 'I'.
ls_sel_1-option = 'EQ'.
ls_sel_2-fieldname = ls_fdep_2-masterfield.
ls_sel_2-sign = 'I'.
ls_sel_2-option = 'EQ'.
LOOP AT .
INSERT ls_sel_2 INTO TABLE lt_sel_2.
ENDIF.
ENDLOOP.
read values and texts for compounded characteristics
CALL METHOD lo_char_1->create_data_reference
EXPORTING
i_structure = if_ug_md_factory=>gc_struct_texts
it_tablekey = lt_field_1
i_tabtype = 'S'
if_table = 'X'
IMPORTING
eo_ref = lr_read.
ASSIGN lr_read->* TO .
read all necessary values
CALL METHOD lo_char_1->read_value
EXPORTING
it_sel = lt_sel_1
IMPORTING
et_value = .
prepare text field names
CLEAR: l_txt_1,
l_txt_2.
ASSIGN COMPONENT 'TXTMI'
OF STRUCTURE .
IF sy-subrc IS INITIAL.
l_txt_2 = 'TXTSH'.
ENDIF.
ENDIF.
ENDIF.
fill texts and convert output
LOOP AT .
value conversion
LOOP AT lt_field INTO l_fieldname.
ASSIGN COMPONENT l_fieldname
OF STRUCTURE .
text processing
Similar Messages
-
Roles and authorization - 0BI_ALL
hi all,
i have problem creating a proper role for our users in sem-bcs. The problem is in the transaction ucmon. They cant see the list of journals unless i give them authorization object S_RS_AUTH with 0BI_ALL. But i dont want to use 0BI_ALL because they see all data and they shouldnt.
I created two authorizations in rsecadmin and had put them into the role in S_RS_AUTH:: one with infoobject ZIOCELOK and one with ZIOICOUJ and gave them values that the user needs to see only his data. I also added But he still cant see it. I run rsecadmin analysis and found this in error logs, but i dont have a clue what does this mean.
Following Set Is Checked Comparison with Following Authorized Set Result
Characteristic Content(in SQL Format) Characteristic Content(in SQL Format) Not Authorized
0TCAACTVT NOT ZIOCELOK = 'KAP10' ZIOICOUJ I EQ 00699021
ZIOCELOK AND ZIOICOUJ = '00699021' I EQ 30806101 Not Authorized
ZIOICOUJ AND 0TCAACTVT = '03' I EQ 31819559
I EQ 35822163
0TCAACTVT I EQ 03
ZIOCELOK I EQ KAP10
All Authorizations Tested
Message EYE007: You do not have sufficient authorization
No Sufficient Authorization for This Subselection (SUBNR)
Following CHANMIDs Are Affected:
477 ( ZIOCELOK )
478 ( ZIOICOUJ )
Authorization Check Complete
PLS help
Edited by: Martin Zluky on Jul 30, 2010 10:12 AM
Edited by: Martin Zluky on Jul 30, 2010 10:12 AMHi,
here is the full error log. Please take a look. ZIOCELOK is a variable in ISJUS_BCS, which is our infocube from where ucmon
is getting data.
Authorization Check Log
For a general description see the Note 1234567
Date and Execution Time (Local Server)
Execution Date: 05.08.2010
Execution Time: 08:11:24
TransactionUCWB_INT ( List of Totals Records )
Executed by User TE001019
Executed with Analysis Authorizations of Another UserTE001019
Software Component Release Level Support Package
SAP_ABA 700 0019 SAPKA70019
SAP_BASIS 700 0019 SAPKB70019
SAP_BW 700 0021 SAPKW70021
InfoProvider Check
Building the Buffer...
...Buffer Built
Are there authorizations for accessing InfoProvider ISJUS_BCS with activity 03?
Authorization exists for general access to InfoProvider ISJUS_BCS with activity 03
Relevant Characteristics for Detailed Authorization Check
(Characteristics with Full Authorization Are Not Listed!)
List of Effective Authorization-Relevant Characteristics for InfoProvider ISJUS_BCS:
ZIOCELOK
ZIOICOUJ
0TCAACTVT
Authorization Check
Detail Check for InfoProvider ISJUS_BCS
Preprocessing:
Selection Checked for Consistency, Preprocessed and Supplemented As Needed
Subselection (Technical SUBNR) 1
Check Node Definitions and Value Authorizations...
Node- and Value Authorizations Are OK
End of Preprocessing
Filling the Buffer...
...Buffer Filled
Main Check:
Subselection (Technical SUBNR) 1
Supplementation of Selection for Aggregated Characteristics
No Check for Aggregation Authorization Required
Following Set Is Checked Comparison with Following Authorized Set Result Remaining Set
Characteristic Content(in SQL Format)
0TCAACTVT
ZIOCELOK
ZIOICOUJ
ZIOICOUJ IN ('00699021','30806101','31819559','35822163')
AND 0TCAACTVT = '03'
AND ZIOCELOK LIKE *
Characteristic Content(in SQL Format)
0TCAACTVT I EQ 03
ZIOCELOK I EQ KAP10
ZIOICOUJ I EQ 00699021
I EQ 30806101
I EQ 31819559
I EQ 35822163
Partially or Fully Authorized (Intersection) Partially or Fully Authorized (Intersection)
Characteristic Content(in SQL Format)
0TCAACTVT
ZIOCELOK
ZIOICOUJ
NOT ZIOCELOK = 'KAP10'
AND ZIOICOUJ IN ('00699021','30806101','31819559','35822163')
AND 0TCAACTVT = '03'
Value selection partially authorized. Check of remainder at end
Following Set Is Checked Comparison with Following Authorized Set Result Remaining Set
Characteristic Content(in SQL Format)
0TCAACTVT
ZIOCELOK
ZIOICOUJ
NOT ZIOCELOK = 'KAP10'
AND ZIOICOUJ IN ('00699021','30806101','31819559','35822163')
AND 0TCAACTVT = '03'
Characteristic Content(in SQL Format)
0TCAACTVT I EQ 03
ZIOCELOK I EQ KAP10
ZIOICOUJ I EQ 00699021
I EQ 30806101
I EQ 31819559
I EQ 35822163
Not Authorized Selection is not authorized
All Authorizations Tested
Message EYE007: You do not have sufficient authorization
No Sufficient Authorization for This Subselection (SUBNR)
Following CHANMIDs Are Affected:
477 ( ZIOCELOK )
478 ( ZIOICOUJ )
Authorization Check Complete -
We have an issue which I'm not sure if it's an authorization issue. One test user TST101 has a role assignement ZBC-CU-FULL which has all authorization to run UCWB & UCMON however, test user TST101 can run UCMON with no problem at all but when I go to menu GOTO > List of Totals Records and input the 0010 in the company field, it gives me an authorization issue that is says "Insufficient authorization for data from InfoProvider" but when I run the SU53, it gives me no missing objects or anything and even in ST01 it gives me no error auth issue.
But when I add SAP_ALL & SAP_NEW profile to the test user TST101, it then gave me a result.
The problem now here is, the client doesn't want us to use SAP_ALL/NEW profile in production.
Your help is very much appreciated.
Regards,
tedHi,
I hope it is not to late...
You need also BI/BW-Authorization-Objects to allow "writing" on InfoProviders!
You Sum-Cube is BW, so that user needs a role with permission to write and read the Sum-cube of SEM-BCS! It should be S_RS_ICUBE.
Check these authorization-objects, these reguard development and usage of SEM-BCS, its customizing and reporting.
AAAB
S_TCODE
Business Information Warehouse (RS)
S_RS_HIER
S_RS_ICUBE
S_RS_MPRO
S_RS_ODSO
S_RS_IOMAD
Strategic Enterprise Management (SEM)
R_UC_ODSM
R_UC_PERIO
R_UC_RECON
R_UC_TASK
R_UGMD_ATT
R_UGMD_CHA
R_UGMD_FLD
Financial Basis (FINB)
FB_SRV_DMS
FB_SRV_GC
FB_SRV_TR
R_CONFIG
R_FINB_TYP
R_UGMD_SNG
BR
Benjamin Maier -
Open and close posting period authorization control TCODE: S_ALR_87003642
HI All,
Is there any chance to control the user to open and close another company code posting period variant in TCODE: S_ALR_87003642.
In our system we are using the same client for different countries. So user can able to change the other country company code posting periods.
We would like to control either on the country (or) organizational unit(company code) (or) posting period variant so that user can only open/close their country / company code posting periods.
Our present authorization role for open and close posting period contain the auth.Obj. : S_TABU_DIS.
Please share your knowledge if you come across this problem..
Thanks in advance..Hey Sandhya,
Congratz, this can be done using linbe item authorization with the object S_TABU_LIN.
Field ORG_CRIT - Value 02
Field ORG_FIeld1 - Value ZT001B
We have successfully done it in our client.
You need to contact your BASIS consultant for this.
Thanks,
Nitish -
Analysis Authorization in BO 4.0 Webi report
Hi All,
I am using BO 4.0 and creating connection from Information Design tool to a BW query using BICS client. This connection is then published to CMC.
We are using SAP authentication and importing the roles from BW system. We have added profiles to this role and these profiles have Analysis Authorization set on Company Code. So one user can access data to one company code and vice versa. Now this works well in Bex Analyzer, but if I try to create a report in Webi, the analysis authorization fails. I went through the forum before posting this question and I found that is in 3.1 version and in most cases using SSO in universe connection solved the problem.
However in 4.0 I am using BICS client and followed the same processes to create a connection but for some reason it doesn't work ? Is this suppose to work differently in 4.0 ?
I have tried:
1. To create connection in Information Design tool using SSO, selecting user ID and password. It doesn't work.
2. Checked the Bex query and it already has Company code as a Characteristic restrictions (I have made it a mandatory variable).
3. Publish the connection to CMC with my Enterprise and SAP ID and in both cases it doesn't work.
Please let me know if anyone encountered a similar issue and what is the best method to resolve this.
(BO 4.0 no service pack or fix pack installed on the system yet)
Thanks - Appreciate your help !
Prasad RasamIngo,
1. To create connection in Information Design tool using SSO, selecting user ID and password. It doesn't work.
>> Correct you need to setup you OLAP Connection with SSO.
>>> What I meant was I created the connections using both the methods, Using SSO it allows me to create a connection. The ID which I am using to create a connection has Admin access to BOBJ system. When I login as a regular user to create a Webi report and select this new connection, it throws an error message 'The DSL Service returned an error: com.businessobjects.dsl.services.workspace.impl.QueryViewAnalyzer$CannotGetCubeFromConnectionException: Cannot get the cube from the connection'
Using the other method to create a connection with User ID and password, I can create a connection and with the normal user login I can connect to the BW query but Analysis Authorization doesn't work.
Ingo : Could you be more specific what you mean here with the different users ? When you say "regular" user are you referring to an SAP credentials or SAP BusinessObjects Enteprrise credentials ?
2. Checked the Bex query and it already has Company code as a Characteristic restrictions (I have made it a mandatory variable).
>> The variable in the BEx query needs to be an authorization variable.
>>> This has already been set as Authorization variable. There is still a question here. If I select the variable as Authorization variable, I cannot set the other parameters in the query properties such as Mandatory variable (as this is greyed out).
Ingo : What other parameters would you like to configure ? Could you perhaps describe the scenario with more details ?
regards
Ingo Hilgefort -
Analysis Authorization Issue 7.3
Hello Friends,
System BW 7.3, Currently there are 80 odd analysis authorization objects
We want to introduce a new info object (GL Account) to be authorization relevant, ( there are few objects in the system which are already authorization relevant in the system with proper analysis authorization objects and they are working fine)
Things done, made the GL Account object authorization relevant in RSA1, Created 2 analysis authorization objects with GL Account and TCT objects and one with hierarchy restrictions and one open access.
Added this object to the user in addition to its already existing authorization objects. Created authorization variable in BEx.
Some how the authorization is not picked up and it gives us all the values in the report. But if I add the GL Account info object to the existing analysis authorization objects then it works fine.
I do not want to change all the existing analysis authorization objects to add GL Account.
Your inputs are most welcome.
Thanks
Ed.Gajesh- I have added the new analysis authorization object to the user in RSECadmin.
Subhendu- Problem statement: What are the steps involved in making a new info object(GL Account) authorization relevant. Authorizations are given at hierarchy level. Can we create a new analysis authorization with GL Account only or do we have to add it to every existing analysis authorization
I have done the following steps
1. Made the GL Account object authorization relevant in RSA1,
2. Created 2 new analysis authorization objects with GL Account ( with hierarchy restrictions) and TCT objects and one with GL Account open access.
3. Added this object ( which has restrictions) to the user in RSECADMIN, in addition to its already existing authorization objects.
4. Created authorization variable in BEx.
5. No existing analysis authorization objects have been changed.
When I test the report, It does not restrict based on the hierarchy that I have given, it gives open access.
But If I add GL Account with restrictions to the existing analysis authorization object, it works good.
Guess I am missing some thing here.
Do you need any other screen shots.
Thanks
Ed. -
Hi:
I created an analysis authorization ZCO_CODE to trstrict it by a company code.
I added following objects in authorization with values.
0COMP_CODE = 1000
0TCAACTVT = 03
0TCAIFAREA = *
0TCAIPROV = *
0TCAVALID = *
Then I created a role Z:00:BW_REPORT, where I added following authorization objects S_RS_AUTH and restricted it by value ZCO_CODE. Then I assigned this role to a user test01.
When I execute a program RSEC_MIGRATION for this specific user, I do not see authorization object ZCO_CODE on 2nd step of this program. Any Idea Why? I think this object should show up as I want to migrate this specific object.
Help will be appreciated.Hi Sachin:
Okay here is my issue.
I have a Reporting authorization Object created earlier which is ZCOCODE. I though I'll have to create a new Analysis authorization object e.g. ZCO_CODE and then restrict it with other chars. as mentioned in Marc Bernards presentation and then you have to migrate it.
In selection list I can see old Reporting authorization object. If I select it and use option "Enhance existing profile" then It will update profile and not role? right....
How can I see whether it has updated existing profile?????
Do I need to create new Analysis Auth. for Company code or I can use old Reporting authorization for company code?
For testing purpose, I created a test user and assigned all reporting roles but It will not show up in RSEC_MIGRATION step??? -
BW Analysis authorization issue on cost center range
Hello BIW security experts
I have a problem where I created an analysis authorization on a cost center range and it looks like the interval is not working. The report is just a list of cost centers (demo to users to prove that analysis authorizations work in order to skip 2 managerial cost centers.
. Cost centers are numeric. Example: 2000100. In the drop down list they appear as such.
. I want to have the following cost center range: 1000000 to 1000771, 1000773 to 2000771, 2000773 to 9999999.
Thereofore 1000772 and 2000772 should not appear in the list.
. In the analysis authorization I have put the 3 ranges above on 3 separate lines. 'BT' is the operator. The cost centers have been selected from the drop down list.
Results: I get only 1 record from the report.... 2000772. (which is one I want to exclude..
Steps tried to debug:
. When I put a list of cost centers in the analysis authorization on separate line with the 'EQ' operator, then the report works.
. I tried putting ' ' delimiters since cost center is a char field but it fails.
. I tried adding leading and trailing zeros to fill up the char(10) but no luck.
. I tried creating a hierarchy with the interval and put it in the hierachy auth. tab and it does not work either. It gives the same number of records than the first step.
. A hierarchy with single values work.
I do not know what else to try..
Thanks.
YB.Good morning
Here it is from RSECVAL
ZCC_TEST 0COSTCENTER I BT 1000000 1000771
ZCC_TEST 0COSTCENTER I BT 1000773 2000771
ZCC_TEST 0COSTCENTER I BT 2000773 9999999
ZCC_TEST 0COSTCENTER I EQ #
ZCC_TEST 0COSTCENTER I EQ :
ZCC_TEST 0INFOPROV I CP *
ZCC_TEST 0TCAACTVT I EQ 03
ZCC_TEST 0TCAIPROV I CP *
ZCC_TEST 0TCAKYFNM I CP *
Thank you for your help. -
We have one BW query which is pulling data from Contract Division info-object. Now this report does not variable selection object so it is pulling data from all values of Contract Division. Values of Contract Division are CNC, CNS, CNE and CNL.
Now we have created an analysis auth. object called z_es_3 and added Contract division info-object. Now we have added that z_es_3 into role and given value to CNS. now when we are running report, we are getting No Authorization error. When we are giving * value in z_es_3, it is running fine.
Now we have to restrict report to contract division. please help.
Thanks in advanceAre you running unrestricted search on Contract division in your queries? You should restrict it to value which is maintained in the authorization for the InfoObject.
Also please run the analysis authorization trace from RSECADMIN. That will give you a clearer picture of what is wrong. -
BW Analysis authorizations issue in BO Webi Report
Dear All,
I have one webi report which is on BEx Query-universe.
Query has 6 authorization variables with ready for input(optional).
User has authorizations for all 6 fields.
But when we execute the webi report it is throwing error message like" query do not retrive data"
One of the 6 authorization fields has only few values , when we give " * " to this field the user can able to execute the report.
Could anybody tell me what is need be done here
regards
mhreddyHi!
Probabily the combination of authoriztions funcions are executing considering "and".
See your configuration to considerer "or".
Test one by one.
bye -
Can I authorize 2 apple IDs on one computer?
I'm new to the communities so please bear with me if I post this inappropriately.
My husband and I both have iphones. My two children have itouchs. My husband has an ipad. We also have numerous ipods.
We have two computers in the house. When my husband first bought an ipod, we had a PC. All of his devices have always been synced on the PC using his apple id. When I got my iphone, I synced on our MAC using my apple id. When the kids got itouches, they synced on the MAC using their apple id.
We discovered that anything the kids and I purchased on itunes on the MAC is available to all of us.
We would now like to use home sharing. To do this, both computers must be authorized to one apple id. If the PC is deauthorized for my husband's apple id, I understand he will lose his purchases on the PC (or at least they won't be available until he authorizes it again).
I understand that an apple id may be authorized on up to 5 computers. But what about multiple apple id on one computer???
My questions are basically this...
Can we authorize 2 or more apple id on one computer?
Can I authorize my apple id on the PC and have my husband's apple id remain authorized on the PC?
Can my husband's apple id be authorized on the MAC and my apple id remain authorized?
Can the kids apple id be authorized on each of the PC and the MAC?
Can we have 4 different apple id authorized on a computer at once?
Will authorizing my apple id on the PC de-authorize my husband's apple id?
How's that for asking the same question in lots of different ways? I have seen a lot about a computer using the same id multiple times but nothing about whether I can authorize many different ids on one computer at once.
Thanks for the help.Each person in your home can have their own Apple ID provided it is tied the their own separate email address.
iTunes permits up to five authorized computers connected to a single Apple ID: iTunes Store- About authorization and deauthorization.
For this all to work well, however, each user in your household should have a separate user account on the computer they commonly use. -
How can i authorize music from one apple id acount to another
how can i authorize music from one apple id acount to another? My IPhone 5 wont play my songs that were purches from my old apple id account
timss22 wrote:
how can i authorize music from one apple id acount to another?
You cannot. iTunes purchases remain on the iTunes account they were purchased with.
My IPhone 5 wont play my songs that were purches from my old apple id account
So just upload them from iTunes.
You have mulitple AppleIDs?
Why? -
How can i get the itunes store authorization on a windows 7 laptop
i need help big time please. i am about to either throw my laptop because itunes is not authurizing my dell windows 7 laptop
Hello there, jeffrodgers74.
The following Knowledge Base article goes over a few of the reasons iTunes may continually prompt for authorization:
iTunes repeatedly prompts to authorize computer to play iTunes Store purchases
http://support.apple.com/kb/ts1389
Although all of the topics are relevant, most people find the following section to be the culprit in most cases:
Authorize using the correct account name
The items you are trying to play might have been purchased using a different iTunes Store account. To determine which account was used to purchase an item, follow these steps:
Select a purchased song in your library and choose File > Get Info.
Click the Summary tab. Note the Account Name that appears in the list. This is the account name (Apple ID) you will need to use when authorizing your computer to play this purchase.
Note: The account name that appears is the one you used when purchasing the item and does not change if the account name (Apple ID) changes.
If you've authorized the Apple ID that is shown in the Summary tab, you can check the purchase history for that Apple ID from Store > View My Account. If your purchase history does not reflect the purchase of the items in your iTunes library, consider any other Apple ID you may have created, and authorize the computer for your additional Apple ID.
If you forgot the password to one of your accounts, you can recover it using Apple's password-recovery website.
Thanks for reaching out to Apple Support Communities.
Cheers,
Pedro. -
How many computers can you authorize with one serial number?
Hey guys.
I'm thinking about buying a 2nd Mac, but I'm just curious how many total computers you have authorize Logic studio on at one time (my guess would be 3 but I hope more).
Please let me know if you can.
Thanks,
NathanI'll copy my post from the other thread:
I don't know for the others but in my retail package ((not upgrade) I found two serial numbers. Though I haven't got time yet to try the second serial number on my MacBook, my logic says that with two different serials I could run both macs simultaneously and be on the network. But, my logic fails so often so it's better to shut my mouth, install Logic on MacBook and come back here again. -
Hello, I have a MBP (mid 12 model), a brand new MBA (mid 13), and Mac Mini, four laptop PCs and 2 more Desktop PCs (I have teenage daughters and my wife)...
I intend for one of the PC's to be a "server" I have a large library that certainly does not fit on the MBA, or the MBP. To share the library the client has to be authorized.
I am currently using all of my authorizations... is there a way to get more? (I can't move content to another account I am assuming...)
Thanks in Advance,
ChrisiTunes Store: About authorization and deauthorization - http://support.apple.com/kb/HT1420 - and another helpful post: https://discussions.apple.com/message/17828050
"You can authorize up to five computers with your Apple ID." I have not heard of a way to get more. They probably set up a limit so people don't go around and authorize all their friends' and relatives' computers to one account, and somehow arrived at the number 5 to limit (probably because most families won't have more than one computer per person and 2 parents + 2.5 children rounds up to 5).
Maybe you are looking for
-
Which version of SCOM is this ?????
Hi All, Question may sound silly, But i don't know a answer for it hence raised this question. I was reading this blog and found this type of a SCOM which i have never seen in the below link. http://www.opsmanager.se/2012/11/06/text-log-monitoring-pa
-
Report not display Int.meas Unit, always display commercial
Hi I have one question, in Bex Reports or Web Reports in our Portal we see some information about Unit of Measure, for example Quantity and the corresponding unit of measure, in one repor I saw UOM "CJ", but internaly the information is "CS", I rev
-
Oracle.security.idm.objectnotfoundexception
Hi mates, We are using MS ActiveDirectory in the backed as LDAP store, have configured the AD Authenticator Provider as 1st in the Provider sequence of Security Realms. There is a spaces instance running and hosting multiple space, and the wcsdoc ser
-
HFS driver Stop working suddenly (Paragon on Bootcamp)
Hello guys, I defragment my Bootcamp partition using Disk Fragmenter in windows Bootcamp. All was good at that time, My Paragon HFS for Windows v10.0 was working perfectly. But as soon as I restart my macbook and Boot to Bootcamp, Windows ask me to f
-
When I click on files or folders on my desktop,they won't open
I can'topen files or olders directly by clicking on the trackpad, I have to go to file - open on the top bar, ehy, it only happened a few days a go, my kitten has taken to sleeping on the keyborad and i do find itnes playing to a slide show when I c