2022-1-17 SPRO中快速拷贝路径.md

2022-1-17 SPRO中快速拷贝路径

推广项目很少更新IMG里的配置路径,但是新项目中整理配置清单,一个个路径拷贝出来是一件体力活,我搜索了失传已久的秘方来做这件事

效果图:
copypath
copypath

1. 实现步骤

1-1. 菜单选择方法:

  • se38,Include LSHI01F1I ( Form HANDLE_MENU_REQUEST, End)

  • 找到show Implict Enhancement Options
    enter description here
    enter description here

  • 点击增强
    enter description here
    enter description here

  • 创建增强,在弹出对话框中输入命名

  • 插入以下代码用于版本激活

    ENHANCEMENT 1  ZFIIMP_CUSTOMIZING_PATH.    "active version
    IF sy-tcode EQ 'SPRO'.
     call method g_tree_data->menu->add_function
     exporting
       fcode = 'ZCOPY_P'
       text  = 'Show activity path'.
    ENDIF.
    ENDENHANCEMENT.

    enter description here

    • Include LSHI01F1J ( Form HANDLE_MENU_SELECT, Start )
      ENHANCEMENT 2  ZFIIMP_CUSTOMIZING_PATH.    "active version
      
      TYPES :
        ty_string TYPE c LENGTH 5000.
      
      DATA :
        lv_rc        TYPE i,
        lt_string    TYPE STANDARD TABLE OF ty_string,
        lw_string    TYPE ty_string.
      
       IF sy-tcode EQ 'SPRO'.
      
       CASE g_fcode.
          WHEN 'ZCOPY_P'.
      
        DATA: BEGIN OF zz,
              lv_nodekey TYPE tv_nodekey ,
              le_item TYPE shi_item,
              le_node TYPE treev_node,
              lv_relatkey TYPE tv_nodekey,
              lv_relatship_ant TYPE int4,
              html TYPE string,
              END OF zz.
      
        CHECK g_tree_data->tree IS NOT INITIAL.
      
        READ TABLE g_tree_data->nodes INTO zz-le_node WITH KEY node_key = g_tree_data->node_key  .
        CHECK sy-subrc = 0.
      
        READ TABLE g_tree_data->items INTO zz-le_item
          WITH KEY
            node_key = g_tree_data->node_key
            item_name = 'TEXT'.
        CHECK sy-subrc = 0.
      
        zz-html =  zz-le_item-text.
      
        zz-lv_relatkey  = zz-le_node-relatkey.
        zz-lv_relatship_ant = zz-le_node-relatship.
      
        WHILE zz-lv_relatkey IS NOT INITIAL.
      
          READ TABLE g_tree_data->nodes INTO zz-le_node WITH KEY node_key = zz-lv_relatkey .
          CHECK sy-subrc = 0.
      
          READ TABLE g_tree_data->items INTO zz-le_item 
            WITH KEY node_key = zz-le_node-node_key item_name = 'TEXT' .
          CHECK sy-subrc = 0.
      
          zz-lv_relatkey = zz-le_node-relatkey .
      
          IF zz-le_item-text IS NOT INITIAL AND zz-lv_relatship_ant = '4'.
            zz-html = zz-le_item-text && '->' && zz-html.
          ENDIF.
          zz-lv_relatship_ant = zz-le_node-relatship.
        ENDWHILE.
      
      
      IF lt_string IS INITIAL.
        lw_string = zz-html. APPEND lw_string TO lt_string.
      ENDIF.
      
      CALL METHOD cl_gui_frontend_services=>clipboard_export
        IMPORTING
          data = lt_string
        CHANGING
          rc   = lv_rc.
      IF lv_rc = 0.
        MESSAGE 'Activity Path copied to clipboard' TYPE 'S'.
      ENDIF.
      // popup a window
       IF zz-html IS NOT INITIAL.
        zz-html = escape( val    = zz-html
                          format = cl_abap_format=>e_html_text ).
      
         cl_demo_output=>new(
          )->begin_section( 'Activity path'
           )->write_html( zz-html
           )->display( ).
      ENDIF.
      RETURN.
      ENDCASE.
      ENDIF.
      ENDENHANCEMENT.

1-2. 屏幕方法

参考链接
注意 代码最后遗漏ENDCASE.需要自行补足。

posted @ 2022-01-17 23:01  sxl7777  阅读(227)  评论(0编辑  收藏  举报