<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: HR Reports in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267307#M492111</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;go through this link you ll get a sample HR report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/sample-hr-reports-allocate-petrol-allowance.htm" target="test_blank"&gt;http://www.sap-img.com/abap/sample-hr-reports-allocate-petrol-allowance.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 May 2007 05:43:42 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-05-18T05:43:42Z</dc:date>
    <item>
      <title>HR Reports</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267304#M492108</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  Can any one send one sample report for HR Module? Its Very Urgent&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Points Will be awarded&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;SC&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2007 05:32:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267304#M492108</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-18T05:32:16Z</dc:date>
    </item>
    <item>
      <title>Re: HR Reports</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267305#M492109</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            T A B L E     D E C L E R A T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : PERNR,     " HR MASTER DATA REPORTING&lt;/P&gt;&lt;P&gt;         PA0003.     " PAYROLL STATUS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            I N F O T Y P E   D E C L E R A T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INFOTYPES: 0105.    "Communication.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 T Y P E      D E C L E R A T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Type for data uploading format&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF T_DATA,&lt;/P&gt;&lt;P&gt;          PERNR TYPE PERNR_D,     "Personnel number&lt;/P&gt;&lt;P&gt;          USRID TYPE SYSID,       "Name of Person Who Changed Object&lt;/P&gt;&lt;P&gt;          DEL(2),                 "Delimited data&lt;/P&gt;&lt;P&gt;        END OF T_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Type for checking data&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF T_STATUS,&lt;/P&gt;&lt;P&gt;          PERNR TYPE PERNR_D,     "Personnel number&lt;/P&gt;&lt;P&gt;          USRID TYPE SYSID,       "Name of Person Who Changed Object&lt;/P&gt;&lt;P&gt;          DEL(2),                 "Delimited data&lt;/P&gt;&lt;P&gt;          STATUS(20),             "Status Message&lt;/P&gt;&lt;P&gt;          COMMENTS(40),           "Error Report&lt;/P&gt;&lt;P&gt;        END OF T_STATUS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      I N T E R N A L   T A B L E    D E C L E R A T I O N           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Internal table to store data from the flat file.&lt;/P&gt;&lt;P&gt;DATA : IT_DATA TYPE STANDARD TABLE OF T_DATA WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**-- Copy of the flat file data for validation&lt;/P&gt;&lt;P&gt;       IT_DATA_COPY TYPE STANDARD TABLE OF T_DATA WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**-- Internal table to store data from the infotypes.&lt;/P&gt;&lt;P&gt;       IT_INFOTYPE TYPE STANDARD TABLE OF T_DATA WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**-- Internal table for Status and Error message report&lt;/P&gt;&lt;P&gt;       IT_STATUS TYPE STANDARD TABLE OF T_STATUS WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**-- Internal table for BDCDATA&lt;/P&gt;&lt;P&gt;       IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**-- Correct Data&lt;/P&gt;&lt;P&gt;       IT_CORRECT TYPE STANDARD TABLE OF T_DATA WITH HEADER LINE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          W O R K  A R E A      D E C L E R A T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : WA_INFOTYPE TYPE T_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           D A T A                 D E C L E R A T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: V_FILE LIKE DYNPREAD-FIELDNAME,    "Fieldname in search function&lt;/P&gt;&lt;P&gt;      V_PATH TYPE STRING,                "Path in charecter type&lt;/P&gt;&lt;P&gt;      V_LENGTH TYPE I,                   "Length of the path string&lt;/P&gt;&lt;P&gt;      V_LEN TYPE I,                      "Pos of char in the path string&lt;/P&gt;&lt;P&gt;      V_STRING TYPE STRING,              "Last 3 char of path string&lt;/P&gt;&lt;P&gt;      V_LINE TYPE I,                     "Lines&lt;/P&gt;&lt;P&gt;      V_COUNT_I TYPE I,                  "Counter&lt;/P&gt;&lt;P&gt;      V_COUNT_C TYPE C LENGTH 5,         "Counter charecter type&lt;/P&gt;&lt;P&gt;      V_COUNT_I1 TYPE I,                 "Counter&lt;/P&gt;&lt;P&gt;      V_COUNT_C1 TYPE C LENGTH 5,        "Counter charecter type&lt;/P&gt;&lt;P&gt;      V_FIELDVAL TYPE C LENGTH 25,	       "Fieldvalue&lt;/P&gt;&lt;P&gt;      V_MAT_NUM TYPE C LENGTH 18,        "Material Number&lt;/P&gt;&lt;P&gt;      V_QTY TYPE C LENGTH 15,            "Quantity&lt;/P&gt;&lt;P&gt;      V_FLAG TYPE I,&lt;/P&gt;&lt;P&gt;      V_SY-TABIX TYPE I,&lt;/P&gt;&lt;P&gt;      V_PERNR TYPE PERNR_D,&lt;/P&gt;&lt;P&gt;      V_USRID(30).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       C O N S T A N T S           D E C L E R A T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Constant with value of text file extension&lt;/P&gt;&lt;P&gt;CONSTANTS: C_TXT TYPE C LENGTH 3 VALUE 'txt',&lt;/P&gt;&lt;P&gt;**-- Constant with value 'X'&lt;/P&gt;&lt;P&gt;           C_X TYPE C LENGTH 3 VALUE 'X',&lt;/P&gt;&lt;P&gt;**-- Constant for Mode 'N' Do not display&lt;/P&gt;&lt;P&gt;           C_N TYPE C LENGTH 2 VALUE 'N',&lt;/P&gt;&lt;P&gt;**-- Constant for 'S' (ssynchronous update)&lt;/P&gt;&lt;P&gt;           C_S TYPE C LENGTH 2 VALUE 'S'.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                     I N I T I A L I Z A T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;**-- Clear all internal tables&lt;/P&gt;&lt;P&gt;  CLEAR: IT_DATA,&lt;/P&gt;&lt;P&gt;         IT_DATA_COPY,&lt;/P&gt;&lt;P&gt;         IT_INFOTYPE,&lt;/P&gt;&lt;P&gt;         IT_STATUS,&lt;/P&gt;&lt;P&gt;         V_FILE,&lt;/P&gt;&lt;P&gt;         V_PATH,&lt;/P&gt;&lt;P&gt;         V_LENGTH,&lt;/P&gt;&lt;P&gt;         V_LEN,&lt;/P&gt;&lt;P&gt;         V_STRING,&lt;/P&gt;&lt;P&gt;         V_LINE,&lt;/P&gt;&lt;P&gt;         V_COUNT_I,&lt;/P&gt;&lt;P&gt;         V_COUNT_C,&lt;/P&gt;&lt;P&gt;         V_FIELDVAL,&lt;/P&gt;&lt;P&gt;         V_FLAG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Refresh all internal table.&lt;/P&gt;&lt;P&gt;  REFRESH : IT_DATA,&lt;/P&gt;&lt;P&gt;            IT_DATA_COPY,&lt;/P&gt;&lt;P&gt;            IT_INFOTYPE,&lt;/P&gt;&lt;P&gt;            IT_STATUS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            S E L E C T I O N  S C R E E N                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- File name is in the selection screen. File name is&lt;/P&gt;&lt;P&gt;**-- the file which is to be uploaded&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN BEGIN OF BLOCK 123 WITH FRAME TITLE TEXT-008.&lt;/P&gt;&lt;P&gt;  PARAMETERS: PATH LIKE IBIPPARMS-PATH OBLIGATORY,&lt;/P&gt;&lt;P&gt;              CHK_BOX AS CHECKBOX.&lt;/P&gt;&lt;P&gt;  SELECTION-SCREEN END OF BLOCK 123.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  A T  S E L E C T I O N  S C R E E N ( V A L I D A T I O N S )      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- On F4 key&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR PATH.&lt;/P&gt;&lt;P&gt;**-- Function to fetch the file name from the PC.&lt;/P&gt;&lt;P&gt;  PERFORM ZF_SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Validation for text file&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;  PERFORM ZF_VALIDATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              S T A R T-  O F  -S E L E C T I O N&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GET PERNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Fetch data from the infotypes into the internal table&lt;/P&gt;&lt;P&gt;  PERFORM Z_DATA_FETCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 E N D   O F   S E L E C T I O N                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-- File name is passed to the GUI_UPLOAD function and the data from&lt;/P&gt;&lt;P&gt;**-- there is stored in the internal table IT_FINAL.&lt;/P&gt;&lt;P&gt;  PERFORM ZF_UPLOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Validate records of the flat file&lt;/P&gt;&lt;P&gt;  PERFORM ZF_VALIDATE_RECORDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Test Run&lt;/P&gt;&lt;P&gt;  PERFORM ZF_TEST_RUN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Call BDC&lt;/P&gt;&lt;P&gt;  PERFORM ZF_BDC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ZF_SEARCH&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ZF_SEARCH .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FIELD_NAME = V_FILE&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME  = PATH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ZF_SEARCH&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ZF_VALIDATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ZF_VALIDATE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  V_PATH = PATH.&lt;/P&gt;&lt;P&gt;  V_LENGTH = STRLEN( V_PATH ).&lt;/P&gt;&lt;P&gt;  V_LEN = V_LENGTH - 3.&lt;/P&gt;&lt;P&gt;  V_STRING = V_PATH+V_LEN(3).&lt;/P&gt;&lt;P&gt;  IF V_STRING &amp;lt;&amp;gt; C_TXT.&lt;/P&gt;&lt;P&gt;    MESSAGE E020.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ZF_VALIDATE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ZF_UPLOAD&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ZF_UPLOAD .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-- Pass the path name in a variable of charecter type.&lt;/P&gt;&lt;P&gt;  V_PATH = PATH.&lt;/P&gt;&lt;P&gt;**-- Function call GUI_UPLOAD&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                = V_PATH&lt;/P&gt;&lt;P&gt;      FILETYPE                = 'ASC'&lt;/P&gt;&lt;P&gt;      HAS_FIELD_SEPARATOR     = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                = IT_DATA&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_OPEN_ERROR         = 1&lt;/P&gt;&lt;P&gt;      FILE_READ_ERROR         = 2&lt;/P&gt;&lt;P&gt;      NO_BATCH                = 3&lt;/P&gt;&lt;P&gt;      GUI_REFUSE_FILETRANSFER = 4&lt;/P&gt;&lt;P&gt;      INVALID_TYPE            = 5&lt;/P&gt;&lt;P&gt;      NO_AUTHORITY            = 6&lt;/P&gt;&lt;P&gt;      UNKNOWN_ERROR           = 7&lt;/P&gt;&lt;P&gt;      BAD_DATA_FORMAT         = 8&lt;/P&gt;&lt;P&gt;      HEADER_NOT_ALLOWED      = 9&lt;/P&gt;&lt;P&gt;      SEPARATOR_NOT_ALLOWED   = 10&lt;/P&gt;&lt;P&gt;      HEADER_TOO_LONG         = 11&lt;/P&gt;&lt;P&gt;      UNKNOWN_DP_ERROR        = 12&lt;/P&gt;&lt;P&gt;      ACCESS_DENIED           = 13&lt;/P&gt;&lt;P&gt;      DP_OUT_OF_MEMORY        = 14&lt;/P&gt;&lt;P&gt;      DISK_FULL               = 15&lt;/P&gt;&lt;P&gt;      DP_TIMEOUT              = 16&lt;/P&gt;&lt;P&gt;      OTHERS                  = 17.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IT_DATA_COPY[] = IT_DATA[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ZF_UPLOAD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  Z_DATA_FETCH&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Put the employee records from the infotypes into the internal table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;through the workarea. Select only those records fall in the specified&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;date range.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM Z_DATA_FETCH .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; RP-PROVIDE-FROM-LAST P0105 SPACE PN-BEGDA PN-ENDDA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF PNP-SW-FOUND = 1.&lt;/P&gt;&lt;P&gt;    WA_INFOTYPE-PERNR = P0105-PERNR.&lt;/P&gt;&lt;P&gt;    WA_INFOTYPE-USRID = P0105-USRID.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND WA_INFOTYPE TO IT_INFOTYPE.&lt;/P&gt;&lt;P&gt;  CLEAR IT_INFOTYPE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " Z_DATA_FETCH&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ZF_VALIDATE_RECORDS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ZF_VALIDATE_RECORDS .&lt;/P&gt;&lt;P&gt;**-- Loop at the internal table containing the data from the flat file,&lt;/P&gt;&lt;P&gt;**-- take one mare internal table which contains the copy of the flat&lt;/P&gt;&lt;P&gt;**-- file data. Sort both the internal table by User Name. Read the&lt;/P&gt;&lt;P&gt;**-- second internal table with key User Name. Compare the index of the&lt;/P&gt;&lt;P&gt;**-- record, if the index is not same mark it as error record in the&lt;/P&gt;&lt;P&gt;**-- status table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR : IT_DATA,&lt;/P&gt;&lt;P&gt;          IT_DATA_COPY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH : IT_STATUS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT IT_DATA BY USRID.&lt;/P&gt;&lt;P&gt;  SORT IT_DATA_COPY BY USRID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    V_FLAG = 0.&lt;/P&gt;&lt;P&gt;    V_SY-TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE PERNR&lt;/P&gt;&lt;P&gt;                  FROM PA0003&lt;/P&gt;&lt;P&gt;                  INTO V_PERNR&lt;/P&gt;&lt;P&gt;                  WHERE PERNR = IT_DATA-PERNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      V_FLAG = 1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE IT_DATA_COPY WITH KEY USRID = IT_DATA-USRID&lt;/P&gt;&lt;P&gt;                                     BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IF V_SY-TABIX &amp;lt;&amp;gt; SY-TABIX.&lt;/P&gt;&lt;P&gt;        IF IT_DATA-DEL &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;P&gt;          V_FLAG = 1.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE IT_INFOTYPE WITH KEY USRID = IT_DATA-USRID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      IF IT_DATA-DEL &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;P&gt;        V_FLAG = 1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IT_STATUS = IT_DATA.&lt;/P&gt;&lt;P&gt;    IF V_FLAG = 1.&lt;/P&gt;&lt;P&gt;      IT_STATUS-STATUS = 'ERROR'.&lt;/P&gt;&lt;P&gt;      IT_STATUS-COMMENTS = 'User Name exists/Personnel no not present'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    APPEND IT_STATUS.&lt;/P&gt;&lt;P&gt;    CLEAR IT_STATUS.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_STATUS.&lt;/P&gt;&lt;P&gt;    IF IT_STATUS-STATUS &amp;lt;&amp;gt; 'ERROR'.&lt;/P&gt;&lt;P&gt;      IT_CORRECT = IT_STATUS.&lt;/P&gt;&lt;P&gt;      APPEND IT_CORRECT.&lt;/P&gt;&lt;P&gt;      CLEAR IT_CORRECT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ZF_VALIDATE_RECORDS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Start new screen                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_DYNPRO USING PROGRAM DYNPRO.&lt;/P&gt;&lt;P&gt;  CLEAR IT_BDCDATA.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-PROGRAM  = PROGRAM.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-DYNPRO   = DYNPRO.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "BDC_DYNPRO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       Insert field                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_FIELD USING FNAM FVAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR IT_BDCDATA.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-FNAM = FNAM.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-FVAL = FVAL.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "BDC_FIELD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ZF_TEST_RUN&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ZF_TEST_RUN .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF CHK_BOX = 'X'.&lt;/P&gt;&lt;P&gt;    LOOP AT IT_STATUS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE:/  IT_STATUS-PERNR,&lt;/P&gt;&lt;P&gt;            IT_STATUS-USRID,&lt;/P&gt;&lt;P&gt;            IT_STATUS-DEL,&lt;/P&gt;&lt;P&gt;            IT_STATUS-STATUS,&lt;/P&gt;&lt;P&gt;            IT_STATUS-COMMENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ZF_TEST_RUN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ZF_BDC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form ZF_BDC .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF CHK_BOX &amp;lt;&amp;gt; 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_CORRECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;V_USRID = IT_CORRECT-USRID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT NEW PERNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMP50A' '1000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=INS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RP50G-PERNR'&lt;/P&gt;&lt;P&gt;                              it_correct-pernr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RP50G-TIMR6'&lt;/P&gt;&lt;P&gt;                              'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RP50G-SUBTY'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RP50G-CHOIC'&lt;/P&gt;&lt;P&gt;                              '105'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RP50G-SUBTY'&lt;/P&gt;&lt;P&gt;                              '0001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'MP010500' '2000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'P0105-USRID'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF IT_CORRECT-DEL = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'P0105-ENDDA'&lt;/P&gt;&lt;P&gt;                              SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'P0105-ENDDA'&lt;/P&gt;&lt;P&gt;                              '31.12.9999'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'P0105-USRID'&lt;/P&gt;&lt;P&gt;                               V_USRID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                 '/00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'MP010500' '2000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'P0105-BEGDA'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                 '=UPD'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF IT_CORRECT-DEL = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'P0105-ENDDA'&lt;/P&gt;&lt;P&gt;                               SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'P0105-ENDDA'&lt;/P&gt;&lt;P&gt;                              '31.12.9999'.&lt;/P&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'P0105-USRID'&lt;/P&gt;&lt;P&gt;                                V_USRID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'PA30' USING IT_BDCDATA&lt;/P&gt;&lt;P&gt;                        MODE 'N'&lt;/P&gt;&lt;P&gt;                        UPDATE C_S.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR IT_BDCDATA.&lt;/P&gt;&lt;P&gt;   REFRESH IT_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " ZF_BDC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******do reward if usefull&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2007 05:34:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267305#M492109</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-18T05:34:05Z</dc:date>
    </item>
    <item>
      <title>Re: HR Reports</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267306#M492110</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;look at this report , here i m reading data of previous empoyers and i used PNP logical database and aslo have used HR macros.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpfull&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

