Logical database GUI status

Hello everyone.
Is there a way to change the GUI status guy status of a logical database?
thank you in advance.

Hi Ebaristo,
REPORT demo_sel_screen_status .
DATA itab TYPE TABLE OF sy-ucomm.
PARAMETERS test(10) TYPE c.
AT SELECTION-SCREEN OUTPUT.
  APPEND: 'PRIN' TO itab,
          'SPOS' TO itab.
  CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
       EXPORTING
            p_status  = sy-pfkey
       TABLES
            p_exclude = itab.
In this example program, the two functions Print and Save as Variant are disabled. You can find the function codes of the default GUI status in the field GUI Status which you can display by choosing System u2192 Status.
[http://help.sap.com/abapdocu_702/en/abenselection_screen_overview.htm]

Similar Messages

  • Logical database in sd

    hi experts,
       i need standard LDB's  related to the tables of sd, mm and fi... can anyone help regarding this.....

    Ok so here you are, If you want to edit one go to SE36
    LDB name
    Logical database short text
    50V
    Delivery in process
    AAV
    Logical Database RV: Sales Documents
    ABCLAIMLDB
    Agency Business: Complaints Processing
    ABS
    ABAP Book: Customer and bookings
    ACAC_ACE_LDBDS
    Accrual Object Distribution Server Reporting Table
    ACAC_ACE_LDBPS
    Accrual Engine Posting Server Reporting Database
    ACE_FILA_LDBDS
    Accrual Object Distribution Server Reporting Table
    ACE_FILA_LDBPS
    Accrual Engine Posting Server Reporting Database
    ACE_SOP_LDBDS
    Stock Option Accounting Distribution Server LDB
    ACE_SOP_LDBPS
    Provisions for Awards: Posting Server LDB
    ACEDS_003
    Accrual Object Distribution Server Reporting Table
    ACEPS_003
    Accrual Engine Posting Server Reporting Database
    ADA
    Assets Database
    AFI
    Logical database for orders
    AGENCYLDB
    Agency Business: Logical Database
    AKV
    Logical Database RV: Sales Documents
    ALV
    Archiving Deliveries
    ARV
    Logical Database RV: Sales Documents
    ASV
    Request Screen for Summary Information
    AUK
    Settlement documents
    AUW
    Allocation Table
    B1L
    Transfer requirements by number
    BAF
    BAV-Data collector
    BAM
    Purchase Requisitions (General)
    BANK
    Logical Database for Table BNKA
    BBM
    Archiving of Purchase Requisitions
    BC405_DIFF_NODES
    Example of Different Node Types
    BJF
    Loans flow records with date restriction(YR
    BKK
    Base Planning Object
    BKM
    Purchase Requisitions per Account Assignment
    BMM
    Documents for Number
    BPF
    Treasury Business Partner
    BRF
    Document Database
    BRM
    Accounting Documents
    BTF
    Loan portfolios and flows
    BTM
    Process Order; Print
    BUCHUNGSJOURNAL
    LDB for Posting Journal
    BUD
    LDB For Loans Master Data, Conditions, Documents
    C1F
    Cash Budget Management
    CCLDB_AENR
    ECH: Change number with status information
    CDC
    Document structure
    CEC
    Equipment BOM
    CEK
    Cost Centers - Line Items
    CFK
    Data pool for SAP EIS
    CIK
    Cost Centers - Actual Data
    CKA
    Costing
    CKC
    Sales order BOM
    CKM
    Material master
    CKQ
    Material Selection for New Costing Solution
    CKS
    MiniApp. for the Calculator: Sales Order Data
    CKS_WAO
    MiniApp: Sales Order Items to be Processed
    CKW
    Costing run: Material Selection
    CMC
    Material BOM
    CPK
    Cost Centers - Plan Data
    CRC
    Work Centers
    CRK
    Cost Centers - Total
    CRZ
    Logical database for courses BC220/BC230
    CSC
    Standard BOM
    CSR
    Logical database for archiving BOMs
    CTC
    Functional location BOM
    DBM
    MRP Documents
    DDF
    CUSTOMER  DATABASE
    DPM
    Planned Orders
    DSF
    Loan Debit Position
    DVS
    Logical database for archiving DMS data
    DWF
    Loan resubmission
    EBM
    Purchasing Activities per Requirement Tracking No.
    ECM
    Purchasing Documents per Material Class
    EHS_OH001
    Logical Database for Occupational Health
    EKM
    Purchasing Documents per Account Assignment
    ELM
    Purchasing Documents per Vendor
    EMM
    Purchasing Documents for Material
    ENM
    Purchasing Documents per Document Number
    EQI
    Logical Database (Equipment)
    ERM
    Archiving of Purchasing Documents
    ESM
    Purchasing Documents per Collective Number
    EWM
    Purchasing Documents per Supplying Plant
    F1S
    BC: Planned flights, flights and bookings
    FDF
    Cash management and forecast
    FDK
    IS-U/FERC: Drill down to line items and paths
    FEF
    Cash Management - Memo Records
    FILA
    Lease Accounting
    FMF
    Funds Management
    FPMF
    LDB, reads FPAYH and FPAYP
    FRF
    Drill-down Selection Screen
    FSF
    Cash Management Totals Records
    FTI_BW_CFM_VALUES
    Market Values and Simulated Values in Pos. Mgmt
    FTI_LO_PERIODS
    Loan/CML Period Evaluations
    FTI_LO_POSITIONS
    Loan /CML Positions
    FTI_SWAP_POSITION
    Swap Positions
    FTI_TR_CASH_FLOWS
    Treasury Payment Information
    FTI_TR_PERIODS
    Treasury: Period-Based Evaluations
    FTI_TR_PL_CF
    Treasury: Revenue and Cash Flow Reporting
    FTI_TR_POSITIONS
    Treasury Positions
    FTLM_DB01
    Limit Management
    FUK
    IS-U/FERC: Drill back from document line items
    G1S
    text
    GLG
    FI-SL Totals and Line Items
    GLU3
    Flexible G/L
    I1L
    Inventory data for storage bin
    I2L
    Warehouse quants for storage bin
    I3L
    Inventory documents
    IBF
    Real Estate Logical Database (Lease-Out)
    IDF
    Real Estate Logical Database
    IDFPLUS
    Real Estate Plus Logical Database
    IFM
    Purchasing Info Records: General
    ILM
    Archiving Purchasing Info Records
    IMA
    Logical database for investment programs
    IMC
    IM Summarization (not usable operationally)
    IMM
    Inventory documents for material
    IMR
    Approp. requests (not operationally functional)
    IMT
    Approp. requests (not operationally functional)
    INM
    Inventory documents
    IOC
    Shop floor control - order info system
    IPM_ACE_LDBDS
    Accrual Object Distribution Server Reporting Table
    IPM_ACE_LDBPS
    Accrual Engine Posting Server Reporting Database
    IRM
    Reorganization of inventory documents
    J5F
    Logical Database for new Nota Fiscal Database
    K1V
    Generating Conditions
    KDF
    Vendor Database
    KIV
    Customer Material Information
    KKF
    Balance Audit Trail of Open Items
    KLF
    Historical Balance Audit Trail
    KMV
    SD Documents for Credit Limit
    KOV
    Selection of Condition Records
    L1L
    Evaluation Whse Documents
    L1M
    Stock movements for material
    LMM
    Stock Movements for Material
    LNM
    Stock movements
    LO_CHANGE_MNMT
    Logical database for engineering change management
    MAF
    Dataset for Dunning Notices
    MDF
    Logical Database for Master Data Selection
    MEPOLDB
    Logical Database/Selection of Purch. Order Tables
    MIV
    BC: Planned flights, flights and bookings
    MMIMRKPFRESB
    Selection from Reservations
    MRM
    Reorganization of material documents
    MSM
    Material master
    NOTIF
    LDB for Basic Notifications
    NOTIFICATIONS
    NTI
    Logical database object networking
    ODC
    Shop floor control - orders per MRP controller
    ODK
    Orders
    OFC
    Shop floor control - orders per prod.scheduler
    OHC
    Shop floor control - orders by numbers
    OPC
    Shop floor control - orders by material
    PAK
    CO-PA Segment Level and Line Items
    PAP
    Applicant master data
    PCH
    Personnel Planning
    PGQ
    QM: Specs and Results of the Quality Inspection
    PMI
    Structure database (plant maintenance)
    PNI
    PM Planning Database
    PNM
    Planning database
    PNM_OLD
    Planning Database
    PNP
    HR Master Data
    PNPCE
    HR Master Data (Incl. Concurrent Employment)
    POH
    Production orders database - header
    PSJ
    Project system
    PTRVP
    Travel Management
    PYF
    Database for Payment Medium Print Programs
    QAM
    Inspection Catalogs: Selected Sets
    QAQ
    Inspection Catalogs: Selected Sets
    QCM
    Inspection Catalogs: Codes
    QCQ
    Inspection Catalogs: Codes
    QMI
    Logical database (PM notifications)
    QMQ
    Inspection Characteristics
    QNQ
    Quality Notifications
    QTQ
    Logical database for inspection methods
    QUERYTESTLDB
    Test LDB for InfoSet Query
    R0L
    Archive selection: Transfer orders (MM-WM)
    R1L
    Archive selection: Transfer requirements (MM-WM)
    R2L
    Archive Selection: Posting Change Notices (MM-WM)
    R3L
    Archive selection: Inventory documents (MM-WM)
    R4L
    Archive selection: Inventory histories (MM-WM)
    RBL
    Archiving of transfer requests
    REAO
    Real Estate: Logical Database for Architecture
    REBD
    Logical Database for Real Estate Objects
    REBP
    Logical Database via Partner (Real Estate)
    RECN
    Real Estate: Selection by Contracts
    RECONTRACT
    RE Logical Database: (General) Contract
    RHL
    Archiving of inventory history
    RIL
    Archiving of inventory documents
    RKM
    Reservations for Account Assignment
    RLI
    Logical Database Reference Location
    RMM
    Reservations for material
    RNM
    Reservations
    RTL
    Archiving of transfer orders
    RUL
    Archiving of Posting Change Notices
    S1L
    Stock by storage bins
    S1L_OLD
    Stock by Storage Bins
    S2L
    Warehouse quant for material
    S3L
    Stocks
    SAK
    Completely Reversed Allocation Documents
    SD_KUSTA
    Logical Database for Sales Summary
    SD_ORDER
    Logical database for inquiries, contracts
    SD_SALES_DOCUMENT
    Logical database for inquiries, contracts
    SDF
    G/L Account Database
    SMI
    Serial Number Management
    T1L
    Transfer orders by number
    T1L_OLD
    Transfer Orders by Number
    T2L
    Transfer orders for material
    T3L
    Transfer orders for storage type
    T4L
    Transfer order for TO printing
    T5L
    Transfer orders for reference number
    TAF
    Treasury
    TIF
    Treasury Information System
    TPI
    Functional Location Logical Database
    U1S
    User master reorganization: Password changes
    U2S
    User master reorganization: Password changes
    U3S
    User master reorganization: Password changes
    U4S
    User master reorganization: Password changes
    UKM_BUPA
    SAP Credit Management: Business Partner
    V12L
    Pricing Report
    VAV
    Logical Database RV: Sales Documents
    VC1
    List of Sales Activities
    VC2
    Generate Address List
    VDF
    Customer Database with View of Document Index
    VFV
    Logical Database RV: Billing Documents
    VLV
    Logical Database For Deliveries
    VVAV
    Logical Database RV: Sales Documents
    VXV
    SD: Billing Document - Export
    WAF
    Securities position plus additional master data
    WOI
    Maintenance Item
    WPI
    Maintenance plans
    WTF
    Securities positions and flows
    WTY
    WTY LD
    WUF
    Sec.-Determ.master data for positions
    I hope this will delh

  • How to get GUI Status(Push Buttons) in ALV Report

    Hi Friends
    I have a requirement in a way that:
    Once selection-screen was processed,an ALV report has to come and above the ALV List,I need a custom GUI Status(4 Push Button) with Push Buttons Logic.
    Once I had clicks on thesse push button,I need to display one more ALV List and above this List,again I need a custom GUI Status(2 Push Buttons) with Push Buttons Logic.
    Can anyone throw some light how we can achieve this.
    Thanks for your cooperation!
    Regards,
    Madisetty

    data: rt_extab type slis_t_extab,
            g_ucomm like sy-ucomm ,
            g_selfield type slis_selfield.
    form alv_display .
      call function 'REUSE_ALV_LIST_DISPLAY'
         exporting
         i_callback_program             = g_repid
         i_callback_pf_status_set       = 'PF_STATUS'
         i_callback_user_command        = 'USER_COMM'
           it_fieldcat                    = it_fldcat
          tables
            t_outtab                       = it_final1
      perform pf_status using rt_extab.
      perform user_comm using g_ucomm g_selfield .
    endform.  
    form pf_status  using    p_rt_extab.
      set pf-status 'PF_STATUS' excluding p_rt_extab.
    endform.
    form user_comm  using    p_ucomm like sy-ucomm
                             p_selfield type slis_selfield.
      data: l_row type i.
      case  p_ucomm.
        when 'DISPLAY_PO'.
          loop at it_final1 into wa_final1.
            if wa_final1-sel eq 'X' .
              l_row = l_row + 1.
            endif.
            if l_row gt 1.
              message e004.
            endif.
            clear wa_final1.
          endloop.
          p_selfield-fieldname = 'SEL'.
          read table it_final1 into wa_final1 index p_selfield-tabindex .
          set parameter id 'BES' field wa_final1-ebeln.
          call transaction 'ME23N'.
      endcase.
    endform.
    *create user interface for gui status by double clicking on 'PF_STATUS'.
    *Check the above sample code .

  • Logical database EQI (equipment)  .. I dont want to use the default selecti

    i am using Logical database EQI (equipment)  its realated to PM module.....
    i dont want to use the default selection screen.
    instead i want to process my own selection screen inputs..
    (ie..) i want to fetch the data using the GET event using my  own selection screen  inputs.
    my selection screen inputs is   equipmentnumber (equnr)
    and  the output list : 1.equnr      "equipment number
                                  2.shtxt       "Equipment Description
                                  3.tplnr        "Functional Location
                                  4.pltxt        "Functional Location Description
                                  5.qmnum    "Notification Number 
                                  6.qmtxt      "Notification Description
                 and  so on  ..........             
    how to do this ... can any one give sample code... or logic

    Hi Victor,
    I have a simple solution for this.i think it will help you.Do u have any idea about query designer in SAP.
    by using it we can satisfy u r  reuqirement.follow the below steps.
    1)Go to SQ01
    2)In the screen click on QuickViewer option.then you will go to another screen.
    3)In that screen give any name starting with 'Z' in the QuickView box and then click on create.
    4)In the dialogbox enter title and comments and then select LogicalDatabase as the DATASOURCE and give DataSourceLogicalDatabase as EQI.check the radio button Basis Mode and then click on ok.
    5)then on the screen in the first half of leftside you will  get another screen with the columns DATAFIELDS,LISTFIELDS,SELECTIONFIELDS,TECHNICALNAME.
    6)In the DATAFIELDS column expand the tree,then u can see the fields what we have,and what you want.and also you can see the check boxes in front of the columns LISTFIELDS,SELECTIONFIELDS.
    7)LISTFIELDS means the output fields,SELECTIONFIELDS means the selection screen fields(equnr).
    check the checkboxes as per u r requirement and click on execute.
    8)then a progam will be created.to know the program name after executing the program GO TO
    SYSTEM->STATUS.then u can see the program name there.
    If u know all these,let me know so that i can try for another solution.
    Thanks,
    N.K.C

  • Problem in GUI status

    hi folks ,
    i have created the GUI status for the program .. when i go on the out put screen i am not able to go back or cancel or exit , though i have created the GUI status and activated it as well .
    my program is designed to display the user action on screen and it displays the value in the text field which can only accept output no inputs .
    plz advice .
    Thanks,
    Abhishek .

    Hello,
    Make sure that the function codes in the GUI status are written in capital letters only.Similarly in the PAI of the screen,in the case statement,the function codes have to be written in capital letters.I hope you have written the user-commands as the functionality has to be coded by the developer when he makes the GUI.
    *&      Module  USER_COMMAND_0100  INPUT
          text
    MODULE USER_COMMAND_0100 INPUT.
    case ok_code.
    when 'BACK'.
    leave to screen 100.
    when 'EXIT'.
    leave to screen 0.
    when 'SAVE'.
    ....logic
    ENDCASE.
    endmodule.
    Regards,
    Beejal
    **Reward if this helps

  • Hr programming - logical database - macro

    Hi everyone !
    I use pnp logical database.
    Now how the program familiar the macro RP-PROVIDE-FROM-FIRST
    from table trmac ? ?
    i know that macro can be familiar from the program between lines:
    define .......
    end-of-definition.
    someone can explain to me ?

    Hi
    See this sample program for using the LDB PNP and the MAcros
    report zporgr0030
           line-size 193
           line-count 60(1)
           no standard page heading
           message-id zndc.
    Database Tables
    tables:    pernr,    " Logical PNP
               t001p,    " Personnel Subarea
               t005t,    " Country Descriptions
               t500p,    " Personnel Area
               t501,     " Employee Group
               t503k,    " Employee Subgroup
               csks,     " Cost Centers
               cskt,     " Cost Center Texts
               t513c,    " Job (Previous) Texts
               t513s,    " Job Titles
               t517t,    " Edn Est.Text
               t518b,    " Discipline Text
               t519t,    " Certificate Text
               t528t,    " Positions Texts
               t538t,    " Unit Text
               pa0003.   " Payroll Status
    infotypes:
               0000,   " Actions
               0001,   " Organizational Assignment
               0002,   " Personal Data
               0007,   " Planned working time
               0008,   " Payroll Data
               0022,   " Education Data
               0023,   " Previous Employer data
               0025,   " Performance Appraisal Data
               0041,   " Date Spcifications
               2001.   " Absences
    Declaration of Internal Tables
    Internal Table for Personal Data
    data: begin of pers_tab occurs 0,
            pernr like pa0001-pernr,      " Personal Number
            ename like pa0001-ename,      " Employee Name
            trfgr like pa0008-trfgr,      " Grade
            natio like pa0002-natio,      " Nationality
            hdate like pa0041-dat01,      " Hire Date
            gbdat like pa0002-gbdat,      " Birth Date
            plans like pa0001-plans,      " Position
            werks like pa0001-werks,      " Pers.Area
            kostl like pa0001-kostl,      " Cost Center
            ctext(40),                    " Cost Center Text
            ptext(25),                    " Position Text
            ntext(15),                    " Nation Text
            name1(23),                    " Location
          end of pers_tab.
    Internal Table for Payroll Data
    data: begin of pay_tab occurs 0,
            pernr like pa0008-pernr,      " Personal Number
            waers like pbwla-waers,       " Grade
            basic like pa0008-bet01,      " Basic Pay
            hra_allow like pa0008-bet01,  " Housing Allowance
            sup_allow like pa0008-bet01,  " Supp. Allowance
            soc_allow like pa0008-bet01,  " Social Allowance
            chl_allow like pa0008-bet01,  " Child Allowance
            fix_allow like pa0008-bet01,  " Fixed Overtime
            ra_allow  like pa0008-bet01,  " RA Allowance
            per_allow like pa0008-bet01,  " Perform. Allowance
            pen_allow like pa0008-bet01,  " Pension Allowance
            oth_allow like pa0008-bet01,  " Other Allowances
            tot_allow like pa0008-bet01,  " Total Allowances
          end of pay_tab.
    Internal Table for Educational Data
    data: begin of edn_tab occurs 0,
            pernr like pa0022-pernr,      " Personal Number
            ausbi like pa0022-ausbi,      " Discipline Name
            slart like pa0022-slart,      " Edn Establishment
            insti like pa0022-insti,      " Institute
            sland like pa0022-sland,      " Country
            slabs like pa0022-slabs,      " Certificate
            anzkl like pa0022-anzkl,      " Duration
            anzeh like pa0022-anzeh,      " Unit for Duration
            atext like t518b-atext,       " Discipline Text
            stext like t517t-stext,       " Edn Est.Text
            landx like t005t-landx,       " Country Text
            ctext like t519t-stext,       " Certificate Text
            etext like t538t-etext,       " Unit Text
          end of edn_tab.
    Internal Table for Previous Employment Data
    data: begin of pemp_tab occurs 0,
            pernr like pa0023-pernr,      " Personal Number
            arbgb like pa0023-arbgb,      " Previous Employer
            begda like pa0023-begda,      " Start Date
            endda like pa0023-endda,      " End Date
            taete like pa0023-taete,      " Last Position
            land1 like pa0023-land1,      " Country
            stltx like t513s-stltx,       " Position Text
            landx like t005t-landx,       " Country Text
          end of pemp_tab.
    Internal Table for Job History Data
    data: begin of job_tab occurs 0,
            pernr like pa0001-pernr,      " Personal Number
            begda like pa0001-begda,      " Promotion Date
            plans like pa0001-plans,      " Position
            stell like pa0001-stell,      " Job Key
            stltx like t513s-stltx,       " Job Text
            ptext like t528t-plstx,       " Position Text
          end of job_tab.
    Internal Table for Performance Appraisal Data
    data: begin of app_tab occurs 0,
            pernr like pa0001-pernr,       " Personal Number
            year(4) type     c,            " Current Year
            appr(35) type    c,            " C Y Appraisal
           year1(4) type    c,            " Last Year
           appr1(35) type   c,            " Last Year Appraisal
           year2(4) type    c,
           appr2(35) type   c,
           year3(4) type    c,
           appr3(35) type   c,
           year4(4) type    c,
           appr4(35) type   c,
          end of app_tab.
    Internal Table for Performance Appraisal Data
    data: begin of app1_tab occurs 0,
            year(4) type     c,            " Year
            appr(35) type    c,            " Appraisal
          end of app1_tab.
    Internal Table to get the Payroll Amounts
    data  wage_tab like pbwla occurs 0 with header line.
    Internal table for retreiving Employee Appraisals
    data  app_in_tab  like hrsobid occurs 0 with header line .
    data  app_out_tab like hrpe_profa  occurs 0 with header line .
    Declaration of Variables
    data : v_year(4)  type c,
           v_ayear(4) type c,
           v_cyear(4) type c,
           v_year1(4) type c,
           v_year2(4) type c,
           v_year3(4) type c,
           v_year4(4) type c,
           v_year5(4) type c,
           v_year6(4) type c,
           v_mon(2)   type c,
           v_date2  like sy-datum,
           v_date3  like sy-datum,
           v_date   like sy-datum,
           v_date1  like sy-datum.
    Declaration of Constants
    constants : c_x       type c value 'X',              " Sign
                c_pernr(8) type n value '00000000',      " Pernr
                c_p   like hrp1007-otype  value 'P',     " Object Type
                c_01  like hrp1001-plvar  value '01',    " Version
                c_val1(2) type c value '31',             " Date Type
                c_val2(2) type c value '12',             " Date Type
                c_val    like p0041-dar01 value '01',    " Date Type
                c_1      like pernr-persg value '1',     " Emp Group
                c_type   like hrp1001-otype  value 'S',  " Object Type
                c_date1  like sy-datum value '18000101', " Date
                c_date2  like sy-datum value '99991231', " Date
                c_lga01 like pa0008-lga01 value '0101',  " Wage Type
                c_lga02 like pa0008-lga01 value '0102',  " Wage Type
                c_lga03 like pa0008-lga01 value '0103',  " Wage Type
                c_lga04 like pa0008-lga01 value '0105',  " Wage Type
                c_lga05 like pa0008-lga01 value '0109',  " Wage Type
                c_lga06 like pa0008-lga01 value '0110',  " Wage Type
                c_lga07 like pa0008-lga01 value '0114',  " Wage Type
                c_lga08 like pa0008-lga01 value '0116',  " Wage Type
                c_lga09 like pa0008-lga01 value '0267',  " Wage Type
                c_kokrs  like cskt-kokrs value '1000'.   " Controlling Area
    Selection Screen
    selection-screen begin of block b1 with frame title text-003.
    selection-screen begin of line.
    selection-screen comment 1(33)   text-060.
    parameters: r_all radiobutton group rb1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 1(33)   text-020.
    parameters: r_per radiobutton group rb1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 1(33)   text-021.
    parameters: r_pay radiobutton group rb1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 1(33)   text-022.
    parameters: r_edn radiobutton group rb1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 1(33)   text-023.
    parameters: r_pemp radiobutton group rb1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 1(33)   text-024.
    parameters: r_job radiobutton group rb1.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 1(33)   text-025.
    parameters: r_app radiobutton group rb1.
    selection-screen end of line.
    selection-screen end of block b1.
    At selection-screen
    at selection-screen.
    Validate the Selection Screen fields
      perform validate_screen.
    Start-of-Selection
    start-of-selection.
    Selection of Period
      perform get_period.
    Get PERNR from LDB
    get pernr.
      if pernr-persg eq c_1 or pernr-pernr ne c_pernr.
        if r_all eq c_x.
    Get the Personal data from PA0001,PA0002, PA0008, PA0041
          perform get_pers_data.
    Get the Payroll data from PA0008
          perform get_pay_data.
    Get the Education data from PA0022
          perform get_edn_data.
    Get the Previous Employment data from PA0023
          perform get_pemp_data.
    Get the Job History data
          perform get_job_data.
    Get the Performance Appraisal data
          perform get_app_data.
        elseif r_per eq c_x.
    Get the Personal data from PA0001,PA0002, PA0008, PA0041
          perform get_pers_data.
        elseif r_pay eq c_x.
    Get the Payroll data from PA0008
          perform get_pay_data.
        elseif r_edn eq c_x.
    Get the Education data from PA0022
          perform get_edn_data.
        elseif r_pemp eq c_x.
    Get the Previous Employment data from PA0023
          perform get_pemp_data.
        elseif r_job eq c_x.
    Get the Job History data
          perform get_job_data.
        elseif r_app eq c_x.
    Get the Performance Appraisal data
          perform get_app_data.
        endif.
      endif.
    Top-of-page
    top-of-page.
    Write the Report and Column Headings
      perform top_of_page.
    End-of-Page
    end-of-page.
      perform end_of_page.
    End-of-Selection
    end-of-selection.
    Display the Output Report.
      perform display_report.
    Form-Routines
    *&      Form  validate_screen
    Validation of selection Screen fields
    form validate_screen.
    Validation of Personnel Number
      clear pa0003.
      if not pnppernr[] is initial.
        select pernr
        from pa0003 up to 1 rows
          into pa0003-pernr
          where pernr in pnppernr.
        endselect.
        if sy-subrc <> 0.
          message e999 with 'Incorrect Personnel Number Entered'(001).
        endif.
      endif.
    Validation of Cost Center
      clear csks.
      if not pnpkostl[] is initial.
        select single kostl
          into csks-kostl
          from csks
          where kostl in pnpkostl.
        if sy-subrc <> 0.
          message e999 with 'Invalid Cost Center'(002).
        endif.
      endif.
    Validation of Personnel Area
      clear t500p.
      if not pnpwerks[] is initial.
        select persa
        from t500p up to 1 rows
          into t500p-persa
          where persa in pnpwerks.
        endselect.
        if sy-subrc <> 0.
          message e999 with 'Incorrect Personnel Area Entered'(004).
        endif.
      endif.
    Validation of Personnel Sub Area
      clear t001p.
      if not pnpbtrtl[] is initial.
        select btrtl
        from t001p up to 1 rows
          into t001p-btrtl
          where btrtl in pnpbtrtl.
        endselect.
        if sy-subrc <> 0.
          message e999 with 'Incorrect Personnel Sub Area Entered'(005).
        endif.
      endif.
    Validation of Employee Group
      clear t501.
      if not pnppersg[] is initial.
        select persg
        from t501 up to 1 rows
          into t501-persg
          where persg in pnppersg.
        endselect.
        if sy-subrc <> 0.
          message e999 with 'Incorrect Employee Group Entered'(006).
        endif.
      endif.
    Validation of Employee Sub Group
      clear t503k.
      if not pnppersk[] is initial.
        select persk
        from t503k up to 1 rows
          into t503k-persk
          where persk in pnppersk.
        endselect.
        if sy-subrc <> 0.
          message e999 with 'Incorrect Employee Sub Group Entered'(007).
        endif.
      endif.
    endform.                  "validate_screen
    *&      Form  get_period
    Get the Correct Period based on Selection screen selection
    form get_period.
      clear: v_year,v_mon, v_date, v_date1.
      v_year = sy-datum+0(4).
      v_mon  = sy-datum+4(2).
      if pnptimr1 = c_x.      " Current Date
        pnpbegda = sy-datum.
        pnpendda = sy-datum.
      elseif pnptimr2 = c_x.  " Current Month
        concatenate v_year v_mon c_val into v_date.
        concatenate v_year v_mon c_val1 into v_date1.
        pnpbegda = v_date.
        pnpendda = v_date1.
      elseif pnptimr3 = c_x.  " Current Year
        concatenate v_year c_val c_val into v_date.
        concatenate v_year c_val2 c_val1 into v_date1.
        pnpbegda = v_date.
        pnpendda = v_date1.
      elseif pnptimr4 = c_x.  " Upto Today
        pnpbegda = c_date1.
        pnpendda = sy-datum.
      elseif pnptimr5 = c_x.  " From Today
        pnpbegda = sy-datum.
        pnpendda = c_date2.
      else.
        if ( pnpbegda is initial and pnpendda is initial ).
          pnpbegda = c_date1.
          pnpendda = c_date2.
        elseif pnpbegda is initial and not pnpendda is initial.
          pnpbegda = c_date1.
          pnpendda = pnpendda.
        elseif not ( pnpbegda is initial and pnpendda is initial ).
          pnpbegda = pnpbegda.
          pnpendda = pnpendda.
        endif.
      endif.
    endform.              "get_period
    *&      Form  get_pers_data
    Get the Personal Data from PA0001,PA0002,PA0008, PA0041
    form get_pers_data.
    Get data from Respective Infotypes
      rp_provide_from_last p0001 space pnpbegda pnpendda.
      rp_provide_from_last p0002 space pnpbegda pnpendda.
      rp_provide_from_last p0008 space pnpbegda pnpendda.
      rp_provide_from_last p0041 space pnpbegda pnpendda.
      pers_tab-pernr    = p0001-pernr.
      pers_tab-ename    = p0001-ename.
      pers_tab-werks    = p0001-werks.
      pers_tab-plans    = p0001-plans.
      pers_tab-kostl    = p0001-kostl.
      pers_tab-gbdat    = p0002-gbdat.
      pers_tab-trfgr    = p0008-trfgr.
    Get the Engaged Date
      read table p0041 with key dar01 = c_val.
      if sy-subrc = 0.
        pers_tab-hdate = p0041-dat01.
      endif.
    Get the Cost Center Text
      clear cskt-ltext.
      select single ltext into cskt-ltext from cskt
              where spras = sy-langu and
                    kokrs = c_kokrs and
                    kostl = p0001-kostl.
      if sy-subrc = 0.
        pers_tab-ctext = cskt-ltext.
      endif.
    Get the Position Text
      clear t528t-plstx.
      select single plstx into t528t-plstx from t528t
              where plans = p0001-plans and
                    otype = c_type and
                    sprsl = sy-langu.
      if sy-subrc = 0.
        pers_tab-ptext = t528t-plstx.
      endif.
    Get the Nationality
      clear t005t-natio.
      select single natio into t005t-natio from t005t
              where spras = sy-langu and
                    land1 = p0002-natio.
      if sy-subrc = 0.
        pers_tab-ntext = t005t-natio.
      endif.
    Get the Location (Personal Area) Text
      clear t500p-name1.
      select single name1 into t500p-name1 from t500p
              where persa = p0001-werks.
      if sy-subrc = 0.
        pers_tab-name1 = t500p-name1.
      endif.
      append pers_tab.
      clear pers_tab.
      sort pers_tab by pernr.
    endform.          "get_pers_data
    *&      Form  get_pay_data
    Get the Payroll Data from Infotype 0008
    form get_pay_data.
    Get the Payroll data from Respective Infotypes
      rp_provide_from_last p0008 space pnpbegda pnpendda.
      pay_tab-pernr    = pernr-pernr.
      call function 'RP_FILL_WAGE_TYPE_TABLE_EXT'
        exporting
         appli                              = 'E'
         begda                              = p0008-begda
         endda                              = p0008-endda
         infty                              = '0008'
         objps                              = '  '
         tclas                              = 'A'
         pernr                              = pernr-pernr
         seqnr                              = '   '
         subty                              = '0   '
         dlspl                              = 'X'
         msgflg                             = ''
         nordct                             = ''
        tables
          pp0001                             = p0001
          pp0007                             = p0007
          pp0008                             = p0008
          ppbwla                             = wage_tab
      PP0230                             =
      PP0014                             =
      PP0015                             =
      PP0052                             =
    EXCEPTIONS
      ERROR_AT_INDIRECT_EVALUATION       = 1
      OTHERS                             = 2
      if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
      loop at wage_tab.
        pay_tab-waers = wage_tab-waers.
        case wage_tab-lgart.
          when c_lga01.
            pay_tab-basic = wage_tab-betrg.
          when c_lga02.
            pay_tab-sup_allow = wage_tab-betrg.
          when c_lga03.
            pay_tab-hra_allow = wage_tab-betrg.
          when c_lga04.
            pay_tab-chl_allow = wage_tab-betrg.
          when c_lga05.
            pay_tab-soc_allow = wage_tab-betrg.
          when c_lga06.
            pay_tab-fix_allow = wage_tab-betrg.
          when c_lga07.
            pay_tab-ra_allow = wage_tab-betrg.
          when c_lga08.
            pay_tab-per_allow = wage_tab-betrg.
          when c_lga09.
            pay_tab-pen_allow = wage_tab-betrg.
          when others.
            pay_tab-oth_allow = pay_tab-oth_allow + wage_tab-betrg.
        endcase.
        pay_tab-tot_allow = pay_tab-basic + pay_tab-sup_allow +
                            pay_tab-hra_allow + pay_tab-chl_allow +
                            pay_tab-soc_allow + pay_tab-fix_allow +
                            pay_tab-ra_allow + pay_tab-per_allow +
                            pay_tab-oth_allow - pay_tab-pen_allow.
      endloop.
      append pay_tab.
      clear  pay_tab.
    endform.          "get_pay_data
    *&      Form  get_edn_data
    Get the Education Data from Infotype 0022
    form get_edn_data.
    Get the Education data from Respective Infotypes
      loop at p0022 where pernr = pernr-pernr.
        edn_tab-pernr    = pernr-pernr.
        edn_tab-ausbi    = p0022-ausbi.
        edn_tab-slart    = p0022-slart.
        edn_tab-insti    = p0022-insti.
        edn_tab-sland    = p0022-sland.
        edn_tab-slabs    = p0022-slabs.
        edn_tab-anzkl    = p0022-anzkl.
        edn_tab-anzeh    = p0022-anzeh.
    Get the Discipline Text
        clear t518b-atext.
        select single atext into t518b-atext from t518b
                where langu = sy-langu and
                      ausbi = p0022-ausbi.
        if sy-subrc = 0.
          edn_tab-atext = t518b-atext.
        endif.
    Get the Edn Establishment Text
        clear t517t-stext.
        select single stext into t517t-stext from t517t
                where slart = p0022-slart and
                      sprsl = sy-langu.
        if sy-subrc = 0.
          edn_tab-stext = t517t-stext.
        endif.
    Get the Certificate Text
        clear t519t-stext.
        select single stext into t519t-stext from t519t
                where slabs = p0022-slabs and
                      sprsl = sy-langu.
        if sy-subrc = 0.
          edn_tab-ctext = t519t-stext.
        endif.
    Get the Unit Text
        clear t538t-etext.
        select single etext into t538t-etext from t538t
                where zeinh = p0022-anzeh and
                      sprsl = sy-langu.
        if sy-subrc = 0.
          edn_tab-etext = t538t-etext.
        endif.
    Get the Country Description
        clear t005t-landx.
        select single landx into t005t-landx from t005t
                where spras = sy-langu and
                      land1 = p0022-sland.
        if sy-subrc = 0.
          edn_tab-landx = t005t-landx.
        endif.
        append edn_tab.
        clear edn_tab.
      endloop.
    endform.              "edn_data
    *&      Form  get_pemp_data
    Get the Previous Employment Data from Infotype 0023
    form get_pemp_data.
    Get the Previous Employment data from Respective Infotypes
      loop at p0023 where pernr = pernr-pernr.
        pemp_tab-pernr    = pernr-pernr.
        pemp_tab-arbgb    = p0023-arbgb.
        pemp_tab-begda    = p0023-begda.
        pemp_tab-endda    = p0023-endda.
        pemp_tab-taete    = p0023-taete.
        pemp_tab-land1    = p0023-land1.
    Get the Last Job Text
        clear t513c-ltext.
        select single ltext into t513c-ltext from t513c
                where taete = pemp_tab-taete and
                      spras = sy-langu.
        if sy-subrc = 0.
          pemp_tab-stltx = t513c-ltext.
        endif.
    Get the Country Description
        clear t005t-landx.
        select single landx into t005t-landx from t005t
                where spras = sy-langu and
                      land1 = pemp_tab-land1.
        if sy-subrc = 0.
          pemp_tab-landx = t005t-landx.
        endif.
        append pemp_tab.
        clear pemp_tab.
      endloop.
      sort pemp_tab by pernr.
    endform.              "pemp_data
    *&      Form  get_job_data
    Get the Job History Data from Infotype
    form get_job_data.
    Get the Job History data from Respective Infotypes
      loop at p0001 where pernr = pernr-pernr.
        job_tab-pernr    = pernr-pernr.
        job_tab-begda    = p0001-begda.
        job_tab-plans    = p0001-plans.
        job_tab-stell    = p0001-stell.
    Get the Last Job Text
        clear t513s-stltx.
        select single stltx into t513s-stltx from t513s
                where stell = job_tab-stell and
                      sprsl = sy-langu.
        if sy-subrc = 0.
          job_tab-stltx = t513s-stltx.
        endif.
    Get the Position Text
        clear t528t-plstx.
        select single plstx into t528t-plstx from t528t
                where plans = job_tab-plans and
                      otype = c_type and
                      sprsl = sy-langu.
        if sy-subrc = 0.
          job_tab-ptext = t528t-plstx.
        endif.
        append job_tab.
        clear  job_tab.
      endloop.
      sort job_tab by pernr.
    endform.          "get_job_data
    *&      Form  get_app_data
    Get the Performance Appraisal Data from Infotype
    form get_app_data.
      clear: v_cyear, v_year1, v_year2, v_year3, v_year4,
             v_year5, v_year6, v_ayear, v_date2, v_date3.
      v_cyear = sy-datum+0(4) - 1.
      v_year1 = v_cyear - 1.
      v_year2 = v_cyear - 2.
      v_year3 = v_cyear - 3.
      v_year4 = v_cyear - 4.
      v_year5 = v_cyear - 5.
      v_year6 = v_cyear - 6.
      concatenate v_cyear c_date2+4(4) into v_date2.
      concatenate v_year6 c_date1+4(4) into v_date3.
      clear: app_in_tab, app_out_tab.
      refresh: app_in_tab, app_out_tab.
      app_in_tab-plvar = c_01.
      app_in_tab-otype = c_p.
      app_in_tab-sobid = pernr-pernr.
      append app_in_tab.
    Get Appraisals data from Respective Infotypes
      call function 'RHPA_APPRAISEES_APP_READ'
       exporting
         begda               =   v_date3
         endda               =   v_date2
      WITH_STEXT          = 'X'
      WITH_ADD_INFO       = 'X'
        tables
          appraisees          = app_in_tab
          appraisals          = app_out_tab
       exceptions
         no_authority        = 1
         undefined           = 2
         others              = 3
      if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
      sort app_out_tab  by sobid vbegd vendd appraisal_adate descending .
      delete adjacent duplicates from app_out_tab
                comparing  sobid vbegd vendd.
      loop at app_out_tab where appraisal_histo = 'X' .
        condense app_out_tab-appraisal_result.
        app1_tab-year = app_out_tab-vendd+0(4).
        app1_tab-appr = app_out_tab-appraisal_result_text.
        append app1_tab.
        clear app1_tab.
      endloop.
      sort app1_tab by year descending.
      loop at app1_tab.
        app_tab-pernr    = pernr-pernr.
        move-corresponding  app1_tab to app_tab.
        append app_tab.
        clear: app1_tab, app_tab.
      endloop.
      refresh app1_tab.
      sort app_tab by pernr.
      delete app_tab where year = ' ' and appr = ' ' .
    endform.          "get_app_data
    *&      Form  top_of_page
    Write the Report and Column Headings
    form top_of_page.
      skip.
      format color col_heading on.
      if r_all eq c_x.
        write: /1(193) 'NATIONAL DRILLING COMPANY'(009) centered,
               /1(193) 'Employee Details Report'(066) centered.
      elseif r_per eq c_x.
        write: /1(193) 'NATIONAL DRILLING COMPANY'(009) centered,
               /1(193) 'Employee Details - Personal Data'(010)
                                                centered.
      elseif r_pay eq c_x.
        write: /1(172) 'NATIONAL DRILLING COMPANY'(009) centered,
               /1(172) 'Employee Details - Payroll Data'(027)
                                                centered.
      elseif r_edn eq c_x.
        write: /1(172) 'NATIONAL DRILLING COMPANY'(009) centered,
               /1(172) 'Employee Details - Education Data'(028)
                                                centered.
      elseif r_pemp eq c_x.
        write: /1(97) 'NATIONAL DRILLING COMPANY'(009) centered,
              /1(97) 'Employee Details - Previous Employment Data'(029)
                                                centered.
      elseif r_job eq c_x.
        write: /1(75) 'NATIONAL DRILLING COMPANY'(009) centered,
              /1(75) 'Employee Details - Job History Data'(030)
                                                centered.
      elseif r_app eq c_x.
        write: /1(192) 'NATIONAL DRILLING COMPANY'(009) centered,
              /1(192) 'Employee Details - Performance Appraisal Data'(031)
                                                centered.
      endif.
      format color off.
      if pnptimr1 = c_x.      " Current Date
        write: /2 'Period From     :'(008), sy-datum,
                         'To:'(019), sy-datum.
      elseif pnptimr2 = c_x.  " Current Month
        write: /2 'Period From     :'(008), v_date, 'To:'(019), v_date1.
      elseif pnptimr3 = c_x.  " Current Year
        write: /2 'Period From     :'(008), v_date, 'To:'(019), v_date1.
      elseif pnptimr4 = c_x.  " Upto Today
        write: /2 'Period From     :'(008), c_date1, 'To:'(019), sy-datum.
      elseif pnptimr5 = c_x.  " From Today
        write: /2 'Period From     :'(008), sy-datum, 'To:'(019), c_date2.
      else.
        if ( pnpbegda is initial and pnpendda is initial ).
          write: /2 'Period From     :'(008), c_date1, 'To:'(019), c_date2.
        elseif pnpbegda is initial and not pnpendda is initial.
          write: /2 'Period From     :'(008), c_date1, 'To:'(019), pnpendda.
        elseif not ( pnpbegda is initial and pnpendda is initial ).
          write: /2 'Period From     :'(008), pnpbegda,
                   'To:'(019), pnpendda.
        endif.
      endif.
      if not ( r_pemp eq c_x or r_job eq c_x ).
        write: 140 'Report Run Date:'(073), sy-datum.
        if not pnpkostl[] is initial.
          if pnpkostl-high is initial.
            write: /2 'Cost Center     :'(074), pnpkostl-low,
                  125 'Time           :'(075), sy-uzeit.
          else.
            write: /2 'Cost Center From:'(076), pnpkostl-low+7(3),
                                      'To:'(019), pnpkostl-high,
                  140 'Time           :'(075), sy-uzeit.
          endif.
        else.
          write: /140  'Time           :'(075), sy-uzeit.
        endif.
        if not pnppernr[] is initial.
          if pnppernr-high is initial.
            write: /2 'Personal Number :'(077), pnppernr-low,
                   140 'User           :'(078), sy-uname.
          else.
            write: /2 'Personal No.From:'(079),  pnppernr-low,
                                      'To:'(019), pnppernr-high,
                   140 'User           :'(078), sy-uname.
          endif.
        else.
          write: /140 'User           :'(078), sy-uname.
        endif.
        write: /140 'Page No        :'(080), sy-pagno.
      else.
        write: 48 'Report Run Date:'(073), sy-datum.
        if not pnpkostl[] is initial.
          if pnpkostl-high is initial.
            write: /2 'Cost Center     :'(074), pnpkostl-low,
                  48 'Time           :'(075), sy-uzeit.
          else.
            write: /2 'Cost Center From:'(076), pnpkostl-low+7(3),
                                      'To:'(019), pnpkostl-high,
                  48 'Time           :'(075), sy-uzeit.
          endif.
        else.
          write: /48  'Time           :'(075), sy-uzeit.
        endif.
        if not pnppernr[] is initial.
          if pnppernr-high is initial.
            write: /2 'Personal Number :'(077), pnppernr-low,
                   48 'User           :'(078), sy-uname.
          else.
            write: /2 'Personal No.From:'(079),  pnppernr-low,
                                      'To:'(019), pnppernr-high,
                   48 'User           :'(078), sy-uname.
          endif.
        else.
          write: /48 'User           :'(078), sy-uname.
        endif.
        write: /48 'Page No        :'(080), sy-pagno.
      endif.
      skip.
      if r_per eq c_x.
        write /1(193) sy-uline.
        format color col_heading on.
        write:/1 sy-vline,  2(10) 'Employee #'(011),
              12 sy-vline, 13(40) 'Name'(012) centered,
              53 sy-vline, 54(8)  'Grade'(013) centered,
              62 sy-vline, 63(15) 'Nationality'(017) centered,
              78 sy-vline, 79(10) 'Eng.Date'(014) centered,
              89 sy-vline, 90(10) 'Birth Date'(016) centered,
             100 sy-vline,101(25) 'Location'(026) centered,
             126 sy-vline,127(25) 'Position'(015) centered,
             152 sy-vline,153(40) 'Division'(018) centered,
             193 sy-vline.
        format color off.
        write /1(193) sy-uline.
      elseif r_pay eq c_x.
        write /1(188) sy-uline.
        format color col_heading on.
        write:/1 sy-vline,  2(10) 'Employee #'(011),
              12 sy-vline, 13(15) 'Basic'(033) centered,
              28 sy-vline, 29(15) 'Housing Allow.'(034) centered,
              44 sy-vline, 45(15) 'Sup.Allow.'(035) centered,
              60 sy-vline, 61(15) 'Social Allow.'(036) centered,
              76 sy-vline, 77(15) 'Child Allow.'(037) centered,
              92 sy-vline, 93(15) 'Fixed Overtime'(038) centered,
             108 sy-vline,109(15) 'R.A.Allow.'(041) centered,
             124 sy-vline,125(15) 'Perform.Allow.'(039) centered,
             140 sy-vline,141(15) 'Pension.Allow.'(059) centered,
             156 sy-vline,157(15) 'Others'(040) centered,
             172 sy-vline,173(15) 'Total'(042) centered,
             188 sy-vline.
        format color off.
        write /1(188) sy-uline.
      elseif r_edn eq c_x.
        write /1(172) sy-uline.
        format color col_heading on.
        write:/1 sy-vline,  2(10) 'Employee #'(011),
              12 sy-vline, 13(25) 'Discipline'(043) centered,
              38 sy-vline, 39(20) 'Edu.Establishment'(044) centered,
              59 sy-vline, 60(45) 'Institute'(045) centered,
             105 sy-vline,106(15) 'Country'(046) centered,
             121 sy-vline,122(30) 'Certificate'(047) centered,
             152 sy-vline,153(19) 'Duration of Course'(048) centered,
             172 sy-vline.
        format color off.
        write /1(172) sy-uline.
      elseif r_pemp eq c_x.
        write /1(97) sy-uline.
        format color col_heading on.
        write:/1 sy-vline, 12 sy-vline,
              33 sy-vline, 34(21) 'Employment Period'(055) centered,
              55 sy-vline, 81 sy-vline,
              97 sy-vline.
        write:/1 sy-vline,  2(10) 'Employee #'(011),
              12 sy-vline, 13(20) 'Employer'(049) centered,
              33 sy-vline, 34(10) 'From'(050) centered,
              44 sy-vline, 45(10) 'To'(051) centered,
              55 sy-vline, 56(25) 'Last Position'(052) centered,
              81 sy-vline, 82(15) 'Country'(053) centered,
              97 sy-vline.
        format color off.
        write /1(97) sy-uline.
      elseif r_job eq c_x.
        write /1(75) sy-uline.
        format color col_heading on.
        write:/1 sy-vline,
              12 sy-vline,13(10) 'Date of'(054) centered,
              23 sy-vline,49 sy-vline,
              75 sy-vline.
        write:/1 sy-vline,2(10)  'Employee #'(011),
              12 sy-vline,13(10) 'Upgrading/'(058) centered,
              23 sy-vline,24(25) 'Position'(015) centered,
              49 sy-vline,50(25) 'Job'(056) centered,
              75 sy-vline.
        write:/1 sy-vline, 12 sy-vline,
              13(10) 'Promotion'(057) centered,
              23 sy-vline, 49 sy-vline,
              75 sy-vline.
        format color off.
        write /1(75) sy-uline.
      elseif r_app eq c_x.
        format color col_heading on.
         write: /1 sy-vline,2(56) sy-uline, 58 sy-vline,
                /1 sy-vline, 2(56) text-025 centered color 3, 58 sy-vline.
         write /1(58) sy-uline.
         format color col_heading on.
         write:/1 sy-vline,  2(10) 'Employee #'(011),
               12 sy-vline, 13(4)  'Year'(067),
               17 sy-vline, 18(40) 'Appraisal Text'(068) centered,
               58 sy-vline.
        format color off.
        write /1(58) sy-uline.
      endif.
    endform.               "top_of_page
    *&      Form  end_of_page
    Write the Page footers
    form end_of_page.
      if r_per eq c_x.
        write : /(193) sy-uline.
      elseif r_pay eq c_x.
        write : /(188) sy-uline.
      elseif r_edn eq c_x.
        write : /(172) sy-uline.
      elseif r_pemp eq c_x.
        write /1(97) sy-uline.
      elseif r_job eq c_x.
        write /1(75) sy-uline.
      elseif r_app eq c_x.
        write /1(217) sy-uline.
      endif.
    endform.               "end_of_page
    *&      Form  Display_report
    Write the Report Output
    form display_report.
      if r_all eq c_x.
        if pers_tab[] is initial.
          message i999 with
           'No Personal Data found'(061).
        else.
          write: /1 sy-vline,2(51) sy-uline, 53 sy-vline,
                 /1 sy-vline, 2(50) text-020 centered color 3, 53 sy-vline.
          write /1(193) sy-uline.
          format color col_heading on.
          write:/1 sy-vline,  2(10) 'Employee #'(011),
                12 sy-vline, 13(40) 'Name'(012) centered,
                53 sy-vline, 54(8)  'Grade'(013) centered,
                62 sy-vline, 63(15) 'Nationality'(017) centered,
                78 sy-vline, 79(10) 'Eng.Date'(014) centered,
                89 sy-vline, 90(10) 'Birth Date'(016) centered,
               100 sy-vline,101(25) 'Location'(026) centered,
               126 sy-vline,127(25) 'Position'(015) centered,
               152 sy-vline,153(40) 'Division'(018) centered,
               193 sy-vline.
          format color off.
          write /1(193) sy-uline.
          sort pers_tab by pernr.
          loop at pers_tab.
            format color col_normal.
            write:/1 sy-vline,  2(10) pers_tab-pernr,
                  12 sy-vline, 13(40) pers_tab-ename,
                  53 sy-vline, 56(6)  pers_tab-trfgr,
                  62 sy-vline, 63(15) pers_tab-ntext,
                  78 sy-vline, 79(10) pers_tab-hdate,
                  89 sy-vline, 90(10) pers_tab-gbdat,
                 100 sy-vline,101(25) pers_tab-name1,
                 126 sy-vline,127(25) pers_tab-ptext,
                 152 sy-vline,153(40) pers_tab-ctext,
                 193 sy-vline.
          endloop.
          write /1(193) sy-uline.
        endif.
        skip 3.
        if pay_tab[] is initial.
          message i999 with
           'No Standard Pay Data found'(062).
        else.
          write: /1 sy-vline,2(42) sy-uline, 44 sy-vline,
                 /1 sy-vline, 2(42) text-021 centered color 3, 44 sy-vline.
          format color col_heading on.
          write /1(188) sy-uline.
          write:/1 sy-vline,  2(10) 'Employee #'(011),
                12 sy-vline, 13(15) 'Basic'(033) centered,
                28 sy-vline, 29(15) 'Housing Allow.'(034) centered,
                44 sy-vline, 45(15) 'Sup.Allow.'(035) centered,
                60 sy-vline, 61(15) 'Social Allow.'(036) centered,
                76 sy-vline, 77(15) 'Child Allow.'(037) centered,
                92 sy-vline, 93(15) 'Fixed Overtime'(038) centered,
               108 sy-vline,109(15) 'R.A.Allow.'(041) centered,
               124 sy-vline,125(15) 'Perform.Allow.'(039) centered,
               140 sy-vline,141(15) 'Pension.Allow.'(059) centered,
               156 sy-vline,157(15) 'Others'(040) centered,
               172 sy-vline,173(15) 'Total'(042) centered,
               188 sy-vline.
          format color off.
          write /1(188) sy-uline.
          sort pay_tab by pernr.
          loop at pay_tab.
            format color col_normal.
            write:/1 sy-vline,  2(10) pay_tab-pernr,
                  12 sy-vline,
                  13(15) pay_tab-basic currency pay_tab-waers no-zero,
                  28 sy-vline,
                  29(15) pay_tab-hra_allow currency pay_tab-waers no-zero,
                  44 sy-vline,
                  45(15) pay_tab-sup_allow currency pay_tab-waers no-zero,
                  60 sy-vline,
                  61(15) pay_tab-soc_allow currency pay_tab-waers no-zero,
                  76 sy-vline,
                  77(15) pay_tab-chl_allow currency pay_tab-waers no-zero,
                  92 sy-vline,
                  93(15) pay_tab-fix_allow currency pay_tab-waers no-zero,
                 108 sy-vline,
                 109(15) pay_tab-ra_allow currency pay_tab-waers no-zero,
                 124 sy-vline,
                 125(15) pay_tab-per_allow currency pay_tab-waers no-zero,
                 140 sy-vline.
            pay_tab-pen_allow = pay_tab-pen_allow * -1.
            write: 141(15) pay_tab-pen_allow currency pay_tab-waers no-zero,
                   156 sy-vline,
                   157(15) pay_tab-oth_allow currency pay_tab-waers no-zero,
                   172 sy-vline,
                   173(15) pay_tab-tot_allow currency pay_tab-waers no-zero,
                   188 sy-vline.
          endloop.
          write /1(188) sy-uline.
        endif.
        skip 3.
        if edn_tab[] is in

  • Tables or Logical database to create standard report for Equipment BOM?

    Dear All
    My client has requirement for the report with fields like to see the status of Equipment BOM(input of Equipment number in selection screen) or for Particular set of Materials(input of component number in selection screen) available stock quantity,storage location of stock,description of component,price of component,Pending PR of component(if any),Pending PO of component(if any) etc
    I want to develop the report with standard infoset query instead of going for abap development.is there any logical database to map the report or what tables can i use for table joins??
    Required sample report with fields as below
    BOM Component
    Stock available/Not available indicator
    Description of Components
    BOMQty/ UOM
    Price
    Part Number
    Plnt
    Sloc
    Stock Qty
    Bin
    Pending PR
    Pending PO
    1000001121
    YES
    BEARING
    NO
    2000
    ERS22
    1000
    MECH
    4
    A1
    300012431
    Regards
    M.Manojkumar

    Manoj,
    The following is the tested solution.
    Table join
    Output
    This figure shows the case of a Equipment BOM where 3 components are there. Installed Quantity are 4, 1, 1 respectively. Last two columns are showing the Storage Locations and the Stocks available.
    Fields taken to output are
    From STPO : IDNRK MENGE MEINS
    From MARD  LGORT LABST
    As said before, more than this you can not do in SQVI. With this basic join in SQ02, using codes in Extras you can do much more.
    Jogeswara Rao K

  • HR Reporing Payroll using Logical Database PNPCE

    Hi ALL
    Can any body explain me how can we do HR Payroll reporing using logical database PNPCE.
    In the program attibutes as mentioned we need to scee 900 for payroll reporting, but when I use PNPCE I cant see that screen in the Dropdown.
    can any body help me with this.
    regards
    AJ

    check this program..
    REPORT    ZHR_PAYROLL_EX1
               MESSAGE-ID ZZ
               LINE-SIZE 132
               LINE-COUNT 64(2)
               NO STANDARD PAGE HEADING .
                  T A B L E S                                            *
    TABLES    : PA0001 ,        "Infotype 0001
                 PCL1,           "HR Cluster 1
                 PCL2,           "HR Cluster 2
                 T549A,          "Payroll Accounting Areas
                 T549Q.          "Payroll Periods
                  I N C L U D E S                                        *
    *--Standard Include for US Payroll
    INCLUDE RPC2RUU0.            "Cluster RD data definition
    INCLUDE RPC2CD00.            "Cluster CD Data-Definition
    INCLUDE RPC2CA00.            "Cluster CA Data-Definition
    INCLUDE RPC2RX00.            "Cluster RF data definition internat. part
    INCLUDE RPPPXD00.            "Data definition buffer PCL1/PCL2
    INCLUDE RPPPXD10.            "Common part buffer PCL1/PCL2
    INCLUDE RPPPXM00.            "Buffer handling routine
                    INTERNAL TABLES
    *Internal Table to Hold data from PA0001
    DATA : BEGIN OF I_0001 OCCURS 0,
              PERNR LIKE PA0001-PERNR,  "Personnel Number
            END OF I_0001.
    *Internal Table to Hold data from PA0001
    DATA : BEGIN OF I_FINAL OCCURS 0,
              PERNR LIKE PA0001-PERNR, "Personnel Number
              GAMNT LIKE PC207-BETRG,  "Gross Amount
              NTAMT LIKE PC207-BETRG,  "Net Amount
              PAYDT LIKE PC261-PAYDT,  "Pay Date
              RUNDT LIKE PC261-RUNDT,  "Run Date
              VORNA LIKE PA0002-VORNA,  "First Name
              NACHN LIKE PA0002-NACHN,  "Last Name
            END OF I_FINAL.
    *Internal Table to Hold data from PA0002
    DATA : BEGIN OF I_0002 OCCURS 0,
              PERNR LIKE PA0002-PERNR,  "Personnel Number
              VORNA LIKE PA0002-VORNA,  "First Name
              NACHN LIKE PA0002-NACHN,  "Last Name
            END OF I_0002.
    Control record type
    TYPES     : BEGIN OF T_T569V,
                   ABKRS    LIKE T569V-ABKRS, "Personnel Area
                   PABRJ    LIKE T569V-PABRJ, "Accounting year
                   PABRP    LIKE T569V-PABRP, "Accounting period
                   STATE    LIKE T569V-STATE, "Status of Control Record
                   ADRUN    LIKE T569V-ADRUN, "HR: Special payroll run
                 END   OF T_T569V.
                      STRUCTURES
    DATA : WA_T569V TYPE T_T569V.    " Work area for t569v
                     DATA
    DATA : V_PABRJ  LIKE T569V-PABRJ,  "Accounting year
            V_PABRP  LIKE T569V-PABRP,  "Accounting period
            V_BEGDA  LIKE SY-DATUM,     "Begin Date
            V_ENDDA  LIKE SY-DATUM,     "End Date
            V_FPPER(6) TYPE C,          "For Period
            V_SEQNR  LIKE PC261-SEQNR.  "Sequence Number
       SELECTION SCREEN
    Selectio Screen Block for Employee Selection.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_PERNR FOR PA0001-PERNR, "Pernr
                      S_DATE  FOR SY-DATUM.     "Date
    SELECTION-SCREEN END OF BLOCK B1.
       START-OF-SELECTION
    START-OF-SELECTION.
    *Get Data from pa0001
       PERFORM GET_DATA_FROM_0001.
    *Get Data from pa0001
       PERFORM GET_DATA_FROM_0002.
    *Get CHAD Details
       PERFORM GET_PAYDATA.
       END-OF-SELECTION
    END-OF-SELECTION.
       IF NOT I_FINAL[] IS INITIAL.
    *Print the Final Report.
         PERFORM PRINT_REPORT.
       ENDIF.
                    T O P  O F  P A G E
    TOP-OF-PAGE.
    Display Header
       PERFORM DISPLAY_HEADER.
                    S U B - R O U T I N E S
    *&      Form  get_data_from_0001
          Get Data from 0001
    FORM GET_DATA_FROM_0001.
       SELECT PERNR                     "Personnel Number
              FROM PA0001
              INTO TABLE I_0001
              WHERE PERNR IN S_PERNR AND
                    ENDDA >= S_DATE-LOW AND
                    BEGDA <= S_DATE-HIGH .
       IF SY-SUBRC = 0.
         SORT I_0001 BY PERNR.
       ENDIF.
    ENDFORM.                    " get_data_from_0001
    *&      Form  get_data_from_0002
          Get Data from 0002
    FORM GET_DATA_FROM_0002.
       SELECT PERNR                     "Personnel Number
              VORNA
              NACHN
              FROM PA0002
              INTO TABLE I_0002
              WHERE PERNR IN S_PERNR AND
                    ENDDA >= S_DATE-LOW AND
                    BEGDA <= S_DATE-HIGH .
       IF SY-SUBRC = 0.
         SORT I_0002 BY PERNR.
       ENDIF.
    ENDFORM.                    " get_data_from_0002
    *&      Form  populate_chad_coinage_table
          text
    FORM GET_PAYDATA.
       LOOP AT I_0001.
         READ TABLE I_0002 WITH KEY PERNR = I_0001-PERNR BINARY SEARCH.
         IF SY-SUBRC = 0.
           I_FINAL-VORNA = I_0002-VORNA.
           I_FINAL-NACHN = I_0002-NACHN.
         ENDIF.
    Read Result Directory for Payroll Results for a Employee.
         PERFORM CU_READ_RGDIR.
    Get Sequence Number & Associated Payroll Results.
         PERFORM GET_PAYROLL_RESULTS.
       ENDLOOP.
    ENDFORM.                    " get_paydata
    *&      Form  cu_read_rgdir
          Reag rgdir to get the results with conty grouping 'TD'
    FORM CU_READ_RGDIR.
       DATA : V_MOLGA  LIKE T500L-MOLGA ."Country Grouping
    *Call function module to get Results
       CALL FUNCTION 'CU_READ_RGDIR'
         EXPORTING
           PERSNR          = I_0001-PERNR
         IMPORTING
           MOLGA           = V_MOLGA
         TABLES
           IN_RGDIR        = RGDIR
         EXCEPTIONS
           NO_RECORD_FOUND = 1
           OTHERS          = 2.
       SORT RGDIR BY SEQNR.
    ENDFORM.                    " cu_read_rgdir
    *&      Form  get_payroll_results
          Get Sequence number
    FORM GET_PAYROLL_RESULTS.
       LOOP AT RGDIR WHERE   SRTZA = 'A' AND
                         VOID IS INITIAL AND
                         REVERSAL IS INITIAL AND
                         OUTOFSEQ IS INITIAL AND
                         PAYDT    IN S_DATE.
         V_SEQNR = RGDIR-SEQNR.
    *-- Macro Call for Germany
         RP-INIT-BUFFER.
         RX-KEY-PERNR = I_0001-PERNR.
         RX-KEY-SEQNO = V_SEQNR.
         RP-IMP-C2-RU.
         LOOP AT RT WHERE LGART = '/559'.
           I_FINAL-PERNR = I_0001-PERNR.
           I_FINAL-GAMNT = RT-BETRG.
           I_FINAL-PAYDT = RGDIR-PAYDT.
           I_FINAL-RUNDT = RGDIR-RUNDT.
           APPEND I_FINAL.
           CLEAR  I_FINAL.
         ENDLOOP.
       ENDLOOP.
    ENDFORM.                    "get_payroll_results
    *&      Form  display_header
          Display Header
    FORM DISPLAY_HEADER .
       FORMAT COLOR 1.
       ULINE.
       WRITE:/1 SY-VLINE,
             (15) 'Empl Number',
             SY-VLINE,
             (20) 'First Name',
             SY-VLINE,
             (20) 'Last Name',
             SY-VLINE,
             (15) 'Pay Date',
             SY-VLINE,
             (15) 'Run Date',
             SY-VLINE,
             (25) 'Gross Amount',
             132 SY-VLINE.
       ULINE.
       FORMAT COLOR OFF.
    ENDFORM.                    " display_header
    *&      Form  print_report
          Display Report
    FORM PRINT_REPORT .
       LOOP AT I_FINAL.
         WRITE:/1 SY-VLINE,
               (15) I_FINAL-PERNR,
               SY-VLINE,
               (20) I_FINAL-VORNA,
               SY-VLINE,
               (20) I_FINAL-NACHN,
               SY-VLINE,
               (15) I_FINAL-PAYDT,
               SY-VLINE,
               (15) I_FINAL-RUNDT,
               SY-VLINE,
               (25) I_FINAL-GAMNT,
               132 SY-VLINE.
         ULINE.
       ENDLOOP.
       SKIP 2.
       WRITE:/1 'Period Begin Date:',(25) V_BEGDA.
       WRITE:/1 'Period End   Date:',(25) V_ENDDA.
    ENDFORM.                    " print_report

  • Standard screen for PNP logical database

    hello All,
    I am using PNP logical database and i have modified the standard selection screen for PNP.
    But now there is a button that appears , although the rest is supressed as i wanted it to.
    Our forums active contrubutor suresh datti has provided me a solution before to go to sytem then status and then click screen 100 then invisible the push button and activate and re-execute the program. The method seems to work fine. But surprisingly after some time the button appears again..
    any idea..??
    thanks,
    Reena..

    >>>I do not knw how to create a variant or how variant are related to selection screens..can u please elaborate..
    Don't worry..then its not the issue..
    anyway Pl take a look at the following <a href="http://help.sap.com/saphelp_erp2005vp/helpdata/en/c0/980374e58611d194cc00a0c94260a5/frameset.htm">SAP Help</a> on Variants.
    ~Suresh

  • SFLIGHT is NOT defined for the current logical database.

    I have just started learning ABAP and bought an ABAP Objects book by Horst Keller. I have installed 4.6d mini sap and SAP GUI 6.4 on win XP Prof. I executed S_FLIGHT_MODEL_DATA_GENERATOR to load DB tables.
    (1). When I tried to check a sample program, I get an error message SFLIGHT is not defined for the current logical database.
    Here is the partial code:
    REPORT zbcb01f1 .
    TABLES: sflight, sbook.
    DATA: BEGIN OF sr OCCURS 100,
          carrid LIKE sbook-carrid,
          connid LIKE sbook-connid,
          fldate LIKE sbook-fldate,
          bookid LIKE sbook-bookid,
          order_date LIKE sbook-order_date,
          loccuram LIKE sbook-loccuram,
          END OF sr.
    GET sflight.   <---- Error is pointed here
    (2). I am also not getting Graphical Screen Painter when selecting Layout for a screen. Instead, I am getting alphanumeric editor.
    Someone please help me.  
    Raizak.

    Hi Raizak,
    the easiest way is to go to service.sap.com/notes and enter the note number. For this time I've copied the 2 notes below.
    Best regards,
    Christian
    Symptom
    The Graphical Layout Editor of the Screen Painter either does not start or terminates.Error message 37527 is displayed in the session in which the call was made (Graphical Layout Editor not available.
    Additional key words
    () EUNOTE, EUSCREENPAINTER, 37 527
    Cause and prerequisites
    This note comprises all the common causes for error message 37527 and provides you with information on how to systematically trouble shoot the problem.
    1. Windows32 or UNIX/motif?
    As of Release 4.6B there is only the program version for 32bit Windows (NT, 95, 98, 2000 ff.).Up to Release 4.6A there was also a version for UNIX/Motif.All of the more current notes (with the exception of Note 45490) refer only to the Windows version.
    2. Termination at the start or during use?
    The following diagnostic steps refer to the causes of the errors which prevent the Graphical Layout Editor from starting. However, there are also known error causes, which result in the program terminating when the application is being used and which also produce the 37527 error message. This affects -
    Rel.4.6C/D: Termination when attempting to read texts in the logon language -> Note 375494
    Crash after transferring program and dictionary fields. Termination after transferring program and dictionary fields -> Note 189245
    Release 3.1I: Termination after inputting field text -> Note 113318
    3. Is the SAPGUI installation correct?
    The Graphical Layout Editor is automatically installed during the standard installation of the SAPGUI.If you chose a non-standard installation, then you should have explicitely selected its installation (component "Development Tools - Graphical Screen Painter").
    The program executable is called gneux.exe.During the SAPGUI installation it is placed in the same directory as the SAPGUI programms (for example, front.exe) (usually C:\Program Files\SAPpc\sapgui). The following belong to the program:
    - An additonal executable gnetx.exe (RFC starter program)
    - the DLL eumfcdll.dll
    - various eusp* data files (that is, the names all begin with eusp.)
    You can check the completeness of the program installation by starting the program gneux.exe locally in the SAPGUI directory (for example, by double-clicking on the program name in the Explorer window).The Layout Editor is displayed with German texts and an empty drawing area for the pseudo screen EUSPDYND 0000.
    If the installation is not complete, an error dialog box provides information regarding the cause of the error, for example, sometimes the DLL eumfcdll.dll is missing after reinstalling the SAPGUI. For example, the eumfcdll.dll DLL was sometimes missing after the SAPGUI was reinstalled.
    4. System link defined and okay?
    The Graphical Layout Editor is a separate program which is started by the Screen Painter Transaction (SE51) on the Frontend machine.
    Up to Release 3.0F, the programs communicated with each other via the graphics log of the SAPGUIs (gmux).The definition of the environment variable SAPGRAPH may be the cause for the program not being being found where it is.
    As of Release 3.1 G, the programs use a separate RFC link which is set up in addition to the SAPGUI's RFC link.Missing or incorrect definitions of the RFC destination EU_SCRP_WN32 or problems with the creation of the RFC link are the most frequent causes for error message 37527 being displayed.Below you can find the correct settings for the RFC destination EU_SCRP_WN32 (under "Solution").Note 101971 lists all the possible causes for problems with the RFC link set-up. Attention:The Graphical Layout Editor may not be operated through a firewall (for example between the SAP and the customer system) because this does not allow an additional RFC connection in addition to the SAPGUI.
    Solution
    ad 1 UNIX/Motif
    Note 45490 describes possible errors resulting from an incorrect program installation under UNIX/Motif (up to Release 4.6A).
    ad 2 Termination when using
    The above-mentioned notes may contain options for solving individual problems.However, you usually have to replace the program with an corrected version.You can do this either by downloading a patch from sapservX or by installing a more current SAPGUI.The patch is mentioned in the respective note.
    ad 3 Installation
    You either need to reinstall the SAPGUI or manually copy the missing file into the SAPGUI directory.In both cases you should make sure beforehand that a Graphical Layout Editor is no longer running.To do this you can either remove all processes gneux.exe from the process list by using a tool such as Task Manager (on WindowsNT) or exit the Graphical Layout Editor from the Screen Painter Transaction menu via Edit -> Cancel Graphical Screen Painter). Attention:For each session or system an individial Layout Editor process may exist so that, if need be, several processes should be cancelled.
    ad 4 System link
    Up to Release 3.0F:you can either delete the environment variable SAPGRAPH or copy all the files of the Graphical Layout Editor into the directory which is specified by SAPGRAPH.
    As of Release 3.1G:you can use Transaction SM59 to check the RFC destination EU_SCRP_WN32 (expand the TCP/IP connections, select destination EU_SCRP_WN32).If the destination is missing, then you should create it with the following settings:
    - Connection type "T" (start of an external program via ...)
    - Activation type "Start"
    - Start on "Front-end workstation"
    - Front-end workstation program "gnetx.exe" (caution! NOT gneux.exe)
    - Description (optional) "Graph. Screen Painter (Windows32)
      Start Program gneux.exe using the gnetx.exe starter program."
    If you want to start the program from a different directory than the SAPGUI standard directory, then replace the default value under Frontend work station by the complete path name for program gnetx.exe.Transaction SM59 also allows you to check the RFC connection via the pushbutton "Test connection").In this case the system attempts to localize and start the program gnetx.exe.If there are errors, a message is displayed regarding the possible causes (for example, gateway problem, timeout problem or the like).Note 101971 provides a detailed explanation of the problems involved with an RFC connection set-up.As the Graphical Screen Painter requires a functional RFC connection as of Release 3.1G, contact the System Administrator or create an message on the topic Middleware (BC-MID-RFC) if you encounter RFC problems.
    If the program gnetx.exe can be found and started, the banner dialog box with logo, release data and version number is displayed briefly.As the Layout Editor itself is not started, the error cause must be in the installation of the Layout Editor program gneux.exe if the connection test was successful.
    Release 4.5A to 4.6B: Use with Releases <3.1G>.
    The Graphical Layout Editor is downward-compatible as regards the system connection, that is, an RFC-based Layout Editor for example from Release 4.6C can also be used on a non-RFC-based Screen Painter, for example of Release 3.0F.However, the releases mentioned above have a program error which causes a crash due to memory violation in the start phase of the program.Note 197328 describes the solution by installation of the corrected program version.
    Important: Trace file dev_euspNNN!
    If none of the diagnosis steps leads to the cause of the error and to the solution of the problem via the corresponding note, then you should add the contents of the trace files dev_euspNNN (NNN = process number) to the message for SAP, if possible.You can find this file in the current directory of the SAP System, for example under Windows NT in C:\Winnt\Profiles\<user>\SAPworkdir.If several such trace files can be found there, make sure that you use the file which matches the termination time with respect to date and time of creation.In most cases the ERROR message in the last lines of this trace file provides an important note on the cause of the error.
    Source code corrections
    Symptom
    The graphic layout editor of the Screen Painter cannot be started (RFC version).
    Other terms
    () EUNOTE, EUSCREENPAINTER
    Reason and Prerequisites
    This is generally caused by the fact that the RFC connection between the frontend graphics layout editor and the calling screen painter program at the backend cannot be set up.
    Possibility 1: Route permission denied
    In the trace file dev_eusp<Process Id> of the graphics layout editor you find the entry "ERROR in RFCMgr_accept: not accepted", and in the RFC trace file dev_rfc.trc you have an entry of the form "ERROR route permission denied (<Front-Id> to <BackId>,<Service>)".
    If there is a firewall between frontend computer and application
    server, you need to decide whether the port for the RFC of the graphical layout editor can be released here (see Solution 1 below).
    In case no firewall exists between the frontend computer and the application server, in its route permission table, the SAProuter contains either no entry for the frontend computer, on which the graphics layout editor is started, or the entry says that the link is saved by a password.Since the connection is denied, the graphics editor processes exits again, and the screen painter switches to the alphanumeric layout editor.
    Possibility 2: Service 'sapgw<ServiceId>' unknown
    In the trace file dev_eusp<ProzessId> of the graphics layout editor you have the entry "ERROR in RFCMgr_accept: not accepted", and in the RFC trace file dev_rfc.trc you have an entry of the form "ERROR service 'sapgw<ServiceId>' unknown".
    The service sapgw<ServiceId> (for example, sapgw00) is not known on one of the computers participating in the RFC communication because the corresponding entry is missing in its service file. The affected computer can be the frontend computer or the gateway computer.
    Possibility 3: The system parameter gw/cpic_timeout value is too low
    This system parameter determines how many seconds the gateway is waiting for the RFC connection to be set up.In case of a high network load, the default value of 20 seconds is too small with the result that the connection cannot be created on time.Here the graphics layout editor process also exits with the trace file entry "ERROR in RFCMgr_accept: not accepted".
    Possibility 4: System parameter abap/no_sapgui_rfc set
    The profile parameter abap/no_sapgui_rfc of the system is set (that is, it has a value not equal to space or 0).This prevents the program of the graphics layout editor from being started with RFC at the frontend.
    Possibility 5: Unnecessary authorization check
    The error message "No RFC authorization for user xxxxxx" is generated although the check of the RFC authorization was deactivated by profile parameter auth/rfc_authority_check (value = space or 0). The problem is caused by a program error, that ignores the value of the profile parameter let during the call of the RFC authorization check (see Note 93254). This error can occur as of Release 4.5.
    Solution
    ad 1) If a Firewall is installed between frontend computer and the application server, you need to decide whether the port for the RFC link of the graphical layout editor shall be released in the firewall. This is port 33nn, where nn is the 2-digit system number of the SAP application server. As of Release 3.1G, the graphical layout editor needs an RFC link for communication with the application server in addition to the already existing linkof the SAP GUIs. Such a second link is not allowed by the firewall in general because it would contradict the security concept (password protection, logging of the connection).
    If no firewall exists, you should check whether the frontend computer can be added to the route permission table or whether the password option can be removed from out of the available entry.
    For details refer to chapter 4.4 of the attached Note 30289.
    ad 2) Include service sapgw<ServiceId> in the service file.
    Refer to Note 52959 for details.
    ad 3) Increase value for system parameter gw/cpic_timeout. 60 seconds should be sufficent as a timeout limit.
    ad 4) Set the system parameter abap/no_sapgui_rfc to space or 0
    Start the application server so that the new parameter value comes into effect.
    ad 5) Import the Support Package specified in the attachment for the release in question or implement the advance correction in the source code as described in the attached correction instructions.
    As a workaround, assign RFC authorizations as described in Note 93254.

  • Genric extractor on logical database

    Hi
    I have a requirement to create a generic datsource.
    the requirement is to pull the data from logical database
    the logical data base consists of tables and structures.
    could pls let me know how would i create a generic datasource to pull the data from logical database.
    Thanks,
    D

    Hi
    Determining the Generic Delta for a DataSource
           1.      Choose Generic Delta.
           2.      In the subsequent dialog box, specify the delta-determining field and the type for this field.
           3.      Maintain the settings for the generic delta:
                                a.      Specify a security interval.
    The purpose of a security interval is to make the system take into consideration records that appear during the extraction process but which remain unextracted (since they have yet to be saved) during the next extraction.
    You have the option of adding a security interval to the upper limit/lower limit of the interval.
    b.      Choose the delta type for the data to be extracted.
    The delta type is used to determine how extracted data is interpreted in BW and which data targets in which it can be posted.
    With the delta type additive delta, the record to be loaded for summarizable key figures only returns the change to the key figure. The extracted data is added in BW. DataSources with this delta type can supply both ODS objects and InfoCubes with data.
    With the delta type New Status for Changed Records, every record to be loaded returns the new status for all key figures and characteristics. The values are overwritten in BW. DataSources with this delta type can write the data into ODS objects and master data tables.
           4.      Save your entries.
    Delta transfer is now possible for this DataSource.
    After generating the DataSource, you can see this from the marking for the field Delta Update on the DataSource: Customer Version screen.
    Example for Determining the Selection Interval for a Generic Delta
    Safety Interval Upper Limit
    The delta-relevant field is a timestamp.
    The timestamp that was read last is 12:00:00. Delta extraction begins at 12:30:00. The safety interval for the upper limit is 120 seconds. The safety interval for the delta request is: 12:00:00 to 12:28:00. Upon completion of the extraction, the pointer is set to 12:28:00.
    Safety Interval Lower Limit
    The delta-relevant field is a timestamp. After images are transferred. In other words, the record is overwritten with the status after the change in BW, for example for master data. Any duplicate records that appear have no effect upon the BW system.
    The last changed timestamp is 12:28:00. Delta extraction begins at 13:00. The safety interval for the lower limit is 180secs. The safety interval for the delta request is: 12:25:00 to 13:00:00. Upon completion of the extraction, the pointer is set to 13:00:00.

  • Disable Head Menu In GUI STATUS

    Hello everyone,
    i have a gui-status that has a menu (with several options within it) and application toolbar.
    Im looking for a way to disable/remove the menu only , I know that the options within it can be disabled using EXCLUDE fcode but the menu header (The name we press  is not assigned to an fcode apparently and thus cannot be disabled using the exclude option.
    thanks in advance,
    Eli Erenburg, Israeli Navy

    Hi,
        Actually there is no need to SET PF-STATUS in PAI in WHEN 'SWITCH' code as once it goes to PBO module it will again set PF-STATUS EXCLUDING 'SAVE' all the time.
    So you have to change the PBO Module logic as follows,
    MODULE PBO OUTPUT.
    IF <your condition>.
    SET PF-STATUS 'GS_100'.
    ELSE.
    SET PF-STATUS 'GS_100' EXCLUDING 'SAVE'.
    ENDIF.
    ENDMODULE.
    and then remove the SET PF-STATUS statements from
    SWITCH_EDIT_MODE subroutine..
    Best way is to set a flag (a global variable) in SWITCH_EDIT_MODE and use it in PBO instead of go_grid->is_ready_for_input..
    Some thing like the following,
    in your SWITCH_EDIT_MODE routine,
    IF gv_edit EQ 'X'.
    CLEAR gv_edit.
    ****other code here to disable grid
    ELSE.
    gv_edit = 'X'.
    ****other code here to enable grid
    ENDIF.
    In your PBO module,
    MODULE PBO OUTPUT.
    IF gv_edit EQ space.
    SET PF-STATUS 'GS_100'.
    ELSE.
    SET PF-STATUS 'GS_100' EXCLUDING 'SAVE'.
    ENDIF.
    ENDMODULE.
    Hope this helps..
    Regards

  • Gui status help

    hi all
              In pf status why the function codes of menubar,appl tool bar are started with ampersand(&).
              how different functions like 'back' delete' 'save' enter' can be declared in pf status and how can we use them in abap program.

    hi,
    PF status is used for defining your own menus.For example you can add your own push button DELETE' in the menu bar as shown below:
    In the PBO of the screen,uncomment module status100 and double click on it.
    It will ask you if you want to write the code for the module in the main program or a separate include.
    Now,in PF status,
    MODULE status_0200 OUTPUT.
    SET PF-STATUS 'GUI2'.
    Uncomment the SET PF_STATUS line and give a name say GUI2 and double click on the name.
    You will find three tabs in the GUI status:
    In the application toolbar,write the function code for the push button you want,say DELETE.Press enter and give the function text,icon name and info text and save and activate the GUI status.
    Now,in the PAI of the screen,uncomment the module user command and write the code:
    Case ok_code.
    When 'DELETE'.
    ...logic
    Endcase.
    chk this link for details:
    http://help.sap.com/saphelp_di471/helpdata/EN/9f/dba34635c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_46c/helpdata/en/d1/801d5d454211d189710000e8322d00/frameset.htm

  • Hide all buttons in a GUI-STATUS ?

    I'd like to hide all functions from the toolbar of a GUI-STATUS except for one function.
    I could of course create a table with all the FCODE except for the one and then call
    SET PF-STATUS 'bla' EXCLUDING itab.
    But whenever I add a function to the GUI-Status then, I have to change that code. Is there a way to prevent this.

    Hello Daniel,
    Looking at the responses that your question has got, I wouldn't say that I had understood the question as well as
    the others have.
    I understand that you want to be able to dynamically add and delete the Functions from your toolbar. But what I did
    not quite understand is what exactly you had meant by "...I have to change that code....". If you want to perform an
    action, you would have to write some code anyways. So here's what I would do:
    1. Define a GUI-STATUS which has all the function codes you will ever need during the program.
    2. You can manipulate the Buttons on the toolbar with the EXCLUDING option.
    3. I don't believe that you need to use the FM RS_CUA_GET_STATUS_FUNCTIONS. Consider using instead the ABAP statement GET PF-STATUS. The Online Documentation has explained this statement wonderfully.
    4. I don't think that creating a database table to merely maintain the FCODEs of a program is a sensible option either.
    Instead consider using an internal table of constants, where you have all the FCODES required.
    I hope these points would clarify some of the things. If you need further assistance, please get back.
    Regards,
    Anand Mandalika.
    P.S. Two points that I would like to remind you:
    a). You can use the statement SET PF-STATUS SPACE to reset all the PF-STATUS.
    b). Once you set a PF-STATUS, it will be available till the moment you use the next SET PF-STATUS statement.

  • Assign GUI-status to screen

    How do we Assign new GUI-status to screen that we create.At present by defualt 'MEN' is coming
    but i didn't created however ?.I am new to screen programming.Plz help.

    Hi,
    Follow code:-
    At screen logic:
    PROCESS BEFORE OUTPUT.
      MODULE status_8001.
    In the PBO of the screen,
    MODULE status_8001.
      SET PF-STATUS 'ZPF_STAT'.
    ENDMODULE.
    Now in every screen use same concept and set appropiate status for the desired screen.
    Every time a screen is called, the PBO of screen is executed and PF status will be changed.
    Use code to remove a status from the screen:-
      SET PF-STATUS space.
    Say if from one screen you move to another and you dnt want any pf-status on that screen, then this will remove the pf-status from the next screen.
    Hope this solves your problem.
    Thanks & Regards,
    Tarun Gambhir
    Edited by: Tarun Gambhir on Feb 17, 2009 11:16 AM

Maybe you are looking for