How to debug jsp program

Thanks,
I havenot used Oracle before I know that
you could debug JSP in Visual Age for Java,
but where could we debug jsp code,
thanks,
null

You can debug JSPs and Servlets in JDeveloper locally in the IDE itself, or remotely.
To debug locally within JDeveloper, simply place breakpoints anywhere in the source code and choose Run | Debug from the main menu. The JSP is run using Oracle's Web-to-Go server.
Remote debugging requires a little more setup. See the online help for more information.

Similar Messages

  • How to debug a program exit in a Workflow ?

    Hi experts,
                      How to debug a program exit in a workflow when the workflow is triggered ?
    thanks in advance
    regards
    Ashwin

    In 4.6c I did this by creating a function module and a table (zsm50_debug). In the table are just two fields: User name (key), and a flag (yes/no).
    The function module:
    FUNCTION zsm50_debug.
    *"*"Local interface:
    *"  IMPORTING
    *"     REFERENCE(Z_DEBUG_USER) LIKE  SY-UNAME
      DATA: z_exit,
            z_debug.
      CLEAR: z_debug.
      DATA: starttime   TYPE t,
            currenttime TYPE t,
            time_passed TYPE i.
      starttime = sy-uzeit.
    * Check if debugging is switched on
      SELECT SINGLE debug FROM  zsm50_debug
                          INTO  z_debug
                          WHERE uname = z_debug_user.
    * Debugging is switched on:
      IF z_debug = 'X'.
    *   Not an endless loop, but it will continue after approx. 1 minute...
    *   Plenty of time to go to SM50 to debug the program and continue!
        DO.
    *     Change the value of z_exit to 'X' to exit the loop an stay in
    *     debug mode.
          IF z_exit = 'X'.
            EXIT.
          ENDIF.
    *     To prevent an endless loop (if the user forgot that debugging was
    *     switched on in ZSM50_DEBUG, time is measured to allow the program
    *     to continue after 2 minutes
          GET TIME FIELD currenttime.
          time_passed = currenttime - starttime.
          IF time_passed > 120.
            WRITE: / '!!!==========================================!!!'.
            WRITE: / '!!!DEBUGGING STILL SWITCHED ON IN ZSM50_DEBUG!!!'.
            WRITE: / '!!!    Program was delayed by two minutes    !!!'.
            WRITE: / '!!!==========================================!!!'.
            EXIT.
          ENDIF.
        ENDDO.
      ENDIF.
    ENDFUNCTION.
    This FM reads the table and checks if the flag is switched on. If so, it loops for two minutes. After that, it continues regardless. If not flagged, it continues immediately.
    This way, you can debug any program that is running in the background.
    In every method I program I add this FM right in the beginning. With authorization for SM50, I can then debug the program (in production it may be difficult to get the correct server, if there are more).

  • How to debug the program in background

    hi
    how to debug the program in background

    Hello everyone,
    I often debug my programs via the sm50 transaction and it works very well (especially when you put the dummy loop ^ - ^ ). However we are confronted to a major problem when more than one user tries to debug. We get a message saying that the maximum number of users in the debugging mode has been reached!! Thus we each have to wait for our turn to debug our program. It's a real pain.
    We've searched for a parameter to configure the number of users for the debugging mode but in vain
    Has anyone else had this kind of problem? If yes, what do I need to do to correct it?
    Any suggestion would be helpful as I am new to BW.
    Thank you beforehand.
    Regards,
    Dimple

  • How to debug a program which is running in background (Job)

    Hi,
    I have a program which can be run only in background. I have to debug that program. Could you please let me know, how can I do that?
    Thanks,
    Sandeep

    basic FAQ, please search before asking.
    Thread locked.
    Thomas

  • HI HOW TO DEBUGGING A PROGRAM IN BACKGROUND

    HI
    HOW TO DEBUGG A PROGRAM IN BACK GROUND

    Go to SM37 and check the spool there. You can find your
    output there. If you want to debug the program then first put a
    break point in your program after finishing of the execution of
    the job, then select the job in SM37 and enter JDBG in
    command prompt and press enter. It will go to debug mode. It
    is equivivalent to /H which we will enter while debugging in
    foreground

  • How to debug JSP in JDeveloper

    I want to debug a JSP page in JDeveloper. I have put break point in jsp page, but when called from browser, control does not stop at break point in JSP. Please suggest, how to debug a JSP page in JDeveloper

    You might use logging, log4j or standard jdk , <c:out> or even good old scriptlets <% ..%>and out.println(); to display the values of the variables that interest you.
    Consult for instance chapter 14 of Beginning JSP, by Wrox, or any other equivalent.
    NA
    [http://nickaiva.blogspot.com/]

  • How to debug crm programs

    hi abapers i need to know how to debug the crm programs.

    Hi Rockey,
    IF u have the integration with CRM and R/3.Then u will use the Middle ware BADI's to copy the data from CRm to r/3 or R73 to CRM.
    You can debug that that BADI and u can see where u are going wrong.
    Mainly in CRM
    we will have the FM's.Through this function modules we ill do evrything in the CRM.
    CRM_ORDER_SAVE.
    CRM_ORDER_MAINTAIN
    CRM_ORDER_READ.
    IF we want to get the Data from R73 to CRM. then you can write RFC'S toget the data.
    There are so many ways are there.JUst put the breakpoints.In ur middle ware BADI's
    then i hope it may help you.
    Thanks

  • How to run jsp program

    is i can able to run my jsp program by using appache server..

    To get JSP working in Apache HTTP Server you have to install Apache Tomcat.
    You can either choose to run JSP's solely on Apache Tomcat, or to use mod_jk2 to link Apache HTTP Server with Apache Tomcat so that the Apache HTTP Server can forward the JSP requests to the Apache Tomcat engine, because the Apache HTTP Server really doesn't know how to compile/run JSP's.

  • How to debug JSP?

    I'm a starter at JSP. I have JBuilder, websphere (both are trial edition), and J2EE installed on my computer.
    How can I debug a JSP page?
    Thanks

    Well well, i say, i have not heard of any program you can use to debug your jsp. The only method i used is, placing numerous "System.out.println" before/in/after every loops, conditions and those statements that yields a result.

  • How to Debug JSP in Websphere 3.5 ?? Urgent

    Hi,
    can somebody help me debuuging JSP in Websphere Application server 3.5 .Remember I dont have
    Websphere Studio or any other tool.any help in this regard is appreciated.
    Thanks
    Jack

    In most cases, you can debug an application by using the old standby of printing status lines after each significant chunk of code. For example, you can always output the page's parameters to make sure you've received what you think you've received.
    In the cases that Java throws an exception, you can make a rough guess as to what the problem is, based on the exception. A NumberFormatException usually occurs when you try to convert a letter into a number. The original intent would be to take a string "10" and convert that into the integer 10. SQL Exceptions are a little more vague, but again, you can at least narrow down the problem.
    Specific debuggers, while nice to have, are not really necessary. Through experience, and trial and error, you will eventually discover (and remember) the most common kinds of errors and how to avoid them.
    As a general rule, until you become proficient, always code a little chunk of the application at a time, and test that chunk to make sure it's working properly. It's far easier to track down a bug if you know it's somewhere in a dozen lines of code that you wrote that morning.
    If you are using Internet Explorer, you may want to confirm that Explorer is not giving you "friendly error messages". You can check this in the tools->internet options->advanced dialog box. By default, IE hides specific error messages, including JSP errors, because Microsoft rightly feels that your grandmother would just get confused.

  • How to Debug Standard Program & Customised Scripts in Cheque Printing

    Hii
    Am working on APP Cheque Printing...
    here am using standard driver Program 'RFFOUS_C'
    and two customised script for Cheque print and payment advice print..
    please let me know , How to dubug my cutostomised script while printing through F110 .....
    its not working evenif am activating Debugger in Script or also through RSTXDBUG Prgm
    Note : In APP , when am Processing through F110 , In background mode processing takes place and finally Spool is generated....
    Awaiting for ur reply...
    Thanks in Advance

    Hi,
    yes offcource you have to activate debugger for script ....but additionally
    1. The point in the program where your script is triggered put an external breakpoint.
    2. Before giving the Print Preview or whichever button put '/h'
    3. After putting /h and pressing the button it goes in Debug mode then you can F8 and it will reach the point where you have set the Breakpoint or External breakpoint.
    Thanks,
    Neha

  • How to debug a program running in background ?

    How do we debug a prorgram running in the background ?
    Is BREAK-POINT statement is used for this or ne other method exists
    I have gone thr the standard documentation help for BREAK-POINT Statement, but not getting it.
    Regards,
    Nitin

    Hi Nitin, try to do this:
    1. use the following code instead of break-point:
       data a type c.
       do.
         if a = 'X'.
           exit.
         endif.
       enddo.
    2. while the program is running in background, launch transaction SM50.
    3. select the program in the list and choose Program/Mode -> Program -> Debugging
    4. at this point the program should stop in the infinite loop. to exit from the loop, set the variable a to 'X'
    Best regards, Manuel

  • How to debug a program when it is SUBMITed from another program

    Hi All,
    Now one more query.  While SUBMITing a Z program1 from Z program2, I want to debug the Z program1.  Even when I keep a break point in Z program1, it is not triggering there.  Any help would be appreciated.
    Regards,
    Balaji

    Hi all,
    Please find the full code.  I want to debug the sub routine PERFORM send_mail.
    1.  The main program.
    REPORT  Z_ITSLIP_MAIL                           .
    TABLES : pa0000, pa0001.                         .
    SELECT-OPTIONS : pernr FOR pa0000-pernr NO INTERVALS.
    DATA : count LIKE tbtcjob-jobcount.
    DATA : released LIKE btch0000-char1.
    DATA:
            l_valid,
            ls_params LIKE pri_params,
            l_jobcount LIKE tbtcjob-jobcount.
    PARAMETERS: p_job TYPE tbtcjob-jobname NO-DISPLAY.
    PARAMETERS: p_prog(30) TYPE c NO-DISPLAY..
    PARAMETERS: p_sdat LIKE sy-datum DEFAULT sy-datum .
    PARAMETERS: p_stim TYPE sy-uzeit DEFAULT sy-uzeit .
    PARAMETERS : payroll LIKE qppnp-xabkr OBLIGATORY.
    *PARAMETERS : period LIKE qppnp-pabrp OBLIGATORY.
    *PARAMETERS : year LIKE qppnp-pabrj OBLIGATORY.
    select-options : Period for sy-datum.
    DATA : BEGIN OF it_p0001 OCCURS 0,
           pernr LIKE pa0001-pernr,
           END OF it_p0001.
    p_sdat = p_sdat + 1.
    *Get Print Parameters
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
      EXPORTING
        no_dialog      = 'X'
      IMPORTING
        valid          = l_valid
        out_parameters = ls_params.
    IF pernr[] IS INITIAL.
      SELECT pernr
       INTO TABLE it_p0001
       FROM pa0001.
      SORT it_p0001 BY pernr.
      DELETE ADJACENT DUPLICATES FROM it_p0001.
      LOOP AT it_p0001.
        MOVE it_p0001-pernr TO pernr-low.
        APPEND pernr.
        CLEAR pernr.
      ENDLOOP.
    ENDIF.
    LOOP AT pernr.
      CLEAR p_job.
      p_stim = p_stim + 120.
      CONCATENATE'ITSlip' pernr-low p_job sy-datum INTO p_job SEPARATED BY
    space.
      CALL FUNCTION 'JOB_OPEN'
        EXPORTING
          jobname  = p_job
        IMPORTING
          jobcount = l_jobcount.
      SUBMIT ZPR022_INNCOMETAX_REPORT_copy
        WITH PNPTIMR6 = 'X'
        WITH PNPBEGDA = period-low
        WITH PNPENDDA = period-high
        WITH PNPPERNR-LOW = PERNR-LOW
        WITH PNPABKRS-LOW = 'IN'
           VIA JOB     p_job
            NUMBER  l_jobcount
           TO SAP-SPOOL WITHOUT SPOOL DYNPRO
               SPOOL PARAMETERS ls_params
               WITH immediately = space
                  AND RETURN.
      CALL FUNCTION 'JOB_CLOSE'
        EXPORTING
          jobcount  = l_jobcount
          jobname   = p_job
          strtimmed = 'X'
         PRDMINS = 2.
          sdlstrtdt = p_sdat
          sdlstrttm = p_stim.
    ENDLOOP.
    2.  The called program.
    REPORT  zpr022_inncometax_report_copy NO STANDARD PAGE HEADING LINE-SIZE
    89.
    TABLES : pernr, t512e, t512t,pa0105.
          Infotypes
    INFOTYPES : 0000, 0001, 0008, 0580.
          Types                    Begin with TY_
    DATA : BEGIN OF wa_lgart,
           lgart TYPE t512e-lgart,
           windo TYPE t512e-windo,
           slart TYPE t512e-slart,
           lgtxt TYPE t512t-lgtxt,
           kztxt TYPE t512t-kztxt,
           END OF wa_lgart.
    DATA : BEGIN OF wa_income,
           particular(24) TYPE c,
           lgart    TYPE lgart,
           cumm(13) TYPE p DECIMALS 2,
           proj(13) TYPE p DECIMALS 2,
           exem(13) TYPE p DECIMALS 2,
           annu(13) TYPE p DECIMALS 2,
           END OF wa_income.
    DATA : BEGIN OF wa_income1,
           particular(24) TYPE c,
           lgart    TYPE lgart,
           cumm(13) TYPE c,
           proj(13) TYPE c,
           exem(13) TYPE c,
           annu(13) TYPE c,
           END OF wa_income1.
    DATA : BEGIN OF wa_invest,
           particular(40) TYPE c,
           betrg(13) TYPE p DECIMALS 2,
           END OF wa_invest.
    DATA : BEGIN OF wa_invest1,
           particular(40) TYPE c,
           betrg(13) TYPE c,
           END OF wa_invest1.
    DATA : BEGIN OF wa_deduct,
           particular(40) TYPE c,
           sbs TYPE pin_sbsec,
           betrg(13) TYPE p DECIMALS 2,
           END OF wa_deduct.
    DATA : BEGIN OF wa_deduct1,
           particular(40) TYPE c,
           sbs TYPE c,
           betrg(13) TYPE c,
           END OF wa_deduct1.
    DATA: BEGIN OF cocd OCCURS 10.
            INCLUDE STRUCTURE pincc.
    DATA: END OF cocd.
    DATA: BEGIN OF f16 OCCURS 10.
            INCLUDE STRUCTURE pin16.
    DATA: END OF f16.
          Constants                Begin with C_
          Data                     Begin with W_
    DATA : w_clstrid TYPE t500l-relid,         "Cluster ID
           w_molga   TYPE t500p-molga,         "Country Code
           w_period(6) TYPE c,
           w_var(2) TYPE n,
           w_pr_from1 TYPE t569v-pabrj,        "year
           w_pr_to1 TYPE t569v-pabrp,          "period
           w_fpper-low1 TYPE pc261-fpper,
           w_year(4) TYPE n,
           w_ltaexe(13) TYPE p DECIMALS 2,
           w_cumm(13) TYPE p DECIMALS 2,
           w_lgtxt(20) TYPE c,
           w_lgart     TYPE lgart,
           w_amount(13) TYPE p DECIMALS 2,
           w_wage(4)   TYPE c,
           w_flag(1) TYPE c,
           w_total(13) TYPE p DECIMALS 2,
           w_start TYPE sy-datum,
           w_end   TYPE sy-datum,
           w_date  TYPE sy-datum,
           w_index(2) TYPE n VALUE 00,
           w_investnm(40),
           w_investnm1(40),
           w_ded0585(13) TYPE p DECIMALS 2,
           w_itext TYPE t7ini3-itext,
           w_dtext TYPE t7ini8-sbdds,
           w_inprvemp(13) TYPE p DECIMALS 2,
           w_nettaxin(13) TYPE p DECIMALS 2,
           w_ptaxprvemp(13) TYPE p DECIMALS 2,
           w_ptaxcremp(13) TYPE p DECIMALS 2,
           w_othtaxin(13) TYPE p DECIMALS 2,
           w_gssin(13) TYPE p DECIMALS 2,
           w_dedtot(13) TYPE p DECIMALS 2,
           w_invtot(13) TYPE p DECIMALS 2,
           w_inchrtax(13) TYPE p DECIMALS 2,
           w_nettaxpay(13) TYPE p DECIMALS 2,
           w_surchr(13) TYPE p DECIMALS 2,
           w_cess(13) TYPE p DECIMALS 2,
           w_totintax(13) TYPE p DECIMALS 2,
           w_tdsothin(13) TYPE p DECIMALS 2,
           w_cessrec(13) TYPE p DECIMALS 2,
           w_prvemp(13) TYPE p DECIMALS 2,
           w_tottaxpay(13) TYPE p DECIMALS 2,
           w_var1(13) TYPE p DECIMALS 2,
           w_var2(13) TYPE p DECIMALS 2,
           w_balit(13) TYPE p DECIMALS 2,
           w_avgmon(13) TYPE p DECIMALS 2,
           w_remmon(2) TYPE n,
           w_profund(13) TYPE p DECIMALS 2,
           w_pf(13) TYPE p DECIMALS 2,
           w_dept(25) TYPE c,
           w_desig(25) TYPE c,
           w_join TYPE sy-datum,
           w_annperk(13) TYPE p DECIMALS 2,
           w_percent TYPE pin_txexm,
           w_limit TYPE pin_sdvlt,
           w_st0008  TYPE sy-datum,
           w_en0008  TYPE sy-datum.
    DATA: w_cmonth(2) TYPE n,
          w_cyear(4)  TYPE n,
          w_cdate LIKE sy-datum,
          w_ldate LIKE sy-datum.
          Internal tables          Begin with IT_
    DATA : it_0001 TYPE STANDARD TABLE OF pa0001,
           it_data TYPE STANDARD TABLE OF pa0001,
           it_0000 TYPE STANDARD TABLE OF pa0000,
           it_lgart LIKE STANDARD TABLE OF wa_lgart,
           it_pc261 TYPE STANDARD TABLE OF pc261,
           it_payrt_result TYPE payin_result,
           it_income LIKE STANDARD TABLE OF wa_income,
           it_income1 LIKE STANDARD TABLE OF wa_income1,
           it_wage   LIKE it_income,
           it_invest LIKE STANDARD TABLE OF wa_invest,
           it_invest1 LIKE STANDARD TABLE OF wa_invest1,
           it_deduct LIKE STANDARD TABLE OF wa_deduct,
           it_deduct1 LIKE STANDARD TABLE OF wa_deduct1,
           it_0586 TYPE STANDARD TABLE OF pa0586,
           it_0580 TYPE STANDARD TABLE OF pa0580,
           it_0584 TYPE STANDARD TABLE OF pa0584,
           it_0585 TYPE STANDARD TABLE OF pa0585,
           it_t7ini3 TYPE STANDARD TABLE OF t7ini3,
           it_info TYPE STANDARD TABLE OF zpt011_fep_pay,
           it_0008 TYPE STANDARD TABLE OF pa0008,
           it_rt TYPE STANDARD TABLE OF pbwla WITH HEADER LINE.
    DATA    : p_email1 LIKE somlreci1-receiver,
                                     DEFAULT '[email protected]'
               p_sender LIKE somlreci1-receiver.
                                         DEFAULT '[email protected]',
    *DATA DECLARATION
    DATA: gd_recsize TYPE i.
    data: date like sy-datum.
    Spool IDs
    TYPES: BEGIN OF t_tbtcp.
            INCLUDE STRUCTURE tbtcp.
    TYPES: END OF t_tbtcp.
    DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
          wa_tbtcp TYPE t_tbtcp.
    Job Runtime Parameters
    DATA: gd_eventid LIKE tbtcm-eventid,
          gd_eventparm LIKE tbtcm-eventparm,
          gd_external_program_active LIKE tbtcm-xpgactive,
          gd_jobcount LIKE tbtcm-jobcount,
          gd_jobname LIKE tbtcm-jobname,
          gd_stepcount LIKE tbtcm-stepcount,
          gd_error    TYPE sy-subrc,
          gd_reciever TYPE sy-subrc.
    DATA:  w_recsize TYPE i.
    DATA: gd_subject   LIKE sodocchgi1-obj_descr,
          it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_sender_type     LIKE soextreci1-adr_typ,
          gd_attachment_desc TYPE so_obj_nam,
          gd_attachment_name TYPE so_obj_des.
    Spool to PDF conversions
    DATA: gd_spool_nr LIKE tsp01-rqident,
          gd_destination LIKE rlgrap-filename,
          gd_bytecount LIKE tst01-dsize,
          gd_buffer TYPE string.
    Binary store for PDF
    DATA: BEGIN OF it_pdf_output OCCURS 0.
            INCLUDE STRUCTURE tline.
    DATA: END OF it_pdf_output.
    CONSTANTS: c_dev LIKE  sy-sysid VALUE 'DEV',
               c_no(1)     TYPE c   VALUE ' ',
               c_device(4) TYPE c   VALUE 'LOCL'.
          Work Area                Begin with WA_
    DATA : wa_0001 LIKE LINE OF it_0001,
           wa_data LIKE LINE OF it_data,
           wa_0000 LIKE LINE OF it_0000,
           wa_pc261 LIKE LINE OF it_pc261,
           wa_payrt_result TYPE LINE OF hrpay99_rt,
           wa_paycrt_result TYPE LINE OF hrpay99_crt,
           wa_0586 LIKE LINE OF it_0586,
           wa_0580 LIKE LINE OF it_0580,
           wa_0584 LIKE LINE OF it_0584,
           wa_0585 LIKE LINE OF it_0585,
           wa_t7ini3 LIKE LINE OF it_t7ini3,
           wa_in LIKE LINE OF it_income,
           wa_info LIKE LINE OF it_info,
           wa_0008 LIKE LINE OF it_0008,
           wa_wage LIKE wa_income,
           wa_rt TYPE pbwla.
          Field Symbols            Begin with FS_
    FIELD-SYMBOLS: <itc> TYPE ANY,
                   <ain> TYPE ANY,
                   <amt> TYPE ANY,
                   <sbdnn> TYPE ANY,
                   <tot> TYPE ANY.
          Select Options          Begin with SO_
    *SELECT-OPTIONS :
          Parameters              Begin with PR_
    *PARAMETERS     :
          Initialisation
    INITIALIZATION.
    date = sy-datum.
          Selection-Screen
          S T A R T   O F   S E L E C T I O N
    START-OF-SELECTION.
    GET pernr.
      SELECT * FROM pa0001 INTO CORRESPONDING FIELDS OF TABLE it_0001
                    WHERE pernr IN pnppernr
                    AND   abkrs IN pnpabkrs
                    AND   bukrs IN pnpbukrs.
      DELETE ADJACENT DUPLICATES FROM it_0001 COMPARING pernr.
      SELECT * FROM pa0000 INTO CORRESPONDING FIELDS OF TABLE it_0000
                    WHERE pernr IN pnppernr.
      SELECT   t512e~lgart
               t512e~slart
               t512t~lgtxt
               t512t~kztxt
               INTO CORRESPONDING FIELDS OF TABLE it_lgart
               FROM t512e INNER JOIN t512t ON
                                     t512elgart = t512tlgart AND
                                     t512emolga = t512tmolga
               WHERE t512e~forml = 'ZPY2' AND
                     t512t~sprsl = sy-langu AND
                     t512e~molga = '40' AND
                     t512e~windo EQ 'W1' .
      LOOP AT it_lgart INTO wa_lgart WHERE lgart+0(1) EQ '/'.
        DELETE it_lgart.
      ENDLOOP.
      SORT it_lgart BY lgart.
    **---Here we are getting the start and the End of the financial year...
      CLEAR : w_date, w_start, w_end, w_year.
      w_date = sy-datum.
    **---Here we get the start date of the year.....
      IF w_date+4(2) BETWEEN '01' AND '04'.
        w_year = w_date+0(4).
        w_year = w_year - 1.
        CONCATENATE w_year '04' '01' INTO w_start.
      ELSE.
        CONCATENATE w_date+0(4) '04' '01' INTO w_start.
      ENDIF.
    **---Here we get the end date of the year......
      CLEAR : w_year.
      IF w_date+4(2) BETWEEN '01' AND '04'.
        CONCATENATE w_date+0(4) '03' '31' INTO w_end.
      ELSE.
        w_year = w_date+0(4).
        w_year = w_year + 1.
        CONCATENATE w_year '03' '31' INTO w_end.
      ENDIF.
      CLEAR : w_year.
          E N D       O F   S E L E C T I O N
    END-OF-SELECTION.
    **---perform for getting the Income tax Calculation part....
      PERFORM f000_get_income.
      PERFORM send_mail.
          User Command Processing
    *AT USER-COMMAND.
          Top Of Page
    TOP-OF-PAGE.
      WRITE : / 'Mindtree Consulting Pvt Ltd',
              / 'No.42, 27th Cross',
              / '2nd Stage, Banashankari',
              / 'Bangalore - 560070'.
    *&      Form  f000_get_income
          text
         -->P_IT_0001  text
         -->P_IT_LGART  text
    FORM f000_get_income.
      LOOP AT it_0001 INTO wa_0001.
        CLEAR : wa_invest, wa_deduct, wa_income.
        REFRESH : it_invest, it_deduct, it_income.
        CONCATENATE pnppabrj pnppabrp INTO w_period.
    **---Here we are getting the Earnings in India from RT Table...
    **---Getting the relid for each employee....
        CALL FUNCTION 'PYXX_GET_RELID_FROM_PERNR'
          EXPORTING
            employee                    = wa_0001-pernr
          IMPORTING
            relid                       = w_clstrid
            molga                       = w_molga
          EXCEPTIONS
            error_reading_infotype_0001 = 1
            error_reading_molga         = 2
            error_reading_relid         = 3
            OTHERS                      = 4.
        IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    **---Reading the rgdir of cluster 'CU' for each of the employees...
        CALL FUNCTION 'CU_READ_RGDIR'
          EXPORTING
            persnr          = wa_0001-pernr
          TABLES
            in_rgdir        = it_pc261
          EXCEPTIONS
            no_record_found = 1
            OTHERS          = 2.
        IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        CLEAR : w_lgtxt, w_cumm, w_ltaexe, w_flag.
        LOOP AT it_pc261 INTO wa_pc261 WHERE fpper = w_period
                                       AND   srtza  = 'A'.
    **---Importing the Payroll cluster results for each employee from RT....
          CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
            EXPORTING
              clusterid                    = w_clstrid
              employeenumber               = wa_0001-pernr
              sequencenumber               = wa_pc261-seqnr
            CHANGING
              payroll_result               = it_payrt_result
            EXCEPTIONS
              illegal_isocode_or_clusterid = 1
              error_generating_import      = 2
              import_mismatch_error        = 3
              subpool_dir_full             = 4
              no_read_authority            = 5
              no_record_found              = 6
              versions_do_not_match        = 7
              error_reading_archive        = 8
              error_reading_relid          = 9
              OTHERS                       = 10.
          IF sy-subrc <> 0.
           MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    **---Processing....
          LOOP AT it_lgart INTO wa_lgart.
            CLEAR : wa_income.
            IF wa_lgart-lgart NE '5004' AND
               wa_lgart-lgart NE '5007' AND
               wa_lgart-lgart NE '5008' AND
               wa_lgart-lgart NE '5011' AND
               wa_lgart-lgart NE '5012' AND
               wa_lgart-lgart NE '5014' AND
               wa_lgart-lgart NE '5017' AND
               wa_lgart-lgart NE '5018' AND
               wa_lgart-lgart NE '5027' AND
               wa_lgart-lgart NE '5029' AND
               wa_lgart-lgart NE '5031' AND
               wa_lgart-lgart NE '5039' AND
               wa_lgart-lgart NE '5060' AND
               wa_lgart-lgart NE '7004' AND
               wa_lgart-lgart NE '7007' AND
               wa_lgart-lgart NE '7008' AND
               wa_lgart-lgart NE '7011' AND
               wa_lgart-lgart NE '7012' AND
               wa_lgart-lgart NE '7014' AND
               wa_lgart-lgart NE '7017' AND
               wa_lgart-lgart NE '7018' AND
               wa_lgart-lgart NE '7027' AND
               wa_lgart-lgart NE '7029' AND
               wa_lgart-lgart NE '7031' AND
               wa_lgart-lgart NE '7039' AND
               wa_lgart-lgart NE '7060'.
              LOOP AT it_payrt_result-inter-crt INTO wa_paycrt_result
                      WHERE cumty = 'Y' AND lgart EQ wa_lgart-lgart.
                IF wa_lgart-lgart+0(1) = '7'.
                  LOOP AT it_payrt_result-inter-crt INTO wa_paycrt_result
                           WHERE cumty = 'M' AND lgart EQ wa_lgart-lgart.
                    READ TABLE it_payrt_result-inter-rt INTO
                               wa_payrt_result WITH
                               KEY lgart = wa_lgart-lgart.
                    IF sy-subrc = 0.
                      wa_income-particular = wa_lgart-lgtxt.
                      wa_income-lgart      = wa_paycrt_result-lgart.
                      wa_income-cumm       = wa_paycrt_result-betrg.
                    ENDIF.
                  ENDLOOP.
                ELSE.
                  wa_income-particular = wa_lgart-lgtxt.
                  wa_income-lgart      = wa_paycrt_result-lgart.
                  wa_income-cumm       = wa_paycrt_result-betrg.
                ENDIF.
              ENDLOOP.
              REFRESH : it_0008.
              CLEAR : wa_0008.
              PERFORM f010_get_date USING pnppabrp pnppabrj.
              CALL FUNCTION 'SG_PS_GET_LAST_DAY_OF_MONTH'
                EXPORTING
                  day_in            = w_cdate
                IMPORTING
                  last_day_of_month = w_ldate
                EXCEPTIONS
                  day_in_not_valid  = 1
                  OTHERS            = 2.
              SELECT * FROM pa0008 INTO CORRESPONDING FIELDS OF TABLE
                       it_0008 WHERE pernr = wa_0001-pernr
                               AND   begda <= w_cdate
                               AND   endda >= w_ldate.
              IF it_0008 IS INITIAL.
                SELECT * FROM pa0008 INTO CORRESPONDING FIELDS OF TABLE
                         it_0008 WHERE pernr = wa_0001-pernr
                                 AND   begda BETWEEN w_cdate AND w_ldate.
                IF it_0008 IS INITIAL.
                  SELECT * FROM pa0008 INTO CORRESPONDING FIELDS OF TABLE
                        it_0008 WHERE pernr = wa_0001-pernr
                                AND   begda = w_cdate.
                ENDIF.
              ENDIF.
              CLEAR : w_st0008, w_en0008.
              LOOP AT it_0008 INTO wa_0008.
                w_st0008 = wa_0008-begda.
                w_en0008 = wa_0008-endda.
                EXIT.
              ENDLOOP.
              CLEAR : wa_rt.
              REFRESH : it_rt.
              CALL FUNCTION 'RP_FILL_WAGE_TYPE_TABLE'
                EXPORTING
                  begda                        = w_st0008
                  endda                        = w_en0008
                  infty                        = '0008'
                  pernr                        = wa_0001-pernr
                TABLES
                  ppbwla                       = it_rt
                EXCEPTIONS
                  error_at_indirect_evaluation = 1
                  OTHERS                       = 2.
              LOOP AT it_rt INTO wa_rt.
                CLEAR : w_var.
                IF wa_rt-lgart         = '5000' AND         "Basic
                   wa_lgart-lgart        = '5000'.
                  w_var = 12 - pnppabrp.
                  wa_income-proj = wa_rt-betrg * w_var.
                  wa_income-lgart = wa_rt-lgart.
    **---Here we are checking for the arrers of Basic to deduct from the
    *cummulation amount...
                  READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                             WITH KEY lgart = '7000'.
                  IF sy-subrc = 0.
                    wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                  ENDIF.
                ENDIF.
                IF wa_rt-lgart         = '5001' AND         "HRA
                   wa_lgart-lgart        = '5001'.
                  w_var = 12 - pnppabrp.
                  wa_income-proj = wa_rt-betrg * w_var.
                  wa_income-lgart = wa_rt-lgart.
    **---Here we are checking for the arrers of HRA to deduct from the
    *cummulation amount...
                  READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                             WITH KEY lgart = '7001'.
                  IF sy-subrc = 0.
                    wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                  ENDIF.
                ENDIF.
                IF wa_rt-lgart         = '5003' AND         "Conveyance
                   wa_lgart-lgart        = '5003'.
                  w_var = 12 - pnppabrp.
                  wa_income-proj = wa_rt-betrg * w_var.
                  wa_income-lgart = wa_rt-lgart.
    **---Here we are checking for the arrers of Conveyance to deduct from
    *the cummulation amount...
                  READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                             WITH KEY lgart = '7003'.
                  IF sy-subrc = 0.
                    wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                  ENDIF.
                ENDIF.
                IF wa_rt-lgart         = '5005' AND         "Special Pay
                   wa_lgart-lgart        = '5005'.
                  w_var = 12 - pnppabrp.
                  wa_income-proj = wa_rt-betrg * w_var.
                  wa_income-lgart = wa_rt-lgart.
    **---Here we are checking for the arrers of Special pay to deduct from
    *the cummulation amount...
                  READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                             WITH KEY lgart = '7005'.
                  IF sy-subrc = 0.
                    wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                  ENDIF.
                ENDIF.
                IF wa_rt-lgart         = '5002' AND         "CLA
                   wa_lgart-lgart        = '5002'.
                  w_var = 12 - pnppabrp.
                  wa_income-proj = wa_rt-betrg * w_var.
                  wa_income-lgart = wa_rt-lgart.
    **---Here we are checking for the arrers of CLA to deduct from the
    *cummulation amount...
                  READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                             WITH KEY lgart = '7002'.
                  IF sy-subrc = 0.
                    wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                  ENDIF.
                ENDIF.
              ENDLOOP.
             LOOP AT it_payrt_result-inter-rt INTO wa_payrt_result
                     WHERE lgart = wa_lgart-lgart.
               CLEAR : w_var.
               IF wa_payrt_result-lgart = '5000' AND         "Basic
                  wa_lgart-lgart        = '5000'.
                 w_var = 12 - pnppabrp.
                 wa_income-proj = wa_payrt_result-betrg * w_var.
                 wa_income-lgart = wa_payrt_result-lgart.
               ENDIF.
    ***---Here we are checking for the arrers of Basic to deduct from the
    *cummulation amount...
                 READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                            WITH KEY lgart = '7000'.
                 IF sy-subrc = 0.
    *wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                 ENDIF.
               IF wa_payrt_result-lgart = '5001' AND         "HRA
                  wa_lgart-lgart        = '5001'.
                 w_var = 12 - pnppabrp.
                 wa_income-proj = wa_payrt_result-betrg * w_var.
                 wa_income-lgart = wa_payrt_result-lgart.
               ENDIF.
    ***---Here we are checking for the arrers of HRA to deduct from the
    *cummulation amount...
                 READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                            WITH KEY lgart = '7001'.
                 IF sy-subrc = 0.
    *wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                 ENDIF.
               IF wa_payrt_result-lgart = '5003' AND         "Conveyance
                  wa_lgart-lgart        = '5003'.
                 w_var = 12 - pnppabrp.
                 wa_income-proj = wa_payrt_result-betrg * w_var.
                 wa_income-lgart = wa_payrt_result-lgart.
               ENDIF.
    ***---Here we are checking for the arrers of Conveyance to deduct from
    *the cummulation amount...
                 READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                            WITH KEY lgart = '7003'.
                 IF sy-subrc = 0.
    *wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                 ENDIF.
               IF wa_payrt_result-lgart = '5005' AND         "Special Pay
                  wa_lgart-lgart        = '5005'.
                 w_var = 12 - pnppabrp.
                 wa_income-proj = wa_payrt_result-betrg * w_var.
                 wa_income-lgart = wa_payrt_result-lgart.
               ENDIF.
    ***---Here we are checking for the arrers of Special pay to deduct from
    *the cummulation amount...
                 READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                            WITH KEY lgart = '7005'.
                 IF sy-subrc = 0.
    *wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                 ENDIF.
               IF wa_payrt_result-lgart = '5002' AND         "CLA
                  wa_lgart-lgart        = '5002'.
                 w_var = 12 - pnppabrp.
                 wa_income-proj = wa_payrt_result-betrg * w_var.
                 wa_income-lgart = wa_payrt_result-lgart.
               ENDIF.
    ***---Here we are checking for the arrers of CLA to deduct from the
    *cummulation amount...
                 READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                            WITH KEY lgart = '7002'.
                 IF sy-subrc = 0.
    *wa_income-cumm = wa_income-cumm - wa_payrt_result-betrg.
                 ENDIF.
             ENDLOOP.
              IF wa_lgart-lgart = '5065'.
                READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                           WITH KEY lgart = '5065'.
                IF sy-subrc = 0.
                  wa_income-particular = wa_lgart-lgtxt.
                  wa_income-lgart      = wa_lgart-lgart.
                  wa_income-cumm       = wa_payrt_result-betrg.
                  wa_income-proj       = 0.
                ENDIF.
              ENDIF.
              CLEAR : wa_payrt_result.
              IF wa_lgart-lgart = '5001'.
                "HRA Exemptions
                READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                           WITH KEY lgart = '/4E4'.
                IF sy-subrc = 0.
                  wa_income-exem = wa_payrt_result-betrg.
                 wa_income-lgart = wa_payrt_result-lgart.
                ENDIF.
              ENDIF.
              CLEAR : wa_payrt_result.
              IF wa_lgart-lgart = '5003'.
                "Conveyance Exemptions
                READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                           WITH KEY lgart = '/4E3'.
                IF sy-subrc = 0.
                  wa_income-exem = wa_payrt_result-betrg.
                 wa_income-lgart = wa_payrt_result-lgart.
                ENDIF.
              ENDIF.
              CLEAR : wa_payrt_result.
              IF wa_lgart-lgart = '5025'.
                "Leave Encashment
                READ TABLE it_payrt_result-inter-rt INTO wa_payrt_result
                           WITH KEY lgart = '/4E7'.
                IF sy-subrc = 0.
                  wa_income-particular = wa_lgart-lgtxt.
                 wa_income-lgart      = wa_payrt_result-lgart.
                  wa_income-cumm       = wa_payrt_result-betrg.
                  wa_income-exem       = wa_payrt_result-betrg.
                ENDIF.
              ENDIF.
    **---Here we are calculating the annual field of the IT it_income....
              wa_income-annu = ( wa_income-cumm + wa_income-proj ) -
              wa_income-exem.
              IF wa_income IS NOT INITIAL.
                APPEND wa_income TO it_income.
              ENDIF.
            ENDIF.
          ENDLOOP.
        ENDLOOP.
        READ TABLE  it_payrt_result-inter-rt INTO wa_payrt_result
                    WITH KEY lgart = '5038'.
        IF sy-subrc EQ 0.
          READ TABLE it_lgart INTO wa_lgart WITH KEY lgart = '5038'.
          wa_wage-annu       = wa_payrt_result-betrg.
          wa_wage-particular = wa_lgart-lgtxt.
          wa_wage-lgart      = w_lgart.
          wa_wage-cumm       = wa_payrt_result-betrg.
          APPEND wa_wage TO it_wage.
        ENDIF.
    **---Here we are looping the RGDIR internal table for the LTA Amount in
    *Offcycle....
        LOOP AT it_pc261 INTO wa_pc261 WHERE fpper = '000000'
                                       AND   srtza = 'A'.
          IF w_flag IS INITIAL.
            IF wa_pc261-fpbeg+4(2) = '01' OR
               wa_pc261-fpbeg+4(2) = '02' OR
               wa_pc261-fpbeg+4(2) = '03'.
              w_year = wa_pc261-fpbeg+0(4) - 1.
              w_pr_from1 = w_year.
            ELSE.
              w_pr_from1 = wa_pc261-fpbeg+0(4).
            ENDIF.
            IF wa_pc261-fpbeg+4(2) EQ '01'.
              w_pr_to1 = '10'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '02'.
              w_pr_to1 = '11'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '03'.
              w_pr_to1 = '12'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '04'.
              w_pr_to1 = '01'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '05'.
              w_pr_to1 = '02'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '06'.
              w_pr_to1 = '03'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '07'.
              w_pr_to1 = '04'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '08'.
              w_pr_to1 = '05'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '09'.
              w_pr_to1 = '06'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '10'.
              w_pr_to1 = '07'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '11'.
              w_pr_to1 = '08'.
            ELSEIF wa_pc261-fpbeg+4(2) EQ '12'.
              w_pr_to1 = '09'.
            ENDIF.
            CONCATENATE w_pr_from1 w_pr_to1 INTO w_fpper-low1.
            IF w_period = w_fpper-low1.
              w_flag = 'X'.
              CLEAR : wa_payrt_result.
    **---Importing the Payroll cluster results for each employee from RT....
              CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
                EXPORTING
                  clusterid                    = w_clstrid
                  employeenumber               = wa_0001-pernr
                  sequencenumber               = wa_pc261-seqnr
                CHANGING
                  payroll_result               = it_payrt_result
                EXCEPTIONS
                  illegal_isocode_or_clusterid = 1
                  error_generating_import      = 2
                  import_mismatch_error        = 3
                  subpool_dir_full             = 4
                  no_read_authority            = 5
                  no_record_found              = 6
                  versions_do_not_match        = 7
                  error_reading_archive        = 8
                  error_reading_relid          = 9
                  OTHERS                       = 10.
              IF sy-subrc <> 0.
           MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
              ENDIF.
              LOOP AT it_lgart INTO wa_lgart WHERE lgart = '5039'.
                "LTA
                LOOP AT it_payrt_result-inter-crt INTO wa_paycrt_result
                        WHERE lgart = '5039' AND cumty = 'C'.
                  w_lgtxt = wa_lgart-lgtxt.
                  w_lgart = wa_paycrt_result-betrg.
                  w_cumm  = wa_paycrt_result-betrg.
                ENDLOOP.
              ENDLOOP.
            ENDIF.
          ENDIF.
        ENDLOOP.
    **---Here we are looping through the RT table to get the LTA Exemptions
    *Amount....
        LOOP AT it_payrt_result-inter-rt INTO wa_payrt_result
                WHERE lgart = '/4E5'.                    "LTA Exemptions
          w_ltaexe = wa_payrt_result-betrg.
          wa_income-particular = w_lgtxt.
          wa_income-lgart      = w_lgart.
          wa_income-cumm       = w_cumm.
          wa_income-exem       = w_ltaexe.
        ENDLOOP.
    **---Here we are deducting the arrears amount from the original wagetype
    *of the
    **---arrear and then calculating the total of the annual column....
       CLEAR : wa_income.
       LOOP AT it_income INTO wa_income.
         CLEAR : w_wage.
         IF wa_income-lgart+0(1) = '5'.
           CONCATENATE '7' wa_income-lgart+1(3) INTO w_wage.
           READ TABLE it_income INTO wa_in WITH KEY lgart = w_wage.
           IF sy-subrc = 0.
             CLEAR : w_amount.
             w_amount = wa_in-annu.
             wa_income-annu = wa_income-annu - w_amount.
             MODIFY it_income FROM wa_income TRANSPORTING annu.
           ENDIF.
         ENDIF.
       ENDLOOP.
        APPEND LINES OF it_wage TO it_income.
    **---perform to get the data of the Investments of the employee...
        PERFORM f00_investmants USING wa_0001.
        LOOP AT it_income INTO wa_income.
          READ TABLE it_0000 INTO wa_0000 WITH KEY pernr = wa_0001-pernr
                                                   massn = 'GO'.
          IF sy-subrc EQ 0 AND wa_0000-begda0(6) = w_cdate0(6).
            CLEAR wa_income-proj.
            wa_income-annu = wa_income-cumm - wa_income-exem.
            MODIFY it_income FROM wa_income.
          ENDIF.
        ENDLOOP.
        LOOP AT it_income INTO wa_income.
          READ TABLE it_0000 INTO wa_0000 WITH KEY pernr = wa_0001-pernr
                                                   massn = 'FF'.
          IF sy-subrc EQ 0 AND wa_0000-begda0(6) = w_cdate0(6).
            CLEAR wa_income-proj.
            wa_income-annu = wa_income-cumm - wa_income-exem.
            MODIFY it_income FROM wa_income.
          ENDIF.
        ENDLOOP.
    **---Perform to reach to the Income chargable to Tax of the Employee....
        PERFORM f001_chargeable_income USING wa_0001.
    **---perform to display the data in IT form.....
        PERFORM f00_output_data TABLES it_income it_deduct it_invest
                                USING  wa_0001.
      ENDLOOP.
    ENDFORM.                    " f000_get_income
    *&      Form  f00_output_data
          text
         -->P_IT_INCOME  text
         -->P_WA_0001  text
    FORM f00_output_data  TABLES   p_it_income STRUCTURE wa_income
                                   p_it_deduct STRUCTURE wa_deduct
                                   p_it_invest STRUCTURE wa_invest
                          USING    p_wa_0001 TYPE pa0001.
      CLEAR : w_dept, w_desig, w_join.
      rp-provide-from-last p0001 space '18000101' '99991231'.
      rp-provide-from-frst p0000 space '18000101' '99991231'.
      w_join = p0000-begda.
      SELECT SINGLE plstx FROM t528t INTO w_desig
                      WHERE sprsl = 'E'
                      AND   plans = p0001-plans.
      SELECT SINGLE orgtx FROM t527x INTO w_dept
                    WHERE sprsl = 'E'
                    AND   orgeh = p0001-orgeh.
      WRITE : /.
      WRITE : / 'EMPLOYEE NUMBER :',
              p_wa_0001-pernr.
      WRITE AT 35 'EMPLOYEE NAME :'.
      WRITE : p_wa_0001-ename.
      WRITE : / 'DEPARTMENT      :',
              w_dept.
      WRITE AT 35 'DESIGNATION   :'.
      WRITE : w_desig.
      WRITE : / 'DATE OF JOINING :',
              w_join.
    **---Here we are starting the output of the IT Report....
      WRITE : /.
      ULINE.
      WRITE AT 28 'INCOME TAX CALCULATION'.
      ULINE.
      WRITE : /.
      WRITE : / 'Particulars'.
      WRITE AT 26 'Cummulative Total'.
      WRITE AT 45 'Add:Projected'.
      WRITE AT 61 'Less:Exempted'.
      WRITE AT 77 'Annual. Rs.'.
      WRITE : /.
      LOOP AT p_it_income INTO wa_income.
        CLEAR : wa_income1.
        WRITE wa_income-particular TO wa_income1-particular.
        WRITE wa_income-lgart RIGHT-JUSTIFIED TO wa_income1-lgart.
        WRITE wa_income-cumm RIGHT-JUSTIFIED TO wa_income1-cumm.
        WRITE wa_income-proj RIGHT-JUSTIFIED TO wa_income1-proj.
        WRITE wa_income-exem RIGHT-JUSTIFIED TO wa_income1-exem.
        WRITE wa_income-annu RIGHT-JUSTIFIED TO wa_income1-annu.
        APPEND wa_income1 TO it_income1.
      ENDLOOP.
      LOOP AT it_income1 INTO wa_income1.
        WRITE : / wa_income1-particular LEFT-JUSTIFIED UNDER 'Particulars',
                wa_income1-cumm       UNDER 'Cummulative Total',
                wa_income1-proj       UNDER 'Add:Projected',
                wa_income1-exem       UNDER 'Less:Exempted',
                wa_income1-annu       UNDER 'Annual. Rs.'.
         w_total = w_total + wa_income-annu.
     

  • Send me with screenshots how to debug ABAP PROGRAMS !

    i NEED HELP IN aBAP DEBUDGGING AS I AM NEW TO THIS.
    pLEASE HELP ME

    Hi,
    Debuging means checking the functionality (line by line of your code) of your program at runtime.
    you can do it in below possible ways.
    1) Putting break-point in your program.
    select the line from where you want to debug in your program, put the cursor on that line and the choose 'stop' button in your application tool bar which will set's break point on that line, then execute that program it will take you to debug mode, in debug mode you can see the values in variables using 'fields' tab, and you can see the internal table records by choosing 'tables' tab, and you can put 'watch points'....etc.
    2) Putting '/H' command in your command box.
    which will take you to debug mode right from the first line of your code.
    put '/h' and press enter in your command box, and then execute your program it will goes to debug mode.
    3) write 'BREAK-POINT' code in your coding part.
    write the 'BREAK-POINT' code before your debug line, and then execute the code it will stops the execution of your program and it will take you to debug mode.
    Note:- don't use this option, if you forgot to remove this code, it will create some problems, it's better to avoid this option.
    4) Debugging SAP-Scripts.
    go to SE71 tcode, in the 'UTILITIES' option of your menu-bar options you  can find 'activate debugger' option select that option, while running that script it will take you to debug mode.
    once if your entered to debug mode, by doing some R&D you can easily find the available options.
    Reward if useful.
    Thanks,
    Sreeram.

  • How to debug IPC program?

    I need debug FM IPC_CHANGE_ITEM_CONFIG, when it calls virtual machine container, a window is pop-up, says 8003 port is opened... I am new to CRM and don't know how to do next, may anybody do me a favor?

    hi,
    The debugging method you explained is not possible for IPC because it is sitting upon VMC.
    Please refer below documents how to do ipc debugging .
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/e0e8b21b-e1b4-2c10-49b5-fd6a95162976
    http://help.sap.com/saphelp_nw70/helpdata/EN/47/54eff154cd0a1fe10000000a42189d/frameset.htm
    Thanks and Regards
    shanto aloor

Maybe you are looking for