REPORT  ZPPL_PREVEMPLOYERS   message-id rp
                             line-size 250
                             line-count 65.
*Program logic :- This Report is used to Download all the Previous
* Employer (IT0023) records of the employees

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Tables and Infotypes                                                *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
tables: pernr.

infotypes: 0000,
           0001,
           0002,
           0023.

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Constants                                                           *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
constants: c_1(1)       type c               value '1'   ,
           c_3(1)       type c               value '3'   ,
           c_i(1)       type c               value 'I'   ,
           c_x(1)       type c               value 'X'   ,
           c_eq(2)      type c               value 'EQ'  ,
           c_pl03       like p0001-werks     value 'PL03'.


*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Selection-Screen                                                    *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
parameters: p_file  like rlgrap-filename default 'C:TempABC.xls',
            p_test  as checkbox default c_x               .

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Internal tables                                                     *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
* Internal Table for Output
data: begin of t_output occurs 0    ,
       pernr like pernr-pernr       ,
       nachn like p0002-nachn       ,
       vorna like p0002-vorna       ,
       orgeh_stext like p1000-stext ,
       plans_stext like p1000-stext ,
       begda like p0023-begda       ,
       endda like p0023-endda       ,
       land1 like p0023-land1       ,
       arbgb like p0023-arbgb       ,
       ort01 like p0023-ort01   .
