ABOUT SAP MODULES

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

Hi Shamit,
following describtion is from http://help.sap.com :
FI
The Financial Accounting (FI) application component fulfills all the international requirements that must be met by the financial accounting department of an organization. It provides the following features:
Management and representation of all accounting data
All business transactions are recorded according to the document principle, which provides an unbroken audit trail from the financial statements to the individual documents.
Open and integrated data flow
Data flow between Financial Accounting and the other components of the SAP System is ensured by automatic updates.
Data is available in real time within Financial Accounting. Postings made in the subledgers always generate a corresponding posting in the general ledger.
Preparation of operational information to assist strategic decision-making within the organization
Integration
Integration of Financial Accounting with other components
All accounting-relevant transactions made in Logistics (LO) or Human Resources (HR) components are posted real-time to Financial Accounting by means of automatic account determination. This data can also be passed on to Controlling (CO).
This ensures that logistical goods movements (such as goods receipts and goods issues) are exactly reflected in the value-based updates in accounting.
Integration within Financial Accounting
Every posting that is made in the subledgers generates a corresponding posting to the assigned G/L accounts. This ensures that the subledgers are always reconciled with the general ledger.
Features
The Financial Accounting application component comprises the following sub-components:
General Ledger (FI-GL)
Accounts Payable (FI-AP)
Accounts Receivable (FI-AR)
Bank Accounting (FI-BL)
Asset Accounting (FI-AA)
Funds Management (FI-FM)
Travel Management (FI-TV)
Special Purpose Ledger (FI-SL)
CO
Controlling provides you with information for management decision-making. It facilitates coordination, monitoring and optimization of all processes in an organization. This involves recording both the consumption of production factors and the services provided by an organization.
As well as documenting actual events, the main task of controlling is planning. You can determine variances by comparing actual data with plan data. These variance calculations enable you to control business flows.
Income statements such as, contribution margin accounting, are used to control the cost efficiency of individual areas of an organization, as well as the entire organization.
Integration
Controlling (CO) and Financial Accounting (FI) are independent components in the SAP system. The data flow between the two components takes place on a regular basis.
Therefore, all data relevant to cost flows automatically to Controlling from Financial Accounting. At the same time, the system assigns the costs and revenues to different CO account assignment objects, such as cost centers, business processes, projects or orders. The relevant accounts in Financial Accounting are managed in Controlling as cost elements or revenue elements. This enables you to compare and reconcile the values from Controlling and Financial Accounting.
Features
Cost Element Accounting (CO-OM-CEL)
Cost and Revenue Element Accounting provides you with an overview of the costs and revenues that occur in an organization. Most of the values are moved automatically from Financial Accounting to Controlling. Cost and Revenue Element Accounting only calculates costs which either do not have another expense or only one expense in Financial Accounting.
If needed, reconciliation of the values in Financial Accounting and Controlling takes place in Cost and Revenue Element Accounting.
For more information, see the SAP Library under Financials ® Controlling ®  Cost Element Accounting.
Cost Center Accounting (CO-OM-CCA)
You use Cost Center Accounting for controlling purposes within your organization. It is useful for a source-related assignment of overhead costs to the location in which they occurred.
For more information, see the SAP Library under Financials ® Controlling ®  Cost Center Accounting.
Activity-Based-Accounting (CO-OM-ABC)
Activity-Based Costing analyzes cross-departmental business processes. The goals of the whole organization and the optimization of business flows are prioritized.
For more information, see the SAP Library under Financials ® Controlling ®  Activity-Based Costing.
Internal Orders (CO-OM-OPA)
You use internal orders to collect and control according to the job that incurred them. You can assign budgets for these jobs, which the system monitors, to ensure that they are not exceeded.
For more information, see the SAP Library under Financials ® Controlling ®  Internal Orders.
Product Cost Controlling (CO-PC)
Product Cost Controlling calculates the costs that occur during manufacture of a product, or provision of a service. It enables you to calculate the minimum price at which a product can be profitably marketed.
For more information, see the SAP Library under Financials ® Controlling ®  Product Cost Controlling.
Profitability Analysis (CO-PA)
Profitability Analysis analyzes the profit or loss of an organization by individual market segments. The system allocates the corresponding costs to the revenues for each market segment.
Profitability Analysis provides a basis for decision-making, for example, for price determination, customer selection, conditioning, and for choosing the distribution channel.
For more information, see the SAP Library under Financials ® Controlling ®  Profitability Analysis.
Profit Center Accounting (EC-PCA)
Profit Center Accounting evaluates the profit or loss of individual, independent areas within an organization. These areas are responsible for their costs and revenues.
Profit Center Accounting is a statistical accounting component in the SAP system. This means that it takes place on a statistical basis at the same time as true accounting. In addition to costs and revenues, you can display key figures, such as, Return on investment, working capital or cash flow on a profit center.
Regards
Berdn

