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).

Similar Messages

  • 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 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 avoid swing program exit

    My application, while in a specific condition, need to avoid program exit. In my application program exit can be done:
    - through a menu bar menu item (exit): no problem to avoid exiting, I manage it with success.
    - by clicking the standard red button in the applcation title bar (in other words the standard close button): here I need your help since I didnt' found a way to avoid the program closure.
    To be clear, my application should avoid ( I mean avoid not delay) it's closure when is communicating (throgh RS232C connection) with other external devices, infact when the user select the exit item in main menù the application show a warning dialog with the mesage "you connot exit now, wait communication end". But I don't fiond a way to do the same whit close button, I can do something (i.e. showing the warnign dialog) creating a listener but I cannot "consume" the event so I'm not able to avoid the program exit.
    Do you know a way to do it?
    Thanks a lot for your help.

    I tried with setDefaultCloseOperation(...) but seems have no effect one exit (exit in any case). I don't know if is a matter of SingleFrameApplication implementation (that I use since my project is crated with NetBeans swing wizard).
    In any case at the end I found success using the SingleFrameApplication ExitListener interface, hereafter my solution (that works correctly):
    public class FuelFEPApp extends SingleFrameApplication {
        class ConfirmExit implements ExitListener
            public boolean canExit(java.util.EventObject e)
                boolean result= false;
                if (mainThread.areChannelsCommunicating())
                    // There are communications running, avoid exit...
                    Object source = (e != null) ? e.getSource() : null;
                    Component owner = (source instanceof Component) ? (Component)source : null;
                    JOptionPane.showMessageDialog(owner,
                                                  (Object)"Communications running, you cannot exit application",
                                                  "Warning",
                                                  JOptionPane.WARNING_MESSAGE);
                else
                    // No communications then exit
                    result= true;
                return result;
            public void willExit(java.util.EventObject e)
        @Override protected void startup() {
            FEPView= new FuelFEPView(this);
            show(FEPView);
            this.addExitListener(new ConfirmExit());
    ...

  • 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.
     

  • 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 the DMEE exit function module

    Hi All,
    I wants to Debug the DMEE  tree exit function module.
    Could you please guide me.
    Regards,
    Seshadri

    Put a BREAK USER in User-Exit.
    Once the system enters into debugging mode,
    in debuger on setting tab,
    check the Update Debugging and System Debugging.
    Regards
    Bala Krishna

  • 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

  • How to Debug Standard Program & Custom 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
    Edited by: LU JACK on Sep 19, 2008 1:18 PM

    Hi,
    Go to SE71 , give form name ZXXX and go utilities activate debugger
    Go to SE38 give driver program name 'RFFOUS_C' .and execute click OK button give printer name like LP01 and see print preview or print
    it will go debugger mode.
    it will help ful you.
    Regards,
    Bhupal.
    Edited by: bhupal reddy on Sep 19, 2008 1:34 PM
    Edited by: bhupal reddy on Sep 19, 2008 1:35 PM

  • Help me!! i don't know how to debug jni program!!

    i have finished a jni program. but when i run the java project, some errors appeared.
    for i am sure the errors come from the native method ,i set a breakpoint on the native call and debug the project. for the jni program were written with c++, so when i choose "step into" , it dosen't step into and just report some kinds of error.
    i use jbuilder4.0 for java program and vc++6.0 for the native method.
    i had try two ways. i try to invoke the JVM in native method but i failed to set the classpath. and i debug the native method , the dll, and link to the java.exe. but there is no place to input my classname when load the java.exe. what the result is some information of java.exe.
    can anybody help me??!!!!

    Make sure your Active Configuration is set to Debug.
    Then make sure you are loading the dll from the Debug directory in your Java application. Set all the Breakpoints etc you want in your DLL, build it.
    Start your java application from the command line (you do not need it in debug mode at all if you only want to debug the DLL. Make sure you have some way of causing the App to wait for some interaction so you can do the following.
    In your open CV++ project select Build->Start Debugging->Attach to Process. Attach to the process that is the java VM running your App.
    The cause your Java app to run normally.
    Breakpoints etc will cause the VC++ debugger to be invoked and you can merrily debug to your hearts content.

  • 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.

Maybe you are looking for