data: end of t_output           .

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Variables                                                           *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*

data: o_stext like p1000-stext,
      p_stext like p1000-stext.

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Initialization                                                      *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
Initialization.
* Initialize Selection-Screen values
  perform init_selction_screen.

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; AT Selection-screen                                                 *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
at selection-screen .
* Check if Test run selected, download file name should be entered
  if p_test is initial.  "
    if p_file is initial.
      message e016 with 'Please enter file name'
                        'specifying complete path'.
    endif.
  endif.

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Start-of Selection                                                  *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
Start-of-selection.

get pernr.

  clear t_output.

* Read Infotype 0
  rp-provide-from-last p0000 space pn-begda pn-endda.
  check pnp-sw-found eq c_1.
* Check if employee is active
  check p0000-stat2 in pnpstat2.      "pernr Active

* Read Infotype 1
  rp-provide-from-last p0001 space pn-begda pn-endda.
  check pnp-sw-found eq c_1.

* check if employee belongs to PL03
  check p0001-werks in pnpwerks.  "belongs to PL03
* Check if emp belongs to Active Group
  check p0001-persg in pnppersg.

* Read Infotype 2
  rp-provide-from-last p0002 space pn-begda pn-endda.
  check pnp-sw-found eq c_1.

* Read Org Unit Text.
CALL FUNCTION 'HR_READ_FOREIGN_OBJECT_TEXT'
     EXPORTING
          OTYPE                   = 'O'
          objid                   = p0001-orgeh
          begda                   = p0001-begda
          endda                   = p0001-endda
          reference_date          = p0001-begda
     IMPORTING
          object_text             = o_stext
      EXCEPTIONS
          nothing_found           = 1
          wrong_objecttype        = 2
          missing_costcenter_data = 3
          missing_object_id       = 4
          OTHERS                  = 5.

