About pp module

Hi Friends,
can any one give me the answers for below questions .These are belongs to PP module..........
1)what is movement type?
2)what is positive inventory control?
3)what is the meaning of handling unit,non handling unit ,ware house and production order?
Regards
kish

Movement type
Movement type is to differentiate between the various goods movements. Movement type also controls that which GL account will be posted.So it is mandatory to always mention movement type for each Goods movements.
Goods movement Movement type
Goods receipt for a purchase order 101
Goods issue for a cost center 201
Release from quality inspection stock 321
Inventory Management:
check this link which shows details about Inventory Management.
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/MMIM/MMIM.pdf
http://www.sap-img.com/sap-mm.htm
http://www.sap-img.com/shop/sap-mm-inventory-management-overview.htm
Handling Unit
http://help.sap.com/saphelp_crm40/helpdata/en/c8/a44b779f3211d2858d0000e81ddea0/frameset.htm
Warehouse Management :
http://help.sap.com/bestpractices/BBLibrary/documentation/Q03_BB_ConfigGuide_EN_IN.doc#_Toc77662927
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/LEIDW/LEIDW.pdf
http://help.sap.com/saphelp_47x200/helpdata/en/32/dba788517d11d4869c0000e81ddea0/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/c6/f839e84afa11d182b90000e829fbfe/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/c6/f846014afa11d182b90000e829fbfe/frameset.htm
http://help.sap.com/saphelp_47x200/helpdata/en/4d/2b937843ad11d189410000e829fbbd/frameset.htm
Production Order:
In a production order resources,master recipes are used & in production order work center & routings are used.
Reward points if useful.
Edited by: Sravan Prakash.V on Jan 14, 2008 1:12 PM

