<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Update menu for composite roles in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976369#M70972</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying to write a program which achieves the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Get all single roles a certain composite role contains&lt;/P&gt;&lt;P&gt;- Get the "menu" for each of these single roles&lt;/P&gt;&lt;P&gt;- Delete the current menu for the composite role and rebuild it from the single roles.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This requirement comes from someone who administrates the roles. In the current situation he has to use a button in transaction PFCG for all composite roles to copy the menu if the menu of 1 single role changes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finding of which single roles a composite role consists is no problem. However simply copying the entries in AGR_HIER to the composite role doesn't do the trick. The menu items are not unique.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone have a solution for this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Sep 2005 08:45:17 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2005-09-15T08:45:17Z</dc:date>
    <item>
      <title>Update menu for composite roles</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976369#M70972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm trying to write a program which achieves the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Get all single roles a certain composite role contains&lt;/P&gt;&lt;P&gt;- Get the "menu" for each of these single roles&lt;/P&gt;&lt;P&gt;- Delete the current menu for the composite role and rebuild it from the single roles.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This requirement comes from someone who administrates the roles. In the current situation he has to use a button in transaction PFCG for all composite roles to copy the menu if the menu of 1 single role changes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finding of which single roles a composite role consists is no problem. However simply copying the entries in AGR_HIER to the composite role doesn't do the trick. The menu items are not unique.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone have a solution for this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Sep 2005 08:45:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976369#M70972</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-09-15T08:45:17Z</dc:date>
    </item>
    <item>
      <title>Re: Update menu for composite roles</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976370#M70973</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is a little too difficult. I wiil solve it using BDC&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Sep 2005 13:29:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976370#M70973</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-09-15T13:29:23Z</dc:date>
    </item>
    <item>
      <title>Re: Update menu for composite roles</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976371#M70974</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Bas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have you managed to solve this issue? Actually I'm trying to do the same thing and I achieved it using BDC session but it only works in dialog. Is yours working in background mode?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Mar 2007 08:48:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976371#M70974</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-03-14T08:48:43Z</dc:date>
    </item>
    <item>
      <title>Re: Update menu for composite roles</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976372#M70975</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the end I looked at the BAPI's used by SAP and cooked up my own program (4.6C)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT Z_AGR_REFRESH.&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;P&gt;  agr_define.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DATA Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF result,&lt;/P&gt;&lt;P&gt;        agr_define TYPE agr_define.&lt;/P&gt;&lt;P&gt;TYPES:    chflag(1) TYPE c,&lt;/P&gt;&lt;P&gt;       END OF result.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF role,&lt;/P&gt;&lt;P&gt;      agr_name TYPE agr_name,&lt;/P&gt;&lt;P&gt;      END OF role.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: role TYPE TABLE OF role,&lt;/P&gt;&lt;P&gt;      wa_role LIKE LINE OF role,&lt;/P&gt;&lt;P&gt;      wa2_role LIKE LINE OF role.&lt;/P&gt;&lt;P&gt;DATA:  result TYPE TABLE OF result,&lt;/P&gt;&lt;P&gt;      wa_result TYPE result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: new_menu_node TYPE TABLE OF agr_shier,&lt;/P&gt;&lt;P&gt;      new_menu_ref TYPE TABLE OF agr_buffi,&lt;/P&gt;&lt;P&gt;      new_menu_text TYPE TABLE OF agr_shiert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: copy_new_menu_node TYPE TABLE OF agr_hier,&lt;/P&gt;&lt;P&gt;      copy_new_menu_ref TYPE TABLE OF agr_buffi,&lt;/P&gt;&lt;P&gt;      copy_new_menu_text TYPE TABLE OF agr_hiert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: old_menu_node TYPE TABLE OF agr_hier,&lt;/P&gt;&lt;P&gt;      old_menu_ref TYPE TABLE OF agr_buffi,&lt;/P&gt;&lt;P&gt;      old_menu_text TYPE TABLE OF agr_hiert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: okcode LIKE sy-ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------" /&gt;&lt;P&gt;SELECT-OPTIONS&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Select Options&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES sscrfields.&lt;/P&gt;&lt;P&gt;*selection-screen begin of screen.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME.&lt;/P&gt;&lt;P&gt;*selection-screen start of line.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(70) text-s01.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(70) text-s02.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(70) text-s03.&lt;/P&gt;&lt;P&gt;*selection-screen end of line.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK 1.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_role FOR agr_define-agr_name OBLIGATORY.&lt;/P&gt;&lt;P&gt;*selection-screen end of screen.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of Selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform select_roles_to_be_changed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Now for every composite role find the single roles it consists of,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;find their menu info , delete it's original menu info and insert the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;new one.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;perform find_single_roles.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;End-Of-Selection.&lt;/P&gt;&lt;P&gt;perform write_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  select_roles_to_be_changed&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form select_roles_to_be_changed.&lt;/P&gt;&lt;P&gt;*First select all the roles to be changed&lt;/P&gt;&lt;P&gt;  SELECT * FROM agr_define INTO CORRESPONDING FIELDS OF&lt;/P&gt;&lt;P&gt;wa_result-agr_define&lt;/P&gt;&lt;P&gt;              WHERE agr_name IN s_role .&lt;/P&gt;&lt;P&gt;    APPEND wa_result TO result.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;endform.                    " select_roles_to_be_changed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  find_single_roles&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form find_single_roles.&lt;/P&gt;&lt;P&gt;  LOOP AT result INTO wa_result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT child_agr FROM agr_agrs INTO table role&lt;/P&gt;&lt;P&gt;                WHERE agr_name = wa_result-agr_define-agr_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;*check if this indeed is a compostie role&lt;/P&gt;&lt;P&gt;      wa_result-chflag = 'C'. "for reporting&lt;/P&gt;&lt;P&gt;      MODIFY result FROM wa_result.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;in case of an existing masterrole add this too.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;loop at role into wa_role.&lt;/P&gt;&lt;P&gt;select single parent_agr from agr_define into wa2_role&lt;/P&gt;&lt;P&gt;      where agr_name = wa_role-agr_name.&lt;/P&gt;&lt;P&gt;      if not wa2_role is initial.&lt;/P&gt;&lt;P&gt;      append wa2_role to role.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;sort role.&lt;/P&gt;&lt;P&gt;delete adjacent duplicates from role.&lt;/P&gt;&lt;P&gt;    REFRESH new_menu_node.&lt;/P&gt;&lt;P&gt;    REFRESH new_menu_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For each childrole find the menu node entries and put them in&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*new_menu together&lt;/P&gt;&lt;P&gt;    LOOP AT role INTO wa_role.&lt;/P&gt;&lt;P&gt;perform append_menu_structures.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;perform write_new_menu.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;endform.                    " find_single_roles&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  append_menu_structures&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form append_menu_structures.&lt;/P&gt;&lt;P&gt;      REFRESH copy_new_menu_node.&lt;/P&gt;&lt;P&gt;      REFRESH copy_new_menu_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT * FROM agr_hier INTO TABLE copy_new_menu_node&lt;/P&gt;&lt;P&gt;                    WHERE agr_name = wa_role-agr_name.&lt;/P&gt;&lt;P&gt;      SELECT * FROM agr_hiert INTO TABLE copy_new_menu_text&lt;/P&gt;&lt;P&gt;                    WHERE agr_name = wa_role-agr_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'PRGN_STRU_ADD_AGR_TO_NODETAB'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         compute_sort_order       = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NEW_START_ID             =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          selected_nodes           = copy_new_menu_node&lt;/P&gt;&lt;P&gt;          selected_texts           = copy_new_menu_text&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SELECTED_URLS            =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          i_nodes                  = new_menu_node&lt;/P&gt;&lt;P&gt;          i_texts                  = new_menu_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " append_menu_structures&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  write_new_menu&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form write_new_menu.&lt;/P&gt;&lt;P&gt;*Now first remove all old entries to prevent double entries in the menu.&lt;/P&gt;&lt;P&gt;    SELECT * FROM agr_hier INTO TABLE old_menu_node&lt;/P&gt;&lt;P&gt;                       WHERE agr_name = wa_result-agr_define-agr_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'PRGN_DELETE_FOLDERS_AGR_HIER'&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              i_nodes_to_process = old_menu_node.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*At the end all the added menu's are saved to the Database.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'PRGN_STRU_SAVE_NODES'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        activity_group                =  wa_result-agr_define-agr_name&lt;/P&gt;&lt;P&gt;       use_global_tables             = ' '&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ONLY_SY_LANGU                 = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       authority_check               = 'X'&lt;/P&gt;&lt;P&gt;       enqueue                       = 'X'&lt;/P&gt;&lt;P&gt;   source_agr_time               = 'X'&lt;/P&gt;&lt;P&gt;     TABLES&lt;/P&gt;&lt;P&gt;       menu_hierarchy                = new_menu_node&lt;/P&gt;&lt;P&gt;       menu_texts                    = new_menu_text&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       not_authorized                = 1&lt;/P&gt;&lt;P&gt;       activity_group_enqueued       = 2&lt;/P&gt;&lt;P&gt;       OTHERS                        = 3&lt;/P&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      wa_result-chflag = sy-subrc. "for reporting&lt;/P&gt;&lt;P&gt;      MODIFY result FROM wa_result.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " write_new_menu&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  write_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form write_report.&lt;/P&gt;&lt;P&gt;  SKIP 5.&lt;/P&gt;&lt;P&gt;  WRITE: / 'Recreated menu for following roles:'.&lt;/P&gt;&lt;P&gt;  WRITE: /40  'Recreated Menu',&lt;/P&gt;&lt;P&gt;        60 'Single role',&lt;/P&gt;&lt;P&gt;        90 'Errors'.&lt;/P&gt;&lt;P&gt;  WRITE: /60      '(no adjustments made)'.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;  LOOP AT result INTO wa_result.&lt;/P&gt;&lt;P&gt;    WRITE / wa_result-agr_define-agr_name.&lt;/P&gt;&lt;P&gt;    CASE wa_result-chflag.&lt;/P&gt;&lt;P&gt;      WHEN '1'.&lt;/P&gt;&lt;P&gt;        WRITE 80 'You have no Authorisation'.&lt;/P&gt;&lt;P&gt;      WHEN '2'.&lt;/P&gt;&lt;P&gt;        WRITE 80 'Role is allready being edited, unable to change'.&lt;/P&gt;&lt;P&gt;      WHEN '3'.&lt;/P&gt;&lt;P&gt;        WRITE 80 'Unspecified Error'.&lt;/P&gt;&lt;P&gt;      WHEN 'C'.&lt;/P&gt;&lt;P&gt;        WRITE 60 'X'.&lt;/P&gt;&lt;P&gt;      WHEN OTHERS.&lt;/P&gt;&lt;P&gt;        WRITE 40 'X'.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;  WRITE:  'total number of roles: ', sy-tfill.&lt;/P&gt;&lt;P&gt;endform.                    " write_report&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 May 2007 12:46:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976372#M70975</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-09T12:46:42Z</dc:date>
    </item>
    <item>
      <title>Re: Update menu for composite roles</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976373#M70976</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all&lt;/P&gt;&lt;P&gt;I have added some lines to the program proposed by Bas and the program condense the menu (collapse). He works in ECC 600&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create a new  Include "Z" from copy of LPRGN_STRUCTURETOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT Z_AGR_REFRESH.&lt;/P&gt;&lt;P&gt;*New includes&lt;/P&gt;&lt;P&gt;INCLUDE ZLPRGN_STRUCTURETOP.&lt;/P&gt;&lt;P&gt;INCLUDE LPRGN_STRUCTUREF01.&lt;/P&gt;&lt;P&gt;INCLUDE LPRGN_STRUCTUREK02.&lt;/P&gt;&lt;P&gt;INCLUDE LPRGN_STRUCTUREK01.&lt;/P&gt;&lt;P&gt;INCLUDE LPRGN_STRUCTUREO01.&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Insert this lines in FORM FIND_SINGLE_ROLES&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;    LOOP AT ROLE INTO WA_ROLE.&lt;/P&gt;&lt;P&gt;      PERFORM APPEND_MENU_STRUCTURES.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Insert&lt;/P&gt;&lt;P&gt;    I_NODES[] = NEW_MENU_NODE[].  "&amp;lt;&amp;lt; New&lt;/P&gt;&lt;P&gt;    I_TEXTS[] = NEW_MENU_TEXT[].     "&amp;lt;&amp;lt; New&lt;/P&gt;&lt;P&gt;    PERFORM CONTROL_CREATETREECONTROL.    "&amp;lt;&amp;lt; New&lt;/P&gt;&lt;P&gt;    PERFORM STRUCTURE_COMPRESS_MENU.   "&amp;lt;&amp;lt; New&lt;/P&gt;&lt;P&gt;    NEW_MENU_NODE[] = I_NODES[].         "&amp;lt;&amp;lt; New&lt;/P&gt;&lt;P&gt;    NEW_MENU_TEXT[] = I_TEXTS[].            "&amp;lt;&amp;lt; New&lt;/P&gt;&lt;P&gt;*end insert.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM WRITE_NEW_MENU.&lt;/P&gt;&lt;P&gt;.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jose Mercado&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 09 Aug 2007 21:33:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-menu-for-composite-roles/m-p/976373#M70976</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-09T21:33:16Z</dc:date>
    </item>
  </channel>
</rss>