*Read Position Text.
CALL FUNCTION 'HR_READ_FOREIGN_OBJECT_TEXT'
     EXPORTING
          OTYPE                   = 'S'
          objid                   = p0001-plans
          begda                   = p0001-begda
          endda                   = p0001-endda
          reference_date          = p0001-begda
     IMPORTING
          object_text             = p_stext
     EXCEPTIONS
          nothing_found           = 1
          wrong_objecttype        = 2
          missing_costcenter_data = 3
          missing_object_id       = 4
          OTHERS                  = 5.

* Gather all the required information related to the emp
  move: pernr-pernr to t_output-pernr,
        o_stext to t_output-orgeh_stext,
        p_stext to t_output-plans_stext,
        p0002-nachn to t_output-nachn,
        p0002-vorna to t_output-vorna.

* Gather previous Employee details
  loop at p0023.
    move-corresponding p0023 to t_output.
    append t_output.
  endloop.

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; End-of Selection                                                    *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
end-of-selection.

  perform print_report.

* Downlaod the file
  if not t_output[] is initial.
    if p_test eq space.
      perform download_file.
    endif.
  else.
    write: 'No records selected' color col_negative.
  endif.

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Top-of-page                                                         *
*&amp;amp;                                                                     *
*&amp;amp;---------------------------------------------------------------------*
Top-of-page.