Similar Messages

  • 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

  • Know about sap EPM Module

    Sir,
    Can u explain the what is difference between SAP EPM & BPC, or Both are same...
    Is it good career growth is there for SAP EPM ???????
    I am planning to do sap EPM module...
    Kindly give valuble suggestions....

    Sir,
    Yesterday I attended interview at delhi india one small company they are offering for me as a sap EPM consultant (fresher) job position,.
    So i have to join above for the postion as a sap epm Consultant (fresher job), I don't know excactly what is the EPM & BPC.
    i was discussed to my frnd on yersterday night he said SAP EPM is different tool & SAP BPC is the different tool still i am confusing what i have to do the nextstep.
    i know only about sap fico tool. my education (MBA Finance). Is it suitable for the above job postion and as well as sap epm tool career growth is good ?????? not.....
    Kindly give your suggestions.

  • Want to know about SAP course and SAP modules

      I am Sandeep, done BBM and have 3 years experience as Medical Representative(Pharma sales), and i'm perusing MBA in Sikkim Manipal University Distance Education, i came to know that SAP course has lot of scope in major industries, so that want to know about SAP course and SAP modules available and which module is suitable for me and details about the cost, duration of course please guide me
    Message was edited by: Colleen Lee - moving from Careers space to Training and Education.Also removing the bold text formating

    Ashok,
    Hi! Excellent that you are take the next steps in your education and applying them to work experiences.
    The best approach in taking SAP-related courses is to contact the university and confirm their approach. View SAP UA member schools here - http://uaaroundtheworld.informatik.tu-muenchen.de/overview(bD1lbiZjPTEwMQ==)/start.htm
    ...and assess the ones in the UK which does include Brunel.
    Ask if they provide SAP-related curricula (or supplements) and hands on SAP software in this course or others that you can take in your program.
    Best regards,
    Richard

  • Hello Everybody....I want to about SAP Basis Module

    I want to know about SAP Basis Module....Please tell me about SAP Basis Module..
    Edited by: Yogeshmtech on Dec 28, 2011 5:13 PM

    if you want to know something about SAP basis module, then you should post your question in the basis forum but not in the MM forum.
    Further is your question so generic that you actually should start with FAQs on top of eacvh forum and with SAP documentation in help.sap.com
    Please read the forum rules before posting.
    Toppic locked.

  • Where can i find clear information about sap function modules?

    where can i find clear information about sap function modules?
    for example,
    if i want to know whats the use of function module  "SAPGUI_PROGRESS_INDICATOR" .
    where i can find all the detail info..
    is there any sap transaction code for knowing about all function modules and there use?
    Regards
    Smitha

    Hi:
    For documentation, you have to find it out in se37 but it is not neccessary every Fm would have.
    Now question is about its used (if you know th e function module)-> go in se37-> put function module -> select where used list -> select used in like - program, class, BSP application etc -> click on ok; it would give the list of its used and just go in that find  how it is being used.
    if you have to find the function module for table - > go in se11 -> select table name -> click on where used list -> select function module  interface and click on ok, it would give the list of  its used.
    Otherwise go in g o o g l e dot  c o  m.
    Regards
    Shashi

  • What about the modules of SAP B1?

    Hi ,
    I am kiran. I am going to join as a SAP B1 consultant.
    I had found as SAB B1 has 15 modules and One works on SAP B1 will work on 15 modules. I don't know it is true or not .
    Are these 15 modules nothing but SAP modules or differ from SAP.
    I am interested to work on programming side. so which part of the SAP B1 is suitable ?
    Thanks
    kiran

    Hi Kiran,
    Unlike R/3, B1 is an integrated package to include all modules. There 13 modules in total.
    If you are interested in programming, you just need to master SDK. That is not another module but a tool to access any modules.
    You can go through this first: http://wiki.sdn.sap.com/wiki/display/B1/SAPBusinessOne
    Thanks,
    Gordon

  • Please help me in selecting the right SAP Module

    Hello All,
    I want to change my module; Currently I am in SAP BASIS.And I am willing to change in SRM.
    Can any one suggest me should I go for SRM or not,wheather it has a scope (Future Opportunities) / is it easier than BASIS or should  I continue with BASIS only.
    Or should I go for the  SAP security module.
    Kindly suggest.
    Thanks In Advacne.

    Hi Sonal,
    Before I say what is appropriate for you we need to know the following:
    What is your educational background
    What is your sap background and experience duration and which module you have worked
    What is your domain experience other than SAP
    What is your interest
    Which subject you are passionate about
    Are you looking for learning some other sap module instaead of basis
    Do you want to get a job in your interested module instead of just SAP Basis
    What you want to achieve within few years from now
    Thanks & Regards
    Subhasish

  • Please assist me which SAP module is better for me..

    Hi Evry1,
         I completed B.Com in 2012. After Completion, my B.Com teacher forcefully admitted me and also my friends in Costing (I.C.W.A), and he had guided us. But due to wrong guidence and lots of pressure my friends and we cant completed any of them after 2 years. Another reason is we are Bengali medium students and theoretical part of ICWAI is English.
           So due to frustration, We couldn't decide which course is better for us. Mom dad say MBA have huge placement. But due to get less than 50% marks in graduation, we couldn't get chance in A grade MBA colleges. So our choice is 1 & only MAT. But my another lots of friend, whose completed MBA applying MAT, they couldn't get jobs as their qualification. That's why at this moment we are very much confused which course is better for our future.
       Meanwhile my neighbour uncle tell me about SAP, but failure to tell of its information or description. we don't know what is this but I heard its have huge demand in market. Besides its have a lots of module. I couldn't get help anyone who assist me or our friend about this, and which module will help me in future. I have Commerce background and learn Tally from ICWAI (Institute of Cost & Works Accountant of India). I have no guidance and my father is an Ex- Serviceman.
             Please assist me, I & my friends will thankful to u.

    Hi Srinivasa,
    Thanks for replying.
    Presently im working as a subject matter expert from a Billing side in our project which involves intergration of Billing(Infranet Billing Engine),Siebel and SAP for financial reporting and related stuff.
    Im working on System design for Billing and how its different interfaces will interact with Siebel,Order Mangement and provisioning systems.
    I hope that helps..else i can go into more details.
    Thanks,
    Vikas Dabas

  • Which is the best SAP module?

    Hi,
    my name is vamsi and i have just completed my graduation and i am looking forward do SAP course but, as there are a lot of modules im confused what to select. Can you please suggest me which module is good and has a good demand in  the industry which can help me grow up in my career?
    Thank you.

    Hi Vamsi,
    As you are a fresher just out of colleage you can select any module in sap as you like but before doing that please consider the following point:
    First: Think in which subject you were most interested and always tried to learn more in your academics. Off course it has to do something with your stream of your education as well like for example: if your subject is Bachelor of Commerce then its natural that you would like to go for SAP Financials & Controlling. However if are a Bsc Graduate then think if you like coding, if the answer is yes, think about SAP ABAP option. If you are a Arts Graduate then think which functional skill you want to adopt, is it Sales, Logistics etc. If you have studied Industrial engineering like stuff you may want to go for Plant Maintenance related module etc. So Stream and subject plays a role for you to decide.
    Second: No matter which SAP module you select to pursue its always good to read and know some basics of that module what it does, which way it is applicable in the industry, how is the job position,
    etc. this will basically give you an idea about which module you want to learn.
    Let me know if you need more information or career guidance.
    You can join me in linkedin as well if you need.
    Thanks & Regards
    Subhasish

  • 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

  • SAP Module sapnwrfc: Retrieving data from SAP using RFC

    I'm sorry, if I'm asking about something that's obvious in SAP. I need to develop a perl application in a remote server that will receive a requisition from an abap application.
    I'm using the SAP Module sapnwrfc. I connect to SAP Gateway with no errors and execute the function sapnwrfc::installFunction (no errors returned) but I can't find the transaction in SAP. Anybody has some document about configurations that I need to do in sap ? Or anybody could see the code above and tell me what is wrong?
    [code]
    #!/usr/bin/perl
    use sapnwrfc;
    use Data::Dumper;
    use utf8;
      SAPNW::Rfc->load_config;
      my $conn = SAPNW::Rfc->rfc_connect;
      # print "Testing SAPNW::Rfc-$SAPNW::Rfc::VERSION\n";
      my $func = new SAPNW::RFC::FunctionDescriptor("ZRFCDAZEL") ;
      my $pipedata = new SAPNW::RFC::Type(name => 'DATA',
                                          type => RFCTYPE_TABLE,
                                          fields => [{name => 'OBJTY',
                                                      type => RFCTYPE_CHAR,
                                                      len => 4},
                                                     {name => 'OBJKY',
                                                      type => RFCTYPE_CHAR,
                                                      len => 10},
                                                     {name => 'ATTRIBUTES',
                                                      type => RFCTYPE_CHAR,
                                                      len => 255},
      $func->addParameter(new SAPNW::RFC::Export(name => "COMMAND",
                                                 len => 255,
                                                 type => $pipedata));
      $func->addParameter(new SAPNW::RFC::Import(name => "COMMAND1",
                                                 len => 255,
                                                 type => $pipedata));
    $funcao->callback(\&do_remote_pipe);
    $conn->disconnect();
    exit;
    sub do_remote_pipe {
        my $param = shift;
        print "\nPARM : " . $param->{'ZDUS'} . "\n";
        $param->COMMAND1([{'LOG'=>'Execute ZDUS PARAMETER '}]);
        $param->COMMAND1([{'STATUS'=>'S'}]);
        return 1;
    sub do_global_callback {
        warn "Running global callback ...\n";
        return 1;

    Timo,
    I included the code in the VO and in my bean, I was able to generate this code snippet:
    public String GetParamterSetup() {
            BindingContainer bindings = getBindings();
            OperationBinding operationBinding = bindings.getOperationBinding("applyParamVOCriteria");
            operationBinding.getParamsMap().put("vcodetype", codeType);
            Object result = operationBinding.execute();
            System.out.println(result);
            if (!operationBinding.getErrors().isEmpty()) {
                return null;
            return null;
    I was able to get the result from the System.out.println. It returns null when there is no match. However, I  want  to return the entire row or have access to that attribute.  For instance if I have 'GB011' what the system will display for me is 'viewrow [oracle.jbo.Key[GB011 ]]'
    Pls, how can I have access to individual attributes like ParamSetup.codeType, ParamSetuo.MainCode etc...

  • How can I learn about SAP BW?

    Hello,
    I need to work with it and will have access to it soon, what is the best wey to go about learning about it?

    Hi
    You can learn through SAP Academy training centres. otherwise if you go through this SDN site, you will find more valuable information not only about this module, you  will get different experts expiriences and problem solving methods will gives you a great idea about this module.
    Kind Regards,
    Babu

  • 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

  • GUIDE  ME  ABOUT  SAP  PLM

    hi experts.
    i am subhasis total 2.4 years experience as a  sap abap programmer.
    now i got offer from ibm & work is assigned in sap plm projects.
    can u guide me about sap plm . please send some documents if possible.
    mainly the role of sap abap programmer in sap plm.
    yours
    subhasis.

    Hi Sahoo,
    As ABAP guy in SAP-PLM project you be working mostly on Enhancements, Field exist, user Exists and Reports.
    There is nothing worry about SAP-PLM, the work you may get is based on customer requirement & scenarios but you will receive the Detail Funcitonal Specification from the PLM Functional Consultant.
    As i mentioned the ABAP work is mostly on Field Exists to make some fields mandatories, User Exists, Functional Modules, Enhancements & Reports.
    For details queries you can write in SDN, you will get the replies.
    Best of Luck for your new assignment.
    Regards
    Rehman
    Mark Useful Answers

Maybe you are looking for