Deleting lines in maintenance view

Hi,
I have a table that have a maintenance view, in that maintenance i have one user event to fill hidden fields. What appens is that when i am maintening the table i select some lines to delete, i delete, save and exit.And when i enter again the lines are still there. Can you help me?

Hi,
You can delete data using a view only if the view refers to a single table and was created in the ABAP/4 Dictionary with the maintenance status '<b>No restriction'</b> ...
Look at the Transaction code <b>SE57</b>
Regards
Sudheer

Similar Messages

  • Disable delete button in a maintenance view

    Hi,
    Does anyone knows how can I disable the delete button in a maintenance view so when a user that is not authorized can´t delete any row, or how can I lock the delete subroutine.
    Thanks!

    Hello Moises
    The problem with this solution is that if you ever need to modify your maintenance view (i.e. regenerate the dynpros because you may want to add new fields) your coding is gone.
    This is not the case if you are using event 19. Below you see same sample coding:
    ***INCLUDE LZUS_SDN_MAINTF01 .  " Function Group with maintenance views
    * Event 19: After Init. Global Variables, Field Symbols, etc.
    * http://help.sap.com/saphelp_nw2004s/helpdata/en/91/ca9f44a9d111d1a5690000e82deaaa/content.htm
    FORM exclude_gui_function.
    * define local data
      DATA: ls_excl   TYPE vimexclfun.
      ls_excl-function = 'DELE'.  " taken from standard GUI-status 'ZULG'
    BREAK-POINT.
      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
               ID 'BUKRS' FIELD '1000'
               ID 'ACTVT' FIELD '02'.
      IF ( syst-subrc NE 0 ).
        APPEND ls_excl TO excl_cua_funct.
      ENDIF.
      APPEND ls_excl TO excl_cua_funct.  " Just for the purpose of demonstration
    ENDFORM.                    "exclude_gui_function
    Regards
      Uwe

  • How to delete records from standard maintenance view

    Dear Sir/Madam,
            i want to delete records from standard view " v_mmim_rep_cust "
    This is a standard maintenance view , used in MBLB report.
    here i found the records with different report name but same fields as shown below...
    REPORT             TABLE NAME     FIELD NAME 
    RM07DOCS         MKPF                 BKTXT
    RM07DOCS         MKPF                 BLDAT
    RM07DOCS         MKPF                 BUDAT
    RM07DOCS         MSEG                 ANLN1
    RM07DOCS         MSEG                 ANLN2
    RM07DOCS         MSEG                 APLZL
    YRM07DOCS         MKPF                 BKTXT
    YRM07DOCS         MKPF                 BLDAT
    YRM07DOCS         MKPF                 BUDAT
    YRM07DOCS         MSEG                 ANLN1
    YRM07DOCS         MSEG                 ANLN2
    YRM07DOCS         MSEG                 APLZL
    I WANT TO DELETE THE RECORDS FROM THE VIEW WITH REPORT = YRM07DOCS.
    PLEASE HELP ME.
    Thanks in Advance,
    Dastagiri.

    Dear Sir,
          when i did so , it displays a message that  " entry mseg zeile  must not be deleted ".
    hense i went through writing a program to delete the records from table mmim_rep_cust
    but it says that record not found.
    program logic : 
    delete from mmim_rep_cust
        where report in report
          and TABNAME in TABNAME.
    if sy-subrc = 0.
    write ' RECORDS DELETED SUCCESSFULLY'.
    else.
    write ' RECORD NOT FOUND'.
    endif.
    please guide me to delete the records from the view.
    Thanks in advance,
    Dastagiri.

  • Ztables ,maintenance view , delete record , consistency

    hello , i create a few ztables one with code and other with descriptions
    let called it ztable01 -header , ztable02-descriptions
    make ztable01 foreignkey of ztable02 , and i create 2 maintenance view for they ( one per table )
    i create a record ( a new code ) in the ztable01 then i go to the ztable01 and create a new record using the code in create ztable01 ( search help show the new record ) now i go back to the ztable01 and delete that record of code used in the ztable02 and it allow me to delete it!!!! the abap dictionary don't do this kind of check ? i need config something special ? some info about ?
    Thanks

    >
    Lavanya K wrote:
    > HI
    >
    > For ur requirement, create a custom table and a text table for description following below steps.
    >
    > 1. Create custom table . Eg- MANDT, COUNTRY are key fields
    > 2. Create text table with field SPRAS (language), Country (this should have a foreign key field relationship with table from step 1. check radiobutton for -Key Fields of a text table) & Country Name.
    > 3. Maintain Table maintain generator for table in step1.
    > 4. If first table is maintained in step1 then description can also be maintained there. In background the text table will be automatically filled with the same entry in the logon language in which first table is maintained
    > 5. If entry from first table is deleted , in turn it is deleted from text table too
    thanks for that but i already known how do that , my question was if sap don't do that integrity check for itself i mean in the abap dictionary , example that let me delete data that have relationship with other ( foreign keys relationship ).
    the step 5 only happen with you do a maintained view with the second table how dependency ( maintained both table with the same view ) if that is you try to say i already known that , i was try maintained it with different maintenance view.

  • Retrieve data from a maintenance view

    Hello,
    I created a specefic table.
    i want to add a check when deleting lines from a maintenance view.
    How to retrieve selected data ?
    thanks,
    Meriem.

    Hello Sudeesh,
    I think i must use extract table and Field Symbol <XMARK>.
    Can any body give an exemple.
    thanks,
    Meriem.

  • Add button to a maintenance view

    I am working with maintenance views and user-defined events in maintenance views at the moment.
    Now I'd like to add a button to the maintenance view that will show a popup with recent changes to the selected line of the database table.
    Is that possible with user-defined events or should I modify the generated dynpros manually. But then, will the modifications be deleted if I will have to regenerate the maintenance view in the future (e.g. when I might add a field to the database table)?

    If you are talking SE54 and Maintenance Views, when I do an SM30 on the Maintenance View and do SYSTEM->STATUS, I see GUI STATUS ZULG on program SAPLSVIM.  If you look at that status, I see two buttons with dynamic text.  The first one is call GPRF and has dynamic text VIM_PR_STAT_TXT_CH.  You can find a suitable PBO event to set the text of that function code and if that works, find a suitable PAI event to respond to that function.
    I recall finding some documentation on customizing the GUI STATUS but no luck today trying to find it.
    Let us know how it goes.

  • IMG - View maintenance  - View suppress existing entries and do not save

    Hi there,
    within the customizing maintanence I wanted to change a view cluster with an existing view (within transaction /simgh). But after replacement of the vc with the view the view do not show any existing entries and do not save my new entries.
    I already regenerate the whole view again, but the behavior do not change.
    I also deleted the whole maintenance dialog and generated again, but the behavior do not change.
    Now when I access the view, only a number of rows are changeable but empty (number of these entries = number of existing entries) and when I save a new entry, the whole line shift to the end, of empty changeable (open) lines and when I access the screen again, this entry is not saved and not displayed.
    Have anybody an idea how to solve this?
    Kind regards, Kathrin
    Edited by: Kathrin Gossmann on Mar 12, 2009 1:28 PM
    Edited by: Kathrin Gossmann on Mar 12, 2009 1:29 PM

    Hi,
    There is nothing called as basic list in web dynpro
    There are 2 ways of displaying more than one record (internal table data) in either ALV or Table.
    Using ALV you have an advantage of directly downloading onto excel.
    You need to process success and error records separately into 2 internal table, show them in 2 ALVs differently with 2 messages, so that the users can directly download them on to excel file as ALV provides it.
    If the user does not want the records (success or error) ones, if the user wants only a message with number of records uploaded/not uploaded then you do not require them to display it in ALV, you can just give them a message.
    In this case you can hide the ALV and only display messages in a single view or based on  radio button. 2 views or not required.
    In the selection screen itself, you  can show the number of records uploaded/not uploaded.
    Hope this helps.

  • QUESTION on MAINTENANCE VIEW

    Hi gurus,
    I am not familiar with MAINTENANCE VIEW TABLE, can someone please tell me on how to create it and how can I use it for query or select.
    I hope someone can help me.
    Thanks in advance.

    hello gurus,
    im new to this community please help me out from this please explain what are different conditions are there for install and replace in this code pzzzzzzzzz its really urgent evening is my delivery
    THIS IS MIS SHOWS A LEAD TIME FOR DEVICES PERTAINING TO A SELECTION*
    CRITERIA FROM THE TIME OF ISSUE OF METER FROM THE DEPOT FOR NEW   *
    INSTALLATION / REPLACEMENT CONNECTION TO THE FIRST BILL          *
    Designer           : K SRIKANTH                                 *
    Programmer            : K SRIKANTH                                 *
    Programming Date      : 29/12/2004
    Change Tracking No     : D90K                                    *
    Program Title          : LEAD TIME REPORT FROM DEVICE * *
                        INSTALLATION/REPLACEMENT TO FIRST BILL *
    MODIFICATIONS                                                     *
    DATE       | BY      | DESCRIPTION       | Chg Trck No             *
    dd.mm.yy   | xxxxx   |                   |                         *
               |         |                   |                         *
               |         |                   |                         *
    ASSUMPTIONS:
    THE VALUES FROM THE TABLE V_EABL ARE SELECTED ONLY FOR METER       *
    READING REASON '01','02','03' & '22' FOR THE FIELD ABLESGR.
    THE VALUES FROM THE TABLE ETDZ ARE SELECTED ONLY FOR REGISTER
    CODE '01' FOR THE FIELD ZWKENN .
    THE NUMBER OF RECORDS FETCHED FROM TABLE EGERH, WHILE RUNNING IN   *
    FOREGROUND, DEPENDS UPON THE SELECTION CRITERIA. WHILE RUNNING IN  *
    BACKGROUND THIS CONDITION IS NOT APPLICABLE.                        *
    REPORT ZRDMD01A MESSAGE-ID ZS LINE-SIZE 150 .
    TYPE-POOLS : SLIS .
    TABLE DECLARATION*********************
    TABLES :
    IFLOT ,
    TE401 ,  "   Transactions reasons
    EGERH ,          " Historical Data of ISU Device Master Record
    EQUI ,           " Equipment master data
    EASTL,          " Billing data: Installation Structure at Device Level
    EANL ,          " Installation
    EVBS ,          " Premise
    EADRREGAREAA,   " Role-Spec. Allocation: Reg. Str. Area to Reg. StrGroup
    EHAUISU ,       " Connect. Obj.
    ILOA  ,          "  PM Object Location and Account Assignment
    EABLG ,         " MR Reasons in MR Document
    EABL  ,          "  MR Document
    EVER ,           " IS-U Cont.
    ERCH ,           "  Billing Doc. Data
    ERCHC    ,      "  Invoicing/Reversal History: ERCH
    ETYP ,
    ETDZ,
    EASTS ,
    V_EABL ,
    EADRREGAREAT .
    ***INTERNAL TABLE DECLARATION*****
    DATA : BEGIN OF ITCOM OCCURS 100,
             STATUS(50) TYPE C ,
            REGIOAREA LIKE EADRREGAREAA-REGIOAREA,
            DESCRIPT LIKE EADRREGAREAT-DESCRIPT ,
            V0_15 TYPE I,
            V16_30 TYPE I,
            V31_45 TYPE I,
            V46_60 TYPE I,
            V61_75 TYPE I,
            V76_90 TYPE I,
            V90 TYPE I,
            VNTAV TYPE I,
            TOTAL TYPE I ,
           REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,
          END OF ITCOM .
    DATA : ITFLD TYPE SLIS_T_FIELDCAT_ALV ,
           SFLD TYPE  SLIS_FIELDCAT_ALV ,
           ITH  TYPE  SLIS_T_FIELDCAT_ALV ,
           STH  TYPE  SLIS_FIELDCAT_ALV ,
           SIT  TYPE  SLIS_FIELDCAT_ALV,
           ITA  TYPE  SLIS_T_FIELDCAT_ALV ,
           IEVENTS TYPE SLIS_T_EVENT ,
           ALV_T_EVENT TYPE SLIS_T_EVENT WITH HEADER LINE,
           ITEVENTS TYPE SLIS_ALV_EVENT ,
             EVENTS TYPE SLIS_T_EVENT ,
            EVNTS  TYPE SLIS_ALV_EVENT ,
            EVNTS1  TYPE SLIS_ALV_EVENT ,
            EVNTS2  TYPE SLIS_ALV_EVENT ,
            EVNTS3  TYPE SLIS_ALV_EVENT ,
            EVENTS_SUMM TYPE SLIS_T_EVENT ,
            EVENTS_DETAIL TYPE SLIS_T_EVENT ,
            EVENTS_SPL TYPE SLIS_T_EVENT .
    DATA : ITHD TYPE SLIS_T_LISTHEADER ,
            HD TYPE SLIS_LISTHEADER ,
           ITD TYPE SLIS_T_LISTHEADER ,
            TD  TYPE SLIS_LISTHEADER .
    DATA : BEGIN OF ITFIN OCCURS 0,
        EQUNR   LIKE EGERH-EQUNR ,   " EQUIPMENT NUMBER
        ANLAGE  LIKE EASTL-ANLAGE  , "INSTLLATION NUMBER
        VSTELLE LIKE EANL-VSTELLE,   "PREMISE
        LOGIKNR LIKE EGERH-LOGIKNR,  "LOGICAL DEVICE NUMBER
        SERNR   LIKE EQUI-SERNR,     "DEVICE NUMBER
        VKONTO  LIKE EVER-VKONTO,    "CONTRACT NUMBER
        REGIOAREA LIKE EADRREGAREAA-REGIOAREA,
        REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,
        LTPU(8)  TYPE C ,   "LEAD FROM PREMISE T UI
        LTUB(8)  TYPE C,    "LEAD FROM UTILITY INS TO BILLING INS
        LTBM(8)  TYPE C,    "LEAD FROM BI TO MR ORDER
        LTMA(8)  TYPE C,    "LEAD MR ORDER TO ACTUAL MR
        LTAB(8)  TYPE C,    "LEAD FROM ACTUAL MR TO SCHEDULE BILL ORDER
        LTBA(8)  TYPE C,    "LEAD TIME FROM SCHED BILL ORDER TO ACTUAL BILL
        SUM(8)  TYPE C ,    "TOTAL LEAD FROM UI TO ACTUAL BILL
        SERIAL  TYPE I ,
        BIS  LIKE  EGERH-BIS ,
           AB   LIKE  EGERH-AB,
           ZWGRUPPE LIKE EGERH-ZWGRUPPE ,
           EINBDAT LIKE EGERH-EINBDAT,
           AUSBDAT  LIKE EGERH-AUSBDAT,
           GERWECHS LIKE EGERH-GERWECHS,
           DEVLOC   LIKE EGERH-DEVLOC,
           SPARTE LIKE  EQUI-SPARTE,
            ANLART LIKE EANL-ANLART,
            HAUS  LIKE EVBS-HAUS,
            VBSART LIKE EVBS-VBSART,
            ABLBELNR LIKE EABLG-ABLBELNR,
           ABLESGR LIKE EABLG-ABLESGR ,
           ADAT LIKE V_EABL-ADAT ,
          VERTRAG LIKE EVER-VERTRAG,
              DESCRIPT(20) TYPE C, " LIKE EADRREGAREAT-DESCRIPT ,
             STATUS(40) TYPE C ,
         END OF ITFIN .
    DATA : ITAAA LIKE ITFIN OCCURS 100 WITH HEADER LINE ,
           ITBBB LIKE ITFIN OCCURS 100 WITH HEADER LINE .
    DATA : BEGIN OF ITTE4 OCCURS 100,
          GERWECHS LIKE TE401-GERWECHS,
          EAWKENNZE LIKE TE401-EAWKENNZE,
          EAWKENNZA LIKE TE401-EAWKENNZA,
          EAWKENNZW LIKE TE401-EAWKENNZW,
          GERWETXT  LIKE TE401T-GERWETXT ,
          END OF ITTE4 .
    DATA : BEGIN OF ITEAS OCCURS 100,
           ANLAGE LIKE EASTL-ANLAGE,
           LOGIKNR LIKE EASTL-LOGIKNR,
          BIS LIKE EASTL-BIS,
          AB LIKE EASTL-AB,
           ERDAT LIKE EASTL-ERDAT,
            END OF ITEAS .
    DATA : BEGIN OF ITDES OCCURS 0 ,
           LANGU LIKE EADRREGAREAT-LANGU,
           ROLE   LIKE EADRREGAREAT-ROLE ,
          REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
          DESCRIPT(20) type c ," LIKE EADRREGAREAT-DESCRIPT ,
          END OF ITDES .
    DATA : BEGIN OF ITMX1 OCCURS 0 ,
           EQUNR LIKE EGERH-EQUNR,
           BIS  LIKE  EGERH-BIS ,
           AB   LIKE  EGERH-AB,
           LOGIKNR LIKE EGERH-LOGIKNR,
           ZWGRUPPE LIKE EGERH-ZWGRUPPE ,
           EINBDAT LIKE EGERH-EINBDAT,
           AUSBDAT  LIKE EGERH-AUSBDAT,
           GERWECHS LIKE EGERH-GERWECHS,
           DEVLOC   LIKE EGERH-DEVLOC,
           MATNR LIKE EQUI-MATNR,
           SERNR LIKE EQUI-SERNR,
           SPARTE LIKE EQUI-SPARTE,
            ANLAGE LIKE EASTL-ANLAGE,
            ERDAT_EAS LIKE EASTL-ERDAT, "ERDAT_EAS
            VSTELLE LIKE EANL-VSTELLE,
            ANLART LIKE EANL-ANLART,
            ERDAT_EAN LIKE EANL-ERDAT, "ERDAT_EAN
             HAUS  LIKE EVBS-HAUS,
             VBSART LIKE EVBS-VBSART,
             ERDAT_EVB LIKE EVBS-ERDAT,  "ERDAT_EVB
            REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,
             REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
             DESCRIPT(20) type c ,
              ABLBELNR LIKE V_EABL-ABLBELNR ,
            ABLESGR LIKE V_EABL-ABLESGR ,
            ADAT LIKE V_EABL-ADAT ,
            ADATSOLL LIKE V_EABL-ADATSOLL ,
            VERTRAG LIKE EVER-VERTRAG,
           VKONTO LIKE  EVER-VKONTO,
            BELNR LIKE ERCH-BELNR,
          VKONT LIKE ERCH-VKONT,
          BEGABRPE LIKE ERCH-BEGABRPE,
          ENDABRPE LIKE ERCH-ENDABRPE,
          ABRDATS LIKE ERCH-ABRDATS,
          BUDAT LIKE ERCHC-BUDAT,
           LFDNR LIKE ERCHC-LFDNR,
          END OF ITMX1 .
    DATA : BEGIN OF ITMX2 OCCURS 0,
           EQUNR LIKE EGERH-EQUNR,
           BIS  LIKE  EGERH-BIS ,
           AB   LIKE  EGERH-AB,
          LOGIKNR LIKE EGERH-LOGIKNR,
           ZWGRUPPE LIKE EGERH-ZWGRUPPE ,
           EINBDAT LIKE EGERH-EINBDAT,
           AUSBDAT  LIKE EGERH-AUSBDAT,
           GERWECHS LIKE EGERH-GERWECHS,
           DEVLOC   LIKE EGERH-DEVLOC,
           MATNR LIKE EQUI-MATNR,
           SERNR LIKE EQUI-SERNR,
           SPARTE LIKE EQUI-SPARTE,
            ANLAGE LIKE EASTL-ANLAGE,
            LOGIKNR LIKE EGERH-LOGIKNR,
            ERDAT LIKE EASTL-ERDAT, "ERDAT_EAS
            END OF ITMX2 .
    DATA : BEGIN OF ITMX4 OCCURS 0 ,
            ANLAGE  LIKE EANL-ANLAGE ,
            VSTELLE LIKE EANL-VSTELLE,
             HAUS  LIKE EVBS-HAUS,
             VBSART LIKE EVBS-VBSART,
             ERDAT LIKE EVBS-ERDAT,  "ERDAT_EVB
            REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,
             REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
              DESCRIPT(20) type c ,
           ANLART LIKE EANL-ANLART,
             END OF ITMX4 .
    DATA : BEGIN OF ITEVE OCCURS 0 ,
            ANLAGE LIKE EVER-ANLAGE ,
             VKONTO LIKE  EVER-VKONTO,
            VERTRAG LIKE EVER-VERTRAG,
           SPARTE LIKE EVER-SPARTE ,
           END OF ITEVE .
    DATA : BEGIN OF ITMX3 OCCURS 0 ,
             EQUNR  LIKE V_EABL-EQUNR ,
            ABLBELNR LIKE V_EABL-ABLBELNR ,
            ABLESGR LIKE V_EABL-ABLESGR ,
            ADAT LIKE V_EABL-ADAT ,
            ADATSOLL LIKE V_EABL-ADATSOLL ,
             ANLAGE LIKE EVER-ANLAGE ,
             VKONTO LIKE  EVER-VKONTO,
            VERTRAG LIKE EVER-VERTRAG,
           SPARTE LIKE EVER-SPARTE ,
         VKONT LIKE ERCH-VKONT,
          BEGABRPE LIKE ERCH-BEGABRPE,
          ENDABRPE LIKE ERCH-ENDABRPE,
          ABRDATS LIKE ERCH-ABRDATS,
            BELNR LIKE ERCH-BELNR,
          LFDNR LIKE ERCHC-LFDNR,
           BUDAT LIKE ERCHC-BUDAT,
          SWERK LIKE ILOA-SWERK ,
            END OF ITMX3.
    data : BEGIN OF ITERC OCCURS 0 ,
          BEGABRPE LIKE ERCH-BEGABRPE,
          ENDABRPE LIKE ERCH-ENDABRPE,
          ABRDATS LIKE ERCH-ABRDATS,
          VERTRAG like ERCH-VERTRAG ,
          BELNR LIKE ERCH-BELNR,
          VKONT LIKE ERCH-VKONT ,
          LFDNR LIKE ERCHC-LFDNR,
           BUDAT LIKE ERCHC-BUDAT,
          END OF ITERC .
    DATA : BEGIN OF ITMX7 OCCURS 0,
          SRNO   TYPE I  ,
           STATUS(40) TYPE C ,
           REGIOAREA  LIKE EADRREGAREAA-REGIOAREA ,
           REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,
           DESCRIPT(20) TYPE C ," LIKE  EADRREGAREAT-DESCRIPT  ,
           V0_15  LIKE ITCOM-V0_15 ,
           V16_30 LIKE ITCOM-V16_30 ,
           V31_45 LIKE ITCOM-V31_45 ,
           V46_60 LIKE ITCOM-V46_60 ,
          V61_75 LIKE ITCOM-V61_75 ,
          V76_90 LIKE ITCOM-V76_90 ,
          V90   LIKE ITCOM-V90 ,
          VNTAV LIKE ITCOM-VNTAV  ,
          TOTAL TYPE I ,
             END OF ITMX7 .
    DATA : BEGIN OF ITETD OCCURS 0,
          EQUNR LIKE ETDZ-EQUNR ,
          ZWNUMMER LIKE ETDZ-ZWNUMMER,
          ZWKENN  LIKE ETDZ-ZWKENN ,
          LOGIKZW LIKE ETDZ-LOGIKZW ,
          ANLAGE  LIKE EASTS-ANLAGE ,
         BIS     LIKE EASTS-BIS,
          ZWNABR  LIKE EASTS-ZWNABR ,
          END OF ITETD .
      DATA : BEGIN OF ITEAN OCCURS 100,
          ANLAGE LIKE  EASTL-ANLAGE,
         SPARTE LIKE  EQUI-SPARTE,
          VSTELLE LIKE EANL-VSTELLE,
          ANLART LIKE EANL-ANLART,
          ERDAT LIKE EANL-ERDAT ,
             HAUS  LIKE EVBS-HAUS,
             VBSART LIKE EVBS-VBSART,
             ERDAT_EVBS LIKE EVBS-ERDAT,  "ERDAT_EVB
            REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP,
             REGIOAREA LIKE EADRREGAREAA-REGIOAREA ,
              DESCRIPT(20) type c ,
          END OF ITEAN .
    DATA : BEGIN OF ITSPL OCCURS 0 ,
            TPLNR LIKE IFLOT-TPLNR ,
            TPLMA LIKE IFLOT-TPLMA ,
            HAUS  LIKE EHAUISU-HAUS ,
            REGIOGROUP LIKE EADRREGAREAA-REGIOGROUP ,
            END OF ITSPL .
    DATA : BEGIN OF ITEGE OCCURS 0,
           EQUNR LIKE EGERH-EQUNR ,
           LOGIKNR LIKE EGERH-LOGIKNR,
           MATNR   LIKE EQUI-MATNR ,
           SERNR  LIKE EQUI-SERNR,
           SPARTE  LIKE EQUI-SPARTE,
           DEVLOC  LIKE EGERH-DEVLOC,
           END OF ITEGE .
    DATA : ITMOD LIKE ITMX2 OCCURS 0 WITH HEADER LINE ,
           WA_ITMX2 LIKE ITMX2 .
    DATA : WA-EQUNR LIKE EQUI-EQUNR ,
           WA-ANLAGE LIKE EASTL-ANLAGE .
      DATA : w_variant  like disvariant ,
             W_VARIANT_SAVE  TYPE C .
    DATA : REP-ID LIKE SY-REPID,
         W_REPID LIKE SY-REPID .
    DATA PUSH TYPE SSCRFIELDS-UCOMM .
    DATA  COUNT TYPE I .
    DATA : V13 TYPE I ,
           V17 TYPE  I.
    DATA CNT TYPE I .
    DATA VARIANT LIKE SY-TABIX .
    DATA :  SNT TYPE I ,
            PNT TYPE I ,
         V_COUNT TYPE I VALUE 1 .
    DATA: ylayout TYPE slis_layout_alv ,
         XLAYOUT TYPE SLIS_LAYOUT_ALV .
    DATA  KNT TYPE I VALUE 0  .
    DATA I_SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE .
    DATA : V_DATE LIKE SY-DATUM ,
          V_DATUM(10) TYPE C ,
          GX_VARIANT LIKE DISVARIANT,
          G_VARIANT LIKE DISVARIANT,
                G_SAVE(1) TYPE C VALUE 'A',
                G_EXIT(1) TYPE C,
                N TYPE I ,
                M TYPE I ,
                C TYPE I VALUE 0 .
    DATA  G_REPID LIKE SY-REPID .
    DATA: GT_PRINT TYPE SLIS_PRINT_ALV.
    DATA YREPID LIKE SY-REPID .
    DATA: X_LAYOUT TYPE SLIS_LAYOUT_ALV ,
          Y_LAYOUT TYPE SLIS_LAYOUT_ALV ,
          Z_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA : TITLE LIKE SY-TITLE .
    DATA : V_ENTER TYPE I ,
           V_MODIFY TYPE I .
    ******************SELECTION SCREEN ************************
    SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-001 .
    PARAMETERS P_SPART LIKE EQUI-SPARTE DEFAULT  '01' .
    SELECTION-SCREEN COMMENT 40(15)  TEXT-005 .
    SELECT-OPTIONS : S_SWERK FOR ILOA-SWERK DEFAULT  'M011',
                     S_RAREA FOR EADRREGAREAA-REGIOAREA ,
                     S_RGROUP FOR EADRREGAREAA-REGIOGROUP,
                     S_AB FOR EGERH-AB OBLIGATORY .
    SELECTION-SCREEN END OF BLOCK BL1 .
    SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME TITLE TEXT-002 .
    SELECT-OPTIONS: S_SERNR FOR EQUI-SERNR ,
                    S_MATNR FOR EQUI-MATNR OBLIGATORY ,
                    S_VSTELL FOR EANL-VSTELLE ,
                    S_HAUS FOR EHAUISU-HAUS .
    SELECTION-SCREEN  END OF BLOCK BL2.
    SELECTION-SCREEN BEGIN OF BLOCK BL3 WITH FRAME TITLE TEXT-003 .
    SELECT-OPTIONS: S_VKONTO FOR EVER-VKONTO .
    SELECTION-SCREEN END OF BLOCK BL3 .
    SELECTION-SCREEN BEGIN OF BLOCK BL4 WITH FRAME TITLE TEXT-004 .
    PARAMETERS: P_INSTA RADIOBUTTON GROUP RAD1 DEFAULT 'X' ,
                P_REPLC RADIOBUTTON GROUP RAD1 ,
                P_IP RADIOBUTTON GROUP RAD1 .
    SELECT-OPTIONS : S_GERWE FOR EGERH-GERWECHS .
    SELECTION-SCREEN END OF BLOCK BL4 .
    SELECTION-SCREEN BEGIN OF BLOCK BL5 WITH FRAME TITLE TEXT-006.
    PARAMETERS  : P_VARI LIKE DISVARIANT-VARIANT ."DEFAULT '/ALL'.
    SELECTION-SCREEN COMMENT 47(40) varname FOR FIELD P_VARI .
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN PUSHBUTTON /5(25) BUT1 USER-COMMAND UCSS .
    PARAMETERS: P_FIXVAR LIKE KAEP_SETT-FIXVAR NO-DISPLAY,
                P_MAXSEL LIKE KAEP_SETT-MAXSEL NO-DISPLAY DEFAULT 1000.
    SELECTION-SCREEN END OF BLOCK BL5.
    *******INITIALIZATION************************
    INITIALIZATION .
    SET PF-STATUS 'INST' .
    G_REPID = SY-REPID.
    PERFORM VARIANT_INIT.
    Default variant
      GX_VARIANT = G_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                I_SAVE     = G_SAVE
           CHANGING
                CS_VARIANT = GX_VARIANT
           EXCEPTIONS
                NOT_FOUND  = 2.
      IF SY-SUBRC = 0.
        P_VARI = GX_VARIANT-VARIANT.
      ENDIF.
      MOVE 'Further Settings' TO BUT1 .
    AT SELECTION SCREEN EVENT******
    AT SELECTION-SCREEN .
      CASE SY-UCOMM .
        WHEN 'UCSS' .
          CALL FUNCTION 'K_LINE_ITEM_TECH_SETTINGS_SET'
               CHANGING
                    C_FIXVAR = P_FIXVAR
                    C_MAXSEL = P_MAXSEL.
      ENDCASE .
      IF NOT S_RAREA IS INITIAL .
        SELECT SINGLE * FROM EADRREGAREAA
         WHERE REGIOAREA IN S_RAREA .
        IF  SY-SUBRC <> 0 .
          MESSAGE E058(00) WITH S_RAREA-LOW S_RAREA-HIGH.
          LEAVE TO LIST-PROCESSING .
        ENDIF .
      ENDIF.
      IF NOT S_MATNR IS INITIAL .
        SELECT SINGLE * FROM ETYP
              WHERE MATNR IN S_MATNR
              AND KOMBINAT = 'Z'.
          IF SY-SUBRC <> 0 .
            MESSAGE E411(EG) .
            LEAVE TO  LIST-PROCESSING .
          ENDIF.
       ENDIF.
    IF NOT S_SWERK IS INITIAL .
        SELECT SINGLE * FROM ILOA
              WHERE SWERK IN S_SWERK .
          IF SY-SUBRC <> 0 .
            MESSAGE E412(I0) .
            LEAVE TO LIST-PROCESSING .
          ENDIF.
    ENDIF.
    IF NOT S_RGROUP IS INITIAL .
        SELECT SINGLE * FROM EADRREGAREAA
              WHERE REGIOGROUP IN S_RGROUP .
          IF SY-SUBRC <> 0 .
            MESSAGE E025(E7) .
            LEAVE TO LIST-PROCESSING .
          ENDIF.
    ENDIF.
    IF NOT  S_HAUS IS INITIAL .
      SELECT SINGLE * FROM EHAUISU
        WHERE HAUS IN S_HAUS .
        IF SY-SUBRC <> 0 .
          MESSAGE E011(E9) WITH 'Connection Object' S_HAUS-LOW S_HAUS-HIGH .
            LEAVE TO LIST-PROCESSING .
          ENDIF.
    ENDIF.
    IF NOT  S_VSTELL IS INITIAL .
      SELECT SINGLE * FROM EANL
        WHERE VSTELLE IN S_VSTELL .
        IF SY-SUBRC <> 0 .
            MESSAGE E011(E9) WITH 'Premise' S_VSTELL-LOW S_VSTELL-HIGH .
            LEAVE TO LIST-PROCESSING .
          ENDIF.
    ENDIF.
    IF NOT  S_VKONTO IS INITIAL .
      SELECT SINGLE * FROM EVER
        WHERE VKONTO IN S_VKONTO .
        IF SY-SUBRC <> 0 .
            MESSAGE E001(>3) .
            LEAVE TO LIST-PROCESSING .
          ENDIF.
    ENDIF.
    IF NOT S_GERWE IS INITIAL .
      SELECT SINGLE * FROM TE401
       WHERE GERWECHS IN S_GERWE .
        IF SY-SUBRC <> 0 .
          MESSAGE E058(00) WITH S_GERWE-LOW S_GERWE-HIGH .
          LEAVE TO LIST-PROCESSING .
        ENDIF.
    ENDIF.
    IF NOT P_SPART IS INITIAL .
    SELECT SINGLE * FROM EQUI
      WHERE SPARTE = P_SPART .
        IF SY-SUBRC <> 0 .
          MESSAGE E058(00).
           LEAVE TO LIST-PROCESSING .
        ENDIF.
    ENDIF.
    CASE SY-UCOMM .
    WHEN '&LFO'.
    WRITE:/ ' DOCUMENTATION' .
    ENDCASE .
    PERFORM VARIANT_EXISTENCE .
    AT SELECTION-SCREEN OUTPUT .
      LOOP AT SCREEN .
        IF SCREEN-NAME = 'P_SPART' .
          SCREEN-INPUT = 0 .
          MODIFY SCREEN .
        ENDIF .
      ENDLOOP .
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI .
    PERFORM F4_FOR_VARIANT.
    ***************START OF SELECTION EVENT****************
    START-OF-SELECTION .
      IF P_INSTA = 'X' .
        PERFORM INSTALL .
      ELSEIF P_REPLC = 'X' .
        PERFORM REPLACE .
      ELSEIF P_IP = 'X' .
        PERFORM INS_REPL .
      ENDIF.
    IF SY-BATCH = ' ' .
      SELECT  A~EQUNR
             A~BIS
              A~AB
             A~LOGIKNR
              A~ZWGRUPPE
              A~EINBDAT
              A~AUSBDAT
              A~GERWECHS
              A~DEVLOC
              B~MATNR
              B~SERNR
              B~SPARTE
              D~ANLAGE
              D~LOGIKNR
              D~ERDAT  FROM ( ( EGERH AS A INNER JOIN EQUI AS B
                                    ON AEQUNR = BEQUNR )
                      INNER JOIN EASTL AS D ON ALOGIKNR = DLOGIKNR )
                                        AND   ABIS     = DBIS
                                        AND   AAB      = DAB )
              INTO TABLE ITMX2 UP TO P_MAXSEL ROWS
              FOR ALL ENTRIES IN ITTE4
              WHERE  A~GERWECHS = ITTE4-GERWECHS
              AND    A~BIS GE S_AB-LOW
              AND  A~AB IN S_AB
              AND A~KOMBINAT = 'Z'
              AND A~EINBDAT NE '00000000'
              AND A~AUSBDAT EQ '00000000'
              AND B~MATNR  IN S_MATNR
              AND B~SERNR IN S_SERNR
              AND B~SPARTE = P_SPART
              AND D~BIS GE S_AB-LOW .
             AND D~AB IN S_AB .
    ELSE.
        SELECT A~EQUNR
             A~BIS
              A~AB
             A~LOGIKNR
              A~ZWGRUPPE
              A~EINBDAT
              A~AUSBDAT
              A~GERWECHS
              A~DEVLOC
              B~MATNR
              B~SERNR
              B~SPARTE
              D~ANLAGE
              D~LOGIKNR
              D~ERDAT
              FROM ( ( EGERH AS A INNER JOIN EQUI AS B
                                    ON AEQUNR = BEQUNR )
                      INNER JOIN EASTL AS D ON ALOGIKNR = DLOGIKNR )
                                        AND   ABIS     = DBIS
                                        AND   AAB      = DAB )
              INTO  TABLE ITMX2
              FOR ALL ENTRIES IN ITTE4
              WHERE  A~GERWECHS = ITTE4-GERWECHS
              AND    A~BIS GE S_AB-LOW
              AND  A~AB IN S_AB
              AND A~KOMBINAT = 'Z'
              AND A~EINBDAT NE '00000000'
              AND A~AUSBDAT EQ '00000000'
              AND B~MATNR  IN S_MATNR
              AND B~SERNR IN S_SERNR
              AND B~SPARTE = P_SPART
              AND D~BIS GE S_AB-LOW .
             AND D~AB IN S_AB .
    ENDIF.
    SORT ITMX2 BY ANLAGE EQUNR .
    LOOP AT ITMX2 .
    IF ITMX2-ANLAGE =  WA_ITMX2-ANLAGE .
         MOVE-CORRESPONDING WA_ITMX2 TO ITMOD .
         APPEND ITMOD.
         CLEAR ITMOD .
        MOVE-CORRESPONDING ITMX2 TO ITMOD .
         APPEND ITMOD.
         CLEAR ITMOD .
    ENDIF.
    MOVE-CORRESPONDING ITMX2 TO WA_ITMX2  .
    ENDLOOP .
    SORT ITMOD BY ANLAGE EQUNR .
    DELETE ADJACENT DUPLICATES FROM ITMOD .
    IF NOT ITMOD[] IS INITIAL .
    SELECT A~EQUNR
           A~ZWNUMMER
           A~ZWKENN
           A~LOGIKZW
           B~ANLAGE
           B~ZWNABR
           FROM ( ETDZ AS A INNER JOIN EASTS AS B
                  ON ALOGIKZW = BLOGIKZW )
            INTO TABLE ITETD
            FOR ALL ENTRIES IN ITMOD
            WHERE A~EQUNR = ITMOD-EQUNR
            AND   A~BIS  GE S_AB-LOW
           AND   A~AB   IN S_AB
            AND   A~ZWNUMMER = 1
            AND   B~ZWNABR NE 'X' .
    SORT ITETD BY ANLAGE EQUNR .
    LOOP AT ITMX2 .
       LOOP AT ITETD WHERE ANLAGE EQ ITMX2-ANLAGE .
              V_ENTER =  1 .
            IF ITETD-EQUNR  EQ ITMX2-EQUNR .
               V_MODIFY =  1 .
               EXIT .
           ENDIF.
      ENDLOOP .
         IF V_ENTER = 1 AND V_MODIFY =  0 .
            DELETE ITMX2 .
         ENDIF.
         CLEAR : ITMX2 ,V_ENTER ,V_MODIFY .
    ENDLOOP .
    ENDIF.
    MESSAGE S015(ZS).
    IF NOT ITMX2[] IS INITIAL .
    SELECT  ANLAGE
             VSTELLE
             ANLART
             ERDAT
             FROM EANL INTO CORRESPONDING FIELDS OF TABLE ITEAN
             FOR ALL ENTRIES IN ITMX2
             WHERE ANLAGE = ITMX2-ANLAGE
             AND   SPARTE = P_SPART
             AND   VSTELLE IN S_VSTELL .
    ENDIF.
    SORT ITEAN BY ANLAGE .
    IF NOT ITEAN[] IS INITIAL .
    SELECT  E~ANLAGE
             E~VSTELLE
             F~haus
             F~VBSART
             F~ERDAT
             H~REGIOGROUP
             H~REGIOAREA
             L~DESCRIPT
         FROM ( ( ( ( EANL AS E INNER JOIN EVBS AS F
                           ON EVSTELLE = FVSTELLE )
                      INNER JOIN EHAUISU AS G ON FHAUS = GHAUS    )
                      INNER JOIN EADRREGAREAA AS H ON G~REGIOGROUP =
                                                            H~REGIOGROUP )
                      INNER JOIN EADRREGAREAT AS L ON H~REGIOAREA =
                                                           L~REGIOAREA   )
             INTO TABLE ITMX4
            FOR ALL ENTRIES IN ITEAN
             WHERE E~ANLAGE = ITEAN-ANLAGE
             AND   E~VSTELLE = ITEAN-VSTELLE
             AND   L~LANGU = SY-LANGU
             AND   H~REGIOGROUP IN S_RGROUP
             AND   H~REGIOAREA IN S_RAREA .
    ENDIF.
    *LOOP AT ITEAN .
    READ TABLE ITMX4 WITH KEY  VSTELLE = ITEAN-VSTELLE .
      IF SY-SUBRC EQ 0 .
         MOVE-CORRESPONDING ITMX4 TO ITEAN .
         ITEAN-ERDAT_EVBS = ITMX4-ERDAT .
         MODIFY ITEAN .
      ENDIF.
    *ENDLOOP .
    LOOP AT ITMX2 .
      ITMX1-ERDAT_EAS = ITMX2-ERDAT .
    MOVE-CORRESPONDING ITMX2 TO ITMX1 .
    READ TABLE ITEAN WITH KEY ANLAGE = ITMX2-ANLAGE .
       IF SY-SUBRC EQ 0 .
             ITMX1-ERDAT_EAN = ITEAN-ERDAT .
             MOVE-CORRESPONDING ITEAN TO ITMX1 .
       READ TABLE ITMX4 WITH KEY ANLAGE = ITMX2-ANLAGE .
        IF SY-SUBRC EQ 0 .
              ITMX1-ERDAT_EVB = ITMX4-ERDAT .
            MOVE-CORRESPONDING ITMX4 TO ITMX1 .
        ENDIF.
    WE WILL GET ONLY THOSE RECORDS THAT IS HAVING REGIO GROUP,DIVISON
        APPEND ITMX1.
        CLEAR ITMX1 .
      ENDIF.
    ENDLOOP .
    IF NOT ITMX4[] IS INITIAL .
    SELECT  EQUNR
             ABLBELNR
             ABLESGR
             ADAT
             ADATSOLL
             ANLAGE FROM V_EABL
             INTO TABLE ITMX3
             FOR ALL ENTRIES IN ITMX1
             WHERE ANLAGE = ITMX1-ANLAGE
            AND   EQUNR  = ITMX1-EQUNR
            AND  ADATSOLL GE S_AB-LOW
            ANd ( ABLESGR  EQ  '01'
            OR  ABLESGR  EQ  '02'
            OR  ABLESGR  EQ  '03'
            OR  ABLESGR  EQ  '22'  ) .
    SELECT  B~EQUNR
             A~ABLBELNR
             A~ABLESGR
             B~ADAT
             B~ADATSOLL
             A~ANLAGE
         FROM ( EABLG AS A INNER JOIN EABL AS B ON AABLBELNR = BABLBELNR
            INTO CORRESPONDING FIELDS OF TABLE ITMX3
            FOR ALL ENTRIES IN ITMX1
            WHERE A~ANLAGE = ITMX1-ANLAGE
            AND   B~EQUNR  = ITMX1-EQUNR
            AND  B~ADATSOLL GE S_AB-LOW
            AND  A~ABRDATS  GE S_AB-LOW
            AND ( A~ABLESGR EQ '01'
            OR  A~ABLESGR EQ '02'
            OR  A~ABLESGR EQ '03'
            OR  A~ABLESGR EQ '22'   ) .
    ENDIF.
    SELECT  ANLAGE
             VKONTO
             VERTRAG
             SPARTE
             FROM EVER INTO TABLE ITEVE
             FOR ALL ENTRIES IN ITMX1
             WHERE ANLAGE = ITMX1-ANLAGE
             AND   SPARTE = P_SPART .
    LOOP AT ITMX1 .
    READ TABLE  ITMX3 WITH KEY ANLAGE = ITMX1-ANLAGE
                                EQUNR  = ITMX1-EQUNR .
      IF SY-SUBRC EQ 0 .
       MOVE-CORRESPONDING ITMX3 TO ITMX1 .
       ENDIF.
      READ TABLE ITEVE WITH KEY ANLAGE = ITMX1-ANLAGE .
       IF SY-SUBRC EQ 0 .
          MOVE-CORRESPONDING ITEVE TO ITMX1 .
       ENDIF.
      MODIFY ITMX1 .
    ENDLOOP .
    SELECT J~BEGABRPE
             J~ENDABRPE
             J~ABRDATS
             J~VKONT
             j~vertrag
             K~BELNR
             K~LFDNR
             K~BUDAT
            FROM ( ERCH AS J INNER JOIN ERCHC AS K ON JBELNR = KBELNR )
            INTO CORRESPONDING FIELDS OF TABLE ITERC
             FOR ALL ENTRIES  IN ITMX1
             WHERE J~VERTRAG = ITMX1-VERTRAG
             AND   J~ADATSOLL GE S_AB-LOW .
    *SELECT BEGABRPE
            ENDABRPE
            ABRDATS
            VKONT
            vertrag
            K~BELNR
            K~LFDNR
            K~BUDAT
           FROM  ERCH     INTO CORRESPONDING FIELDS OF TABLE ITERC
            FOR ALL ENTRIES  in ITMX1
            WHERE VERTRAG = ITMX1-VERTRAG
            and   ADATSOLL GE S_AB-LOW .
    LOOP AT ITMX1 .
    READ TABLE ITERC WITH KEY VERTRAG = ITMX1-VERTRAG .
      IF SY-SUBRC EQ 0 .
        ITMX1-BEGABRPE = ITERC-BEGABRPE .
       ITMX1-ENDABRPE = ITERC-ENDABRPE .
       ITMX1-ABRDATS = ITERC-ABRDATS .
       ITMX1-BELNR = ITERC-BELNR .
       ITMX1-LFDNR = ITERC-LFDNR .
       ITMX1-BUDAT = ITERC-BUDAT .
       MODIFY ITMX1 TRANSPORTING BEGABRPE ENDABRPE ABRDATS  BELNR
          LFDNR BUDAT .
       ENDIF.
    ENDLOOP .
    MESSAGE S014(ZS) .
    LOOP AT ITMX1 .
    MOVE-CORRESPONDING ITMX1 TO ITFIN .
      ITFIN-LTPU = ITMX1-ERDAT_EAN - ITMX1-ERDAT_EVB .
      ITFIN-LTUB  = ITMX1-ERDAT_EAS - ITMX1-ERDAT_EAN .
    IF NOT ITMX1-ADATSOLL IS INITIAL AND ( NOT ITMX1-EINBDAT IS  INITIAL )
       ITFIN-LTBM  =  ITMX1-ADATSOLL - ITMX1-EINBDAT .
         ELSE .
             ITFIN-LTBM = 'NTAV'.
         ENDIF.
      IF NOT ITMX1-ADAT IS INITIAL  AND ( NOT ITMX1-ADATSOLL IS INITIAL ) .
        ITFIN-LTMA  =   ITMX1-ADAT - ITMX1-ADATSOLL .
      ELSE .
        ITFIN-LTMA = 'NTAV' .
      ENDIF.
      IF NOT ITMX1-ABRDATS IS INITIAL AND ( NOT ITMX1-ADAT IS INITIAL ) .
        ITFIN-LTAB  =   ITMX1-ABRDATS - ITMX1-ADAT .
      ELSE .
        ITFIN-LTAB =  'NTAV' .
      ENDIF.
      IF NOT ITMX1-BUDAT IS INITIAL AND ( NOT ITMX1-ABRDATS IS INITIAL ) .
           ITFIN-LTBA =   ITMX1-BUDAT - ITMX1-ABRDATS  .
    ELSE.
        ITFIN-LTBA = 'NTAV'.
      ENDIF.
      ITFIN-SUM = 0.
      IF ITFIN-LTPU NE 'NTAV' AND ITFIN-LTPU NE 'N/A'.
        ITFIN-SUM = ITFIN-SUM + ITFIN-LTPU.
      ENDIF.
      IF ITFIN-LTUB NE 'NTAV' AND ITFIN-LTUB NE 'N/A'.
        ITFIN-SUM = ITFIN-SUM + ITFIN-LTUB.
      ENDIF.
      IF ITFIN-LTBM NE 'NTAV' AND ITFIN-LTBM NE 'N/A'.
        ITFIN-SUM = ITFIN-SUM + ITFIN-LTBM.
      ENDIF.
      IF ITFIN-LTMA NE 'NTAV' AND ITFIN-LTMA NE 'N/A'.
        ITFIN-SUM = ITFIN-SUM + ITFIN-LTMA.
      ENDIF.
      IF ITFIN-LTAB NE 'NTAV' AND ITFIN-LTAB NE 'N/A'.
        ITFIN-SUM = ITFIN-SUM + ITFIN-LTAB.
      ENDIF.
      IF ITFIN-LTBA NE 'NTAV' AND ITFIN-LTBA NE 'N/A'.
        ITFIN-SUM = ITFIN-SUM + ITFIN-LTBA.
      ENDIF.
      APPEND ITFIN .
      CLEAR ITFIN .
    ENDLOOP .
    DELETE ADJACENT DUPLICATES FROM ITFIN .
    PERFORM SUMMARY .
    Message S013(ZS).
    PERFORM BACKGROUND .
    CLEAR: ITMX2[] ,ITSPL[],ITEGE[] ,ITTE4[],ITMX7[] .
    MESSAGE S017(ZS) .
    SUBROUTINES********************************
    FOR INSTALLATION********************************
    FORM INSTALL .
      SELECT GERWECHS
            EAWKENNZE
            EAWKENNZW
             FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4
            WHERE GERWECHS IN S_GERWE
              AND  EAWKENNZE = 'X' .
    IF SY-SUBRC NE 0 .
       MESSAGE S002(ZS).
       LEAVE TO LIST-PROCESSING .
    ENDIF.
    ENDFORM .
    ************************REPLACE****************************
    FORM REPLACE .
      SELECT GERWECHS
             EAWKENNZE
             EAWKENNZW FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4
        WHERE GERWECHS IN S_GERWE
        AND  EAWKENNZW = 'X' .
    IF SY-SUBRC NE 0.
       MESSAGE S003(ZS) .
       LEAVE TO LIST-PROCESSING .
    ENDIF.
    ENDFORM .
    ************************INSTALL/REPLACEMENT*********************
    FORM INS_REPL .
      SELECT GERWECHS
           EAWKENNZE
           EAWKENNZA
           EAWKENNZW FROM TE401 INTO CORRESPONDING FIELDS OF TABLE ITTE4
      WHERE GERWECHS IN S_GERWE
      AND ( EAWKENNZE = 'X'
      OR  EAWKENNZW = 'X'  ) .
    IF SY-SUBRC NE 0.
       MESSAGE S004(ZS) .
       LEAVE TO LIST-PROCESSING .
    ENDIF.
    ENDFORM .
    FIELD CATALOG FOR DETAILED REPORT ******************
    FORM FIELDCATALOG USING F_FIELDCAT .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'STATUS' .
      SFLD-SELTEXT_S = 'Details'.
      SFLD-SELTEXT_M = 'Details'.
      SFLD-JUST =   'L' .
      SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'EQUNR' .
      SFLD-SELTEXT_S = 'Equipment'.
      SFLD-SELTEXT_M = 'Equipment'.
      SFLD-JUST =   'L' .
      SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'ANLAGE' .
      SFLD-SELTEXT_S = 'Installat.'.
      SFLD-SELTEXT_M = 'Installation'.
      SFLD-JUST =   'L' .
      SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'SERNR' .
      SFLD-SELTEXT_S = 'Serial no.'.
      SFLD-SELTEXT_M = 'Serial number'.
      SFLD-JUST =   'L' .
    SFLD-KEY  = 'X' .
    SFLD-HOTSPOT = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'VKONTO' .
      SFLD-SELTEXT_S = 'Cont.Acct'.
      SFLD-SELTEXT_M = 'Contract Acct'.
      SFLD-JUST =   'L' .
    SFLD-KEY  = 'X' .
    SFLD-HOTSPOT = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'REGIOAREA' .
      SFLD-SELTEXT_S = 'Reg. area'.
      SFLD-SELTEXT_M = 'Reg. struc.area'.
      SFLD-JUST =   'L' .
      SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'REGIOGROUP' .
      SFLD-SELTEXT_S = 'RegStrGrp.'.
      SFLD-SELTEXT_M = 'Reg. Str. Grp.'.
      SFLD-JUST =   'L' .
      SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD  .
      SFLD-FIELDNAME = 'LTPU' .
      SFLD-SELTEXT_S = 'Prm-Util'.
      SFLD-SELTEXT_L = 'Premise to Utility installation in days'.
      SFLD-JUST =   'R' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'LTUB' .
      SFLD-SELTEXT_S = 'Util-BInst'.
      SFLD-SELTEXT_L = 'Utility to Billing installation in days'.
      SFLD-JUST =   'R' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'LTBM' .
      SFLD-SELTEXT_M = 'BInst-MRO'.
      SFLD-SELTEXT_L = 'Billing to Meter reading order in days'.
      SFLD-JUST =   'R' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'LTMA' .
      SFLD-SELTEXT_M = 'MRO-AcRead'.
      SFLD-SELTEXT_L = 'Meter reading order to actual reading in days'.
      SFLD-JUST =   'R' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'LTAB' .
      SFLD-SELTEXT_M = 'AcRead-BiOr'.
      SFLD-SELTEXT_L = 'Actual reading to Billing order in days'.
      SFLD-JUST =   'R' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'LTBA' .
      SFLD-SELTEXT_M = 'BiOr-AcBill'.
      SFLD-SELTEXT_L = 'Billing order to Actual billing in days'.
      SFLD-JUST =   'R' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'SUM' .
      SFLD-SELTEXT_M = 'TOTAL'.
      SFLD-SELTEXT_L = 'Total lead time in days'.
      SFLD-JUST =   'R' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'VSTELLE' .
      SFLD-SELTEXT_S = 'Premise'.
      SFLD-SELTEXT_M = 'Premise'.
      SFLD-JUST =   'L' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'LOGIKNR' .
      SFLD-SELTEXT_S = 'LogDev.no.'.
      SFLD-SELTEXT_M = 'Log. dev. no.'.
      SFLD-JUST =   'L' .
    SFLD-KEY  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'BIS' .
      SFLD-SELTEXT_M = 'Valid to'.
      SFLD-SELTEXT_L = 'Date at Which a Time Slice Expires'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'AB' .
      SFLD-SELTEXT_M = 'Valid from'.
      SFLD-SELTEXT_L = 'Date from which time slice is valid'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'ZWGRUPPE' .
      SFLD-SELTEXT_S = 'Reg. group'.
      SFLD-SELTEXT_M = 'Register group'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'EINBDAT' .
      SFLD-SELTEXT_S = 'Inst. date'.
      SFLD-SELTEXT_M = 'Install. date'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD.
      SFLD-FIELDNAME = 'AUSBDAT' .
      SFLD-SELTEXT_S = 'Remov.date'.
      SFLD-SELTEXT_M = 'Removal date'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'GERWECHS' .
      SFLD-SELTEXT_S = 'Reason'.
      SFLD-SELTEXT_M = 'Activity reason'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'DEVLOC' .
      SFLD-SELTEXT_S = 'Dev. loc.'.
      SFLD-SELTEXT_M = 'Device location'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'SPARTE' .
      SFLD-SELTEXT_S = 'Division'.
      SFLD-SELTEXT_M = 'Division'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'ANLART' .
      SFLD-SELTEXT_S = 'Inst. type'.
      SFLD-SELTEXT_M = 'Inst. type'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'HAUS' .
      SFLD-SELTEXT_S = 'Conn.obj.'.
      SFLD-SELTEXT_M = 'Connection obj.'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD .
      SFLD-FIELDNAME = 'VBSART' .
      SFLD-SELTEXT_S = 'Prem. type'.
      SFLD-SELTEXT_M = 'Premise type'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD.
      SFLD-FIELDNAME = 'ABBELNR' .
      SFLD-SELTEXT_S = 'Int.MRD ID'.
      SFLD-SELTEXT_M = 'Int. MR doc. ID'.
      SFLD-JUST =   'C' .
      SFLD-NO_OUT  = 'X' .
      APPEND SFLD TO ITFLD .
      CLEAR SFLD.
      SFLD-FIELDNAME = 'ABLESGR' .

  • Hiding a Maintenance View in a View Cluster

    Hello ABAP Experts,
    We have a scenario where we would like to hide a maintenance view to an existing view cluster based on condition.
    Is it possible via events of a view cluster, where i can hide the view at runtime based on some condition before the view cluster is displayed ?
    Is there any way as well, which help achieve this hiding of views ?
    For example in the below View Cluster, i would like to hide "Define object links" view from the main view cluster "Define document Types".
    Thanks,
    Naresh

    Hi Naresh,
    Yes, you can do it in events of a view cluster, define a subroutine and bounding it to event(02) in SE54,
    when you define the subroutine, it will ask you creat a mian program, in this main program, you need  'INCLUDE lsvcmcod'.
    Then you can access some standard data, http://help.sap.com/saphelp_nw04/helpdata/en/62/c302c7de8e11d1a5960000e82deaaa/frameset.htm
    INCLUDE lsvcmcod.
    FORM yourSubroutineName.
    DATA: viewname TYPE vclstruc-object,
            error_flag TYPE vcl_flag_type,
      viewname = 'ZTEST_VIEW1'.
    *  PERFORM vcl_set_table_access_for_obj USING    viewname
    *                                       CHANGING error_flag.
      ----> according your condition to change the view.
    IF xxx = yyy.
      DELETE vcl_struc_tab WHERE object = viewname.
    ENDIF.
    ENDFORM.
    regards,
    Archer

  • Using DYNP_VALUES_UPDATE with a Maintenance View

    Hi,
    I am using a maintenance view to insert values into a table. When user creates a new entry, based on the value provided for a field,I need to fill a read-only field. In PAI, when user enters a value for one field, I am using FM 'DYNP_GET_STEPL' to  get the current line and then DYNP_VALUES_UPDATE to fill the contents to the read-only field. But this does not seem to work. Any idea?
    Regards
    Rachana

    Hi Tamas,
    I tried both the options suggested by you.
    I am updating the underlying structure, still its not visible when the screen loads again. But if you see the same field gets filled with DYNP_VALUES_UPDATE if an F4 help is used for teh first(editable) field and then my read-only field is also filled in the PROCESS ON VALUE REQUEST module.
    So my guess is that, since it is a table control, it loops through the rest of the table control which is empty and my underlying structure gets cleared. So the problem could be where I am actually filling the field.
    Is it possible to somehow fill the <EXTRACT> table so that teh value is not lost?
    Regards
    Rachana

  • How to use table maintenance view in module pool screen

    hi ,
    want to use table maintenance view in a module pool screen so that i can edit, insert, delete and update date in to the ztable.please help.

    You can simply call it via SM30.   Or you can call the table maintence view from any program(report or module pool) using a function module.
      call function 'VIEW_MAINTENANCE_CALL'
           exporting
                action                       = 'U'
                view_name                    = 'Z_Table_Name'
           exceptions
                client_reference             = 1
                foreign_lock                 = 2
                invalid_action               = 3
                no_clientindependent_auth    = 4
                no_database_function         = 5
                no_editor_function           = 6
                no_show_auth                 = 7
                no_tvdir_entry               = 8
                no_upd_auth                  = 9
                only_show_allowed            = 10
                system_failure               = 11
                unknown_field_in_dba_sellist = 12
                view_not_found               = 13
                others                       = 14.
    Regards,
    RIch Heilman

  • Unable to edit maintenance view in SM30

    hi everyone.
    need your help, I have one custom table, let's call it YTAB.  This table has several maintenance views created for it, depending on company code.  For YTAB, i have created a maintenance view YTABX. 
    When we moved YTABX to PRD, we cannot edit it in SM30.  The user ID has the right authorization.  The error message is "client 100 not modifiable".  When I try to edit the mother table YTAB in PRD, I am able to go in and do the changes.
    I have already compared the settings for YTABX with the other existing views, they are the same.  My settings for the view are:
    Access: Read, change, delete & insert
    Delivery Class: C
    In the table maintenance generator, i have a 2-step maintenance type, recording routine is Standard recording routine and compare flag is automatically adjustable. 
    Attributes for table YTAB also has delivery class C, table category is transparent table, table maintenance is allowed.
    Thank you in advance.

    Hello roch,
    the direction in which mark points is right but i think you should get some more information on the principles of table types and sap system landscape.
    Usually you should not be able to directly maintain any table. This is not only bad style but also a huge risk for the system consistency. That's why application data is always maintained via some kind of application which ensures that the data is vilidated before it is stored.
    Customizing data should only be maintained within a development system and then transported through the landscape. To maintain these table you can use generated views, customer developed maintenance views, view clusters which all include automatical link to the transport system. If you would maintain these tables directly in the productiion system it would have another configuration than the development and the quality/test system which makes them more or less useless as you can no longer make any serious test if the server configurations differ.
    To prohibit changes of customizing tables on production and test servers the admins lock the systems which results in the message you got. This setting is made in TCODE SCC4. Even if you have for any reason the authorization to use this transaction you should in no case change these settings without approval of basis / system owner. 
    Kind Regards
    Roman

  • Updates through a maintenance view

    Hi,
    I'm having difficulty with maintenance views. I thought it ws possible to construct a maintenance view consisting of two or more tables and be able to update non-key fields in any table, provided the tables were linked via FK and had suitable cardinality of C:1.
    However, this seems to be what I've found: you can only update non-key fields in the primary table. Although fields in the secondary tables appear as though you can update them (via SM30), any data changes you make are erased (as you look at it!) when you hit Save - the original value returns.
    Is my assessment correct? SAP Help is vague and ambiguous on the matter.
    Also, maybe someone could explain the cardinality requirements. SAP Help states the FKs must have N:1 cardinality, but as far as I can see it should be C:1.
    Thanks,
    T.

    Hello Tenchy
    You are talking about view clusters (SE54) where you have hierarchical linked tables that can be maintained together.
    Obviously, you cannot edit key fields of the primary table. Instead you need to use execute two operations:
    - DELETE entry
    - CREATE new entry
    It goes without saying that the same operations are propagated to the dependent entries in secondary tables.
    The cardinality between primary table and secondary table should be 1:N meaning
    - for each entry in the primary table you can have none or multiple entries in the secondary table
    - you cannot have secondary records for which the corresponding primary record does not exist
    Regards
      Uwe

  • Refresh data in Table Maintenance view

    Hi,
    I have created a table maintenance view for db table A and added my function button to this view. When I click the button I append  a few records to the table A from table B. But this recoreds are not displaied in the view.
    If I rerun the view I can see added records.
    How I have to refresh the view to display added records?
    Regards,
    Ilya

    Hi Jesus,
    COMMIT WORK isn't help me.
    I found that I have to use TOTAL and EXTRACT structures to modify data in maintenance view.
    It's fine. I do something like this in my FM
    MODULE 9CUSTOM_PF_BUTTON INPUT.
    lt_total[] = total[].
    lt_extract[] = extract[].
    CASE function.
          WHEN '9DOWNSH'.
             modify lt_total from wa_total.
             modify lt_extract from wa_extract
    ENDCASE.
    total[]   = lt_total[].
    extract[] = lt_extract[].
    ENDMODULE.                 " 9CUSTOM_PF_BUTTON  INPUT
    But TOTL and EXTRACT tables contain data of  the current maintenance view.
    I work with a view cluster and I have to append or delete records from one view if I do something in other view.
    How I can modify data one view from another maintenance view?
    If I have modified database tables directly I don't see changes in the view cluster.
    Regards,
    Malnor
    Edited by: Malnor on Nov 23, 2010 9:19 AM
    Edited by: Malnor on Nov 23, 2010 9:38 AM

  • Aotu numbering in table maintenance view

    Hi experts,
    Can anybody help me in auto genereating serial number in table maintenance view. I have created table maintanance view for a z table for which first field is serial no. The requirement is this serial number should be auto genereted. increment by 1. I have writeen the code for the same in PAI event, but it getting incremented by number of rows. e.g for secind row counter is incremented by +2. for thrid row it is +3 and so on....
    plz help to achieve consistency .
    Thnks n regards,
    Ashmita Singh

    What happens if the user deletes a recird from the table?
    Suhas,
    Happy New Year
    Disable delete function and provide a deletion indicator. This should be fine right.
    The problem would be when the maintenance dialog is regenerated.
    @OP - So as suggesgted use events.
    Similar threads were discussed before many times. May be you culd search it once.

Maybe you are looking for

  • How do I delete photos PERMANENTLY?

    I have moved photos to the trash can and emptied the trash can multiple times and they keep popping back up in Iphoto. Not just Iphoto but many other files are not actually being deleted. Plus, I'm finding random snapshots of my family's phone number

  • NTSC or PAL

    Hi, I'm ready to buy the new HDR-AX2000 AVCHD Camcorder available in USA for some 3500USD. I'm in Namibia, the TV standard is PAL the US Cam is NTSC, means HDTV FX 24Mbps 1920x1080/60i 30p and the 24p mode. My question: -     What are the problems to

  • Reinstalling Virtual PC 7

    I uninstalled Virtual PC 7.0.2 a while ago, and upon trying to reinstall it now (from the 7.0 CD, 7.0.2 is a downloadable update), the install only wants to copy 686kb of the program. When I run the 7.0 unsintaller, it crashes, which I found is a kno

  • IDOCS not reaching XI

    Dear all, I found a peculiar issue. A set idocs are being posted from SAP to XI. Always the last IDOC in that set doesn't reach XI. But the status of that IDOC in we02 is 03. I've even checked for SM58 in SAP, it also clear. At XI, everything is fine

  • .mov files appear as Unix after recovery, adding extension doesn't work

    (Also posted in Quicktime forum) Whilst backing up (with Synchronise X) a drive, I accidentally clicked to allow around 15GB worth of Quicktime files to be deleted, in two folders.  Realising my mistake, I stopped the back up immediately, and recover