* Print Header
  perform print_header.

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  download_file
*&amp;amp;---------------------------------------------------------------------*
* Description :
*----------------------------------------------------------------------*
FORM download_file .

  DATA: full_file_name    TYPE string,
        z_akt_filesize    TYPE i     .

  full_file_name = p_file.

*  download table into file on presentation server
  CALL METHOD cl_gui_frontend_services=&amp;gt;gui_download
    EXPORTING
      filename                = full_file_name
      filetype                = 'DAT'
      NO_AUTH_CHECK           = c_x
      codepage                = '1160'
    IMPORTING
      FILELENGTH              = z_akt_filesize
    CHANGING
      data_tab                = t_output[]
    EXCEPTIONS
      file_write_error        = 1
      no_batch                = 2
      gui_refuse_filetransfer = 3
      invalid_type            = 4
      no_authority            = 5
      unknown_error           = 6
      header_not_allowed      = 7
      separator_not_allowed   = 8
      filesize_not_allowed    = 9
      header_too_long         = 10
      dp_error_create         = 11
      dp_error_send           = 12
      dp_error_write          = 13
      unknown_dp_error        = 14
      access_denied           = 15
      dp_out_of_memory        = 16
      disk_full               = 17
      dp_timeout              = 18
      file_not_found          = 19
      dataprovider_exception  = 20
      control_flush_error     = 21
      not_supported_by_gui    = 22
      error_no_gui            = 23
      OTHERS                  = 24.