Similar Messages

  • About HR Module

    Hi Gurus,
         I have an object in  SAP-HR module. so i want to know about HR module. what is the flow? what are the T-Codes? what are the Tables used?

    Hi
    HR:
    HR deals with the INFOTYPES which are similar to Tables in General ABAP.
    There are different ways of fetching data from these infotypes.
    There are different areas in HR LIKE Personal Admn, Orgn Management, Benefits, Time amangement, Event Management, Payroll etc
    Infotypes for these areas are different from one another area.
    storing of records data in each type of area is different
    LDBS like PNP are used in HR programing.
    Instead of Select.. we use some ROUTINES and PROVIDE..ENDPROVIDE.. etc
    and in the case of Pay roll we use Clusters and we Import and Export them for data fetching.
    On the whole Normal ABAP is different from HR abap.
    For Personal Admn the Infotypes start with PA0000 to PA1999
    Time Related Infotypes start with PA2000 to PA2999.
    Orgn related Infotypes start with HRP1000 to HRP1999.
    All custom developed infotypes stsrat with PA9000 onwards.
    In payroll processing we use Clusters like PCL1,2,3 and 4.
    Instead of Select query we use PROVIDE and ENDPROVIDE..
    You have to assign a Logical Database in the attributes PNP.
    Go through the SAp doc for HR programming and start doing.
    http://www.sapdevelopment.co.uk/hr/hrhome.htm
    See:
    http://help.sap.com/saphelp_46c/helpdata/en/4f/d5268a575e11d189270000e8322f96/content.htm
    see the sample HR report:
    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 initial.
    message i999 with
    'No Educational Data found'(063).
    else.
    write: /1 sy-vline,2(36) sy-uline, 38 sy-vline,
    /1 sy-vline, 2(36) text-022 centered color 3, 38 sy-vline.
    format color col_heading on.
    write /1(172) sy-uline.
    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.
    sort edn_tab by pernr.
    loop at edn_tab.
    format color col_normal.
    write:/1 sy-vline, 2(10) edn_tab-pernr,
    12 sy-vline, 13(25) edn_tab-atext,
    38 sy-vline, 39(20) edn_tab-stext,
    59 sy-vline, 60(45) edn_tab-insti,
    105 sy-vline,106(15) edn_tab-landx,
    121 sy-vline,122(30) edn_tab-ctext,
    152 sy-vline,153(4) edn_tab-anzkl,
    157(10) edn_tab-etext,
    172 sy-vline.
    endloop.
    write /1(172) sy-uline.
    endif.
    skip 3.
    if pemp_tab[] is initial.
    message i999 with
    'No Previous Employment Data found'(064).
    else.
    write: /1 sy-vline,2(53) sy-uline, 55 sy-vline,
    /1 sy-vline, 2(53) text-023 centered color 3, 55 sy-vline.
    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.
    sort pemp_tab by pernr.
    loop at pemp_tab.
    format color col_normal.
    write:/1 sy-vline, 2(10) pemp_tab-pernr,
    12 sy-vline, 13(20) pemp_tab-arbgb,
    33 sy-vline, 34(10) pemp_tab-begda,
    44 sy-vline, 45(10) pemp_tab-endda,
    55 sy-vline, 56(25) pemp_tab-stltx,
    81 sy-vline, 82(15) pemp_tab-landx,
    97 sy-vline.
    endloop.
    write /1(97) sy-uline.
    endif.
    skip 2.
    new-page.
    if job_tab[] is initial.
    message i999 with
    'No Job History Data found'(065).
    else.
    write: /1 sy-vline,2(47) sy-uline, 49 sy-vline,
    /1 sy-vline, 2(47) text-024 centered color 3, 49 sy-vline.
    format color col_heading on.
    write /1(75) sy-uline.
    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.
    sort job_tab by pernr.
    loop at job_tab.
    format color col_normal.
    at new pernr.
    write:/1 sy-vline, 2(10) job_tab-pernr.
    endat.
    write: 1 sy-vline, 12 sy-vline,
    13(10) job_tab-begda,
    23 sy-vline,24(25) job_tab-ptext,
    49 sy-vline,50(25) job_tab-stltx,
    75 sy-vline.
    new-line.
    endloop.
    write /1(75) sy-uline.
    endif.
    skip 3.
    if app_tab[] is initial.
    message i999 with
    'No Performance Appraisal Data found'(072).
    else.
    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.
    sort app_tab by pernr.
    loop at app_tab.
    format color col_normal.
    write:/1 sy-vline, 2(10) app_tab-pernr,
    12 sy-vline, 13(4) app_tab-year,
    17 sy-vline, 18(40) app_tab-appr,
    58 sy-vline.
    endloop.
    write /1(58) sy-uline.
    endif.
    skip 2.
    elseif r_per eq c_x.
    if pers_tab[] is initial.
    message i999 with
    'No Data found for the entered Selection'(032).
    else.
    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.
    elseif r_pay eq c_x.
    if pay_tab[] is initial.
    message i999 with
    'No Data found for the entered Selection'(032).
    else.
    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.
    elseif r_edn eq c_x.
    if edn_tab[] is initial.
    message i999 with
    'No Data found for the entered Selection'(032).
    else.
    sort edn_tab by pernr.
    loop at edn_tab.
    format color col_normal.
    write:/1 sy-vline, 2(10) edn_tab-pernr,
    12 sy-vline, 13(25) edn_tab-atext,
    38 sy-vline, 39(20) edn_tab-stext,
    59 sy-vline, 60(45) edn_tab-insti,
    105 sy-vline,106(15) edn_tab-landx,
    121 sy-vline,122(30) edn_tab-ctext,
    152 sy-vline,153(4) edn_tab-anzkl,
    157(10) edn_tab-etext,
    172 sy-vline.
    endloop.
    write /1(172) sy-uline.
    endif.
    elseif r_pemp eq c_x.
    if pemp_tab[] is initial.
    message i999 with
    'No Data found for the entered Selection'(032).
    else.
    sort pemp_tab by pernr.
    loop at pemp_tab.
    format color col_normal.
    write:/1 sy-vline, 2(10) pemp_tab-pernr,
    12 sy-vline, 13(20) pemp_tab-arbgb,
    33 sy-vline, 34(10) pemp_tab-begda,
    44 sy-vline, 45(10) pemp_tab-endda,
    55 sy-vline, 56(25) pemp_tab-stltx,
    81 sy-vline, 82(15) pemp_tab-landx,
    97 sy-vline.
    endloop.
    write /1(97) sy-uline.
    endif.
    elseif r_job eq c_x.
    if job_tab[] is initial.
    message i999 with
    'No Data found for the entered Selection'(032).
    else.
    sort job_tab by pernr.
    loop at job_tab.
    format color col_normal.
    at new pernr.
    write:/1 sy-vline, 2(10) job_tab-pernr.
    endat.
    write: 1 sy-vline, 12 sy-vline,
    13(10) job_tab-begda,
    23 sy-vline,24(25) job_tab-ptext,
    49 sy-vline,50(25) job_tab-stltx,
    75 sy-vline.
    new-line.
    endloop.
    write /1(75) sy-uline.
    endif.
    elseif r_app eq c_x.
    if app_tab[] is initial.
    message i999 with
    'No Data found for the entered Selection'(032).
    else.
    sort app_tab by pernr.
    loop at app_tab.
    format color col_normal.
    write:/1 sy-vline, 2(10) app_tab-pernr,
    12 sy-vline, 13(4) app_tab-year,
    17 sy-vline, 18(40) app_tab-appr,
    58 sy-vline.
    endloop.
    write /1(58) sy-uline.
    endif.
    endif.
    endform. " Display_report
    <b>Reward points if useful</b>
    Regards
    Ashu

  • How to get information about the modules used in the RT system from host pc.

    hi all,
    i am trying to  read the modules of the RT tragets from my host pc without deploying the program.
    i have 2 or more than 2 rt systems from which i am trying to get the information about the modules used in that particular system.
    Regards,
    Santhosh M

    hi, you can use the sys_context function, like this:
    select sys_context('userenv','current_user'),
         sys_context('userenv','os_user'),
         sys_context('userenv','host'),
         sys_context('userenv','ip_address'),
         sys_context('userenv','instance'),
         sys_context('userenv','sessionid'),
         sys_context('userenv','terminal')
    from dual;
    Is this what you 're looking for?

  • What should i know about MM module for a BW interview any docs?

    what should i know about MM module for my BW interview any docs?
    SDN experts are very helpfull to me. i will assign points. Thank you.

    Hi,
    If this is inventory management that you want to handle, you can use infocube 0IC_C03.
    Here a HowToguide:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f83be790-0201-0010-4fb0-98bd7c01e328">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f83be790-0201-0010-4fb0-98bd7c01e328</a>
    Jacques

  • Important conceptual question about Application Module, Maximum Pool Size

    Hello everyone,
    We have a critical question about the Application Module default settings (taking the DB connections from a DataSource)
    I know that on the Web it is generally suggested that each request must end with either a commit or rollback when executing PL/SQL blocks "directly" on the DB without the framework BC/ViewObject/Entity service intervention.
    Now, for some reasons, we started to develop our applications with thinking that each Web Session would reference exactly one DB session (opened by any instance taken from the AM pool) for the whole duration of the session, so that the changes made by each Web session to its DB session would never interfere with the changes made by "other" Web Sessions to "other" DB sessions .
    In other words, because of that convincement we often implemented sort of "transactions" that open and close (with either commit or rollback) each DB session not in/after a single HTTP request, but during many HTTP Requests.
    As a concrete example think of this scenario:
    1. the user presses the "Insert" button. An HTTP request is fired. The action listener is executed and ends up with inserting rows in a table via a PL SQL block (not via the ViewObjects API).
    2. no commit or rollback after the above PL/SQL block is done yet.
    3. finally the user presses a "Commit" or "Rollback" button, firing the call to the appropriate AM methos.
    Those three requests consist of what I called "transaction".
    From the documentation it's clear that there is no guarantee that the couple AM istance + DB session is the same during all the requests.
    This means that, during step 2, it's possible that another user might reference the same "pending" AM/DbSession for his needs and "steal" somehow the work done via PL/SQL after step 1. (This happens because sessions taken by the pool are always rolled back by default.)
    Now my question is:
    Suppose we set the "Maximum Pool Size" parameter to very a great number (always inferior to the maximum number of concurrent users):
    Is there any guarantee that all the requests will be isolated in that case?
    I hope the problem is clear.
    Let me know if you want more details.

    Thanks for the answers.
    If I am right, from all your answers about resource avaiability, this means that even supposing the framework is able to always give us the same AM instance back from the AM pool (by following the session-affinity criterias), there is, however, no "connection affinity" with the connections from the DataSource. This means that the "same AM instance" might take the "a new DB connection", if necessary, from the connection pool of the DataSource. If that happens, that could give us the same problems as taking "a new AM instance" (that is, not following session-affinity) from the beginning, since each time an a new connection is taken (either via a new AM instance or via the same AM instance plus a new DB connection), the corresponding DB session is rolle back by default, clearing all the pending transactions we might have performed before with direct PL/SQL calls bypassing the AM services during the life cycle of our application, so that the new HTTP request will have a clean DB session to start to work with.

  • About function module in alv

    hai all
    iwant to know about few function modules in alv
    1) reuse_alv_default_varients_get.
    2)reuse alv_varients_f4
    what is the use of these function modules
    how to use these function modules, what r the structures used to use these function module. where to pass this in
    in list and grid display function modules.
    plz help me.
    thanks & regards
    sindu

    HI,
    check this.
    REPORT Z_TEST_alv_variant .
    TYPE-POOLS : SLIS.
    PARAMETERS: ONE RADIOBUTTON GROUP G1 DEFAULT 'X',
                TWO RADIOBUTTON GROUP G1.
    DATA: BEGIN OF I_TAB OCCURS 0,
    FIELD1 TYPE I,
    FIELD2 TYPE I,
    END OF I_TAB.
    DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
          LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA: L_VARIANT TYPE DISVARIANT,
          LX_VARIANT LIKE DISVARIANT,
          L_SAVE TYPE C,
          L_EXIT(1) TYPE C.
    SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-VAR.
    PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
    SELECTION-SCREEN END OF BLOCK 0.
    INITIALIZATION.
      L_SAVE = 'A'.
      PERFORM VARIANT_INIT.
    Get default variant
      LX_VARIANT = L_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
        EXPORTING
          I_SAVE     = L_SAVE
        CHANGING
          CS_VARIANT = LX_VARIANT
        EXCEPTIONS
          NOT_FOUND  = 2.
      IF SY-SUBRC = 0.
        P_VARI = LX_VARIANT-VARIANT.
      ENDIF.
    Process on value request
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
      PERFORM F4_FOR_VARIANT.
      I_TAB-FIELD1 = 19.
      I_TAB-FIELD2 = 20.
      APPEND I_TAB.
      I_TAB-FIELD1 = 19.
      I_TAB-FIELD2 = 20.
      APPEND I_TAB.
      I_TAB-FIELD1 = 19.
      I_TAB-FIELD2 = 20.
      APPEND I_TAB.
      I_TAB-FIELD1 = 19.
      I_TAB-FIELD2 = 20.
      APPEND I_TAB.
      I_TAB-FIELD1 = 19.
      I_TAB-FIELD2 = 20.
      APPEND I_TAB.
      PERFORM INITIALIZE_FIELDCAT USING GT_FIELDCAT[].
      PERFORM CALL_ALV  TABLES I_TAB[]
                       USING GT_FIELDCAT.
    *& Form initialize_fieldcat
    text
    -->P_GT_FIELDCAT[] text
    FORM INITIALIZE_FIELDCAT USING L_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
      LS_FIELDCAT-FIELDNAME = 'FIELD1'.
      LS_FIELDCAT-KEY = 'X'.
      LS_FIELDCAT-COL_POS = 1.
      LS_FIELDCAT-SELTEXT_S = 'Work center'.
      LS_FIELDCAT-SELTEXT_L = 'Work center'.
      APPEND LS_FIELDCAT TO L_FIELDCAT.
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME = 'FIELD2'.
      LS_FIELDCAT-KEY = ' '.
      LS_FIELDCAT-COL_POS = 2.
      LS_FIELDCAT-SELTEXT_S = 'Work center2'.
      LS_FIELDCAT-SELTEXT_L = 'Work center2'.
      APPEND LS_FIELDCAT TO L_FIELDCAT.
      CLEAR LS_FIELDCAT.
    ENDFORM. " initialize_fieldcat
    *&      Form  call_alv
          text
         -->P_GT_FIELDCAT  text
         -->P_I_TAB  text
    FORM CALL_ALV  TABLES   P_TAB
                    USING    P_GT_FIELDCAT .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM = SY-REPID
          IT_FIELDCAT        = P_GT_FIELDCAT
          I_DEFAULT          = 'X'
          IS_VARIANT         = L_VARIANT
          I_SAVE             = L_SAVE
        TABLES
          T_OUTTAB           = P_TAB[]
        EXCEPTIONS
          PROGRAM_ERROR      = 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.
    ENDFORM.                    " call_alv
    *&      Form  VARIANT_INIT
          text
    FORM VARIANT_INIT.
      CLEAR L_VARIANT.
      L_VARIANT-REPORT = SY-REPID.
    ENDFORM.                               " VARIANT_INIT
    *&      Form  variant_SELECTION_SCREEN
          text
    FORM VARIANT_SELECTION_SCREEN .
      IF NOT P_VARI IS INITIAL.
        MOVE L_VARIANT TO LX_VARIANT.
        MOVE P_VARI TO LX_VARIANT-VARIANT.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
          EXPORTING
            I_SAVE     = L_SAVE
          CHANGING
            CS_VARIANT = LX_VARIANT.
        L_VARIANT = LX_VARIANT.
      ELSE.
        PERFORM VARIANT_INIT.
      ENDIF.
    ENDFORM.                    " variant_SELECTION_SCREEN
    *&      Form  F4_FOR_VARIANT
          text
    FORM F4_FOR_VARIANT.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          IS_VARIANT = L_VARIANT
          I_SAVE     = L_SAVE
        IMPORTING
          E_EXIT     = L_EXIT
          ES_VARIANT = LX_VARIANT
        EXCEPTIONS
          NOT_FOUND  = 2.
      IF SY-SUBRC = 2.
        MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        IF L_EXIT = SPACE.
          P_VARI = LX_VARIANT-VARIANT.
        ENDIF.
      ENDIF.
    ENDFORM.                    "F4_FOR_VARIANT
    Regards,
    Laxmi.

  • About Function module reltate to Enhancement

    Hi All,
    i need to know about the Usage and purpose of the function module FKK_BP_BADI_UPDATE.
    Kindly help me to know about this function module

    Hi Venkat,
    The function module BAPI_CUBE_GETDETAIL provides you the detials of infocube (including dimension, characteristics, keyfigures etc).
    Moreoverthis FM is RFC enabled; so you can call this FM from DEV and pass RFC connection of PROD to get detials of the cube in prod. This compare the structures between DEV and PROD.
    Similarly you can use BAPI_ODSO_GETDETAIL from DSO structure comparision across the system landscape.
    Thanks
    Vasu

  • I want to know about ehs module and flow

    hi,
    This is kishore. I have been assigned to ehs module. i want to know about that how it helps industries and flow of the module.
    K. Kishore

    hi kishore
       Please go thru this link
      http://help.sap.com/printdocu/core/Print46c/en/data/pdf/EHSSAF/CAGTFADM-EHS.pdf
    reward points if it is helpful.
    Regards
    Alfred

  • Table that stores information about function module

    Hi All,
    I know that table TFDIR stores primary information about any function module.
    Could anyone tell me where the code of that function module gets stored in?
    Also.. If I want to write an ABAP code to read the function module code then what is the best possible solution?
    Thanks in advace and any answer will be appreciated.
    Regards
    Jignesh

    Hi All,
    Apologies for the same!
    The codes are not stored in any table, they are stored as cluster.
    To read the code, you can use READ REPORT.
    But there you must provide the Include Name For Example , If you want to read the code of READ_TEXT,
    READ REPORT 'LSTXDU01'.
    You can get this include name inside include LSTXDUXX
    Table TFDIR also stores the program name and include number.
    You need to truncate first 3 char 'SAP' and append UXX at the end and that will be your program name.
    Then we can use READ REPORT!!!
    Regards
    Jignesh

  • ABOUT FUNCTION MODULE  (urgent)

    hi ,
    is any one know about below function module.
    CUST_ACCT_STMT_REQUEST_LITE
    we schedule customer account statement in th background.
    we want to add some functionality.
    if any one know anything then it will be appreciated.
    thans,
    jack

    Hi,
    I am giving the Function Modules list link, from there you can findout which is suitable for your application:
    http://sap-img.com/abap/function-list.htm
    Regards,
    Bhaskar

  • Quick question about app module?

    Hi,
    Are following two pages correctly instantiate and release the application module? Please notice release tag at the end of each page.
    -------------- page1 --------------------------------
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ page language="java" errorPage="errorpage.jsp" contentType="text/html;charset=ISO-8859-1" %>
    <%@ page import = "oracle.jbo.html.*,oracle.jbo.*%>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=WINDOWS-1252">
    <jbo:ApplicationModule configname="myPackage.app1.app1Local" id="app1" username="" password="" />
    <jbo:DataSource id="ds" appid="app1" viewobject="View1" ></jbo:DataSource>
    <%
    ...Some javacode here
    request.getRequestDispatcher(nextpage).forward(request,response);
    %>
    <jbo:ReleasePageResources appid="app1" releasemode="Stateful" />
    -------------- page2 --------------------------------
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ page language="java" errorPage="errorpage.jsp" contentType="text/html;charset=ISO-8859-1" %>
    <%@ page import = "oracle.jbo.html.*,oracle.jbo.*%>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=WINDOWS-1252">
    <jbo:ApplicationModule configname="myPackage.app1.app1Local" id="app1" username="" password="" />
    <jbo:DataSource id="ds" appid="app1" viewobject="View1" ></jbo:DataSource>
    <%
    ... Some javacode here
    %>
    <jbo:ReleasePageResources appid="app1" releasemode="Stateful" />
    <%
    request.getRequestDispatcher(nextpage).forward(request,response);
    %>

    What do you think about this?

  • ABOUT SAP MODULE

    HI
    CAN ANYBODY EXPLAIN ME IN DETAIL WHAT IS SAP QM MODULE?HOW SAP ABAPER HELPS SAP QM?
    SHAMIT

    Hi
    Please use following link
    about sap -mmand abap
    http://help.sap.com/saphelp_46c/helpdata/en/9c/df293581dc1f79e10000009b38f889/frameset.htm
    ABAP person required to develop new forms and report , or any Z-development like program and transaction
    as per business requirement
    Hope ths helps
    please reward points
    Sunil

  • Need some information about SCM - Module

    dear freiends i have a small doubt,
    sd, mm, this all modules are came under  SCM.
    IS THERE ANY ANOTHER MODULE LIKE '' SCM'' IN SAP.
    Thanks inadvance
    narasimha

    Hi,
    SAP has business suite with some new dimensional products, SAP SCM is part of it. Previously all were emphasizing on the indivisual modules like SD, MM, PP, PM etc., but now SAP is changing direction and talking more about End to ENd Solutions.
    On this road way they came up with these new dimension products.
    SAP SCM,
    SAP PLM,
    SAP CRM,
    SAP ERP
    SAP HCM
    For more details
    http://www.sap.com/solutions/business-suite/scm/index.epx
    Thanks,
    Raja

  • Want to know about ACE module in 6509 : load-balancing concept

    Hi,
    I am quite new in this field , where i need to configure and understand the concept of load-balancing through ACE.
    In my existing network set-up , i have some application servers as well as some other servers where i am looking for load-balancing.
    I have gone through some of the site and cisco site as well and i came across ACE module which can be installed in 6509 switch.
    I have 6509 switch as well but before going for installing the ACE module I am keen to understand below things:
    1) what is difference between CSM or any other product load-balancer and ACE module :
    Gone through site as well , but not getting proper answer or comparison.
    1) I have some of the server configured with clustering and getting one virtual IP, In this case , will ACE work ?
    2) If suppose i go for configuring different IP address with all server IP :
    How do i achieve it ?
    3) what is Virtual IP concept in ACE because i do not have and other ACE module then why do i need virtual IP ?
    4) will the load-balancing happens based on destination based or session based ?
    Please share the knowledge. It would be great help for me to go ahead with ACE and configure it and understand all the application ?

    Hello,
    1) what is  difference between CSM or any other product load-balancer and ACE  module :
    There are several differences but to say simply, you get higher performance and more features with ACE module/appliance comparing others.
    One big difference is that with ACE seriese, you can configure multiple contexts on one box (virtual load-balancers on one box) that makes us possible to provide a virtual load-balancer to a customer. In that way, the customer can access and makes changes on only the virtual box. You can split management domain for each customers. Also using contexts, you can assign certain resources available on the hardware for each contexts according to their service contract.
    ACE serise has specific hardware chip for supporting SSL termination but some others do not.
    For instance, you need a CSM-S, or a CSM and a SSL module to terminate SSL.
    The other thing I should mention is that our most recent product is ACE serise that means it has longer product roadmap.
    Let me try clarifying your other questions.
    3)  what is Virtual IP concept in ACE because i do not have and other ACE  module then why do i need virtual IP ?
    4) will the load-balancing happens  based on destination based or session based ?
    I think I'd better to put 3) and 4) first.
    Virtual ip  address (VIP) is the address to which client accesses.
    VIP is tied with a  serverfarm or serverfarms, in a serverfarm one or multiple rservers can  be configured.
    "serverfarm" is a group of "rservers".
    "rserver" means  real-server that has an ip address and processes transactions.
    When a client  accesses to the VIP, ACE picks up a rserver according to algorithm.
    If you configure a  VIP that is tied with a serverfarm where only one rsever is  configured, client accesses to the virtual ip address are
    all forwarded to  the rserver.
    If you configure a  VIP that is tied with a serverfarm where multiple rsevers are  configured,  client accesses to the virtual ip address are
    balanced among  those rservers.
    If you configure  multiple VIPs, client accesses to those VIPs are forwareded to  corresponding rservers according to configuration.
    1)  I have some of the server configured with clustering and getting one  virtual IP, In this case , will ACE work ?
    ACE load-balances connections to configured rservers.
    If the clustered servers are sharing one virtual ip address and you configure the virtual ip address as a rserver, all connections are
    sent to the virtual ip address. That is not "load-balancing" on ACE... You need multiple rservers to which ACE load-balances connections.
    2) If suppose i go for  configuring different IP address with all server IP :
    How do i  achieve it ?
    You can configure those ip addresses as rserver ip address.
    Multiple rservers are tied into a group, "serverfarm".
    I'm not certain about your culstered servers but I guess you can configure each ip addresses in the culster as rservers.
    Then put those rservers in a serverfarm.Client accesses to a virtual ip address configured on ACE for the serverfarm.
    This way connections are load-balanced among those rservers depending on load-balancing algorithm you choose.
    Above is just an overveiw. ACE gives you granular control not mentioned above.
    I can provide more specific information if you tell me details of what you are trying to archive with ACE.
    Regards,
    Kimihito.

  • About TPM module MSI P45 platinum

    Hello.
    I need some information about this function, supported in MSI P45 Platinum - TPM module. Where can i buy such thing, and eventually prices for it.
    Thanx in advance!

    TPM is nothing MSI Specific.  Please read this article first:
    http://en.wikipedia.org/wiki/Trusted_Platform_Module

Maybe you are looking for

  • Unofficial iTunes Complaints - 7.0.1

    So here is a topic where all windows users that have iTunes 7.0.1 installed to post complaints and help other users with thier problems (hopefulyy). So i'l start it off; iTunes 7.0.1 cause my iPod to malfunction, resulting in it being unusable. Once

  • Question about generate xml document

    Hi, I'm new to xml can anyone introduce me some tools to generate xml documents? or some faster way to generate xml documents.

  • I can't get my transitions to work.

    Whenever I insert a transition, it automatically shows up as 0.1 seconds. When I go into the inspector to change the transition length, it changes in the inspector, but when I play the movie, it's still 0.1 seconds. Does anyone have any suggestions?

  • New XTier Apache2 Module - does it require SSL connections?

    Scenario: NW 6.5 SP5 eDir 8.7.3.8 ZfD 6.5 SP2 Issue: TID #: 2973878 New Apache2 xtier module for NetWare 6.5 SP5 released for LDAP over SSL . Details: After applying the new MOD_XSRV.NLM (228187 byte/17. may 2006 6:35:47 pm), the Middle Tier clients

  • Why has the internet gone from my ipod

    Hi can you help, the internet wi fi connection has gone from my ipod, how can I get it back?