zoukankan      html  css  js  c++  java
  • 根据CR获取CR下的开发对象

    有时候管控或者其他需要,需要得到开发对象

    代码写的比较粗糙,注视之类的也没按要求写 ,本来应该用alv展示,图省事儿用的table control。
    界面如图 
    根据CR获取CR下的开发对象

    根据CR获取CR下的开发对象


    代码如下:

    DATA:
          
    BEGIN OF str_cr,
           requestid 
    TYPE trkorr,
          
    END OF str_cr.

    DATA:
          l_cr 
    TYPE trkorr.
    DATA:
          i_requestlist 
    LIKE TABLE OF  str_cr WITH HEADER LINE.
    DATA:
          
    BEGIN OF str_object,
            requestid        
    TYPE         trkorr          ,     请求/任务
            taskid           
    TYPE         trkorr              请求/任务
            as4pos           
    TYPE         ddposition      ,     字典:行项
            pgmid            
    TYPE         pgmid           ,     请求和任务中的程序标识
            object           
    TYPE         trobjtype       ,     对象类型
            obj_name         
    TYPE         trobj_name      ,     对象清单中的对象名
            objfunc          
    TYPE         objfunc         ,     对象功能
            lockflag         
    TYPE         lockflag            对象条目的锁定状态或输入状态
            gennum           
    TYPE         trgennum        ,     传输组织器中对象条目的语种信息
            lang             
    TYPE         spras           ,     语言代码
            activity         
    TYPE         tractivity      ,     "
            as4text          
    TYPE         as4text         ,     描述 R/3 资源库对象的短文本
            
    text             TYPE         ddtext            ,     说明简要文字
    END OF str_object.


    DATA:
          o_devobjlist         
    LIKE TABLE OF str_object WITH HEADER LINE.

    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:
         s_cr  
    FOR l_cr NO INTERVALS.                     "CR
    SELECTION-SCREEN END OF BLOCK b1.

    START-OF-SELECTION.

      
    LOOP AT s_cr.
        i_requestlist
    -requestid s_cr-low.
        
    APPEND i_requestlist.
      
    ENDLOOP.

      
    DATAli_e070      TYPE STANDARD TABLE OF e070  WITH KEY trkorr        WITH HEADER LINE,
            li_e071     
    TYPE STANDARD TABLE OF e071  WITH KEY trkorr as4pos WITH HEADER LINE,
            li_e07t     
    TYPE STANDARD TABLE OF e07t  WITH KEY trkorr        WITH HEADER LINE,
            lt_object_table    
    TYPE STANDARD TABLE OF ko100 WITH KEY pgmid object  WITH HEADER LINE.

      
    DATAli_requestlist_rec TYPE STANDARD TABLE OF zbs00s_requestlist WITH HEADER LINE,
            li_devobjlist      
    TYPE STANDARD TABLE OF zbs00s_devobjlist  WITH KEY requestid taskid as4pos WITH HEADER LINE,
            li_devobjlist_rec  
    TYPE STANDARD TABLE OF zbs00s_devobjlist  WITH KEY requestid taskid as4pos.

      
    DATAl_trkorr_rec      TYPE trkorr,
            l_tempstr         
    TYPE string.

      
    CHECK i_requestlist[] IS NOT INITIAL.

      
    SORT i_requestlist BY requestid ASCENDING.
      
    DELETE ADJACENT DUPLICATES FROM i_requestlist COMPARING ALL FIELDS.

      
    CALL FUNCTION 'TR_OBJECT_TABLE'
        
    TABLES
          wt_object_text 
    lt_object_table.

      
    SELECT *
        
    FROM e070
        
    INTO TABLE li_e070

        
    WHERE trkorr IN s_cr OR strkorr IN s_cr.

      
    SELECT *
        
    FROM e07t
        
    INTO TABLE li_e07t
        
    WHERE trkorr IN s_cr AND langu '1'.

      
    IF li_e070[] IS NOT INITIAL.
        
    SELECT *
          
    FROM e071
          
    INTO TABLE li_e071
          
    FOR ALL ENTRIES IN li_e070
          
    WHERE trkorr li_e070-trkorr.
      
    ENDIF.


      
    DELETE li_e071 WHERE objfunc 'D'.
    **
      
    LOOP AT li_e071.
        
    CLEAR li_devobjlist.
        
    MOVE-CORRESPONDING li_e071 TO li_devobjlist.
        
    READ TABLE i_requestlist WITH KEY requestid li_e071-trkorr TRANSPORTING NO FIELDS.

        
    IF sy-subrc 0.
          li_devobjlist
    -requestid li_e071-trkorr.
        
    ELSE.
          li_devobjlist
    -taskid li_e071-trkorr.
          
    READ TABLE li_e070 WITH KEY trkorr li_e071-trkorr.
          
    IF sy-subrc 0.
            li_devobjlist
    -requestid li_e070-strkorr.
          
    ENDIF.
        
    ENDIF.

        
    READ TABLE li_e07t WITH KEY trkorr li_devobjlist-requestid.
        
    IF sy-subrc 0.
          li_devobjlist
    -as4text li_e07t-as4text.
        
    ENDIF.

        
    READ TABLE lt_object_table WITH KEY pgmid li_e071-pgmid object li_e071-object.
        
    IF sy-subrc 0.
          li_devobjlist
    -text lt_object_table-text.
        
    ENDIF.
        
    APPEND li_devobjlist.
      
    ENDLOOP.
    **
      
    LOOP AT li_e071 WHERE pgmid 'CORR' AND object 'MERG'.
        
    CLEAR l_trkorr_rec.
        
    SPLIT li_e071-obj_name AT space INTO l_trkorr_rec l_tempstr.
        li_requestlist_rec
    -requestid l_trkorr_rec.
        
    APPEND li_requestlist_rec.
      
    ENDLOOP.

      
    IF li_requestlist_rec[] IS NOT INITIAL.
        
    SORT li_requestlist_rec BY requestid ASCENDING.
        
    DELETE ADJACENT DUPLICATES FROM li_requestlist_rec COMPARING ALL FIELDS.
        
    CALL FUNCTION 'ZBS00_FM_GETDEVOBJ'
          
    TABLES
            i_requestlist 
    li_requestlist_rec[]
            o_devobjlist  
    li_devobjlist_rec[].
        
    APPEND LINES OF li_devobjlist_rec[] TO li_devobjlist[].
      
    ENDIF.

      
    SORT li_devobjlist[] BY requestid ASCENDING taskid ASCENDING as4pos ASCENDING.
      
    DELETE ADJACENT DUPLICATES FROM li_devobjlist[] COMPARING requestid taskid as4pos.

      o_devobjlist[] 
    li_devobjlist[].

      "展现
      
    CALL SCREEN 8001.

      最后对象信息保存在 内表o_devobjlist[],用table control进行了展现

    http://blog.sina.com.cn/sapliumeng
  • 相关阅读:
    Ubuntu安装teamviewer(附带解决dpkg占用的代码)
    使用print时出错 SyntaxError: Missing parentheses in call to 'print' Did you mean print("Usage....
    非root用户(普通用户)安装CMake
    Permanently added the RSA host key for IP address '13.229.188.59' Permission denied (publickey)fatal
    django6-admin
    django6-信号
    django6-缓存
    django6 -中间件
    天津去哪玩
    django--->form表单
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802171.html
Copyright © 2011-2022 走看看