*
  IF  sy-subrc               NE        0.
    MESSAGE e016 WITH 'Download-Error; RC:' sy-subrc.
  ENDIF.


ENDFORM.                    " download_file

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  print_report
*&amp;amp;---------------------------------------------------------------------*
*Description:
*----------------------------------------------------------------------*
FORM print_report .
  data: i       type i,
        w_count type i.
  sort t_output.

* Print the report
  loop at t_output.
    i = sy-tabix mod 2.
    if i eq 0.
      format color col_normal intensified on.
    else.
      format color col_normal intensified off.
    endif.

    write:/1     t_output-pernr          ,
           10     t_output-vorna(25)     ,
           35    t_output-nachn(25)      ,
           61   t_output-orgeh_stext     ,
           102  t_output-plans_stext     ,
           143  t_output-begda           ,
           154   t_output-endda          ,
           168   t_output-land1          ,
           178   t_output-arbgb(40)      ,
           219   t_output-ort01          ,
           249   space              .

  endloop.

  uline.

  Describe table t_output lines w_count.
  Skip 2.

  Write:/ 'Total No of Records Downloaded: ' color col_total,
          w_count.

ENDFORM.                    " print_report

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  print_header
*&amp;amp;---------------------------------------------------------------------*
*Description:
*----------------------------------------------------------------------*
FORM print_header .

  skip 1.
  Uline.

  format Intensified on color col_heading.


  write:/1   'Pers. #'        ,
         10   'Last Name'     ,
         35   'First Name'    ,
         61   'Org Unit'      ,
         102  'Position'      ,
         143  'Beg Date'      ,
        154   'End Date'      ,
        168   'Cntry Key'     ,
        178   'Prev Employer' ,
        219  'City'           ,
        249   space          .


  format intensified off color off.

  uline.


