ABAP-HR Material and FAQs

Hello All,
I want ABAP-HR Material and FAQs.
Could you please send it to my mail id: [email protected]
Points will be rewarded.
Thanks in Advance.
Regards
Sasidhar Reddy Matli.

hi,
see the doc for 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
sites regarding hr-abap:
http://www.sapdevelopment.co.uk/hr/hrhome.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPA/PAPA.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPD/PAPD.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PYINT/PYINT_BASICS.pdf
http://www.atomhr.com/training/Technical_Topics_in_HR.htm
http://www.planetsap.com/hr_abap_main_page.htm
You can see some Standard Program examples in this one ...
http://www.sapdevelopment.co.uk/programs/programshr.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?Offer=SAlgwn12604#Certification
http://www.erpgenie.com/faq/hr.htm.
http://www.planetsap.com/hr_abap_main_page.htm
http://www.sapbrain.com/TUTORIALS/FUNCTIONAL/HR_tutorial.html
These are the FAQ's that might helps you as well.
http://www.sap-img.com/human/hr-faq.htm
http://www.sapgenie.com/faq/hr.htm
http://www.planetsap.com/hr_abap_main_page.htm
http://www.atomhr.com/library_full.htm

Similar Messages

  • Bw material and FAQS

    Hi.SAP gurus,
       I m new to SAP-BW , can anybody send BW material and FAQS.Especially on reports..
    cheers
    Lohit.

    Hi
    BI platform:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/42/594e3c6bf4233fe10000000a114084/frameset.htm
    performance optimization
    http://help.sap.com/saphelp_nw2004s/helpdata/en/80/1a62dee07211d2acb80000e829fbfe/frameset.htm
    analysis & repair environment
    http://help.sap.com/saphelp_nw2004s/helpdata/en/92/1d733b73a8f706e10000000a11402f/frameset.htm
    scheduler
    http://help.sap.com/saphelp_nw2004s/helpdata/en/e1/b7463c32a3fe13e10000000a114084/frameset.htm
    FI extraction
    http://help.sap.com/saphelp_bw32/helpdata/en/af/16533bbb15b762e10000000a114084/frameset.htm
    whats new in BI 7.0
    http://help.sap.com/saphelp_nw04s/helpdata/en/57/a21f407b402402e10000000a1550b0/frameset.htm
    System administration tasks
    http://help.sap.com/saphelp_bw30b/helpdata/en/d1/e81c3b85e6e939e10000000a11402f/frameset.htm
    process chains
    http://help.sap.com/saphelp_nw70/helpdata/en/8f/c08b3baaa59649e10000000a11402f/frameset.htm
    WAD screen cam
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/6dd54713-0c01-0010-8691-a3576b9a95d9
    BI content installation
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c1/ea683cc5e8ca68e10000000a114084/frameset.htm
    BI suite :Business Explorer
    http://help.sap.com/saphelp_nw2004s/helpdata/en/5b/30d43b0527a17be10000000a114084/frameset.htm
    BI 7.0 & EP 7.0 integration
    /message/3945089#3945089 [original link is broken]
    DTP's
    http://help.sap.com/saphelp_nw2004s/helpdata/en/42/fb8ed8481e1a61e10000000a422035/frameset.htm
    Extractions in BI
    https://www.sdn.sap.com/irj/sdn/wiki
    transport
    http://help.sap.com/saphelp_nw2004s/helpdata/en/b5/1d733b73a8f706e10000000a11402f/frameset.htm
    The links below will give u a complete understanding of BI from the basic stuff to detailed information.
    Architectural Overview
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/800a7bd4-7897-2910-c6b2-9ee791e9913c
    BI Data Modeling
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/6ce7b0a4-0b01-0010-52ac-a6e813c35a84
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3668618d-0c01-0010-1ab5-aa75c3a4dfc2
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/2f5aa43f-0c01-0010-a990-9641d3d4eef7
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/dc43c445-0d01-0010-23a1-ca348ff5f975
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6090a621-c170-2910-c1ab-d9203321ee19
    Front-end Design
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/58fd9183-0e01-0010-f183-fdc9019f77ab
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/bda556e9-0c01-0010-83b0-d519d6deb9e9
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ad214fe9-0c01-0010-4291-a629e5ba5f90
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/07c361e9-0c01-0010-90b5-a7e315ea4875
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/ce496e17-0301-0010-e0b4-b8ca8b4588ac
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/efdbd593-0e01-0010-4eb1-a09ffedd550a
    Go through these PDF's.
    Enterprise Dataware Housing.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/67efb9bb-0601-0010-f7a2-b582e94bcf8a
    Enterprise Reporting.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/0901c9bb-0601-0010-49ab-c1770c527673
    http://help.sap.com/saphelp_nw04s/helpdata/en/a4/1be541f321c717e10000000a155106/content.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/e3/e60138fede083de10000009b38f8cf/frameset.htm
    https://www.sdn.sap.com/irj/sdn/bi
    Check these presentations:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5c46376d-0601-0010-83bf-c4f5f140e3d6
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5ee3725b-0401-0010-e381-ac323362ce91
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5c46376d-0601-0010-83bf-c4f5f140e3d6
    http://csc-studentweb.lrc.edu/swp/Berg/BB_index_main.htm
    http://csc-studentweb.lrc.edu/swp/Berg/articles/NW2004s_what_is_new.ppt
    BI 7.0 reporting features
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/910aa7a7-0b01-0010-97a5-f28be23697d3
    http://help.sap.com/saphelp_nw2004s/helpdata/en/b2/e50138fede083de10000009b38f8cf/frameset.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/4487dd91-0b01-0010-eba1-bcd6419
    What's new in SAP NetWeaver 7.0(2004s)? - An introduction to the functionality deltas and major changes
    http://searchsap.techtarget.com/cgi-bin/rd.pl/ftID-1121728-ctID-1064004?//expert/KnowledgebaseAnswer/0,289625,sid21_gci1064004,00.html
    http://help.sap.com/saphelp_nw04s/helpdata/en/9d/24ff4009b8f223e10000000a155106/content.htm
    check if this helps
    Multi-Dimensional Modeling with SAP Net Weaver BI
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/6ce7b0a4-0b01-0010-52ac-a6e813c35a84
    Modeling the Data Warehouse Layer with BI
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3668618d-0c01-0010-1ab5-aa75c3a4dfc2
    Front-end Design Guidelines - SAP BI in SAP Net Weaver 2004s
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/58fd9183-0e01-0010-f183-fdc9019f77ab
    Enterprise Reporting, Query, and Analysis - Developers Guide
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/0901c9bb-0601-0010-49ab-c1770c527673
    check
    https://www.sdn.sap.com/irj/sdn/developerareas/bi
    John Wiley & Sons - SAP Net Weaver For Dummies:
    0201703661 SAP BW: A Step by Step Guide for BW 2.0
    SAP Business Information Warehouse on the AS/400 System
    Code:http://www.redbooks.ibm.com/redbooks/pdfs/sg245200.pdf
    Code:http://www.best.tuke.sk/~ejo/books/SAP%20Enterprise%20Modelling%20-%20Consultants%20Handbook.pdf
    https://www.sdn.sap.com/irj/sdn/bi
    http://aiokeh.wdf.sap.corp:50000/SAPIKS2/contentShow.sap?TMP_IWB_TASK=DISPLAY&_CLASS=IWB_EXTHLP&_LOIO=42CA6A69992F6BB1E10000000A1553F6&_SLOIO=E3E60138FEDE083DE10000009B38F8CF&LANGUAGE=EN&RELEASE=700&_SCLASS=IWB_STRUCT
    http://help.sap.com/saphelp_nw2004s/helpdata/en/52/a21f407b402402e10000000a1550b0/frameset.htm
    https://websmp201.sap-ag.de/instguidesNW2004s
    A beginner's guide to your first BI model in NW2004S
    How to Papers
    https://www.sdn.sap.com/irj/sdn/docs?rid=/webcontent/uuid/93eaff2d-0a01-0010-d7b4-84ac0438dacc
    Check links..
    http://help.sap.com/saphelp_nw04s/helpdata/en/a4/1be541f321c717e10000000a155106/content.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/e3/e60138fede083de10000009b38f8cf/frameset.htm
    https://www.sdn.sap.com/irj/sdn/bi
    Check these presentations:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5c46376d-0601-0010-83bf-c4f5f140e3d6
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5ee3725b-0401-0010-e381-ac323362ce91
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5c46376d-0601-0010-83bf-c4f5f140e3d6
    http://csc-studentweb.lrc.edu/swp/Berg/BB_index_main.htm
    http://csc-studentweb.lrc.edu/swp/Berg/articles/NW2004s_what_is_new.ppt
    https://www.sdn.sap.com/irj/sdn/developerareas/bi
    Frequently Asked Questions  in SAP NW 7.0 - Enterprise Data Warehousing, Reporting, Query & Analysis and Business Planning
    https://www.sdn.sap.com/irj/sdn/docs?rid=/webcontent/uuid/93eaff2d-0a01-0010-d7b4-84ac0438dacc
    You could get some SAP Documents here.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5ee3725b-0401-0010-e381-ac323362ce91
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5c46376d-0601-0010-83bf-c4f5f140e3d6
    These two PDF files has all almost all info about BI2004s.
    Go through this Link for BI 7.0 Documents.
    https://websmp101.sap-ag.de/bi
    and Click on BI Standard Presentations link.
    New Features in BI:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/910aa7a7-0b01-0010-97a5-f28be23697d3
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/4487dd91-0b01-0010-eba1-bcd6419
    What's new in SAP NetWeaver 7.0(2004s)? - An introduction to the functionality deltas and major changes
    BI 7.0 reporting features
    http://searchsap.techtarget.com/cgi-bin/rd.pl/ftID-1121728-ctID-1064004?//expert/KnowledgebaseAnswer/0,289625,sid21_gci1064004,00.html
    Information Broadcasting:
    Check the followings.
    Summary of New Features for Information Broadcasting in SAP NetWeaver 2004s
    Exception Broadcasting in SAP NetWeaver 2004s
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/296edc90-0201-0010-7982-c6dc0b288296
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/00d91245-1f5d-2a10-c795-8394960f56cc
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b485d390-0201-0010-8189-91444c74c69f
    Thnx
    Anil.V

  • KM Material and FAQ

    Hi SDN champs,
    Can some one give me some links or documents regarding KM .I want to learn KM properly .I searched SDN and could find this link .
    Knowledge Management, TREX, and Collaboration How-to Guides for SAP NetWeaver 2004
    Are more material Link available on SDN, also you some one can send the FAQ realted to SAP EP.
    Cheers
    Sara

    Hi Sara
    Refer to these
    <b>
    Getting Started</b>
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/cacd8860-0a01-0010-a393-a7bdd1449487
    Knowledge Management, TREX, and Collaboration How-to Guides for SAP NetWeaver 2004
    https://www.sdn.sap.com/irj/sdn/km-elearning.
    <b>
    KMC blogs</b>
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/weblogs/topic/17
    <b>KMC developer area.</b>
    https://www.sdn.sap.com/irj/sdn/km
    <b>Documentation</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/4c/9d953fc405330ee10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/1d/3d59fdaa5ebb45967ea107d3fa117a/frameset.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5d0ab890-0201-0010-849d-98d70bd1d5f0
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sapportals.km.docs/library/kmc/knowledge%20management%20and%20collaboration%20developers%20guide.html
    http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/kmc/knowledge%20management%20and%20collaboration%20developers%20guide.html
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/43ed710f-0501-0010-8cbf-e4ac06cacd88
    Knowledge Management, TREX, and Collaboration How-to Guides for SAP NetWeaver 2004
    <b>Threads</b>
    /message/3418833#3418833 [original link is broken]
    /thread/408919 [original link is broken]
    Thanx
    Pankaj

  • I want to abap-hr programing and concept plz send usefull links and materia

    hi plz ,
    i want to learn abap-hr programing and concepts and faqs, so,  plz send usefull links or material or pdfs which helps  me and i hope ,
    thank u,

    Hi Manoj,
    Welcome to SDN....
    Check these link on ABAP HR.
    http://www.sapdevelopment.co.uk/hr/hrhome.htm
    http://www.planetsap.com/hr_abap_main_page.htm
    http://www.sap-img.com/
    http://help.sap.com/saphelp_erp2005/helpdata/en/60/d8d8c7576311d189270000e8322f96/frameset.htm
    http://www.planetsap.com/HR_ABAP_payroll.htm
    http://abap4.tripod.com/Human_Resources_Tables_Infotypes.html
    http://abap4.tripod.com/SAP_Functions.html
    http://www.planetsap.com/hr_abap_main_page.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c6/8a15381b80436ce10000009b38f8cf/frameset.htm
    http://www.sap-basis-abap.com/saphr.htm
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?track=NL-142&ad=500911#Transactions
    http://help.sap.com/saphelp_47x200/helpdata/en/4f/d5275f575e11d189270000e8322f96/content.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/4f/d5275f575e11d189270000e8322f96/content.htm
    http://www.saptips.com/Previews/SAPtipsAugust-September2004TableOfContents.pdf
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?track=NL-142&ad=500911#Transactions
    http://help.sap.com/saphelp_46c/helpdata/en/4f/d528be575e11d189270000e8322f96/frameset.htm.
    http://www.sap-basis-abap.com/saphr.htm.
    http://www.sapgenie.com/faq/hr.htm
    http://www.sapgenie.com/workflow/scenarios.htm
    http://www.sap-img.com/human/hr-faq.htm
    http://www.sapdevelopment.co.uk/hr/hrhome.htm
    http://www.sapgenie.com/mysap/mysap_hr.htm
    Thanks,
    Vinay

  • Question ABAP : Reading a material and its components

    Hi!
    I want to make a report on a FERT and HAWA materials.  I want to specify the standard cost for the product and also the cost for raw material and  the fixed overhead specified separately.
    Which tables do I involve in selection and what logic to retrieve the
    costs for rawmaterial and fixed oh..
    Report:
    PLANT MATERIAL  TOTAL_COST   RAWMAT_COST FIXED_OH_COST
    XXXX   0500-001         50                      40                         10
    Very grateful for answers
    Regards Lars Zinn

    Hi Lars,
    Tables involved are <b>keko</b>(Product Costing - Header Data) / <b>keph</b>(Product Costing: Cost Components for Cost of Goods Mfd).
    Hope this helps,
    erwan

  • ABAP HR material

    hi every one
    Can any one help me in providing links for ABAP HR material
    Rajesh

    Hi Rajesh, read this.
    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
    sites regarding hr-abap:
    http://www.sapdevelopment.co.uk/hr/hrhome.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPA/PAPA.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPD/PAPD.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PYINT/PYINT_BASICS.pdf
    http://www.atomhr.com/training/Technical_Topics_in_HR.htm
    http://www.planetsap.com/hr_abap_main_page.htm
    You can see some Standard Program examples in this one ...
    http://www.sapdevelopment.co.uk/programs/programshr.htm
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?Offer=SAlgwn12604#Certification
    http://www.erpgenie.com/faq/hr.htm.
    http://www.planetsap.com/hr_abap_main_page.htm
    http://www.sapbrain.com/TUTORIALS/FUNCTIONAL/HR_tutorial.html
    These are the FAQ's that might helps you as well.
    http://www.sap-img.com/human/hr-faq.htm
    http://www.sapgenie.com/faq/hr.htm
    http://www.planetsap.com/hr_abap_main_page.htm
    http://www.atomhr.com/library_full.htm
    HR Long texts Upload
    Look at the below link
    Also,
    Few notes are below:
    InfoSets in the HR Application
    You can use SAP Query in HR to report on HR data. Queries are maintained as described in Creating Queries. The special features of queries created for HR are described in Maintaining Queries in the Human Resources Application. The maintenance procedure for HR InfoSets differs from the described procedure inasmuch as HR data fields are grouped together in infotypes.
    InfoSet management in SAP Query is also used for InfoSet Query. For further information, see Functions for Managing InfoSets.
    If you want to create InfoSets for HR, you can use logical databases PNP, PNPCE, PAP, and PCH (see HR Logical Databases). The database you must use to create your InfoSet depends on the component in which the data you want to report on is stored.
    The reports you can execute using InfoSets based on logical databases PNP (or PNPCE) or PCH are similar, but differ in that they can select different objects. The following table describes the connection between the logical database, and the infotypes you can include in an InfoSet. It also provides you with one or two examples of reports that you can execute using the appropriate InfoSets.
    Logical database PNP/PNPCE* PCH PAP
    Selection of Persons Objects from Personnel Planning Applicants
    Infotypes that can be included in the InfoSet Infotypes for· Personnel Administration (0000-0999) · Time Management (2000-2999) · Payroll infotypes · Infotypes for Personnel Planning objects that can be related to persons If the object type is specified:· Infotypes for the object type · Infotypes for objects that can be related to the specified object typeIf the object type is not specified:· All infotypes · Infotypes for Recruitment (4000-4999)· Some infotypes for Personnel Administration (such as 0001 and 0002)
    · Customer infotypes
    Reporting examples · Selection of all persons who participated in a specific business event, output of prices for reserved business events · Selection of all persons assigned to a specific personnel area, output of qualifications held by these persons · Selection of all business events held in London in March, output of all persons who participated in these business events · Selection of all positions assigned to a specific organizational unit, output of all persons assigned to the positions · Selection of all applicants hired last year to work on special projects, output of addresses for the applicants selected
    Logical database PNPCE (PNP Concurrent Employment) functions just like logical database PNP. The procedure for creating InfoSets is also the same. It only becomes significant if you work with Concurrent Employment.
    Creating InfoSets
    The maintenance procedure for HR InfoSets differs from the procedure described so far in this section inasmuch as HR data fields are grouped together in infotypes. To set up an InfoSet for the HR application, proceed as follows:
    1. On the initial screen for maintaining InfoSets, enter a name for the InfoSet and choose Create.
    2. On the next screen, enter a name for the InfoSet and select one of the HR logical databases in accordance with your reporting requirements.
    Customer infotypes can be created on all HR logical databases. In each individual case, therefore, you must decide which database to select so that you can report on customer infotypes.
    This screen enables you to enter an authorization group. All of the queries that are subsequently created using this InfoSet can only be executed by persons who have this authorization group.
    3. Choose .
    This takes you to the Infotype Selection for InfoSet  screen. You now have the option of creating field groups and assigning fields as required for non-HR InfoSets. Field groups that correspond to infotypes and already contain fields, however, are always created for HR InfoSets. The field groups are displayed in an overview tree in the top right section of the screen.
    The infotypes that you included in the InfoSet are displayed in an overview tree on the left of the screen. The infotype fields that are already included in field groups are displayed in a different color, and the corresponding field group ID is displayed.
    In the standard system, a field group is created automatically for each infotype that you included in the InfoSet (a field group corresponds to an infotype).
    In the standard system, each field group contains the infotype-specific fields. To ensure that working with the InfoSet is as easy as possible, you are advised to restrict your use of fields in each field group to those you really require. This means you should remove fields that are not required.
    An infotype's fields must only be assigned to the pertinent field group. Make sure this assignment is correct. If the assignment is incorrect, the InfoSet could be rendered unusable.
    When an InfoSet is created, the following fields are transferred automatically to the first field group:
    § Logical database PNPCE or PNP Personnel number
    § Logical database PAP Applicant number
    § Logical database PCH Object ID, plan version, and object type
    6. Determine the fields that must be included in the field groups of your InfoSet. If you require further information, see Assigning Fields to a Field Group.
    If you want, you can change the default sequence of field groups and fields as required using Drag&Drop.
    7. To save the InfoSet, choose .
    8. To generate the InfoSet, choose .
    On the Change InfoSet (InfoSet name) screen, you can choose Edit ® Change infotype selection to add more infotypes to the InfoSet, or to remove infotypes from the InfoSet. Remember to regenerate the InfoSet afterwards.
    This screen also enables you to update InfoSets if, for example, the system contains new additional fields for specific key values. To do so, choose InfoSet ® Additional functions ® Update additional HR fields.
    9. Go back to the initial screen for InfoSet maintenance.
    10. Choose User group assignment.
    11. Select a user group, and save your entry.
    sample code
    START-OF-SELECTION.
    GET pernr.
      rp_provide_from_frst p0000 space pn-begda pn-endda.
      if pnp-sw-found EQ '1'.
          READ TABLE p0001 WITH KEY pernr = p0000-pernr.
         if sy-subrc = 0.
         write : p0001-plans. " earliest.
        endif.
      endif.
      rp_provide_from_last p0014 space pn-begda pn-endda.
      if pnp-sw-found EQ '1'.
       READ TABLE p0014 WITH KEY pernr = p0000-pernr.
         if sy-subrc = 0.
         write : p0014-LGART. .
        endif.
      endif.
    Also this is HR_data structure.
    Enterprise Structure
    Definition
    Structure of company according to personnel administrative, time management and payroll perspectives from the point of view of your own company
    The company structure describes elements of the company and there dependencies.
    Structure
    The enterprise structure in Personnel Administration consists of the following:
    Client
    The client is, in accordance with commercial law, an organizational and data technical isolated unit within the R/3 System, with separate master records and its own separate record of tables. A client’s area of jurisdiction can correspond to a unit as small as a company, or as large as an entire enterprise.
    Company code
    The company code is the smallest organizational unit of external accounting in which a complete and isolated financial accounting can be created. All events that affect the company code and the creation of all statements for a legal financial statement, for example balances, profit and loss calculation are contained within the company code organizational units.
    Personnel area
    The personnel area is an organizational unit; according to a personnel administrative, time management and payroll organizational point of view, a personnel area represents a delimited enterprise area. The personnel area is only used in Personnel Administration and is unique within a client.
    Personnel areas are sub-divided into personnel subareas. Organizational data and guidelines as how to assign it, are stored on a personnel area and personnel subarea level. The rules and guidelines could be of a legal, pay scale and collective agreement, or internal nature. A personnel area is assigned to a company code which has the financial accounting values that are relevant for the personnel area. A pay scale area, a pay scale type and a public holiday calendar are precisely defined for a personnel subarea.
    Example
    The personnel area in a software company can be subdivided into development, training and administration personnel subareas.
    Personnel subarea
    The personnel subarea is only used in Personnel Administration. The groupings linked to the personnel subarea determine which entries from the subsequent screen are allowed for an employee of a particular company code/personnel area.
    Groupings are used for validation of master and time data. Groupings are also used to check the plausibility of data that you enter.
    Organizational key
    The organizational key enables you to define the organizational assignment more exactly. The organizational key can consist of elements from the enterprise structure and personnel structure.
    If you require further information on the corporate structure, please see the Elements of the Enterprise Structure section.
    Integration
    The Hiring personnel action enables you to assign employees to the enterprise structure. The data is stored in the Organizational Assignment (0001) infotype. This infotype is essential for authorization checks.
    http://help.sap.com/saphelp_47x200/helpdata/en/48/35c3ea4abf11d18a0f0000e816ae6e/frameset.htm
    Personnel Structure
    Definition
    Describes an employee’s position in a company from the individual employee’s view.
    Structure
    The personnel structure can be considered from two perspectives:
    administrative perspective
    organizational perspective
    The Structure link administrative personnel structure consists of the following elements:
    Employee group
    Employee subgroup
    Payroll area
    Organizational key
    The extent of the distinction that you make between employee groups and employee subgroups depends on your evaluation and access protection requirements.
    The organizational key consists of a part of both the enterprise structure and the personnel structure. The elements employee group and employee subgroup could also be relevant in forming the organizational key.
    The Structure link organizational personnel structure consists of the following elements:
    Position
    Job
    Organizational unit
    Integration
    To assign an employee to the personnel structure, use the Hiring personnel action. The data is stored in the Structure link Organizational Assignment (0001) infotype. This infotype is essential for authorization checks.
    http://help.sap.com/saphelp_47x200/helpdata/en/48/35c3ea4abf11d18a0f0000e816ae6e/frameset.htm
    kindly reward if found helpful.
    cheers,
    Hema.

  • MB5L Report Discrepacy for Material and Stock Account Currency

    I have found in the MB Report Discrepancy for Material and Stock Account Currency. Why is this happening? Why is there a variance between total price in materials and stock account? Anyone please help me. I'm abaper but now been pushed to do logistic. I need help for this issue.

    Hi,
    Here's some information from help. Variances can occur for the following reasons:
    You have entered postings to the stock account manually.
    The stock account includes not only stock postings, but also other postings. In this case, you should check the account determination in the Customizing for Valuation and Account Assignment. Make sure that the stock accounts are used solely for the transaction key BSX (stock postings).
    Check Account Determination - OMWB
    The account assignment for the stock accounts (transaction key BSX) was changed during productive operation; the respective stocks, however, were not deducted from the old account (movement type 562) and posted to the new one (movement type 561).
    Cheers !

  • User Exit to check whether chapter id for Material and Plant combination is maintained while creating sales order

    Hello all,
    my requirement is, system should give error message while creating sales order, if chapter ID is not maintained for a material and plant combination.
    please suggest the user exit.

    Hi
    CASE 1 : All Plants are excisable.
    In Material master , Foreign Trade data tab-  mentioned Control code field mandatory. ( i.e nothing but Chapter ID)
    CASE 2 : Few Plants are excisable
    In the Case 2 you need to go for Enhancement
    Program Name : MV45AFZB 
    User Exit:            USEREXIT_CHECK_VBAP ( Item Level Check )
    By using above user exit you write a logic with the help of ABAPer
    Plant and Chapter ID combination table : J_1IMTCHID

  • Hi All,Please send me abap-hr material .Its urgent please.

    Hi All,Please send me abap-hr material .Its urgent please.

    These are the FAQ's that might helps you
    http://www.sap-img.com/human/hr-faq.htm
    http://www.sapgenie.com/faq/hr.htm
    http://www.sapgenie.com/sapfunc/index.htm
    http://www.sap-img.com/abap/sample-hr-reports-allocate-petrol-allowance.htm
    http://www.sap-img.com/hr021.htm
    http://www.sap-img.com/human/hr-faq.htm
    http://www.sap-img.com/human/finding-the-list-of-hr-module-tables.htm
    additional info......
    Download the ABAP e-book for HR in the below link under the section 'Free ABAP eBook Download'
    http://www.sap-img.com
    Also have a look at the following links-
    http://www.sapbrain.com/TUTORIALS/FUNCTIONAL/HR_tutorial.html
    http://www.sapdevelopment.co.uk/hr/hrhome.htm
    http://planetsap.com/index.htm
    http://www.atomhr.com/library_full.htm
    http://www.sap-basis-abap.com/saphr.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/60/d8d8c7576311d189270000e8322f96/frameset.htm
    http://www.sapfriends.com/sapstuff.html
    http://www.atomhr.com/know_preview/Reading_Payroll_Results_with_ABAP.htm
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?track=NL-142&ad=500911#Payroll
    http://www.sap-press.com/product.cfm?account=&product=H967
    http://www.sapdevelopment.co.uk/hr/payres_abap.htm
    http://www.sapdevelopment.co.uk/hr/payres_tcode.htm
    http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPA/PAPA.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPD/PAPD.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PYINT/PYINT_BASICS.pdf
    http://www.atomhr.com/training/Technical_Topics_in_HR.htm
    http://www.planetsap.com/hr_abap_main_page.htm
    you can see some Standard Program examples in this one..
    http://www.sapdevelopment.co.uk/programs/programshr.htm
    http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?Offer=SAlgwn12604#Certification

  • Upload material and contract data from file in CCM 2.0

    Hi guys,
    This might be a difficult one!
    We have the following situation in a Client:
    We are upgrading a Requisitite catalog (working with BBP 2.0)
    to a CCM 2.0 catalog.
    In Requisite, one can upload material- and contract data from a file (it is standard funcionality) into the database.
    We need to have the same kind of funcionality in CCM 2.0 because our client does not prefer to work with XI (which is the standard SAP solution in these cases).
    How can we accomplish this? maybe with some additional ABAP coding!
    Our client is not working with Vendor Catalogs but I´m trying to see if we can use a dummy vendor catalog to accomplish material upload in CCM2 form a CSV file.
    Anyone had to face this situation before?
    If so, please provide some clues how to do it?
    Thanks in advance,
    Aart

    SAP CATALOG CSV 2.0 <;>
    Defaults;EN
    Model
    Catalog;All;;All Catalog
    DataType;DATE;DATE;Date
    Characteristic;Z_ACTION;/CCM/NAME;false;Action
    Characteristic;/CCM/PRODUCT_ID;/CCM/ID;false;Part Number
    Characteristic;/CCM/SHORT_DESCRIPTION;/CCM/DESCRIPTION;false;Description
    Characteristic;Z_MATERIAL_TYPE;/CCM/ID;false;Material Type
    Characteristic;/CCM/MINIMUM_QUANTITY;/CCM/MINIMUM_QUANTITY;false;Order Unit
    Characteristic;Z_CONTENT;/CCM/MINIMUM_QUANTITY;false;Content
    Characteristic;/CCM/LEAD_TIME;/CCM/LEAD_TIME;false;Lead Time
    Characteristic;Z_SUPPLIER_ID;/CCM/ID;false;Supplier Number
    Characteristic;Z_SUPPLIER_NAME;/CCM/NAME;false;Sup Name
    Characteristic;Z_P_GROUP;/CCM/ID;false;Purchasing Group
    Characteristic;Z_P_ORG;/CCM/ID;false;Purchasing Org
    Characteristic;/CCM/CONTRACT_ID;/CCM/ID;false;Contract Number
    Characteristic;/CCM/CONTRACT_ITEM_ID;/CCM/ID;false;Contract Item
    Characteristic;/CCM/PRODUCT_GROUP;/CCM/ID;false;Product Category
    Characteristic;/CCM/PRICE;/CCM/PRICE;true;Price
    Characteristic;Z_DATE;DATE;false;Date
    Characteristic;/CCM/LONG_DESCRIPTION;/CCM/LONG_DESCRIPTION;false;Long Description
    Characteristic;/CCM/PICTURE;/CCM/ATTACHMENT;false;Picture
    Schema;All;Z_ACTION;Z_MATERIAL_TYPE;Z_CONTENT;Z_SUPPLIER_ID;Z_SUPPLIER_NAME;Z_P_GROUP;Z_P_ORG;Z_DATE;All Schema
    Category;10000300;;;ABC
    Category;10000400;;;DEF

  • ABAP programing material related to BW.

    Hi Experts,
    Im new to BW/BI. Can anyone please tell me where I can find ABAP programing material related to BW.
    Thank in advance.

    I can also recommend my book [http://www.sap-hefte.de/katalog/hefte/titel/gp/titelID-1273]. It contains all the often used exits with practical examples, a long sample of the transformation and I received a lot of positive feedback. A second reworked edition that also contains the BPS and Integrated Planning is currently in work and will probably appear this fall.
    Best regards
    Dirk
    Edited by: Dirk Herzog on Jul 20, 2008 8:38 PM

  • BAPI or FM for Material and ChapterID Combination(J1ID Transaction)

    Dear All,
                    I need BAPI or FM  for Creation of Material and ChapterID combination. I dont need for other options present in J1ID Transaction.
    I cannot use Insert statement  for Material and ChapterID  Creation  as it contains only few fields.
    Please let me know regarding this.
    Regards,
    Anilkumar

    Hello
    The bapi BAPI_INSPECTIONPLAN_CREATE is used for creation. There you can assign several materials through structure MATERIALTASKALLOCATION (BAPI1191_MTK_C). There is no bapi for modifications so you can assign other materials using LSMW or BDC as Gururaj told you or in this special case populate table MAPL directly (better talk to your ABAP to decide it); I did it without issues and I checked and the function CZ_VB_MAPL_POST could update the information you need (talk to your ABAP to validate it).
    Best regards
    Carlos Díaz

  • ABAP HR MATERIAL REQUIRED

    HI FRIENDS,
    CAN ANYONE SEND ME THE ABAP-HR MATERIAL .
    THAXS AND REGARDS.
    HITESH

    Maybe this link can be helpfull
    http://www.sapdevelopment.co.uk/hr/hr_infotypes2.htm
    Have a look at http://www.sap-img.com/human/how-to-create-a-hr-infotype.htm, but have also a look at this thread
    https://www.sdn.sap.com/sdn/collaboration.sdn?contenttype=url&content=https%3A//forums.sdn.sap.com/thread.jspa%3FthreadID%3D9945%26messageID%3D63016
    found this link probably can be helpful to someone
    http://help.sap.com/saphelp_46b/helpdata/en/f7/2fe034ee251f34e10000009b38f83b/frameset.htm
    http://sap.ittoolbox.com/groups/technical-functional/sap-hr/how-to-create-z-infotype-in-organizational-management-745603
    How to create a HR infotype?
    1) Go to Transaction PM01. 
    2) Enter the custom Infotype number which you want to create (Should be a 4 digit number, start with 9). 
    3) Select the ‘Employee Infotype’ radio button. 
    4) Select the ‘PS Structure Infotype’. 
    5) Click on Create… A separate table maintenance window appears… 
    6) Create a PS structure with all the fields you want on the Infotype 
    7) Save and Activate the PS structure 
    8) Go back to the initial screen of PM01. 
    9) Click on ‘All’ push button. It takes a few moments. 
    10) Click on ‘Technical Characteristics’. Infotype list screen appears 
    11) Click on ‘Change’(pencil) button 
    12) Select your Infotype and click on ‘Detail’ (magnifying glass) button 
    13) Give ‘T591A’ as subtype table 
    14) Give ‘T591S’ as subtype txt tab 
    15) Give your subtype field as subtype field 
    16) Save and come back to PM01 initial screen 
    17) Click on ‘Infotype Characteristics’ … Infotype list screen appears 
    18) Click on ‘Change’ (pencil) button 
    19) Click on ‘New Entries’ 
    20) Enter your Infotype number and short text 
    21) Here we have to set different Infotype Characteristics as per the requirement. (Better open another session with some standard Infotype’s infotype characteristics screen and use as the reference to fill yours) 
    22) Save your entries. 
    23) Now the Infotype is created and ready to use. 
    24) If you want to change the layout of the Infotype as per your requirement… 
    25) In the PM01 initial screen…Select ‘Screen’ radio button and give 2000 as the screen name, then click on edit. 
    26) In the next screen.. Select ‘Layout Editor’ and click ‘Change’. 
    27) Screen default layout appears…here you can design/modify the screen..change the attributes of the fields..etc. 
    28) Save and activate. (Don’t forget to ‘Activate at every level) 
    InfoSets in the HR Application 
    You can use SAP Query in HR to report on HR data. Queries are maintained as described in Creating Queries. The special features of queries created for HR are described in Maintaining Queries in the Human Resources Application. The maintenance procedure for HR InfoSets differs from the described procedure inasmuch as HR data fields are grouped together in infotypes.
    InfoSet management in SAP Query is also used for InfoSet Query. For further information, see Functions for Managing InfoSets.
    If you want to create InfoSets for HR, you can use logical databases PNP, PAP, and PCH (see HR Logical Databases). The database you must use to create your InfoSet depends on the component in which the data you want to report on is stored.
    The reports you can execute using InfoSets based on logical databases PNP or PCH are similar, but differ in that they can select different objects. The following table describes the connection between the logical database, and the infotypes you can include in an InfoSet. It also provides you with one or two examples of reports that you can execute using the appropriate InfoSets.
    Logical database     PNP     PCH     PAP
    Selection of     Persons     Objects from Personnel Planning     Applicants
    Infotypes that can be included in the InfoSet     Infotypes for
    •     Personnel Administration (0000-0999)
    •     Time Management (2000-2999)
    •     Payroll infotypes
    •     Infotypes for Personnel Planning objects that can be related to persons     If the object type is specified:
    •     Infotypes for the object type
    •     Infotypes for objects that can be related to the specified object type
    If the object type is not specified:
    •     All infotypes     •     Infotypes for Recruitment (4000-4999)
    •     Some infotypes for Personnel Administration (such as 0001 and 0002)
         •     Customer infotypes
    Reporting examples     •     Selection of all persons who participated in a specific business event, output of prices for reserved business events
    •     Selection of all persons assigned to a specific personnel area, output of qualifications held by these persons     •     Selection of all business events held in London in March, output of all persons who participated in these business events
    •     Selection of all positions assigned to a specific organizational unit, output of all persons assigned to the positions     •     Selection of all applicants hired last year to work on special projects, output of addresses for the applicants selected
    Creating InfoSets
    The maintenance procedure for HR InfoSets differs from the procedure described so far in this section inasmuch as HR data fields are grouped together in infotypes. To set up an InfoSet for the HR application, proceed as follows:
    1.     On the initial screen for maintaining InfoSets, enter a name for the InfoSet and choose  Create.
    2.     On the next screen, enter a name for the InfoSet and select one of the HR logical databases in accordance with your reporting requirements.
    Customer infotypes can be created on all HR logical databases. In each individual case, therefore, you must decide which database to select so that you can report on customer infotypes.
    This screen enables you to enter an authorization group. All of the queries that are subsequently created using this InfoSet can only be executed by persons who have this authorization group.
    3.     Choose  .
    This takes you to the Infotype Selection for InfoSet .
    The logical HR database uses the table APPLICANT. You must declare it in the TABLES statement.
    At the GET APPLICANT event, the APPLICANT structure contains the data for an applicant number chosen on the basis of selection screen entries.
    The APPLICANT-APLNO field contains the applicant number which is selected for processing.
    Only the APPLICANT-APLNO field should be read from the work area of the APPLICANT table. The other fields are intended for internal use only.
    2.7     Authorization Checks in Reporting (PA-APP)
    Generally, authorization checks in reporting do not differ from those in the transactions. Since data access in reporting is always of the read type, the system checks for a read authorization; the authorization group must be R or *.
    In some situations, you may want to use a simplified authorization check when running reports. The object RPABAP is required for the check as well as the object RPORGIN; if these authorizations are available, a simpler and faster check is performed.
    If the report cannot read certain applicant data due to lack of authorization, data for these persons is not processed at the GET APPLICANT time point. A note appears at the end of the list stating the number of applicants who were skipped due to lack of authorization.
    2.8     Views
    Introduction
    When evaluating data, we distinguish between the logical and the physical view.
    The physical view corresponds to the form in which the infotype data is stored in the HR tables. This data is stored in infotype records with a validity period.
    In the logical view, the validity periods of individual fields are determined for several infotype records. For example, for an evaluation, the time period during which an employee worked at a particular job may be important, irrespective of whether a company code, personnel area or cost center change occurred during this time.
    Data from several infotypes can also be provided for a specific partial period. When calculating partial payroll periods, it is especially important that data on basic pay, work schedule and cost distribution are provided for the relevant partial period.
    These two types of logical views are implemented in the projection and join.
    &#61607;     Join
    &#61607;     Projection
    &#61607;     Join and Projection
    &#61607;     Time-Dependent Control Tables
    &#61607;     Generalization of the View
    Join
    A join processes records from two or more infotypes. The data from these infotypes is provided for a specific partial period.
    &#61607;     We would like to know in which time period an employee worked at which job and at which address he or she resided during this time.
    The following address data is available:
    January – June     Hamburg
    June – December     Munich
    The following work center data is available:
    January – April     Programmer
    May – December     Course instructor
    If the address and work center data are provided for specific partial periods, the following cases result:
    January – April     Hamburg / programmer
    May – June     Hamburg / course instructor
    July – December     Munich / Course instructor
    The ABAP syntax of this join is as follows:
    PROVIDE * FROM Pomp
    FROM Pnnnn
            BETWEEN PN-BEGDA AND PN-ENDDA.
    The partial periods for infotypes Pomp and Pnnnn as well as for all other infotypes of the join are defined in the fields BEGDA and ENDDA.
    The data of each infotype in the join must be available during the entire validity period of the infotype. The time periods of infotype records may not overlap; therefore, the join may not contain infotypes with time constraint "three".
    The time periods of records overlap if an infotype is read without any subtype restrictions. For example, the Address infotype has the subtypes Permanent residence, Temporary residence and Home address.
    Time periods will ultimately overlap if all addresses are read. Therefore, you must always select a subtype for a join, and this subtype may not have the time constraint "three".
    The program code for the above join for work center and address data is as follows:
    REPORT RPABAP03.
    TABLES: PERNR.
    INFOTYPES: 0001, 0006.
    GET PERNR.
      PROVIDE * FROM P0001
    FROM P0006 BETWEEN PN-BEGDA AND PN-ENDDA
              WHERE P0006-SUBTY eq '1'.
        WRITE: / PERNR-PERNR, P0001-STELL,
                 P0006-STRAS, P0006-BEGDA, P0006-ENDDA.
      ENDPROVIDE.
    Sometimes no data is available for a particular infotype in the selected partial period. Infotype validity periods may not overlap but gaps are permitted.
    For example, gaps can occur when personal data is joined with address data:
    Personal data
    January 1960 - May 1998     Miller
    May 1998 - December 1998     Smith
    Address data:
    January 1998 - December 1998     Hamburg
    A join for personal and address data is presented as follows:
    January 1960 - December 1997     Miller
    January 1998 - April 1998     Miller / Hamburg
    May 1998 - December 1998     Smith / Hamburg
    Only personal data is available in the first partial period. Since the record does not provide the required information, the join's function of providing data from all associated infotypes has not been fulfilled.
    The variables Pnnnn_VALID recognize that only incomplete data is available for a particular partial period.
    This variable is formed when the report is run for each Pnnnn infotype included in a join.
    If data exists in the partial period for the Pnnnn infotype, the variable Pnnnn_VALID is filled with X.
    These variables are evaluated as follows:
    REPORT RPDEMO03.
    TABLES: PERNR.
    INFOTYPES:  0002,
                0006.
    GET PERNR.
      PROVIDE * FROM P0002
    FROM P0006 BETWEEN PN-BEGDA AND PN-ENDDA
              WHERE P0006-SUBTY = '1'.
        IF P0006_VALID EQ 'X'.
          WRITE:  /  PERNR-PERNR,
                     P0002-BEGDA DD/MM/YYYY,
                     P0002-ENDDA DD/MM/YYYY,
                     P0002-NACHN,
                     P0006-ORT01.
        ENDIF.
      ENDPROVIDE.
    A list is generated only if address data is available. The first partial period, for which only personal data is available, is suppressed.
    Projection
    All data of an infotype is stored on the database with its period of validity.
    When you change one or more fields of an infotype record, the system creates a new record with a new validity period. The date on which you changed the record is the start date of this new record.
    Therefore, the data fields that are not affected by the changes contain the same data over several infotype records and validity periods.
    From a logical perspective, these fields are valid in all infotype records until they are changed. 
    When seen from this logical perspective, each field of an infotype has its own validity period.
    This is illustrated in the following case:
    An employee has worked as a programmer for three years in three different personnel areas.
    The following organizational assignment data is available:
    January 1992 - December 1992: Programmer /personnel area 1
    January 1993 - December 1993: Programmer /personnel area 2
    January 1994 - December 1994: Programmer /personnel area 3
    If you only require the time period during which an employee performs a specific job and not his or her personnel area for an evaluation, the following applies:
    January 1996 - December 1998: Programmer
    The physical view has three infotype records, the logical view one.
    To create meaningful evaluations and avoid redundancies, create logical views for infotype records.
    Select the infotype fields that are important for the evaluation and disregard the others.
    In the above example, the data in the other fields is invalid for the evaluation since it is unknown which personnel area the employee belonged to from 1996 - 1998.
    This view of the validity period of a group of infotype fields is known as projection.
    The program code for the projection is:
    PROVIDE  FROM Pnnnn
      BETWEEN PN-BEGDA AND PN-ENDDA .
    The infotype data for a projection must be available throughout the entire validity period. If the time periods of certain infotype records overlap, the data cannot be clearly assigned to one period.
    Therefore, you should not use projections for infotype records with time constraint ‘three’. The report for the above projection is:
    REPORT RPABAP04.
    TABLES: PERNR.
    INFOTYPES: 0001.
    GET PERNR.
       PROVIDE STELL FROM P0001 BETWEEN PN-BEGDA AND PN-ENDDA.
         WRITE: / PERNR-PERNR, P0001-STELL, P0001-BEGDA,
                 P0001-ENDDA.
       ENDPROVIDE .
    The logical validity for the activity period is included in the infotype BEGDA and ENDDA fields.
    Join and Projection
    You can combine the two logical views of infotype data, the join and the projection.
    We read the data from several infotypes and create new partial periods. We select the infotype fields that are important for the evaluation and combine these partial periods again.
    The following example illustrates this.
    An employee works as a programmer in the current year and marries in May. Her name does not change.
    Organizational assignment:
    January - December     Programmer
    Personal data:
    January - April     Donna Debug - single
    May - December     Donna Debug - married
    When the data from both infotypes is read concurrently, the result is:
    January - April     Donna Debug - single /
    programmer
    May - December     Donna Debug - married /
    programmer
    Since we can disregard her marital status in the evaluation, we project on her first and last names:
    January - December     Donna Debug / programmer
    The following report exemplifies the above case:
    REPORT RPDEMO04.
    TABLES: PERNR.
    INFOTYPES:  0001,
                0002.
    GET PERNR.
      PROVIDE STELL FROM P0001
        NACHN VORNA FROM P0002
        BETWEEN PN-BEGDA AND PN-ENDDA
        IF P0001_VALID = 'X'.
          WRITE:  / P0002-NACHN, P0002-VORNA,
                    P0001-BEGDA DD/MM/YYYY,
                    P0001-ENDDA DD/MM/YYYY,
                    P0001-STELL.
        ENDIF.
      ENDPROVIDE.
    This report combines the associated validity periods and provides the data of relevant infotype fields for a specific period.
    &#61607;     Fields which are not accessed have their initial value in the projection.
    Provision of data for a specific partial period is especially important for partial period factoring in payroll.
    If an employee's basic pay or the cost distribution changes during the payroll period, you must calculate the salary proportionately for the resulting partial periods.
    However, if the payroll administrator of the organizational unit changes, this has no effect on payroll.
    By linking a join and a projection, you can read the master data for a specific partial period.
    Time-Dependent Control Tables
    Infotype data is generally coded as a key (for example, infotype P0006, address type 1 = permanent residence) to allow fast data entry and space-saving storage. When you process infotypes, the texts or attributes of the keys are read from the relevant control tables.
    In many control tables, storage of data is time-dependent and therefore assigned a validity period.
    In HR, this applies to the following areas:
    •     Work schedules
    •     Pay scale structures
    •     Wage types
    •     Wage type valuation
    •     Bank data
    •     Positions
    •     Payee codes
    When you read the data for an infotype key from time-dependent control tables, you must determine which record is valid in the specified validity period.
    If you use a transaction to process an infotype, the system reads the table record which is valid on the start date.
    Generalization of the View
    You can use the logical view to edit and output data according to user specifications.
    The special feature of HR views is the time dependency of the data. Personnel data is almost always related to specific validity periods. A HR view provides data for specific time intervals.
    In general terms, a HR view is a logical perspective of interval-dependent internal tables.
    See also:
    Processing All Infotype Records (PA-PAD)
    Processing All Infotype Records (PA-APP)
    Processing a Specific Infotype Record (PA-PAD)
    Processing a Specific Infotype Record (PA-APP)
    3     Import/Export Files in HR
    The following sections describe the purpose of files PCL1 and PCL2 and explains how to access them.
    Files PCL1, PCL2, PCL3 and PCL4
    Storing Data in PCLn Files
    PCLn Buffer
    Cluster Directory Manager
    3.1     Files PCL1, PCL2, PCL3 and PCL4
    Which information is stored in the files?
    File PCL1 is the basis for the HR work area data. It contains information from the time data recording, for example, incentive wage time tickets or infotype supplement texts.
    File PCL2 contains derived information, for example, payroll results. It also contains all generated payroll schemas.
    File PCL3 contains applicant data.
    File PCL4 contains the change documents for HR master data and recruitment.
    The structure of PCLn files corresponds to that of the INDX file which you may be familiar with from other applications. The structure of all PCLn files (n = 1, 2, 3, and 4) is identical.
    Structure of Files
    Like in almost all SAP files, the key element with the highest priority is the client; data within a client is grouped according to basic relations (field PCLn-RELID).
    The type of basic relation is known as a cluster and characterizes the stored data according to the type, for example, cluster RX contains the payroll result for country X (from table T500L) and cluster TE contains the trip costs data.
    Depending on the cluster, the structure of PCLn-SRTFD is defined in a field string xx-KEY, which is defined in an include RPCnxxy0.
    Naming conventions
    n = 1, 2, 3, or 4 (for PCL1, PCL2, PCL3, or PCL4)
    xx = for the cluster
    y = 0 for international clusters
    y = country grouping according to T500L for national clusters
    The personnel number is usually the first component of xx-KEY.
    Importing and Exporting Data
    The import/export files PCLn are managed with the ABAP/4® commands IMPORT and EXPORT . These commands store objects such as fields, field strings, or internal tables on the database, or read these from the database. Data is read from and written to the database using a unique key( xx-Key).
    Please note that the RMAC macros RP-IMP-Cn-xx and RP-EXP-Cn-xx are provided for importing and exporting data. Only these macros should be used.
    See also Macro Modules
    3.2     Storing Data in PCLn Files
    Data from the different HR application areas is stored in data clusters in PCLn files (n = 1, 2, 3, or 4).
    This collection of data objects can consist of:
    •     Fields used within reports
    •     Field strings
    •     Internal tables
    The structure of the PCLn files provides a framework for the individual application areas.
    Each application area must have a two-character cluster name (relation ID). It must also have a key structure; 40 bytes of the SRTFD field are available for this structure.
    When a record is exported to the PCLn file, the cluster ID is written to the RELID field and the key value to the SRTFD field.
    Naming convention for includes when defining clusters:
    RPCnxxy0 n = 1, 2, 3 or 4 (for PCL1, PCL2, PCL3, PCL4)
    xx = cluster ID
    y = country indicator
    Description of Cluster Data using Cluster RX as an Example
    The data definition is stored in the include RPC2RX00 in accordance with the above naming conventions.
    Structure of cluster key:
      Data:  BEGIN OF RX-KEY.
               INCLUDE STRUCTURE PC200.
             DATA: END OF RX-KEY.
    The DDIC structure PC200 contains the fields PERNR (personnel number) and SEQNO (sequential number).
    The data definition of the cluster also contains other internal tables.
    For a list of available data clusters, refer to the domain description in the Data Dictionary.
    xx Key
    The xx key name is dependent on the cluster.
    The RX KEY is used for all Rx and Xx clusters. In all other cases, the name of the xx key corresponds to that of the cluster.
    Cluster     xx Key
    RA     RX-KEY
    B1     B1-KEY
    G3     G3-KEY
    XA     RX-KEY
    3.3     PCLn Buffer
    To keep the number of database accesses to a minimum, import and export data is stored in the main memory buffer. Buffer management routines ensure that exported data can be stored in the PCLn files.
    The following two examples illustrate which problems can occur without a buffer.
    Retroactive accounting of payroll results
    Starting payroll in the test mode
    Retroactive Accounting of Payroll Results
    In February 1998, a retroactive accounting run is executed for January.
    FOR PERIOD 199801 IN PERIOD 199802
    The payroll results for January are recalculated and then written directly to the database.
    Result:
    The database now contains the results of the following payroll periods.
    FOR-PERIOD 199801 IN-PERIOD 199802
    FOR-PERIOD 199801 IN-PERIOD 199801
    Payroll is then run for February.
    FOR-PERIOD 199802 IN-PERIOD 199802
    If problems should arise during the payroll run for this period, the February record is not stored on the database.
    Result:
    The current January record on the database is:
    FOR-PERIOD 199801 IN-PERIOD 199802
    This problem does not arise if you use the buffer since all data of a transaction is always updated collectively. In the above example, the recalculated January result would be stored in the buffer and, if the payroll run for February were terminated prematurely, the database would not be updated.
    The current January record on the database would thus be:
    FOR-PERIOD 199801 IN-PERIOD 199802
    Starting Payroll in the Test Mode
    In a test run, the database is not updated. Since the payroll results from the previous period are used as the basis for calculating the results of the following period, the results of the actual payroll run would differ from those of the test run, if this test run were executed over several periods.
    The use of the buffer enables trouble-free access to the required results for the previous period.
    What is required for exporting/importing data to/from the PCLn files using the buffer?
    &#61607;     The following includes contain the data definition for the buffer. They must be included in the report that writes the data to or reads the data from the database.
    RPPPXD00
    RPPPXD10
    &#61607;     Include RPPPXD10 must be in the common part ‘BUFFER’ .
    Include RPPPXM00, which contains the buffer management routines, is also required.
    The macros for importing and exporting data must comply with the following naming convention:
    Naming Convention for EXPORT/ IMPORT Macros:
    RP-aaa-Cn-xy
    where aaa = IMP / EXP, n=1 for PCL1, 2 for PCL2, 3 for PCL3, 4 or PCL4
    and xy = cluster name.
    This guarantees consistency between the export and import of data and also ensures that all exported objects are imported again.
    Export Using the Data Buffer
    When macros are used for exporting, records are written to a main memory buffer and not directly to the database. When the program run has been completed, the records in the buffer are stored in the appropriate PCLn database.
    Import Using the Data Buffer
    When the macros are used to import data, the data records are not read directly from file PCLn. Instead, the system checks the buffer directory to see whether the main memory already contains a record with the same key. If this is not the case, the record is read from PCLn to the buffer and then retrieved from the buffer for the report.
    If the import is successful, the return code RP-IMP-xy-SUBRC = 0 is set. When data is read from the buffer, the system carries out a check for cluster authorization. Standard import programs follow the naming convention RPCLSTxy (xy = cluster name).
    &#61607;     report rpttcdmg.
    tables:
         pernr,
         pcl1,
         pcl2.
    include rpppxd00.    "buffer definitions
         data: begin of common part 'BUFFER'.
         include rpppxd10. "PCLx buffer
         data: end of common part.
         data: begin of common part 'CLUSTER_DIRECTORY'.
         include rpc2cd00. " "cluster directory definitions
         data: end of common part.
    include rpc2rdd0.
    get pernr.
       rp-init-buffer. "reset buffer
       cd-key-pernr = pernr-pernr.
       rp-imp-c2-cd. "read cluster CD from
      buffer/DB
       perform cd_manager using ... .
    alternative: call function rp_evaluation_periods...
       rx-key-pernr = pernr-pernr.
       rx-key-seqno = rgdir-seqnr.
       rp-imp-c2-rd. "read cluster RD from
      buffer/DB
       rp-exp-c2-rd. "update cluster RD in buffer
       perform prepare_update using 'V'. "update database (DB)
    Subroutines CD manager and Cluster buffer
    include rpcmgr00. "Cluster Directory Manager
    include rpppxm00. "module pcl1(2)-buffer
    3.4     Cluster Directory
    Finding Payroll Results for a Specific Query
    Payroll results are stored in cluster Rx of the PCL2.
    The cluster key is non-mnemonic. It contains the PERNR (personnel number) and SEQNO (sequential number) fields.
    The internal table RGDIR contains a directory entry for each payroll result. This entry is a sequential number (RGDIR-SEQNR) which uniquely identifies the payroll result.
    Payroll results can only be imported if the payroll cluster key contains the personnel number and sequential number.
    Before you can import a payroll record, you must select the entry in the RGDIR on the basis of existing data such as for-period, for-payroll area, for-payroll category, in-period, in-payroll area, in-payroll category, and so on, in order to determine the sequential number.
    You will probably always have the same queries when importing payroll records. For example, "Which payroll results (original and retroactively accounted records) were written for a specific payroll run (defined by IN payroll category, IN payroll area, IN period)"?
    There are standard modules that can be used. It is advantageous to use the standard modules rather than self-programmed solutions because no program modifications will be required if the payroll directory changes. The modules are described in the following section:
    Function Modules for Selecting Payroll Results
    3.5     Function Modules for Selecting Payroll Results
    The employee’s payroll directory is always transferred to the function modules using the table RGDIR.
    The modules then transfer the payroll records which satisfy the specified selection criteria using a table whose type corresponds to that of the RGDIR but which has a different name. The selection parameters differ according to the function of the module. For more information, read the module documentation.
    All module names begin with ‘CD_’.
    Function Module: CD_EVALUATION_PERIODS
    Function Module: CD_READ_PREVIOUS
    Function Module: CD_READ_PREVIOUS_ORIGINAL
    Other Modules for the Payroll Cluster
    Sample Report
    Function Module: CD_EVALUATION_PERIODS
    This module transfers the payroll results to a payroll run as ‘A’ records (current). It also transfers the accompanying ‘P’ records (previous).
    This is the module most frequently used in evaluation programs.
    Table contents before the function module is accessed:
    SEQNR     FPPER     FPBEG     FPEND     INPER     IPBEG     IPEND     BONDT     PAYTY     PAYID     INPTY     INPID
    00001     01.1996     01.01.96     01.15.96     01.1996     01.01.96     01.15.96                             
    00002     01.1996     01.01.96     01.15.96           01.16.96     01.16.96                       B     0
    00003           01.16.96     01.16.96           01.16.96     01.16.96     01.16.96     B     0     B     0
    00004           01.17.96     01.17.96           01.17.96     01.17.96     01.17.96     A     0     A     0
    00005           01.17.96     01.17.96           01.17.96     01.17.96     01.17.96     A     1     A     1
    00006     02.1996     01.16.96     01.31.96     02.1996     01.16.96     01.31.96                             
    00007     02.1996     01.16.96     01.31.96     03.1996     02.01.96     01.15.96                             
    00008     03.1996     01.16.96     01.31.96     03.1996     01.01.96     02.15.96                             
    The following parameters are transferred:
    - BONUS_DATE = '00000000'
    - INPER_MODIF = '02'
    - INPER = '199803'
    - PAYTY = ' '
    - PAYID = ' '
    Result:
    SEQNR     FPPER     FPBEG     FPEND     INPER     IPBEG     IPEND     BONDT     PAYTY     INPTY     INPID     SRTZA
    00006     02.1996     01.16.96     01.31.96     02.1996     01.16.96     01.31.96                             P
    00007     02.1996     01.16.96     01.31.96     03.1996     02.01.96     02.15.96                             A
    00008     03.1996     01.16.96     01.31.96     03.1996     02.01.96     02.15.96                             A
    Explanation of individual fields
    Function Module: CD_READ_PREVIOUS
    This module transfers a previous payroll record for a payroll record; this is the newest record for the payroll period (or daily payroll run) which was written before the transferred payroll record and contains the same FOR data as the transferring record.
    Table contents before the function module is accessed:
    SEQNR     FPPER     FPBEG     FPEND     INPER     IPBEG     IPEND     BONDT     PAYTY     PAYID
    00001     01.1996     01.01.96     01.15.96     01.1996     01.01.96     01.15.96                 
    00002     01.1996     01.01.96     01.15.96           01.16.96     01.16.96                 
    00003           01.16.96     01.16.96           01.16.96     01.16.96     01.16.96     B     0
    00004           01.17.96     01.17.96           01.17.96     01.17.96     01.17.96     A     0
    00005           01.17.96     01.17.96           01.17.96     01.17.96     01.17.96     A     1
    00006     02.1996     01.16.96     01.31.96     02.1996     01.16.96     01.31.96                 
    00007     02.1996     01.16.96     01.31.96     03.1996     02.01.96     02.15.96                 
    00008     03.1996     01.16.96     01.31.96     03.1996     02.01.96     02.15.96                 
    The following parameters are transferred:
    - Record with SEQNR '00007'
    Result:
    SEQNR     FPPER     FPBEG     FPEND     INPER     IPBEG     IPEND     BONDT     PAYTY     SRTZA
    00006     02.1996     01.16.96     01.31.96     02.1996     01.16.96     01.31.96                 P
    Explanation of individual fields
    Function Module: CD_READ_PREVIOUS_ORIGINAL
    This module reads the previous original payroll result.
    Table contents before the function module is accessed:
    SEQNR     FPPER     FPBEG     FPEND     INPER     IPBEG     IIPEND     BONDT     PAYTY     PAYID
    00001     01.1996     01.01.96     01.15.96     01.1996     01.01.96     01.15.96                 
    00002     01.1996     01.01.96     01.15.96           01.16.96     01.16.96                 
    00003           01.16.96     01.16.96           01.16.96     01.16.96     01.16.96     B     0
    00004           01.17.96     01.17.96           01.17.96     01.17.96     01.17.96     A     0
    00005           01.17.96     01.17.96           01.17.96     01.17.96     01.17.96     A     1
    00006     02.1996     01.16.96     01.31.96     02.1996     01.16.96     01.31.96                 
    00007     02.1996     01.16.96     01.31.96     03.1996     02.01.96     02.15.96                 
    00008     03.1996     01.16.96     01.31.96     03.1996     02.01.96     02.15.96                 
    The following parameters are transferred:
    - Record with SEQNR '00008'
    Result:
    SEQNR     FPPER     FPBEG     FPEND     INPER     IPBEG     IPEND     BONDT     PAYTY     SRTZA
    00006     02.1996     01.16.96     01.31.96     02.1996     01.16.96     01.3196                 P
    Explanation of individual fields
    3.6     Other Modules for the Payroll Cluster
    Modules which derive information from the payroll cluster are available in addition to the modules for payroll result selection.
    1.     CD_RETROCALC_PERIOD
    This module differentiates between original payroll records and retroactive accounting records.
    Table contents before the function module is accessed:
    SEQNR     FPPER     FPBEG     FPEND     INPER     IPBEG     IPEND     BONDT     PAYTY     PAYID
    00001     01.1996     01.01.96     01.15.96     01.1996     01.01.96     01.15.96                 
    00002     01.1996     01.01.96     01.15.96           01.16.96     01.16.96                 
    00003           01.16.96     01.16.96           01.16.96     01.16.96     01.16.96     B     0
    00004           01.17.96     01.17.96           01.17.96     01.17.96     01.17.96     A     0
    00005           01.17.96     01.17.96           01.17.96     01.17.96     01.17.96     A     1
    00006     02.1996     01.16.96     01.31.96     02.1996     01.16.96     01.31.96                 
    00007     02.1996     01.16.96     01.31.96     03.1996     02.01.96     02.15.96                 
    00008     03.1996     01.16.96     01.31.96     03.1996     02.01.96     02.15.96                 
    The following parameters are transferred:
    - Record with SEQNR '00008'
    Result:
    - CALCD = ' '
    Explanation of individual fields 
    2.     CD_PAYROLL_UNTIL
    This module reads the RGDIR for the date up to which the regular payroll run was executed for an employee.
    3.     CD_HIGHEST_PAYDT
    This module reads the most recent check date for an employee from the RGDIR.
    4.     CD_GET_INFO
    This module provides information (most recent check date, accounted to date) for a particular personnel number.
    3.7     Explanation of Individual Fields
    For-Information
    The FPPER, FPBEG, FPEND, BONDT, PAYTY, PAYID, ABKRS, PERMO, PAYDT, JUPER fields contain information on the period for which payroll is run.
    In-Information
    The INPER, IPEND, INPTY, INPID, IABKRS, IPERM fields contain information on the period in which payroll is run.
    SEQNR
    The field is used as a key to uniquely identify the payroll record.
    This field also defines the sequence of payroll results (history).
    Control Indicator (SRTZA)
    Control indicator     Meaning
    a     Current
    p     Previous
    o     Old
    &#61607;     For more information, see the online documentation for the individual function modules.
    3.8     Sample Report
    REPORT RPTTMWBS.
    DATA: RGDIR LIKE PC261 OCCURS 0 WITH HEADER LINE.
    DATA: EVPDIR LIKE RGDIR OCCURS 0 WITH HEADER LINE.
    DATA: PREVIOUS_RESULTS LIKE RGDIR OCCURS 0 WITH HEADER LINE.
    DATA: CALCD TYPE C.
    DATA: IN_ENTRY LIKE PC261.
    DATA: OUT_ENTRY LIKE PC261.
    INCLUDE RPCCCD09.
        CALL FUNCTION 'CU_READ_RGDIR'
          EXPORTING
             PERSNR = '00021218'
             TABLES IN_RGDIR = RGDIR
          EXCEPTIONS
             NO_RECORD_FOUND = 1
             OTHERS = 2.
    Read RGDIR
      CALL FUNCTION 'CD_EVALUATION_PERIODS'
         EXPORTING
             BONUS_DATE = '00000000'
             INPER_MODIF = '02'
             INPER = '199603'
             PAY_TYPE = CD_C-REGULAR
             PAY_IDENT = ' '
         TABLES
             RGDIR = RGDIR
             EVPDIR = EVPDIR
           IABKRS =
         EXCEPTIONS
             NO_RECORD_FOUND = 1
             OTHERS = 2.
    output:
    00006
    00007
    00008
    Read regular payroll results for January
    A results (original result plus retroactive calculations)
    and P results
      LOOP AT EVPDIR WHERE SRTZA = CD_C-ACTUAL.
    Only current results (00007 and 00008)
      CALL FUNCTION 'CD_RETROCALC_PERIOD'
         EXPORTING
            ENTRY = EVPDIR
         IMPORTING
            CALCD = CALCD
         EXCEPTIONS
            OTHERS = 1.
    Determine, whether original result
            CHECK CALCD = ' '.
    Special processing: Only the original period
    March is processed (seqnr 00008).
            IN_ENTRY = EVPDIR.
    CALL FUNCTION 'CD_READ_PREVIOUS_ORIGINAL'
         EXPORTING
            IN_RECORD = IN_ENTRY
         IMPORTING
            OUT_RECORD = OUT_ENTRY
         TABLES
            RGDIR = RGDIR
         EXCEPTIONS
            OTHERS = 1.
    out_entry now contains the previous results
    Input 00008 ----> Output 00006
      ENDLOOP.
      LOOP AT EVPDIR WHERE SRTZA = CD_C-ACTUAL.
         IN_ENTRY = EVPDIR.
      CALL FUNCTION 'CD_READ_PREVIOUS'
         EXPORTING
            IN_RECORD = IN_ENTRY
         TABLES
            RGDIR = RGDIR
            OUT_RGDIR = PREVIOUS_RESULTS
         EXCEPTIONS
            NO_RECORD_FOUND = 1
            OTHERS = 2.
    Input 00007 ---> 00006
    Input 00008 ---> no record found
    Output structure is a table, since there can be
    several previous results: for example, if legal person
    changes, and is retroactively deleted
    ENDLOOP
    4     Specific Commands
    The following sections describe the different specific commands in HR.
    Function modules in HR
    Macro modules
    4.1     Function Modules in HR
    Function modules are program modules which have a defined interface and allow type testing of parameters.
    They are managed with transaction SE37 and combined to function groups according to relevant criteria. You can access this transaction under Tools &#61614; ABAP Workbench &#61614; Function Builder.
    The HR function groups use the naming convention RPxx or HRxx where xx is an identifier of your choice.
    You can use the SHOW FUNCTION * editor command to branch from report processing to function module display.
    4.2     Macro Modules
    Definition
    An module that can be called within an ABAP program.
    Use
    Like subprograms and function modules, macro modules are a means of presenting programs in modular form. Macro modules (macros) are used often in the Human Resources application component (HR).
    Defining and Calling Modules
    Two options are provided:
    •     Macros can be defined in reports or includes using the ABAP command DEFINE. A macro can be used within a report or within an include. If a macro is used in a report, and the macro is defined in an include with the DEFINE command, the include must be integrated.
    &#61607;     Macros have the following advantages:
    If a macro is changed, each report using this macro is automatically regenerated when it is executed.
    •     Macros can also be defined as RMAC macros. The source code of these modules is stored in the function section of the control table TRMAC (Macros in ABAP Programs). The coding is grouped under a specific name in the table key.
    According to conventions, the first two letters of the name must stand for the application. The rest of the name is freely definable.
    &#61607;     Customer-specific RMAC modules should begin with a special character.
    The macros defined in the control table TRMAC can be used by all reports.
    &#61607;     When you change a RMAC macro in the table TRMAC, the reports that use this macro are not regenerated automatically. You must regenerate them manually.
    The following section includes a list of  programming utilities for the logical databases PNP and PAP.
    5     Utilities in HR
    The following utilities are available.
    General Utilities
    Report     Meaning
    RPUACG00     Code generation / authorization check
    RPUAUD00     Infotype auditing
    Programming Utilities
    Report     Meaning
    RPINCL10     String search in reports
    Cluster Utilities
    Report     Meaning
    RPCLSTyy     Display cluster for PCLx (yy = RELID)
    RPUPxD00     Delete cluster for PCLx (individual data records)
    RPUPxD10     Delete cluster for PCLx (several data records)
    6     References:
    Different parts of the document has been prepared with the help of articles available on Internet
    Following websites are referred :
    a). http://help.sap.com
    b). http://sapfans.com
    c). http://www.sap-basis-abap.com/saphr.htm

  • ABAP Certification material

    If anyone has abap certification material plz contact me. I can exchange them with the material I have in CRM or XI.
    [email protected]

    Please have a look at below links. It  may be useful to you.
    Topics:
    https://websmp102.sap-ag.de/~sapidp/011000358700000499112003E
    There is a pdf called ABAP certification.
    http://www.esnips.com/web/SAP-ABAP?
    Also try http://www.sapdomain.com
    They provide Certification simulation questions which are very useful and a must try site.
    http://www.sap-img.com/ab040.htm
    Have a look at below threads.
    /message/213564#213564 [original link is broken]
    /message/514469#514469 [original link is broken]
    /message/1315746#1315746 [original link is broken]
    /message/1736299#1736299 [original link is broken]
    /message/1736299#1736299 [original link is broken]
    /message/257122#257122 [original link is broken]
    /message/130164#130164 [original link is broken]
    Best Regards,
    Vibha
    *Please mark all the helpful answers

  • Abap basics material documents

    Hi Gurus,
    i am intrested to learn basic in Abap i want to make my carrrier in  it so i kindky request you to plz send material  my [email protected]
    Thanks in Advance,
    Edited by: Krishna on Apr 23, 2008 2:16 PM
    Edited by: Krishna on Apr 23, 2008 2:17 PM

    Hi....
    Go for Siemens material. Check the following link:
    http://www.sapbrainsonline.com/TUTORIALS/TECHNICAL/ABAP_tutorial.html
    additional info
    ABAP is one of many application-specific fourth-generation languages (4GLs) first developed in the 1980s. It was originally the report language for SAP R/2, a platform that enabled large corporations to build mainframe business applications for materials management and financial and management accounting. ABAP used to be an abbreviation of Allgemeiner Berichtsaufbereitungsprozessor, the German meaning of "generic report preparation processor", but was later renamed to Advanced Business Application Programming. ABAP was one of the first languages to include the concept of Logical Databases (LDBs), which provides a high level of abstraction from the basic database level.
    The ABAP programming language was originally used by SAP developers to develop the SAP R/3 platform. It was also intended to be used by SAP customers to enhance SAP applications – customers can develop custom reports and interfaces with ABAP programming. The language is fairly easy to learn for programmers but it is not a tool for direct use by non-programmers. Good programming skills, including knowledge of relational database design and preferably also of object-oriented concepts, are required to create ABAP programs.
    ABAP remains the language for creating programs for the client-server R/3 system, which SAP first released in 1992. As computer hardware evolved through the 1990s, more and more of SAP's applications and systems were written in ABAP. By 2001, all but the most basic functions were written in ABAP. In 1999, SAP released an object-oriented extension to ABAP called ABAP Objects, along with R/3 release 4.6.
    SAP's most recent development platform, NetWeaver, supports both ABAP and Java.
    edit Implementation
    edit Where does the ABAP Program Run?
    All ABAP programs reside inside the SAP database. They are not stored in separate external files like Java or C++ programs. In the database all ABAP code exists in two forms: source code, which can be viewed and edited with the ABAP workbench, and "compiled" code ("generated" code is the more correct technical term), which is loaded and interpreted by the ABAP runtime system. Code generation happens implicitly when a unit of ABAP code is first invoked. If the source code is changed later or if one of the data objects accessed by the program has changed (e.g. fields were added to a database table), then the code is automatically regenerated.
    ABAP programs run in the SAP application server, under control of the runtime system, which is part of the SAP kernel. The runtime system is responsible for processing ABAP statements, controlling the flow logic of screens and responding to events (such as a user clicking on a screen button). A key component of the ABAP runtime system is the Database Interface, which turns database-independent ABAP statements ("Open SQL") into statements understood by the underlying DBMS ("Native SQL"). The database interface handles all the communication with the relational database on behalf of ABAP programs; it also contains extra features such as buffering of frequently accessed data in the local memory of the application server.
    Basis
    Basis sits between ABAP/4 and Operating system.Basis is like an operating system for R/3. It sits between the ABAP/4 code and the computer's operating system. SAP likes to call it middleware because it sits in the middle, between ABAP/4 and the operating system. Basis sits between ABAP/4 and the operating system. ABAP/4 cannot run directly on an operating system. It requires a set of programs (collectively called Basis) to load, interpret, and buffer its input and output. Basis, in some respects, is like the Windows environment. Windows starts up, and while running it provides an environment in which Windows programs can run. Without Windows, programs written for the Windows environment cannot run. Basis is to ABAP/4 programs as Windows is to Windows programs. Basis provides the runtime environment for ABAP/4 programs. Without Basis, ABAP/4 programs cannot run. When the operator starts up R/3, you can think of him as starting up Basis. Basis is a collection of R/3 system programs that present you with an interface. Using this interface the user can start ABAP/4 programs. To install Basis, an installer runs the program r3inst at the command-prompt level of the operating system. Like most installs, this creates a directory structure and copies a set of executables into it. These executables taken together as a unit form Basis.
    To start up the R/3 system, the operator enters the startsap command. The Basis executables start up and stay running, accepting requests from the user to run ABAP/4 programs.
    ABAP/4 programs run within the protective Basis environment; they are not executables that run on the operating system. Instead, Basis reads ABAP/4 code and interprets it into operating system instructions. ABAP/4 programs do not access operating system functions directly. Instead, they use Basis functions to perform file I/O and display data in windows. This level of isolation from the operating system enables ABAP/4 programs to be ported without modification to any system that supports R/3. This buffering is built right into the ABAP/4 language itself and is actually totally transparent to the programmer.
    Basis makes ABAP/4 programs portable. The platforms that R/3 can run on are shown in Table. For example, if you write an ABAP/4 program on Digital UNIX with an Informix database and an OSF/Motif interface, that same program should run without modification on a Windows NT machine with an Oracle database and a Windows 95 interface. Or, it could run on an AS/400 with a DB2 database using OS/2 as the front-end.
    SAP also provides a suite of tools for administering the Basis system. These tools perform tasks such as system performance monitoring, configuration, and system maintenance. To access the Basis administration tools from the main menu, choose the path Tools->Administration.
    Platforms and Databases Supported by R/3
    Operating Systems Supported Hardware Supported Front-Ends Supported Databases
    AIX SINIX IBM SNI SUN Win 3.1/95/NT DB2 for AIX
    SOLARIS HP-UX Digital HP OSF/Motif Informix-Online
    Digital-UNIX Bull OS/2 Oracle 7.1
    Windows NT AT&T Compaq Win 3.1/95/NT Oracle 7.1
    Bull/Zenith OSF/Motif SQL Server 6.0
    HP (Intel) SNI OS/2 ADABAS D
    OS/400 AS/400 Win95 OS/2 DB2/400
    edit SAP Systems and Landscapes
    All SAP data exists and all SAP software runs in the context of an SAP system. A system consists of a central relational database and one or more application servers ("instances") accessing the data and programs in this database. A SAP system contains at least one instance but may contain more, mostly for reasons of sizing and performance. In a system with multiple instances, load balancing mechanisms ensure that the load is spread evenly over the available application servers.
    Installations of the Web Application Server (landscapes) typically consist of three systems: one for development, one for testing and quality assurance, and one for production. The landscape may contain more systems, e.g. separate systems for unit testing and pre-production testing, or it may contain fewer, e.g. only development and production, without separate QA; nevertheless three is the most common configuration. ABAP programs are created and undergo first testing in the development system. Afterwards they are distributed to the other systems in the landscape. These actions take place under control of the Change and Transport System (CTS), which is responsible for concurrency control (e.g. preventing two developers from changing the same code at the same time), version management and deployment of programs on the QA and production systems.
    The Web Application Server consists of three layers: the database layer, the application layer and the presentation layer. These layers may run on the same or on different physical machines. The database layer contains the relational database and the database software. The application layer contains the instance or instances of the system. All application processes, including the business transactions and the ABAP development, run on the application layer. The presentation layer handles the interaction with users of the system. Online access to ABAP application servers can go via a proprietary graphical interface, the SAPGUI, or via a Web browser.
    edit Transactions
    We call an execution of an ABAP program using a transaction code a transaction. There are dialog, report, parameter, variant, and as of release 6.10, OO transactions. A transaction is started by entering the transaction code in the input field on the standard toolbar, or by means of the ABAP statements CALL TRANSACTION or LEAVE TO TRANSACTION. Transaction codes can also be linked to screen elements or menu entries. Selecting such an element will start the transaction.
    A transaction code is simply a twenty-character name connected with a Dynpro, another transaction code, or, as of release 6.10, a method of an ABAP program. Transaction codes linked with Dynpros are possible for executable programs, module pools, and function groups. Parameter transactions and variant transactions are linked with other transaction codes. Transaction codes that are linked with methods are allowed for all program types that can contain methods. Transaction codes are maintained in transaction SE93.
    So, a transaction is nothing more than the SAP way of program execution—but why is it called “transaction”? ABAP is a language for business applications and the most important features of business applications were and still are are transactions. Since in the early days of SAP, the execution of a program often meant the same thing as carrying out a business transaction, the terms transaction and transaction code were chosen for program execution. But never mix up the technical meaning of a transaction with business transactions. For business transactions, it is the term LUW (Logical Unit of Work) that counts. And during one transaction (program execution), there can be many different LUW’s.
    Let’s have a look at the different kind of transactions:
    edit Dialog Transaction
    These are the most common kind of transactions. The transaction code of a dialog transaction is linked to a Dynpro of an ABAP program. When the transaction is called, the respective program is loaded and the Dynpro is called. Therefore, a dialog transaction calls a Dynpro sequence rather than a program. Only during the execution of the Dynpro flow logic are the dialog modules of the ABAP program itself are called. The program flow can differ from execution to execution. You can even assign different dialog transaction codes to one program.
    edit Parameter Transaction
    In the definition of a parameter transaction code, a dialog transaction is linked with parameters. When you call a parameter transaction, the input fields of the initial Dynpro screen of the dialog transaction are filled with parameters. The display of the initial screen can be inhibited by specifying all mandatory input fields as parameters of the transaction.
    edit Variant Transaction
    In the definition of a variant transaction code, a dialog transaction is linked with a transaction variant. When a variant transaction is accessed, the dialog transaction is called and executed with the transaction variant. In transaction variants, you can assign default values to the input fields on several Dynpro screens in a transaction, change the attributes of screen elements, and hide entire screens. Transaction variants are maintained in transaction SHD0.
    edit Report Transaction
    A report transaction is the transaction code wrapping for starting the reporting process. The transaction code of a report transaction must be linked with the selection screen of an executable program. When you execute a report transaction, the runtime environment internally executes the ABAP statement SUBMIT—more to come on that.
    edit OO Transaction
    A new kind of transaction as of release 6.10. The transaction code of an OO transaction is linked with a method of a local or global class. When the transaction is called, the corresponding program is loaded, for instance methods an object of the class is generated and the method is executed.
    edit Types of ABAP programs
    In ABAP, there are two different types of programs:
    edit Report programs(Executable pools)
    A Sample ReportReport programs AKA Executable pools follow a relatively simple programming model whereby a user optionally enters a set of parameters (e.g. a selection over a subset of data) and the program then uses the input parameters to produce a report in the form of an interactive list. The output from the report program is interactive because it is not a passive display; instead it enables the user, through ABAP language constructs, to obtain a more detailed view on specific data records via drill-down functions, or to invoke further processing through menu commands, for instance to sort the data in a different way or to filter the data according to selection criteria. This method of presenting reports has great advantages for users who must deal with large quantities of information and must also have the ability to examine this information in highly flexible ways, without being constrained by the rigid formatting or unmanageable size of "listing-like" reports. The ease with which such interactive reports can be developed is one of the most striking features of the ABAP language.
    The term "report" is somewhat misleading in the sense that it is also possible to create report programs that modify the data in the underlying database instead of simply reading it.
    A customized screen created using Screen Painter,which is one of the tool available in ABAP workbench(T-code = SE51).
    edit Online programs
    Online programs (also called module pools) do not produce lists. These programs define more complex patterns of user interaction using a collection of screens. The term “screen” refers to the actual, physical image that the users sees. Each screen also has a “flow logic”; this refers to the ABAP code invoked by the screens, i.e. the logic that initializes screens, responds to a user’s requests and controls the sequence between the screens of a module pool. Each screen has its own Flow Logic, which is divided into a "PBO" (Process Before Output) and "PAI" (Process After Input) section. In SAP documentation the term “dynpro” (dynamic program) refers to the combination of the screen and its Flow Logic.
    Online programs are not invoked directly by their name, but are associated with a transaction code. Users can then invoke them through customizable, role-dependent, transaction menus.
    Apart from reports and online programs, it is also possible to develop sharable code units such as class libraries, function libraries and subroutine pools.
    edit Subroutine Pools
    Subroutine pools, as the name implies, were created to contain selections of subroutines that can be called externally from other programs. Before release 6.10, this was the only way subroutine pools could be used. But besides subroutines, subroutine pools can also contain local classes and interfaces. As of release 6.10, you can connect transaction codes to methods. Therefore, you can now also call subroutine pools via transaction codes. This is the closest to a Java program you can get in ABAP: a subroutine pool with a class containing a method – say – main connected to a transaction code!
    edit Type Pools
    Type pools are the precursors to general type definitions in the ABAP Dictionary. Before release 4.0, only elementary data types and flat structures could be defined in the ABAP Dictionary. All other types that should’ve been generally available had to be defined with TYPES in type pools. As of release 4.0, type pools were only necessary for constants. As of release 6.40, constants can be declared in the public sections of global classes and type pools can be replaced by global classes.
    edit Class Pools
    Class pools serve as containers for exactly one global class. Besides the global class, they can contain global types and local classes/interfaces to be used in the global class. A class pool is loaded into memory by using one of its components. For example, a public method can be called from any ABAP program or via a transaction code connected to the method. You maintain class pools in the class builder.
    edit Interface Pools
    Interface pools serve as containers for exactly one global interface—nothing more and nothing less. You use an interface pool by implementing its interface in classes and by creating reference variables with the type of its interface. You maintain interface pools in the class builder.
    edit ABAP Workbench
    The ABAP Workbench contains different tools for editing Repository objects. These tools provide you with a wide range of assistance that covers the entire software development cycle. The most important tools for creating and editing Repository objects are:
    ABAP Editor for writing and editing program code
    ABAP Dictionary for processing database table definitions and retrieving global types
    Menu Painter for designing the user interface (menu bar, standard toolbar, application toolbar, function key assignment)
    Screen Painter for designing screens (dynamic programs) for user dialogs
    Function Builder for displaying and processing function modules (routines with defined interfaces that are available throughout the system)
    Class Builder for displaying and processing ABAP Objects classes
    edit The ABAP Dictionary
    Enforces data integrity
    Manages data definitions without redundancy
    Is tightly integrated with the rest of the ABAP/4 Development Workbench.
    Enforcing data integrity is the process of ensuring that data entered into the system is logical, complete, and consistent. When data integrity rules are defined in the ABAP/4 Dictionary, the system automatically prevents the entry of invalid data. Defining the data integrity rules at the dictionary level means they only have to be defined once, rather than in each program that accesses that data.
    The following are examples of data lacking integrity:
    A date field with a month value of 13
    An order assigned to a customer number that doesn’t exist
    An order not assigned to a customer
    Managing data definitions without redundancy is the process of linking similar information to the same data definition. For example, a customer database is likely to contain a customer’s ID number in several places. The ABAP Dictionary provides the capability of defining the characteristics of a customer ID number in only one place. That central definition then can be used for each instance of a customer ID number.
    The ABAP Dictionary’s integration with the rest of the development environment enables ABAP programs to automatically recognize the names and characteristics of dictionary objects.
    Additionally, the system provides easy navigation between development objects and dictionary definitions. For example, as a programmer, you can double-click on the name of a dictionary object in your program code, and the system will take you directly to the definition of that object in the ABAP/4 Dictionary.
    When a dictionary object is changed, a program that references the changed object will automatically reference the new version the next time the program runs. Because ABAP is interpreted, it is not necessary to recompile programs that reference changed dictionary objects.
    edit ABAP Syntax
    The syntax of the ABAP programming language consists of the following elements:
    Statements
    An ABAP program consists of individual ABAP statements. Each statement begins with a keyword and ends with a period.
    edit "Hello World" PROGRAM
    WRITE 'Hello World'.
    This example contains two statements, one on each line. The keywords are PROGRAM and WRITE. The program displays a list on the screen. In this case, the list consists of the line "My First Program".
    The keyword determines the category of the statement. For an overview of the different categories, refer to ABAP Statements.
    edit Formatting ABAP Statements
    ABAP has no format restrictions. You can enter statements in any format, so a statement can be indented, you can write several statements on one line, or spread a single statement over several lines.
    You must separate words within a statement with at least one space. The system also interprets the end of line marker as a space.
    The program fragment
    PROGRAM TEST.
    WRITE 'This is a statement'.
    could also be written as follows:
    PROGRAM TEST. WRITE 'This is a statement'.
    or as follows:
    PROGRAM
    TEST.
    WRITE
    'This is a statement'.
    Use this free formatting to make your programs easier to understand.
    edit Special Case: Text Literals
    Text literals are sequences of alphanumeric characters in the program code that are enclosed in quotation marks. If a text literal in an ABAP statement extends across more than one line, the following difficulties can occur:
    All spaces between the quotation marks are interpreted as belonging to the text literal. Letters in text literals in a line that is not concluded with quotation marks are interpreted by the editor as uppercase. If you want to enter text literals that do not fit into a single line, you can use the ‘&’ character to combine a succession of text literals into a single one.
    The program fragment
    PROGRAM TEST.
    WRITE 'This
    is
    a statement'.
    inserts all spaces between the quotation marks into the literal, and converts the letters to uppercase.
    This program fragment
    PROGRAM TEST.
    WRITE 'This' &
    ' is ' &
    'a statement'.
    combines three text literals into one.
    edit Chained Statements
    The ABAP programming language allows you to concatenate consecutive statements with an identical first part into a chain statement.
    To concatenate a sequence of separate statements, write the identical part only once and place a colon ( after it. After the colon, write the remaining parts of the individual statements, separating them with commas. Ensure that you place a period (.) after the last part to inform the system where the chain ends.
    Statement sequence:
    WRITE SPFLI-CITYFROM.
    WRITE SPFLI-CITYTO.
    WRITE SPFLI-AIRPTO.
    Chain statement:
    WRITE: SPFLI-CITYFROM, SPFLI-CITYTO, SPFLI-AIRPTO.
    In the chain, a colon separates the beginning of the statement from the variable parts. After the colon or commas, you can insert any number of spaces.
    You could, for example, write the same statement like this:
    WRITE: SPFLI-CITYFROM,
    SPFLI-CITYTO,
    SPFLI-AIRPTO.
    In a chain statement, the first part (before the colon) is not limited to the keyword of the statements.
    Statement sequence:
    SUM = SUM + 1.
    SUM = SUM + 2.
    SUM = SUM + 3.
    SUM = SUM + 4.
    Chain statement:
    SUM = SUM + : 1, 2, 3, 4.
    edit Comments
    Comments are texts that you can write between the statements of your ABAP program to explain their purpose to a reader. Comments are distinguished by the preceding signs * (at the beginning of a line) and " (at any position in a line). If you want the entire line to be a comment, enter an asterisk (*) at the beginning of the line. The system then ignores the entire line when it generates the program. If you want part of a line to be a comment, enter a double quotation mark (") before the comment. The system interprets comments indicated by double quotation marks as spaces.
    PROGRAM SAPMTEST *
    WRITTEN BY KARL BYTE, 06/27/1995 *
    LAST CHANGED BY RITA DIGIT, 10/01/1995 *
    TASK: DEMONSTRATION *
    PROGRAM SAPMTEST.
    DECLARATIONS *
    DATA: FLAG " GLOBAL FLAG
    NUMBER TYPE I " COUNTER
    PROCESSING BLOCKS *
    Advantages of ABAP over Contemporary languages
    ABAP OBJECTS
    Object orientation in ABAP is an extension of the ABAP language that makes available the advantages of object-oriented programming, such as encapsulation, interfaces, and inheritance. This helps to simplify applications and make them more controllable.
    ABAP Objects is fully compatible with the existing language, so you can use existing statements and modularization units in programs that use ABAP Objects, and can also use ABAP Objects in existing ABAP programs.
    edit ABAP Statements – an Overview
    The first element of an ABAP statement is the ABAP keyword. This determines the category of the statement. The different statement categories are as follows:
    edit Declarative Statements
    These statements define data types or declare data objects which are used by the other statements in a program or routine. The collected declarative statements in a program or routine make up its declaration part.
    Examples of declarative keywords:
    TYPES, DATA, TABLES
    edit Modularization Statements
    These statements define the processing blocks in an ABAP program.
    The modularization keywords can be further divided into:
    · Defining keywords
    You use statements containing these keywords to define subroutines, function modules, dialog modules and methods. You conclude these processing blocks using the END statements.
    Examples of definitive keywords:
    METHOD ... ENDMETHOD, FUNCTION ... ENDFUNCTION, MODULE ... ENDMODULE.
    · Event keywords
    You use statements containing these keywords to define event blocks. There are no special statements to conclude processing blocks - they end when the next processing block is introduced.
    Examples of event key words:
    AT SELECTION SCREEN, START-OF-SELECTION, AT USER-COMMAND
    edit Control Statements
    You use these statements to control the flow of an ABAP program within a processing block according to certain conditions.
    Examples of control keywords:
    IF, WHILE, CASE
    edit Call Statements
    You use these statements to call processing blocks that you have already defined using modularization statements. The blocks you call can either be in the same ABAP program or in a different program.
    Examples of call keywords:
    CALL METHOD, CALL TRANSACTION, SUBMIT, LEAVE TO
    Operational Statements These keywords process the data that you have defined using declarative statements.
    Examples of operational keywords:
    MOVE, ADD
    edit Unique Concept of Internal Table in ABAP
    Internal tables provide a means of taking data from a fixed structure and storing it in working memory in ABAP. The data is stored line by line in memory, and each line has the same structure. In ABAP, internal tables fulfill the function of arrays. Since they are dynamic data objects, they save the programmer the task of dynamic memory management in his or her programs. You should use internal tables whenever you want to process a dataset with a fixed structure within a program. A particularly important use for internal tables is for storing and formatting data from a database table within a program. They are also a good way of including very complicated data structures in an ABAP program.
    Like all elements in the ABAP type concept, internal tables can exist both as data types and as data objects A data type is the abstract description of an internal table, either in a program or centrally in the ABAP Dictionary, that you use to create a concrete data object. The data type is also an attribute of an existing data object.
    edit Internal Tables as Data Types
    Internal tables and structures are the two structured data types in ABAP. The data type of an internal table is fully specified by its line type, key, and table type.
    edit Line type
    The line type of an internal table can be any data type. The data type of an internal table is normally a structure. Each component of the structure is a column in the internal table. However, the line type may also be elementary or another internal table.
    edit Key
    The key identifies table rows. There are two kinds of key for internal tables - the standard key and a user-defined key. You can specify whether the key should be UNIQUE or NON-UNIQUE. Internal tables with a unique key cannot contain duplicate entries. The uniqueness depends on the table access method.
    If a table has a structured line type, its default key consists of all of its non-numerical columns that are not references or themselves internal tables. If a table has an elementary line type, the default key is the entire line. The default key of an internal table whose line type is an internal table, the default key is empty.
    The user-defined key can contain any columns of the internal table that are not references or themselves internal tables. Internal tables with a user-defined key are called key tables. When you define the key, the sequence of the key fields is significant. You should remember this, for example, if you intend to sort the table according to the key.
    edit Table type
    The table type determines how ABAP will access individual table entries. Internal tables can be divided into three types:
    Standard tables have an internal linear index. From a particular size upwards, the indexes of internal tables are administered as trees. In this case, the index administration overhead increases in logarithmic and not linear relation to the number of lines. The system can access records either by using the table index or the key. The response time for key access is proportional to the number of entries in the table. The key of a standard table is always non-unique. You cannot specify a unique key. This means that standard tables can always be filled very quickly, since the system does not have to check whether there are already existing entries.
    Sorted tables are always saved sorted by the key. They also have an internal index. The system can access records either by using the table index or the key. The response time for key access is logarithmically proportional to the number of table entries, since the system uses a binary search. The key of a sorted table can be either unique or non-unique. When you define the table, you must specify whether the key is to be unique or not. Standard tables and sorted tables are known generically as index tables.
    Hashed tables have no linear index. You can only access a hashed table using its key. The response time is independent of the number of table entries, and is constant, since the system access the table entries using a hash algorithm. The key of a hashed table must be unique. When you define the table, you must specify the key as UNIQUE.
    edit Generic Internal Tables
    Unlike other local data types in programs, you do not have to specify the data type of an internal table fully. Instead, you can specify a generic construction, that is, the key or key and line type of an internal table data type may remain unspecified. You can use generic internal tables to specify the types of field symbols and the interface parameters of procedures . You cannot use them to declare data objects.
    edit Internal Tables as Dynamic Data Objects
    Data objects that are defined either with the data type of an internal table, or directly as an internal table, are always fully defined in respect of their line type, key and access method. However, the number of lines is not fixed. Thus internal tables are dynamic data objects, since they can contain any number of lines of a particular type. The only restriction on the number of lines an internal table may contain are the limits of your system installation. The maximum memory that can be occupied by an internal table (including its internal administration) is 2 gigabytes. A more realistic figure is up to 500 megabytes. An additional restriction for hashed tables is that they may not contain more than 2 million entries. The line types of internal tables can be any ABAP data types - elementary, structured, or internal tables. The individual lines of an internal table are called table lines or table entries. Each component of a structured line is called a column in the internal table.
    edit Choosing a Table Type
    The table type (and particularly the access method) that you will use depends on how the typical internal table operations will be most frequently executed.
    edit Standard tables
    This is the most appropriate type if you are going to address the individual table entries using the index. Index access is the quickest possible access. You should fill a standard table by appending lines (ABAP APPEND statement), and read, modify and delete entries by specifying the index (INDEX option with the relevant ABAP command). The access time for a standard table increases in a linear relationship with the number of table entries. If you need key access, standard tables are particularly useful if you can fill and process the table in separate steps. For example, you could fill the table by appending entries, and then sort it. If you use the binary search option with key access, the response time is logarithmically proportional to the number of table entries.
    edit Sorted tables
    This is the most appropriate type if you need a table which is sorted as you fill it. You fill sorted tables using the INSERT statement. Entries are inserted according to the sort sequence defined through the table key. Any illegal entries are recognized as soon as you try to add them to the table. The response time for key access is logarithmically proportional to the number of table entries, since the system always uses a binary search. Sorted tables are particularly useful for partially sequential processing in a LOOP if you specify the beginning of the table key in the WHERE condition.
    edit Hashed tables
    This is the most appropriate type for any table where the main operation is key access. You cannot access a hashed table using its index. The response time for key access remains constant, regardless of the number of table entries. Like database tables, hashed tables always have a unique key. Hashed tables are useful if you want to construct and use an internal table which resembles a database table or for processing large amounts of data.
    edit Advanced Topics
    edit Batch Input: Concepts
    Processing Sessions
    The above figure shows how a batch input session works.A batch input session is a set of one or more calls to transactions along with the data to be processed by the transactions. The system normally executes the transactions in a session non-interactively, allowing rapid entry of bulk data into an R/3 System.
    A session records transactions and data in a special format that can be interpreted by the R/3 System. When the System reads a session, it uses the data in the session to simulate on-line entry of transactions and data. The System can call transactions and enter data using most of the facilities that are available to interactive users.
    For example, the data that a session enters into transaction screens is subject to the same consistency checking as in normal interactive operation. Further, batch input sessions are subject to the user-based authorization checking that is performed by the system.
    edit Advantages of ABAP over Contemporary languages
    ABAP Objects offers a number of advantages, even if you want to continue using procedural programming. If you want to use new ABAP features, you have to use object-oriented interfaces anyway.
    Sharing Data: With ABAP shared objects, you can aggregate data once at a central location and the different users and programs can then access this data without the need for copying.
    Exception Handling: With the class-based exception concept of ABAP, you can define a special control flow for a specific error situation and provide the user with information about the error.
    Developing Persistency: For permanent storage of data in ABAP, you use relational database tables by means of database-independent Open SQL, which is integrated in ABAP. However, you can also store selected objects transparently or access the integrated database or other databases using proprietary SQL.
    Connectivity and Interoperability: The Exchange Infrastructure and Web services are the means by which developers can implement a service-oriented architecture. With Web services, you can provide and consume services independently of implementation or protocol. Furthermore, you can do so within NetWeaver and in the communication with other systems. With the features of the Exchange Infrastructure, you can enable, manage, and adapt integration scenarios between systems.
    Making Enhancements: With the Enhancement Framework, you can enhance programs, function modules, and global classes without modification as well as replace existing code. The Switch Framework enables you activate only specific development objects or enhancements in a system.
    edit Considerable Aspects
    It follows a list of aspects to be considered during development. The list of course is not complete.
    edit Dynpro persistence
    When implementing dynpros one has to care for himself to read out and persist the necessary fields. Recently it happened to me that I forgot to include a field into the UPDATE-clause which is an error not so easy to uncover if you have other problems to be solved in the same package. Here, tool-support or built-in mechanisms would help.
    The developer could help himself out by creating something like a document containing a cookbook or guide in which parts of a dynpro logic one has to care about persistence. With that at hand, it would be quite easy finding those bugs in short time. Maybe a report scanning for the definition of the dynpro fields to be persisted could scan the code automatically, too.
    edit Memory Cache
    It should be common-sense that avoiding select-statements onto the database helps reducing the server load. For that the programmer either can resort to function modules if available. This maybe is the case for important tables. Or the programmer needs to implement his own logic using internal tables. Here, the standard software package could provide the developer with a tool or a mechanism auto-generating memory cached tables resp. function modules implementing this.
    Sometimes buffering of database tables could be used, if applicable. But that would require an effort in customizing the system and could drain down system performance overall, especially if a table is involved that has a central role.
    edit Interfaces
    It should be noticed that some function modules available have an incomplete interface. That means, the interface does not include all parameters evaluated by the logic of the function module. For example, global variables from within the function group could be read out, which cannot be influenced by the general caller. Or memory parameters are used internally to feed the logic with further information.
    One workaround here would be copying the relevant parts of the logic to a newly created function module and then adapt it to the own context. This sometimes is possible, maybe if the copied code is not too lengthy and only a few or no calls to other logic is part of it.
    A modification of the SAP code could be considered, if the modification itself is unavoidable (or another solution would be not justifiable by estimated effort to spend on it) and if the location of the modification seems quite safe against future upgrades or hot fixes. The latter is something that could be evaluated by contacting the SAP hotline or working with OSS message (searching thru existing one, perhaps open a new one).
    edit Example
    'From SAP NetWeaver:'
    set an exclusive lock at level object-type & object-id
    IF NOT lf_bapi_error = true.
    IF ( NOT istourhd-doc_type IS INITIAL ) AND
    ( NOT istourhd-doc_id IS INITIAL )
    CALL FUNCTION 'ENQUEUE_/DSD/E_HH_RAREF'
    EXPORTING
    obj_typ = istourhd-doc_type
    obj_id = istourhd-doc_id
    EXCEPTIONS
    foreign_lock = 1
    system_failure = 2
    OTHERS = 3.
    IF sy-subrc 0.
    terminate processing...
    lf_bapi_error = true.—
    ...and add message to return table
    PERFORM set_msg_to_bapiret2
    USING sy-msgid gc_abort sy-msgno
    sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
    gc_istourhd gc_enqueue_refdoc space
    CHANGING lt_return.
    ENDIF.
    ENDIF.
    ENDIF. " bapi error
    edit Example Report(Type - ALV(Advanced List Viewer))
    REPORT Z_ALV_SIMPLE_EXAMPLE_WITH_ITAB .
    *Simple example to use ALV and to define the ALV data in an internal
    *table
    *data definition
    tables:
    marav. "Table MARA and table MAKT
    Data to be displayed in ALV
    Using the following syntax, REUSE_ALV_FIELDCATALOG_MERGE can auto-
    matically determine the fieldstructure from this source program
    Data:
    begin of imat occurs 100,
    matnr like marav-matnr, "Material number
    maktx like marav-maktx, "Material short text
    matkl like marav-matkl, "Material group (so you can test to make
    " intermediate sums)
    ntgew like marav-ntgew, "Net weight, numeric field (so you can test to
    "make sums)
    gewei like marav-gewei, "weight unit (just to be complete)
    end of imat.
    Other data needed
    field to store report name
    data i_repid like sy-repid.
    field to check table length
    data i_lines like sy-tabix.
    Data for ALV display
    TYPE-POOLS: SLIS.
    data int_fcat type SLIS_T_FIELDCAT_ALV.
    select-options:
    s_matnr for marav-matnr matchcode object MAT1.
    start-of-selection.
    read data into table imat
    select * from marav
    into corresponding fields of table imat
    where
    matnr in s_matnr.
    Check if material was found
    clear i_lines.
    describe table imat lines i_lines.
    if i_lines lt 1.
    Using hardcoded write here for easy upload
    write: /
    'No materials found.'.
    exit.
    endif.
    end-of-selection.
    To use ALV, we need a DDIC-structure or a thing called Fieldcatalogue.
    The fieldcatalouge can be generated by FUNCTION
    'REUSE_ALV_FIELDCATALOG_MERGE' from an internal table from any
    report source, including this report.
    Store report name
    i_repid = sy-repid.
    Create Fieldcatalogue from internal table
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = i_repid
    I_INTERNAL_TABNAME = 'IMAT' "capital letters!
    I_INCLNAME = i_repid
    CHANGING
    CT_FIELDCAT = int_fcat
    EXCEPTIONS
    INCONSISTENT_INTERFACE = 1
    PROGRAM_ERROR = 2
    OTHERS = 3.
    *explanations:
    I_PROGRAM_NAME is the program which calls this function
    I_INTERNAL_TABNAME is the name of the internal table which you want
    to display in ALV
    I_INCLNAME is the ABAP-source where the internal table is defined
    (DATA....)
    CT_FIELDCAT contains the Fieldcatalouge that we need later for
    ALV display
    IF SY-SUBRC 0.
    write: /
    'Returncode',
    sy-subrc,
    'from FUNCTION REUSE_ALV_FIELDCATALOG_MERGE'.
    ENDIF.
    *This was the fieldcatlogue
    Call for ALV list display
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = i_repid
    IT_FIELDCAT = int_fcat
    TABLES
    T_OUTTAB = imat
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2.
    *explanations:
    I_CALLBACK_PROGRAM is the program which calls this function
    IT_FIELDCAT (just made by REUSE_ALV_FIELDCATALOG_MERGE) contains
    now the data definition needed for display
    I_SAVE allows the user to save his own layouts
    T_OUTTAB contains the data to be displayed in ALV
    IF SY-SUBRC 0.
    write: /
    'Returncode',
    sy-subrc,
    'from FUNCTION REUSE_ALV_LIST_DISPLAY'.
    ENDIF.
    first learn basic programing afterwards
    go through commands, statements , events, functional modules.....etc.
    and implement these stuff, in programing,. and do practising.
    Check the following links:
    http://www.sapbrainsonline.com/TUTORIALS/TECHNICAL/ABAP_tutorial.html
    http://sap-img.com/
    http://sapabaplive.blogspot.com/2007/07/download-abap-in-21-days.html
    http://help.sap.com/saphelp_40b/helpdata/en/4f/991f82446d11d189700000e8322d00/applet.htm
    http://www.sapbrainsonline.com/TUTORIALS/TECHNICAL/ABAP_tutorial.html
    http://www.esnips.com/web/SAPAbapCertificationDocs/
    Start with this.Refer this
    For BDC:
    http://myweb.dal.ca/hchinni/sap/bdc_home.htm
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&
    http://www.sap-img.com/abap/learning-bdc-programming.htm
    http://www.sapdevelopment.co.uk/bdc/bdchome.htm
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm
    http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
    Check these link:
    http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
    http://www.sap-img.com/abap/question-about-bdc-program.htm

Maybe you are looking for

  • Session method

    hi all,        i wrote the session method for f-02 transaction, if voucher number(bkpf-xblnr) found in bkpf i need to skip that voucher number.i need to display error report like (xblnr belnr bldat). and any errors experienced during batch input crea

  • BOM explosion in VA01

    Hi, I am working with IS-retail and I have created a BOM for commercial use. When I enter the material in the item level of the sales order the system triggers the explosion of the BOM. Everything is ok except the number of items created. The BOM has

  • Dunning - sort open items by due date

    Dear experts, please help, havenu2019f found the right answer in the sap support channel or here. My question: I want to sort the result table of the dunning open items special on its due date. Any ideasu2026 Thanks and regards..

  • Images with Crystal Reports

    Somebody pls. advise if it's possible to display images with Crystal Reports ?! I want to generate a Price Catalog with images.   I have uploaded images into the system. Unfortunately, Oracle Report Builder has let me down. A short tutorial on how to

  • Photoshop organizer to editor and back and forth?

    I was in Elements 11 Organizer switch photo to Editor and the back to Orginizer. When I tried to open editor again I was unable to.