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 AM

    Hi,
    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

  • UCMON auth issue

    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,
    ted

    Hi,
    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 Rasam

    Ingo,
    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.

  • Analysis Authorization Issue

    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.

  • BW Analysis authorization issue... need help urgently....

    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 advance

    Are 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
    mhreddy

    Hi!
    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,
    Nathan

    I'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.

  • Is there a way to authorize more than 5 computers.  We have three macs and 5 pc's in the house.

    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,
    Chris

    iTunes 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