ENDFORM.                    " print_header

*eject
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  init_selction_screen
*&amp;amp;---------------------------------------------------------------------*
*Description:
*----------------------------------------------------------------------*
FORM init_selction_screen .

  refresh: pnpwerks,
           pnppersg,
           pnpstat2.
  clear:   pnpwerks,
           pnppersg,
           pnpstat2.

  pnpwerks-sign   = c_i.
  pnpwerks-option = c_EQ.
  pnpwerks-low    = c_pl03.
  append pnpwerks.

  pnppersg-sign   = c_i.
  pnppersg-option = c_EQ.
  pnppersg-low    = c_1.
  append pnppersg.

  pnpstat2-sign   = c_i.
  pnpstat2-option = c_EQ.
  pnpstat2-low    = c_3.
  append pnpstat2.


ENDFORM.                    " init_selction_screen
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2007 05:38:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267306#M492110</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-18T05:38:22Z</dc:date>
    </item>
    <item>
      <title>Re: HR Reports</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267307#M492111</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;go through this link you ll get a sample HR report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/sample-hr-reports-allocate-petrol-allowance.htm" target="test_blank"&gt;http://www.sap-img.com/abap/sample-hr-reports-allocate-petrol-allowance.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 May 2007 05:43:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/hr-reports/m-p/2267307#M492111</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-05-18T05:43:42Z</dc:date>
    </item>
  </channel>
</rss>

