Import stats running more than 20 hrs

All,
Version : 11.2.0.3 DB size : 1.5T
I'm trying to import the statistics from test to prod to avoid stats collection timing and reduce CPU usage. But the import query running more than 20hrs. Looks like something wrong.I don't see object lock also.Can anyone guide where I have to look ?
BEGIN dbms_stats.import_schema_stats(ownname => 'standadm' , stattab => 'standadm_stats'); END;
Thanks

Hi,
Check Wait event of the session , refer alert log for any clue , Check for free space
Try to Flush Shared_pool .
Modify below query by passing import stats session sid or sql_text
col sql_text for a80
set pages 200
set line 900
col PROGRAM for a20
col MACHINE for a20
col CPU 9999999999
alter session set nls_date_format='dd-mon-yyyy hh24:mi:ss';
col event for a40
select *
from (select /*+ rule */
sa.sql_id,
sa.CPU_TIME "CPU",
s.sid "SID",
s.serial# "SERIAL",
s.program "PROGRAM",
s.machine "MACHINE",
sa.SQL_TEXT "SQL_TEXT",
vp.spid,
sw.event,
s.logon_time,
s.last_call_et / 60,
s.username,
s.status
from v$sqlarea sa, v$session s, v$process vp, v$session_wait sw
where sa.address = s.sql_address
and sw.sid = s.sid
and s.paddr = vp.addr
order by CPU_TIME desc)
where rownum < 10;
Thanks,
Ajay More
http://moreajays.blogspot.com

Similar Messages

  • Query on a table runs more than 45mins(after stats) and same query runs 19secs(before stats - rebuild)

    Query on a table runs more than 45mins(after stats) and same query runs 19secs(before stats - rebuild) - Not sure what the cause is.
    - Analysed the explain the plan
    - different explain plan used afterr stats gather.
    Any idea what could be the cause with this kind of difference.
    Thank you!

    What is the difference you see in the explain plan ? Where it spends most time. All these needs to be analysed.

  • Jobs taking more than 3 hrs to complete!!!

    i have a job which creates indexes..
    the job used to get completed within 28 mins..
    however yesterday it took more than 3 hrs and still running..any ideas ??

    however yesterday it took more than 3 hrs Start by checking the execution plans for the historical SQL and ensure that they are the save (see dba_hist_sqlplan). If the execution plans changed, that's a big clue.
    It could be several things:
    - Did you re-analyze stats recently?
    - Could there be contention for data blocks?
    Run a STATSPACK report for both time periods, and you should be able to see the exact issue.
    Hope this helps. . .
    Donald K. Burleson
    Oracle Press author

  • Mail send to  employee even worked for more than 45 hrs

    Hi All,
    We have developed functionality in which if employee works less than 45 hrs then mail is triggered to that employee.
    But the issue is sometimes mail is triggered to some employees even if he worked more than 45 hrs.
    We tried to create a same scenario in quality and development but mail is not triggered in that case.
    Please find the below code.
    Please let me is it because of not clearing wa_time variable???
    GET peras.
      rp_provide_from_last p0000 space sy-datum sy-datum. "latest p0000 record
      IF p0000-stat2 EQ '3'.
        rp_provide_from_last p0001 space sy-datum sy-datum."latest p0001 record
        IF p0001-bukrs EQ '***'.
          rp_read_infotype peras-pernr 2001 p2001 gv_beg  gv_end.
          rp_read_infotype peras-pernr 2002 p2002 gv_beg  gv_end.
          rp_read_infotype peras-pernr 2006 p2006 '18000101' sy-datum.
          IF rb1 EQ 'X'.
            n = 1.
          ELSEIF rb2 EQ 'X'.
            n = 5.
          ENDIF.
          CLEAR : gv_cntr,gv_dat,gv_week.
          gv_dat = gv_beg.
          DO n TIMES.
            IF gv_dat  GT gv_end.
              gv_week = n - 1.
              EXIT.
            ENDIF.
            gv_cntr = gv_cntr + 1.
            IF  gv_cntr GT 1 .
    *          gv_beg = gv_beg + 2.
              gv_dat =  gv_dat + 2.
            ENDIF.
            DO 5 TIMES .
    *          if rb2 eq 'X'.
              IF gv_dat  LE gv_end.
    *            endif.
                READ TABLE it_time INTO wa_time WITH KEY pernr = p0001-pernr
                                                         ldate = gv_dat
                                                         satza = 'P10'.
                IF sy-subrc EQ '0'.
                  gv_in = wa_time-ltime.
                  READ TABLE it_time INTO wa_time WITH KEY pernr = p0001-pernr
                                                        ldate = gv_dat
                                                        satza = 'P20'.
                  IF sy-subrc EQ '0'.
                    gv_out = wa_time-ltime.
                    gv_time =  gv_time + ( gv_out - gv_in )  .
    *                CALL FUNCTION 'MONI_TIME_CONVERT'
    *                  EXPORTING
    *                    ld_duration        = gv_time
    *                  IMPORTING
    *                    lt_output_duration = gv_tot.
    *gv_tote = gv_tot.
    *   gv_total = gv_total  +  gv_tote.
    *    clear : gv_tot,gv_tote.
    **CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    **  EXPORTING
    **    input                      =  gv_time
    ***   NO_TYPE_CHECK              = 'X'
    ***   ROUND_SIGN                 = ' '
    **   UNIT_IN                    = 'S'
    **   UNIT_OUT                   = 'H'
    ** IMPORTING
    ***   ADD_CONST                  =
    ***   DECIMALS                   =
    ***   DENOMINATOR                =
    ***   NUMERATOR                  =
    **   OUTPUT                     =  gv_total
    ** EXCEPTIONS
    **   CONVERSION_NOT_FOUND       = 1
    **   DIVISION_BY_ZERO           = 2
    **   INPUT_INVALID              = 3
    **   OUTPUT_INVALID             = 4
    **   OVERFLOW                   = 5
    **   TYPE_INVALID               = 6
    **   UNITS_MISSING              = 7
    **   UNIT_IN_NOT_FOUND          = 8
    **   UNIT_OUT_NOT_FOUND         = 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.
    *                CALL FUNCTION 'POINT_IN_TIME_CONVERT'
    *                  EXPORTING
    **   KZ_ENDTERMIN        = ' '
    *                    point_in_time       = gv_time
    *                 IMPORTING
    **   DATE                =
    *                   time                = gv_hours."actual working hours
    *                gv_total = gv_total + gv_hours.
                    gv_punch = 'X'.
                    CLEAR wa_final.
                    CLEAR :gv_out,gv_in,gv_hours.
                  ENDIF.
                ENDIF.
                IF gv_punch IS  INITIAL .
                  LOOP AT p2001 WHERE pernr EQ peras-pernr AND begda LE gv_dat AND endda GE gv_dat.
    *              gv_total = gv_total + 090000.
                    gv_time = gv_time + 32400.
                    gv_abs = 'X'.
                  ENDLOOP.
                ENDIF.
                IF gv_punch IS INITIAL AND   gv_abs IS INITIAL.
                  LOOP AT p2002  WHERE pernr EQ peras-pernr AND begda LE gv_dat AND endda GE gv_dat.
                    gv_time = gv_time + 32400.
                    gv_prs = 'X'.
    *              gv_total = gv_total + 090000.
                  ENDLOOP.
                ENDIF.
    *            PERFORM holiday_check USING gv_dat.
                IF gv_punch IS INITIAL AND gv_abs IS INITIAL AND gv_prs IS INITIAL.
                  CALL FUNCTION 'HOLIDAY_CHECK_AND_GET_INFO'
                    EXPORTING
                      date                = gv_dat
                      holiday_calendar_id = 'HM'
                    IMPORTING
                      holiday_found       = gv_ind.
                  IF gv_ind  EQ 'X'.
                    gv_time = gv_time + 32400.
                  ENDIF.
                  CLEAR gv_ind.
                ENDIF.
                CLEAR :gv_punch, gv_abs ,gv_prs.
                gv_dat = gv_dat + 1.
                IF gv_dat GT gv_end.
                  EXIT.
                ENDIF.
              ENDIF.
            ENDDO.
            CLEAR : gv_tot,gv_tim.
            CALL FUNCTION 'MONI_TIME_CONVERT'
              EXPORTING
                ld_duration        = gv_time
              IMPORTING
                lt_output_duration = gv_tot.
    *        IF gv_beg LE gv_end.
            CONCATENATE gv_tot+2(2) gv_tot+5(2) gv_tot+8(2) INTO gv_tim.
            v_dat = ( gv_dat - 1 ).
            wa-awh = wa-awh + gv_time.
            IF  v_dat EQ gv_end.
              wa-pernr = p0001-pernr.
              APPEND wa TO it.
              CLEAR wa.
            ENDIF.
            IF  gv_tim LT c_hrs .
              wa_final-pernr = p0001-pernr.
    *          WA_FINAL-BEGDA = SY-DATUM.
              wa_final-ename = p0001-ename.
    *          wa_final-actual  = gv_time.
              wa_final-diff = gv_45hrs - gv_time.
              wa_final-plans = p0001-plans.
              CLEAR : wa_t001p.
              READ TABLE it_t001p INTO wa_t001p WITH KEY werks = p0001-werks
                                                         btrtl = p0001-btrtl.
              IF sy-subrc EQ 0.
                wa_final-dept = wa_t001p-btext.
              ENDIF.
              CLEAR gv_org.
              PERFORM org_text.
              wa_final-divsn = gv_org.
              wa_final-werks = p0001-werks.
              wa_final-sacha =  p0001-sachp.
              IF wa_final-diff GT 0.
                APPEND wa_final TO it_final.
              ENDIF.
              CLEAR wa_final.
            ENDIF.
    *        ENDIF.
            CLEAR : gv_time ,gv_hours.
            CLEAR gv_tot.
            CLEAR : gv_total.
          ENDDO.
          CLEAR gv_cntr.
    *    ENDIF.
        ENDIF.
      ENDIF.
    *  CLEAR gv_beg.
    END-OF-SELECTION.

    Hi Ketul,
    Still i'm facing the same issue even after clearing wa_time variable.Sometime it's triggering and sometimes it not.
    I'm attaching the whole code for your reference. Pls let me know.
    Waiting for your reply.
    Thanks!!!!!!!!
    CODE:
    REPORT  zhr_vwgsipl_pt_wrknghrs.
    INCLUDE zhr_vwgsipl_wrkng_hrs_top. "data declaration
    INCLUDE zhr_vwgsipl_wrkng_hrs_init.
    INCLUDE zhr_vwgsipl_wrkng_hrs_process. " PROCESSING.
    INCLUDE zhr_vwgsipl_wrkng_hrs_display ."DISPLAY
    *&      Form  ORG_TEXT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM org_text .
      CALL FUNCTION 'HR_READ_FOREIGN_OBJECT_TEXT'
        EXPORTING
          otype                         = 'O'
          objid                         = p0001-orgeh
          costcenter                    = p0001-kostl
    *   CONTROLLINGAREA               =
         status                        = '1'
         begda                         = '18000101'
         endda                         = '99991231'
         reference_date                = sy-datum
         langu                         = sy-langu
       IMPORTING
    *   SHORT_TEXT                    =
         object_text                   = gv_org
    *     costcenter_name               = gv_cst
    *   INTEGRATION_ACTIVE            =
    *   RETURN                        =
       EXCEPTIONS
         nothing_found                 = 1
         wrong_objecttype              = 2
         missing_costcenter_data       = 3
         missing_object_id             = 4
         OTHERS                        = 5
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " ORG_TEXT
    & Include           ZHR_VWGSIPL_WRKNG_HRS_INIT
    IF rb1 EQ 'X'.
    *   IF pn-begda IS  INITIAL.
       IF sy-batch EQ 'X'.
         gv_beg = sy-datum - 4."sy-datum  - 5.
         gv_end = sy-datum.
       ELSE.
         gv_beg = pn-begda.
         gv_end = pn-endda.
       ENDIF.
    ELSEIF rb2 EQ 'X'.
       IF sy-batch NE 'X'." IS NOT  INITIAL.
         gv_beg = pn-begda.
         gv_end = pn-endda.
         CALL FUNCTION 'DATE_COMPUTE_DAY'
           EXPORTING
             date = gv_beg
           IMPORTING
             day  = gv_day.
         IF gv_day LT 5.
           gv_beg = gv_beg - gv_day + 1 .
         ELSEIF gv_day EQ 5 .
           gv_beg =  gv_beg + 3.
         ELSEIF gv_day EQ  6.
           gv_beg =  gv_beg + 2.
         ELSEIF gv_day EQ  7.
           gv_beg =  gv_beg + 1.
         ENDIF.
         CLEAR gv_day.
         CALL FUNCTION 'DATE_COMPUTE_DAY'
           EXPORTING
             date = gv_end
           IMPORTING
             day  = gv_day.
         IF gv_day LT 5.
           gv_end =  gv_end - gv_day - 2.
         ELSEIF gv_day EQ 5.
           gv_end =  gv_end.
         ELSEIF gv_day EQ 6.
           gv_end =  gv_end - 1.
         ELSEIF gv_day EQ 7.
           gv_end =  gv_end - 2.
         ENDIF.
    *   ENDIF.
    * ENDIF.
       ELSE.
         IF sy-datum+4(2) NE '01'.
           gv_mnth = sy-datum+4(2) - 01."c_date+4(2) - 1."sy-datum+4(2) - 1.
         ELSE.
           gv_mnth = 12.
         ENDIF.
         CONCATENATE sy-datum+0(4) gv_mnth  sy-datum+6(2) INTO gv_beg.
         CALL FUNCTION 'DATE_COMPUTE_DAY'
           EXPORTING
             date = gv_beg
           IMPORTING
             day  = gv_day.
         IF gv_day LT 5.
           gv_beg = gv_beg - gv_day + 1 .
         ELSEIF gv_day EQ 5 .
           gv_beg =  gv_beg + 3.
         ELSEIF gv_day EQ  6.
           gv_beg =  gv_beg + 2.
         ELSEIF gv_day EQ  7.
           gv_beg =  gv_beg + 1.
         ENDIF.
         CLEAR gv_day.
         CALL FUNCTION 'DATE_COMPUTE_DAY'
           EXPORTING
             date = sy-datum
           IMPORTING
             day  = gv_day.
         IF gv_day LT 5.
           gv_end =  sy-datum - gv_day - 2.
         ELSEIF gv_day EQ 5.
           gv_end =  sy-datum.
         ELSEIF gv_day EQ 6.
           gv_end =  sy-datum - 1.
         ELSEIF gv_day EQ 7.
           gv_end =  sy-datum - 2.
         ENDIF.
       ENDIF.
    ENDIF.
    CLEAR : it_time,it_receiver,it_usrid,it_t001p.
    SELECT pernr ldate ltime satza
           FROM teven INTO TABLE it_time
           WHERE pernr IN pnppernr AND
          ldate BETWEEN  gv_beg AND gv_end
               AND stokz NE 'X'.
    SELECT pernr subty usrid  usrid_long
       FROM pa0105 INTO TABLE it_receiver
             WHERE "pernr IN pnppernr
              " AND subty = '0010'
                endda >= gv_end
               AND begda <= gv_end.
    SORT it_receiver BY pernr.
    *clear wa_admin.
    *      select single werks sachz
    *        from pa0001
    *        into  wa_admin
    *        where pernr in wa_final-pernr
    *         and endda >= sy-datum
    *                and begda <= sy-datum.
    SELECT  werks sachx usrid
       FROM t526 INTO TABLE it_usrid.
    * SELECT pernr usrid  usrid_long
    * FROM pa0105 INTO TABLE it_ccreceiver
    *   FOR ALL ENTRIES IN it_usrid
    *       WHERE usrid EQ it_usrid-usrid
    *         AND subty = '0010'
    *         AND endda >= gv_end
    *         AND begda <= gv_end.
    SELECT werks btrtl btext  FROM t001p
        INTO TABLE it_t001p
        WHERE werks IN pnpwerks
        AND btrtl IN pnpbtrtl.
    *&  Include   ZHR_VWGSIPL_WRKNG_HRS_PROCESS
    GET peras.
      rp_provide_from_last p0000 space sy-datum sy-datum. "latest p0000 record
      IF p0000-stat2 EQ '3'.
        rp_provide_from_last p0001 space sy-datum sy-datum."latest p0001 record
        IF p0001-bukrs EQ '2680'.
          rp_read_infotype peras-pernr 2001 p2001 gv_beg  gv_end.
          rp_read_infotype peras-pernr 2002 p2002 gv_beg  gv_end.
          rp_read_infotype peras-pernr 2006 p2006 '18000101' sy-datum.
          IF rb1 EQ 'X'.
            n = 1.
          ELSEIF rb2 EQ 'X'.
            n = 5.
          ENDIF.
          CLEAR : gv_cntr,gv_dat,gv_week.
          gv_dat = gv_beg.
          DO n TIMES.
            IF gv_dat  GT gv_end.
              gv_week = n - 1.
              EXIT.
            ENDIF.
            gv_cntr = gv_cntr + 1.
            IF  gv_cntr GT 1 .
    *          gv_beg = gv_beg + 2.
              gv_dat =  gv_dat + 2.
            ENDIF.
            DO 5 TIMES .
    *          if rb2 eq 'X'.
              IF gv_dat  LE gv_end.
    *            endif.
                READ TABLE it_time INTO wa_time WITH KEY pernr = p0001-pernr
                                                         ldate = gv_dat
                                                         satza = 'P10'.
                IF sy-subrc EQ '0'.
                  gv_in = wa_time-ltime.
                  CLEAR : wa_time.
                  READ TABLE it_time INTO wa_time WITH KEY pernr = p0001-pernr
                                                        ldate = gv_dat
                                                        satza = 'P20'.
                  IF sy-subrc EQ '0'.
                    gv_out = wa_time-ltime.
                    gv_time =  gv_time + ( gv_out - gv_in )  .
                     CLEAR : wa_time.
    *                CALL FUNCTION 'MONI_TIME_CONVERT'
    *                  EXPORTING
    *                    ld_duration        = gv_time
    *                  IMPORTING
    *                    lt_output_duration = gv_tot.
    *gv_tote = gv_tot.
    *   gv_total = gv_total  +  gv_tote.
    *    clear : gv_tot,gv_tote.
    **CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    **  EXPORTING
    **    input                      =  gv_time
    ***   NO_TYPE_CHECK              = 'X'
    ***   ROUND_SIGN                 = ' '
    **   UNIT_IN                    = 'S'
    **   UNIT_OUT                   = 'H'
    ** IMPORTING
    ***   ADD_CONST                  =
    ***   DECIMALS                   =
    ***   DENOMINATOR                =
    ***   NUMERATOR                  =
    **   OUTPUT                     =  gv_total
    ** EXCEPTIONS
    **   CONVERSION_NOT_FOUND       = 1
    **   DIVISION_BY_ZERO           = 2
    **   INPUT_INVALID              = 3
    **   OUTPUT_INVALID             = 4
    **   OVERFLOW                   = 5
    **   TYPE_INVALID               = 6
    **   UNITS_MISSING              = 7
    **   UNIT_IN_NOT_FOUND          = 8
    **   UNIT_OUT_NOT_FOUND         = 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.
    *                CALL FUNCTION 'POINT_IN_TIME_CONVERT'
    *                  EXPORTING
    **   KZ_ENDTERMIN        = ' '
    *                    point_in_time       = gv_time
    *                 IMPORTING
    **   DATE                =
    *                   time                = gv_hours."actual working hours
    *                gv_total = gv_total + gv_hours.
                    gv_punch = 'X'.
                    CLEAR wa_final.
                    CLEAR :gv_out,gv_in,gv_hours.
                  ENDIF.
                ENDIF.
                IF gv_punch IS  INITIAL .
                  LOOP AT p2001 WHERE pernr EQ peras-pernr AND begda LE gv_dat AND endda GE gv_dat.
    *              gv_total = gv_total + 090000.
                    gv_time = gv_time + 32400.
                    gv_abs = 'X'.
                  ENDLOOP.
                ENDIF.
                IF gv_punch IS INITIAL AND   gv_abs IS INITIAL.
                  LOOP AT p2002  WHERE pernr EQ peras-pernr AND begda LE gv_dat AND endda GE gv_dat.
                    gv_time = gv_time + 32400.
                    gv_prs = 'X'.
    *              gv_total = gv_total + 090000.
                  ENDLOOP.
                ENDIF.
    *            PERFORM holiday_check USING gv_dat.
                IF gv_punch IS INITIAL AND gv_abs IS INITIAL AND gv_prs IS INITIAL.
                  CALL FUNCTION 'HOLIDAY_CHECK_AND_GET_INFO'
                    EXPORTING
                      date                = gv_dat
                      holiday_calendar_id = 'HM'
                    IMPORTING
                      holiday_found       = gv_ind.
                  IF gv_ind  EQ 'X'.
                    gv_time = gv_time + 32400.
                  ENDIF.
                  CLEAR gv_ind.
                ENDIF.
                CLEAR :gv_punch, gv_abs ,gv_prs.
                gv_dat = gv_dat + 1.
                IF gv_dat GT gv_end.
                  EXIT.
                ENDIF.
              ENDIF.
            ENDDO.
            CLEAR : gv_tot,gv_tim.
            CALL FUNCTION 'MONI_TIME_CONVERT'
              EXPORTING
                ld_duration        = gv_time
              IMPORTING
                lt_output_duration = gv_tot.
    *        IF gv_beg LE gv_end.
            CONCATENATE gv_tot+2(2) gv_tot+5(2) gv_tot+8(2) INTO gv_tim.
            v_dat = ( gv_dat - 1 ).
            wa-awh = wa-awh + gv_time.
            IF  v_dat EQ gv_end.
              wa-pernr = p0001-pernr.
              APPEND wa TO it.
              CLEAR wa.
            ENDIF.
            IF  gv_tim LT c_hrs .
              wa_final-pernr = p0001-pernr.
    *          WA_FINAL-BEGDA = SY-DATUM.
              wa_final-ename = p0001-ename.
    *          wa_final-actual  = gv_time.
              wa_final-diff = gv_45hrs - gv_time.
              wa_final-plans = p0001-plans.
              CLEAR : wa_t001p.
              READ TABLE it_t001p INTO wa_t001p WITH KEY werks = p0001-werks
                                                         btrtl = p0001-btrtl.
              IF sy-subrc EQ 0.
                wa_final-dept = wa_t001p-btext.
              ENDIF.
              CLEAR gv_org.
              PERFORM org_text.
              wa_final-divsn = gv_org.
              wa_final-werks = p0001-werks.
              wa_final-sacha =  p0001-sachp.
              IF wa_final-diff GT 0.
                APPEND wa_final TO it_final.
              ENDIF.
              CLEAR wa_final.
            ENDIF.
    *        ENDIF.
            CLEAR : gv_time ,gv_hours.
            CLEAR: gv_tot,gv_tim.
            CLEAR : gv_total.
          ENDDO.
          CLEAR gv_cntr.
    *    ENDIF.
        ENDIF.
      ENDIF.
    *  CLEAR gv_beg.
    END-OF-SELECTION.
    *&  Include    ZHR_VWGSIPL_WRKNG_HRS_DISPLAY
    CALL FUNCTION 'HR_99S_INTERVAL_BETWEEN_DATES'
      EXPORTING
       begda           = gv_beg
        endda           = gv_end
    *   TAB_MODE        = ' '
    IMPORTING
    *   DAYS            =
       c_weeks         = gv_week
    *   C_MONTHS        =
    *   C_YEARS         =
    *   WEEKS           =
    *   MONTHS          =
    *   YEARS           =
    *   D_MONTHS        =
    *   MONTH_TAB       =
    gv_week = gv_week + 1.
    * CALL FUNCTION 'DATE_COMPUTE_DAY'
    *     EXPORTING
    *       date = gv_end
    *     IMPORTING
    *       day  = gv_day1.
    * if gv_day1 eq '5' or gv_day1 eq
    LOOP AT it_final INTO wa_final."looping at list of employee hvng shrtg.
      CLEAR : gv_diff ,gv_cntr1 , gv_cntr2,gv_upl,gv_upl1.
      IF rb2 EQ 'X'.
        CLEAR : gv_cntr1.
        LOOP AT it_final INTO wa_final WHERE pernr EQ wa_final-pernr .
          gv_diff = gv_diff +  wa_final-diff.   " total shrtg
    *      gv_cntr1 = gv_cntr1 + 1.
        ENDLOOP.
    *    calc no od dyas to be deducted.
        gv_cntr1 = FLOOR( gv_diff / 32400 ) .
        gv_cntr2 = ( gv_diff MOD  32400 ) .
        IF gv_cntr2 IS NOT INITIAL.
          gv_cntr2 = '0.50' .
        ENDIF.
        CLEAR gv_quota.
    *total el quota available.
        LOOP AT p2006 WHERE subty EQ '20' and DESTA le sy-datum  and DEEND ge sy-datum  .
          gv_quota = gv_quota +  p2006-anzhl - p2006-kverb.
          gv_quota = FLOOR( gv_quota ).
        ENDLOOP.
    *leaves to be deducted
        IF gv_cntr1 LE gv_quota.
    *deduction from EL.
          quota-pernr = wa_final-pernr .
          quota-infty = c_infty.
          quota-subty =  c_sub.
          PERFORM holidy_check.
          quota-endda = sy-datum +  gv_cntr1 + gv_no - 1.
          CLEAR gv_no.
          quota-begda = sy-datum.
          quota-awart = c_sub.
          CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
            EXPORTING
              number = wa_final-pernr.
          CALL FUNCTION 'HR_INFOTYPE_OPERATION'
            EXPORTING
              infty         = '2001'
              number        = wa_final-pernr
              subtype       = c_sub
              validityend   = quota-endda
              validitybegin = quota-begda
              record        = quota
              operation     = 'INS'
              tclas         = 'A'
              nocommit      = no_commit
            IMPORTING
              return        = bapireturn
              key           = bapipakey.
          gv_start2 = quota-endda.
    *preparing the list whose leave has been deducted.
          wa_mail-pernr =  wa_final-pernr.
          wa_mail-ename = wa_final-ename.
          wa_mail-divsn = wa_final-divsn.
          wa_mail-dept = wa_final-dept.
          wa_mail-lvdays = gv_cntr1.
          CONCATENATE sy-datum+6(2) '.' sy-datum+4(2) '.' sy-datum+0(4) '-' quota-endda+6(2) '.'  quota-endda+4(2) '.' quota-endda+0(4) INTO wa_mail-lvdat.
    *      wa_mail-lvdat = sy-datum.
          wa_mail-lvtyp = 'Earned Leave'.
          IF bapireturn-message IS NOT INITIAL.
            wa_mail-status = bapireturn-message.
          ELSE.
            wa_mail-status = 'Created'.
          ENDIF.
          wa_mail-werks = wa_final-werks.
          wa_mail-sacha = wa_final-sacha.
          gv_plnd = gv_week * 45 * 60 * 60. "total planned working hrs
          CALL FUNCTION 'MONI_TIME_CONVERT'
            EXPORTING
              ld_duration        = gv_plnd
            IMPORTING
              lt_output_duration = wa_mail-plnd.
          CLEAR wa.
          READ TABLE it INTO wa WITH KEY pernr = wa_final-pernr..
          IF wa IS NOT INITIAL.
            gv_actl =  wa-awh . "actual wrkng hrs "gv_plnd - gv_diff. "actual wrkng hrs
            CALL FUNCTION 'MONI_TIME_CONVERT'
              EXPORTING
                ld_duration        = gv_actl
              IMPORTING
                lt_output_duration = wa_mail-actl.
          ENDIF.
          APPEND wa_mail TO it_mail.
          CLEAR :wa_mail,gv_plnd,gv_actl.
          CLEAR quota .
    *    REFRESH quota.
        ELSE.
          gv_upl = gv_cntr1 - gv_quota.
    *unpaid leave deduction
          IF gv_quota IS NOT INITIAL.
            quota-pernr = wa_final-pernr .
            quota-infty = c_infty.
            quota-subty =  c_sub.
            PERFORM holiday_check1.
            quota-endda = sy-datum + gv_quota + gv_no - 1.
            CLEAR gv_no.
            quota-begda = sy-datum.
            quota-awart = c_sub.
            CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
              EXPORTING
                number = wa_final-pernr.
            CALL FUNCTION 'HR_INFOTYPE_OPERATION'
              EXPORTING
                infty                  = '2001'
                number                 = wa_final-pernr
                subtype                = c_sub
    *   OBJECTID               =
    *   LOCKINDICATOR          =
               validityend            = quota-endda
               validitybegin          =  quota-begda
    *   RECORDNUMBER           =
                record                 = quota
                operation              = 'INS'
               tclas                  = 'A'
    *   DIALOG_MODE            = '0'
               nocommit               = no_commit
    *   VIEW_IDENTIFIER        =
    *   SECONDARY_RECORD       =
             IMPORTING
               return                 = bapireturn
               key                    = bapipakey
            gv_start1 = quota-endda.
            wa_mail-pernr =  wa_final-pernr.
            wa_mail-ename = wa_final-ename.
            wa_mail-divsn = wa_final-divsn.
            wa_mail-dept = wa_final-dept.
            gv_quota1 = gv_quota.
            wa_mail-lvdays = gv_quota1.
            CONCATENATE sy-datum+6(2) '.' sy-datum+4(2) '.' sy-datum+0(4) '-' quota-endda+6(2) '.'  quota-endda+4(2) '.' quota-endda+0(4) INTO wa_mail-lvdat.
    *        wa_mail-lvdat = sy-datum.
            wa_mail-lvtyp = 'Earned Leave'.
    *        CONCATENATE bapireturn-id
    *               bapireturn-number INTO  wa_mail-status.
            IF bapireturn-message IS NOT INITIAL.
              wa_mail-status = bapireturn-message.
            ELSE.
              wa_mail-status = 'Created'.
            ENDIF.
            wa_mail-werks = wa_final-werks.
            wa_mail-sacha = wa_final-sacha.
            gv_plnd = gv_week * 45 * 60 * 60.
            CALL FUNCTION 'MONI_TIME_CONVERT'
              EXPORTING
                ld_duration        = gv_plnd
              IMPORTING
                lt_output_duration = wa_mail-plnd.
            CLEAR wa.
            READ TABLE it INTO wa WITH KEY pernr = wa_final-pernr..
            IF wa IS NOT INITIAL.
              gv_actl =  wa-awh . "actual wrkng hrs "gv_plnd - gv_diff. "actual wrkng hrs
              CALL FUNCTION 'MONI_TIME_CONVERT'
                EXPORTING
                  ld_duration        = gv_actl
                IMPORTING
                  lt_output_duration = wa_mail-actl.
            ENDIF.
            APPEND wa_mail TO it_mail.
            CLEAR :gv_plnd,gv_actl,wa_mail.
            CLEAR quota .
    *    REFRESH quota.
            CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
              EXPORTING
                number = wa_final-pernr.
          ENDIF.
    *      gv_upl1 =  CEIL( gv_upl  + gv_cntr2 ).
          IF gv_upl IS NOT INITIAL.
    *Unpaid leave deduction
            quota-pernr = wa_final-pernr .
            quota-infty = c_infty.
            quota-subty =  c_sub1.
    *        quota-stdaz = gv_upl + gv_cntr2 .
            IF gv_start1 IS INITIAL.
              PERFORM holiday_check2.
              quota-endda = sy-datum +  gv_upl + gv_no - 1.
              quota-begda = sy-datum.
              CLEAR gv_no.
            ELSE.
              PERFORM holiday_check3.
              quota-endda = gv_start1 +  gv_upl + gv_no.
              quota-begda = gv_start1 + 1.
              CLEAR gv_no.
            ENDIF.
            quota-awart = c_sub1.
            CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
              EXPORTING
                number = wa_final-pernr.
            CALL FUNCTION 'HR_INFOTYPE_OPERATION'
              EXPORTING
                infty         = '2001'
                number        = wa_final-pernr
                subtype       = c_sub1
                validityend   = quota-endda
                validitybegin = quota-begda
                record        = quota
                operation     = 'INS'
                tclas         = 'A'
                nocommit      = no_commit
              IMPORTING
                return        = bapireturn
                key           = bapipakey.
            CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
              EXPORTING
                number = wa_final-pernr.
            gv_start2 = quota-endda.
            wa_mail-pernr =  wa_final-pernr.
            wa_mail-ename = wa_final-ename.
            wa_mail-divsn = wa_final-divsn.
            wa_mail-dept = wa_final-dept.
            wa_mail-lvdays = gv_upl.
            CONCATENATE quota-begda+6(2) '.' quota-begda+4(2) '.' quota-begda+0(4) '-' quota-endda+6(2) '.'  quota-endda+4(2) '.' quota-endda+0(4) INTO wa_mail-lvdat.
    *        wa_mail-lvdat = quota-begda.
            wa_mail-lvtyp = 'Unpaid Leave'.
    *        CONCATENATE bapireturn-id
    *        bapireturn-number INTO  wa_mail-status.
            IF bapireturn-message IS NOT INITIAL.
              wa_mail-status = bapireturn-message.
            ELSE.
              wa_mail-status = 'Created'.
            ENDIF.
            wa_mail-werks = wa_final-werks.
            wa_mail-sacha = wa_final-sacha.
            gv_plnd = gv_week * 45 * 60 * 60.
            CALL FUNCTION 'MONI_TIME_CONVERT'
              EXPORTING
                ld_duration        = gv_plnd
              IMPORTING
                lt_output_duration = wa_mail-plnd.
            CLEAR wa.
            READ TABLE it INTO wa WITH KEY pernr = wa_final-pernr..
            IF wa IS NOT INITIAL.
              gv_actl =  wa-awh . "actual wrkng hrs "gv_plnd - gv_diff. "actual wrkng hrs
              CALL FUNCTION 'MONI_TIME_CONVERT'
                EXPORTING
                  ld_duration        = gv_actl
                IMPORTING
                  lt_output_duration = wa_mail-actl.
            ENDIF.
            APPEND wa_mail TO it_mail.
            CLEAR :gv_actl,gv_plnd,wa_mail.
            CLEAR quota.
          ENDIF.
        ENDIF.
    *  half day unpaid leave
        IF gv_cntr2 IS NOT INITIAL.
          quota-pernr = wa_final-pernr .
          quota-infty = c_infty.
          quota-subty =  c_sub1.
          quota-beguz = '090000'.
          quota-enduz = '133000'.
    *      quota-stdaz =  gv_cntr2 .
          IF gv_start2 IS INITIAL.
            PERFORM holiday_check4.
            quota-endda = sy-datum  + gv_no.
            quota-begda = sy-datum + gv_no .
            CLEAR gv_no.
          ELSE.
            PERFORM holiday_check5.
            quota-endda = gv_start2 +  gv_no + 1.
            quota-begda = gv_start2 +  gv_no + 1."gv_start2 + 1.
            CLEAR gv_no.
          ENDIF.
          quota-awart = c_sub1.
          CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
            EXPORTING
              number = wa_final-pernr.
          CALL FUNCTION 'HR_INFOTYPE_OPERATION'
            EXPORTING
              infty         = '2001'
              number        = wa_final-pernr
              subtype       = c_sub1
              validityend   = quota-endda
              validitybegin = quota-begda
              record        = quota
              operation     = 'INS'
              tclas         = 'A'
              nocommit      = no_commit
            IMPORTING
              return        = bapireturn
              key           = bapipakey.
          CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
            EXPORTING
              number = wa_final-pernr.
          wa_mail-pernr =  wa_final-pernr.
          wa_mail-ename = wa_final-ename.
          wa_mail-divsn = wa_final-divsn.
          wa_mail-dept = wa_final-dept.
          wa_mail-lvdays = '0.5'.
          CONCATENATE quota-begda+6(2) '.' quota-begda+4(2) '.' quota-begda+0(4) '-' quota-endda+6(2) '.'  quota-endda+4(2) '.' quota-endda+0(4) INTO wa_mail-lvdat.
    *        wa_mail-lvdat = quota-begda.
          wa_mail-lvtyp = 'Unpaid Leave'.
    *        CONCATENATE bapireturn-id
    *        bapireturn-number INTO  wa_mail-status.
          IF bapireturn-message IS NOT INITIAL.
            wa_mail-status = bapireturn-message.
          ELSE.
            wa_mail-status = 'Created'.
          ENDIF.
          wa_mail-werks = wa_final-werks.
          wa_mail-sacha = wa_final-sacha.
          gv_plnd = gv_week * 45 * 60 * 60.
          CALL FUNCTION 'MONI_TIME_CONVERT'
            EXPORTING
              ld_duration        = gv_plnd
            IMPORTING
              lt_output_duration = wa_mail-plnd.
          CLEAR wa.
          READ TABLE it INTO wa WITH KEY pernr = wa_final-pernr..
          IF wa IS NOT INITIAL.
            gv_actl =  wa-awh . "actual wrkng hrs "gv_plnd - gv_diff. "actual wrkng hrs
            CALL FUNCTION 'MONI_TIME_CONVERT'
              EXPORTING
                ld_duration        = gv_actl
              IMPORTING
                lt_output_duration = wa_mail-actl.
          ENDIF.
          APPEND wa_mail TO it_mail.
          CLEAR : gv_plnd,gv_actl,wa_mail.
          CLEAR quota.
        ENDIF.
      ENDIF.
      DELETE it_final WHERE pernr EQ wa_final-pernr.
      IF bapireturn IS  INITIAL.
        READ TABLE it_receiver INTO wa_receiver WITH KEY pernr = wa_final-pernr
                                                          subty = '0010'.
        IF sy-subrc EQ '0'.
          receiver = wa_receiver-usrid_long.
          CLEAR wa_receiver.
        ENDIF.
    *Commented for cc mail to HR.
    *    READ TABLE it_usrid INTO wa_usrid WITH KEY werks = p0001-werks
    *                                               sachx = p0001-sachp.
    *    IF sy-subrc EQ '0'.
    *      READ TABLE it_receiver INTO wa_receiver WITH KEY usrid = wa_usrid-usrid.
    *      IF sy-subrc EQ '0'.
    *        READ TABLE it_receiver INTO wa_receiver WITH KEY pernr = wa_receiver-pernr
    *                                                         subty = '0010'.
    *        IF rb2 EQ 'X'.
    *          cc_reciv = wa_receiver-usrid_long.
    *        ENDIF.
    *      ENDIF.
    *    ENDIF.
        CONCATENATE wa_final-begda+6(2)'.' wa_final-begda+4(2) '.' wa_final-begda+0(4) INTO gv_begda.
        CONCATENATE wa_final-ltime+0(2)'.' wa_final-ltime+2(2)  INTO gv_ltime.
    *  if empid is not initial and employee is not initial and reciever is not initial.
    **------------Create Content--------------------*
        CONCATENATE 'Dear' wa_final-ename INTO hello_emp SEPARATED BY space.
        CONCATENATE hello_emp ',' INTO hello_emp.
        APPEND hello_emp TO content.
        CLEAR: hello_emp.
        APPEND space TO content.
        IF rb1 EQ 'X'.
          APPEND 'This is to inform you that there is a shortfall in your working hours this week. As you are aware,our working hour policy states that an employee needs to work 45 hours a week - that is,'
            TO content.
          APPEND  'an average of nine hours a day including the half-hour lunch break.'  TO content.
        ELSE.
          APPEND 'You have not worked 45 hours in a week and the same is also not regularized till 15th of the current month.' TO content.
        ENDIF.
        APPEND space TO content.
        IF rb1 EQ 'X'.
          APPEND 'It is recommended that you get this done at the earliest, as it could impact your Earned Leaves, and perhaps, even your salary. ' TO content.
          APPEND space TO content.
          APPEND 'All it requires is regularising your attendance which takes just a few minutes via our ESS portal. Here is the link: http:************.' TO content.
          APPEND space TO content.
          APPEND 'If you have any queries, do refer to our Leave Policy or contact HR Team.' TO content.
          APPEND space TO content.
          APPEND space TO content.
          APPEND 'Best Regards,' TO content.
          APPEND space TO content.
          APPEND 'Your HR Team' TO content.
          APPEND space TO content.
          APPEND '**This is an automatically generated mail. Please do not reply to this mail.**' TO content.
    *      APPEND ' You are therefore, advised to regularize your attendance to ensure 45 hours. Failure to do so will lead to deduction of Earned Leave for the shortfall of the absence period.'
    *      TO content.
        ELSE.
          APPEND 'Hence, the short fall of the working hours has been adjusted against your “Earned Leave”.' TO content.
    *    ENDIF.
    *    CONCATENATE hello_emp '.' INTO hello_emp.
          APPEND space TO content.
          APPEND'If, you do not have sufficient quota of Earned Leave, this will be treated as “Unpaid Leave” and salary will be deducted accordingly.' TO content.
          APPEND space TO content.
          APPEND 'For details, please refer the Leave Policy.' TO content.
          APPEND space TO content.
          APPEND 'Kindly use the following link to access the ESS portal to check your “Leaves and Quotas”.' TO content.
          APPEND space TO content.
          APPEND 'http:**************' TO content.
          APPEND space TO content.
          APPEND space TO content.
          APPEND '**This is an automatically generated mail. Please do not reply to this mail.**' TO content.
          APPEND space TO content.
        ENDIF.
    *APPEND'Best Regards,' TO content.
    *APPEND employee TO content.
    **------------Mail trigger----------------------*
        TRY.
            send_request = cl_bcs=>create_persistent( ).
          CATCH cx_send_req_bcs.
        ENDTRY.
        WRITE 'Shortfall of working time' TO subject.
        TRY.
            CALL METHOD cl_document_bcs=>create_document
              EXPORTING
                i_type        = 'RAW'
                i_subject     = subject
    *    i_length      =
    *    i_language    = SPACE
    *    i_importance  =
    *    i_sensitivity =
                i_text        = content
    *    i_hex         =
    *    i_header      =
    *    i_sender      =
              RECEIVING
                result        = mail_doc
          CATCH cx_document_bcs.
        ENDTRY.
        TRY.
            CALL METHOD send_request->set_document
              EXPORTING
                i_document = mail_doc.
          CATCH cx_send_req_bcs .
        ENDTRY.
        TRY.
            CALL METHOD cl_sapuser_bcs=>create
              EXPORTING
                i_user = sy-uname
              RECEIVING
                result = sender.
          CATCH cx_address_bcs .
        ENDTRY.
        TRY.
            CALL METHOD send_request->set_sender
              EXPORTING
                i_sender = sender.
          CATCH cx_send_req_bcs .
        ENDTRY.
        TRY.
            CALL METHOD cl_cam_address_bcs=>create_internet_address
              EXPORTING
                i_address_string = receiver
    *    i_address_name   =
    *    i_incl_sapuser   =
              RECEIVING
                result           = recipient
          CATCH cx_address_bcs .
        ENDTRY.
        CLEAR :receiver.
    *    *Commented for cc mail to HR.
    *    TRY.
    *        CALL METHOD cl_cam_address_bcs=>create_internet_address
    *          EXPORTING
    *            i_address_string = cc_reciv
    **    i_address_name   =
    **    i_incl_sapuser   =
    *          RECEIVING
    *            result           = recipient_cc
    *      CATCH cx_address_bcs .
    *    ENDTRY.
        TRY.
            CALL METHOD send_request->add_recipient
              EXPORTING
                i_recipient  = recipient
                i_express    = 'U'
    *    i_copy       =
    *    i_blind_copy =
    *    i_no_forward =
          CATCH cx_send_req_bcs .
        ENDTRY.
    *    TRY.
    *        CALL METHOD send_request->add_recipient
    *          EXPORTING
    *            i_recipient  = recipient_cc
    *            i_express    = 'U'
    *            i_copy       = 'X'
    **    i_blind_copy =
    **    i_no_forward =
    *      CATCH cx_send_req_bcs .
    *    ENDTRY.
        TRY.
            CALL METHOD send_request->set_send_immediately
              EXPORTING
                i_send_immediately = 'X'.
          CATCH cx_send_req_bcs .
        ENDTRY.
        TRY.
            CALL METHOD send_request->send
    *  EXPORTING
    *    i_with_error_screen = SPACE
    *  receiving
    *    RESULT              =
          CATCH cx_send_req_bcs .
        ENDTRY.
        COMMIT WORK.
      ELSE.
        READ TABLE it_usrid INTO wa_usrid WITH KEY werks = p0001-werks
                                                   sachx = p0001-sachp.
        IF sy-subrc EQ '0'.
          READ TABLE it_receiver INTO wa_receiver WITH KEY usrid = wa_usrid-usrid.
          IF sy-subrc EQ '0'.
            READ TABLE it_receiver INTO wa_receiver WITH KEY pernr = wa_receiver-pernr
                                                             subty = '0010'.
            receiver = wa_receiver-usrid_long.
            cc_reciv = '*'.
          ENDIF.
        ENDIF.
        CONCATENATE wa_final-begda+6(2)'.' wa_final-begda+4(2) '.' wa_final-begda+0(4) INTO gv_begda.
        CONCATENATE wa_final-ltime+0(2)'.' wa_final-ltime+2(2)  INTO gv_ltime.
    *  if empid is not initial and employee is not initial and reciever is not initial.
    **------------Create Content--------------------*
        CONCATENATE  'Hello' ',' INTO hello_emp.
    *      CONCATENATE hello_emp ',' INTO hello_emp.
        APPEND hello_emp TO content.
        CLEAR: hello_emp.
        APPEND space TO content.
        CONCATENATE 'Employee' wa_final-ename  bapireturn-type
      bapireturn-id
      bapireturn-number
      bapireturn-message
      bapireturn-log_no
      bapireturn-log_msg_no
      bapireturn-message_v1
      bapireturn-message_v2
      bapireturn-message_v3
      bapireturn-message_v4 INTO hello_emp SEPARATED BY space.
        APPEND hello_emp TO content.
        CLEAR: hello_emp.
        APPEND space TO content.
    *    CONCATENATE hello_emp '.' INTO hello_emp.
    *    APPEND hello_emp TO content.
    *    CLEAR: hello_emp.
    *    APPEND space TO content.
    *    APPEND 'For details, please refer Leave Policy.' TO content.
    *    APPEND space TO content.
        APPEND 'Please check Infotype 2001 and 2006 .' TO content.
        APPEND space TO content.
    *    APPEND '***********************l' TO content.
    *    APPEND space TO content.
    *    APPEND space TO content.
        APPEND '**This is an automatically generated mail. Please do not reply to this mail.**' TO content.
        APPEND space TO content.
    *APPEND'Best Regards,' TO content.
    *APPEND employee TO content.
    **------------Mail trigger----------------------*
        TRY.
            send_request = cl_bcs=>create_persistent( ).
          CATCH cx_send_req_bcs.
        ENDTRY.
        WRITE 'Shortfall of working time' TO subject.
        TRY.
            CALL METHOD cl_document_bcs=>create_document
              EXPORTING
                i_type        = 'RAW'
                i_subject     = subject
    *    i_length      =
    *    i_language    = SPACE
    *    i_importance  =
    *    i_sensitivity =
                i_text        = content
    *    i_hex         =
    *    i_header      =
    *    i_sender      =
              RECEIVING
                result        = mail_doc
          CATCH cx_document_bcs.
        ENDTRY.
        TRY.
            CALL METHOD send_request->set_document
              EXPORTING
                i_document = mail_doc.
          CATCH cx_send_req_bcs .
        ENDTRY.
        TRY.
            CALL METHOD cl_sapuser_bcs=>create
              EXPORTING
                i_user = sy-uname
              RECEIVING
                result = sender.
          CATCH cx_address_bcs .
        ENDTRY.
        TRY.
            CALL METHOD send_request->set_sender
              EXPORTING
                i_sender = sender.
          CATCH cx_send_req_bcs .
        ENDTRY.
        TRY.
            CALL METHOD cl_cam_address_bcs=>create_internet_address
              EXPORTING
                i_address_string = receiver
    *    i_address_name   =
    *    i_incl_sapuser   =
              RECEIVING
                result           = recipient
          CATCH cx_address_bcs .
        ENDTRY.
        TRY.
            CALL METHOD cl_cam_address_bcs=>create_internet_address
              EXPORTING
                i_ad

  • Data Load taking more than 24 hrs

    Hi All,
    We are in the process of loading the data from R3 to BW. It’s taking more than 24hrs to load 1 yr data. This is because of complexity of ABAP code its taking this much time. We did all the possible ways to improve the performance of the code. But no luck.
    In case if the same thing happened in the production system, then how should I forward with the data load as it’s taking more than 24 hrs for 1 yr data.
    I m Planning to load int with out data transfer 1st and then Full load.
    Please correct if I m wrong.
    Thanks,
    RS.

    Hi,
    where is your ABAP code complexity loacted? in R/3 or in BW?
    Are you talking about loading in empty cube taking long time? extraction time?
    Analyze the different steps in your monitor and tell us where is the bottleneck;
    If you already know the above and you have performed all the tunings (e.g. number range buffereing when filling an empty cube...) then you're correct; init without data and then full loads.
    As suggested you could segment your full loads and even run them in paralel...
    hope this helps...
    Olivier.

  • Regarding the thread running more than 24 hours

    The below is the query executed from oracle side and is running more than 24 hours and not yet over. And multiple threads are running.
    SELECT COUNT(*)
    FROM snurk_cmms_csht009_rfs,
    snurk_cmms_csht008_rfs,
    snurk_cmms_csht001_rfs
    WHERE snurk_cmms_csht001_rfs.cd_plant = snurk_cmms_csht008_rfs.cd_plant (+)
    AND snurk_cmms_csht001_rfs.no_rfs = snurk_cmms_csht008_rfs.no_rfs (+)
    AND snurk_cmms_csht008_rfs.cd_plant = snurk_cmms_csht009_rfs.cd_plant (+)
    AND snurk_cmms_csht008_rfs.no_rfs = snurk_cmms_csht009_rfs.no_rfs (+)
    AND snurk_cmms_csht008_rfs.ct_misc_item = snurk_cmms_csht009_rfs.ct_misc_item (+)
    AND (snurk_cmms_csht009_rfs.ct_misc_item_page = 1
    OR snurk_cmms_csht009_rfs.ct_misc_item_page IS NULL);
    snurk_cmms_csht009_rfs,snurk_cmms_csht008_rfs,snurk_cmms_csht001_rfs are synonyms for views that are pointing to DB2 tables with the help of dblink.
    The dba saying that the where clause in the above select is not sent to the db2 side so creating a cartesian product and asking us to add something in the where clause.
    Thread detail
    ENCLAVE DETAIL INFORMATION
    PLAN
    Thread: Plan=DISTSERV Connid=SERVER Corrid=G422001E Authid=CPPRXPS
    Dist : Type=DATABASE ACCESS, Luwid=H36A45B9.A712.C8ADB744CDC6=132705
    Location : 19.106.69.185
    enc
    ENCLAVE TOKEN: F0001B77B8 Enclave Type: Original Indep
    Owning System: SYB1 Owning Job: DB27DIST
    WLM Mode: Goal Enclave CPU Time 01:26:00.935
    THREAD DETAIL
    PLAN
    Thread: Plan=DISTSERV Connid=SERVER Corrid=G422001E Authid=CPPRXPS
    Dist : Type=DATABASE ACCESS, Luwid=H36A45B9.A712.C8ADB744CDC6=132705
    Location : 19.106.69.185
    act
    Thread Activity User Defined Functions
    DB2 Status = WAIT-REMREQ TCB Time (SQL) = 00:00:00.000
    MVS Status = Wait for TCB Time = 00:00:00.000
    Total Elapsed Time = 01-17:00 Elapsed Time = 00:00:00.000
    CP CPU Utilization = 00.7% Elapsed Time (SQL) = 00:00:00.000
    Total CP CPU Time = N/A SQL Events = 0
    IIP CPU Time = 00:00:00.000
    Total Parallel Tasks = 0
    Current Parallel Tasks= 0
    SQL CALL BEING EXECUTED
    PLAN
    Thread: Plan=DISTSERV Connid=SERVER Corrid=G422001E Authid=CPPRXPS
    Dist : Type=DATABASE ACCESS, Luwid=H36A45B9.A712.C8ADB744CDC6=132705
    Location : 19.106.69.185
    call
    SQL call is active, call information is as follows :
    Thread Status = WAIT-REMREQ SQL Request Type = DYNAMIC
    Total SQL Reqs = 3589969 SQL Call Type = FETCH
    SQL DBRM Name = GDRDA11 SQL Statement Number = 00000
    Collection ID = SDCSDRDA
    SELECT A1."CD_PLANT", A1."NO_RFS", A2."CD_PLANT", A2."NO_RFS", A2."CD_PL
    ANT", A2."NO_RFS", A2."CT_MISC_ITEM" FROM "MMDBDP7"."CSHT001_RFS" A1, "M
    MDBDP7"."CSHT008_RFS_MISC" A2
    Please suggest on what to be added in the where clause.
    thanks,
    Vinodh

    We cannot create a view in db2 side because of security reasons. I tried to run the query as below.
    SELECT count(a),count(b),count(c) FROM
    (Select cd_plant,no_rfs,ct_misc_item, ct_misc_item_page from snurk_cmms_csht009_rfs) a,
    (Select cd_plant,no_rfs,ct_misc_item from snurk_cmms_csht008_rfs) b,
    (Select cd_plant,no_rfs from snurk_cmms_csht001_rfs ) c
    Where c.cd_plant = b.cd_plant (+)
    AND c.no_rfs = b.no_rfs (+)
    AND b.cd_plant = a.cd_plant (+)
    AND b.no_rfs = a.no_rfs (+)
    AND b.ct_misc_item = a.ct_misc_item (+)
    AND (a.ct_misc_item_page = 1
    OR a.ct_misc_item_page IS NULL)
    I am getting the error as below:
    ERROR at line 4:
    ORA-28545: error diagnosed by Net8 when connecting to an agent
    Unable to retrieve text of NETWORK/NCR message 65535
    ORA-02063: preceding 2 lines from FAST_SNURK_CMMS
    How to troubleshoot this.
    thanks,
    Vinodh

  • When will this thing run more than one app at the same time?

    When will we be able to run more than one app at a time?

    As has been suggested, we won't know about future features until they announce them, but by understanding the current situation we can guess.
    The current limitations on third-party applications running in the background make sense. It's not a technical limitation. App store downloads, and the phone functionality run in the background while other applications are up front.
    It's a resource limitation. Processor power and probably more importantly battery life are the key limiting factors. It's not that Apple doesn't want you to have more functionality. It's that it currently struggling to deliver a quality experience that satisfies as many customers as possible. As it is the battery life is only just acceptable enough for most current customers, many are unhappy with it.
    So if more efficient chips or batteries become available, or some genius programmer manages to squeeze out a whole lot more out of less, then we'll see more background processes allowed.

  • SAPup phase is idle for more than 12 hrs

    Hi all,
    I am BW 3.1 upgrade to BI 7.0
    We have a J2EE engine 6.20 running on BW 3.1 so i installed as on Note: 934615
    then started the ABAP upgrade.
    Now upgrade is in SAPup phase giving info like
    "The parallel running java upgrade wil take some more time"
    I tried to stop and restart again its coming to the same phase.
    And its is idle for more than 12 hrs.
    Pls guide me solve this issue..
    Thanks & Regards
    Karthikeyan

    Got stucked because of Java, uninstall java instance. Issue got resolved

  • Making FCSvr run more than on job at a time?

    Hello everyone,
    How do I make FCsvr run more than one job at a time? I'm watching my Job Progress window and only one clip is being worked on at a time (creating thumb, poster, etc.) Also, when I look at the QMaster Admin it shows only one core working (even though I have all eight cores set for compressing).
    Thanks for any help you can give me
    Micheal

    It's actualy very long to explain in this post but I recommend you read all te Qmaster manual to understand the way it works.
    Just to help you in the process
    1) What you see in the Qmaster admin is a cluster wich can have several instances of compressor within it to run several process at the same time
    2) If you have in fact more than 1 instance of compressor within the cluster (lets say 4) you have 2 options depending of the compressor setting you are using. If the Allow Job Segmenting is ON in the setting all 4 instances are going to be use to transcode the clip and you can see the segments (batch monitor) in wich the file is partition to transcode them separately (in this case 8 segments of video and 1 audio). If the option is OFF only 1 instance is going to run to transcode 1 file, but in this case you can have up to 4 files transcoding at the same time.
    3) Make sure you have the qmaster cluster selected in the compressor option in the preferences panel of the FCS admin window.
    4) The number of cores used to trancode files is manage by Qmaster but I can tell you that if you have an 8 core MACPRO with 4 instances running, around a 90% of the CPU is being used for the compressor when you have 4 jobs running at the same time or 1 with job segmenting ON. When job segmenting is off and there is only 1 job running I saw over 50% of the system cpu running on that process.
    5) Probably the most important point: I really hope for your own good that you have Qmaster and FCS running on 2 different machines. As you can see Qmaster is using serious CPU during trancoding.
    Hope this help

  • After downloading updates for the first time, i was asked to restart my mac. it starting writing configuring installation. the staus bar just showed a little and remained like that for more than 3 hrs. i tried several times wit no success.

    after downloading updates for the first time, i was asked to restart my mac. it started writing configuring installation. the staus bar just showed a little and remained like that for more than 3 hrs. i tried several times wit no success. it has not updated my mac OS X 10.5.

    My clean install worked out alright, although I don't think it really fixed anything, rather gave me a couple more days of use 'till I have to send it in. Someone please help my get it running properly again...

  • Ecc6:import abap last more than 70 hours

    windows 2003 ECC6SR3+sql server 2005
    there is no error when i install it. but the phase import abap last more than 70 hours. the log shows that the last excuting run on the day the phase import abap begun.
    i think it means that the installation has not activited more than 60 hours.
    is there anyone meet the problem?
    i need your help!
    thank you !
    best regards!

    hi Deepanshu and Markus 
    i had been watch at the task manager. from i found the installation was stopped, these columns of installation process has no changed.
    CPU, mem Usage, I/O reads bytes, I/O wites bytes.
    i had checked the last update time with the log file. it was updated on the day the import abap phase begun.
    thank you for your advice!
    best regards!

  • Cannot run more than one instance of a remote app in remote desktop services Server 2012

    All,
    I installed "Remote Desktop Services (RDS) Quick Start Deployment for RemoteApp, Windows Server 2012 Style" using the instructions here http://blogs.technet.com/b/yungchou/archive/2013/02/07/remote-desktop-services-rds-quick-start-deployment-for-remoteapp-windows-server-2012-style.aspx
    I need to set up an image viewing program (Olyvia) to allow students using Macs and iPads access to this windows only application in order for them to get their work done.  We may have 12 or more students accessing and trying to run the Olyvia application
    at any one time.
    All works good, except that I cannot run the Olyvia application (setup as a remoteapp program) more than one instance at a time.  That is, when I start up "olyvia" on a Mac, it works great.  If I leave it up and running, and then try
    and start up "olyvia" on an iPad (using different accounts), I get the following error message:
    "Cannot run more than one instance of this program simultaneously.  Either the program is already running, or it has not been terminated completely."
    I need to understand the root issue.
    1.  Is this a licensing issue?  So, I need to add some CALs to the RDS server?
    2.  Is this a application issue with "olyvia"?  So, no matter what I do, it is not going to be able to be used by more than one person at a time when configured as a remoteapp?
    3.  Did I not "publish" the application correctly?
    4.  Is this happening because I followed the "quick start" guide?
    Appreciate any help I can get on this.  We have no problem getting CALs, I just need some help with the root issue.
    Thanks,
    Geoff Weatherford
    CVMBS, CSU

    Hi Geoff,
    Each application uses different techniques for determining if multiple instances are running.  If you can determine what method it is using then perhaps you could use App-V or other virtualization software.
    In the best case you really should direct your question to the maker of Olyvia.  The reason I said that is they specifically designed their software to prevent multiple instances, so the first question is, why?  Is it related to Licensing? 
    Compatibility?  If you knew the specific reason(s) why they are doing it and the technique used then at the point using a virtualization technique may be the best option.
    -TP

  • Tomcat : Hlow to run more than 1 instance of tomcat server on same machine?

    Hi,
    How to run more than 1 instance of tomcat server on the same machine.
    I use tomcat 5.5. ,updated port number for second instance and tried to run,it takes the same old port number .No batch file available with this version to update the home directory to second instance to run the second server..
    How to work on clustering and load balancing on tomcat server?
    Any inputs?
    Thanks in advance..
    Ani

    Anitha123 wrote:
    We have only 1 dedicated server maintained by third party for hosting..
    If are only getting your site hosted, then, normally, the host would handle clustering (to your sepcifications, of course, but it is normally the hosts responsibility).
    If i need to implement clustering and load balancing for tomcat server then do we need to go for 2 different servers for production environment?
    Yes, you would need two, or more, servers.
    Also please guide me on how to implement clustering and load balancing for tomcat server by running 2 instances on 2 different machine? I'm a newbie to it..
    It should have no (or at least minimal) impact on the code (as long as you are using beans, sessions, and the other components properly). It is handled by the web container (by the tomcat in this case). The tomcat documentation should show how to set it up (if it supports it all, I don't know, we don't have Tomcat at work, and at home I use only a single).

  • IMac (2008) OS10.6.8 - Main menu freezes when running more than one application at a time.  Apple and 3rd party applications - all freeze the main menu.  Safe mode seems to work OK. Tried repairing permissions - didn't work.

    For the past 60 days I've experienced Main Menu freeze when running more than one application at a time.  iPhoto, Preview, Text Edit, Epson Scan, Firefox and Thunderbird are the apps I use almost daily.  No matter what I do, when more than one is running they will freeze the Main Menu (top of the screen).  I've tried booting is Safe Mode and I don't seem to have a problem.  I've tried several suggestions from repairing permission (DiskUtility) to eliminating specifis login items.  Nothing works. I've posted this issue on the Apple forum several times and no one else has experienced this problem.  I hesitate to take my iMac to the Apple Store or a private Apple repair service until I've exhausted all of my options.  Do I have any more options?    

    Question:  Everytime an app crashes I have the option to report it to Apple - which I usually do.  But I've NEVER reported a Main Menu freeze because it never asks me to
    There's really no need to submit to Apple, it's just a round file cabinet on the other end, especially with 10.6 or earlier.
    This sure sounds like a resource problem...
    See if the Disk is issuing any S.M.A.R.T errors in Disk Utility...
    http://support.apple.com/kb/PH7029
    Open Activity Monitor in Applications>Utilities, select All Processes & sort on CPU%, any indications there?
    How much RAM & free space do you have also, click on the Memory & Disk Usage Tabs.
    Open Console in Utilities & see if there are any clues or repeating messages when this happens.
    In the Memory tab, are there a lot of Pageouts?

  • "A script is already running" while attempting to run more than one item

    We upgrade recently to ODT 11.2.0.3.20. Since then, attempting to run more than one item from the Solution Explorer (by selecting the items, right-clicking, and selecting "Run") results in a popup error of "Oracle Developer Tools. A script is already running". If many items are selected it results in many error messages and only a random few of the items are actually executed on the server. Also, choosing "Run On" now results in it prompting for the target database for each item selected (rather than once for all items selected like it used to). This all used to work fine in the earlier release we were using. Has anyone else run into this? Any fixes? We used to use multi-select and "Run" or "Run On" to deploy multiple items at once, but this no longer works -- doing one at a time works, but if you have hundreds of items to run, this quickly becomes unusable.
    Thanks for any insight.
    - Josh

    cshay wrote:
    I don't believe that the intention was for you to be able to run a bunch of scripts one after the other. Often there are dependencies between scripts anyway and so you you have to order them. Because we're generally deploying a large set of stored procedures (and not just one-time scripts) the order doesn't really matter -- even if a stored procedure gets created before one it depends on, once all the SPs are on the server, the ones that are "invalid" will compile correctly once you execute them.
    I think a lot of people are creating master scripts that references child scripts using the "@" sql plus syntax.... have you tried that?
    I'll give that a try as a work around. Only issue I have with that solution is every time we add or remove something from the solution, we also have to update the script.
    We are doing a lot of enhancements to our script generation in the coming year. Keep an eye out for a beta to test.
    Like I said, this used to work fine in the older versions of ODT. It seems like the new version is attempting to execute multiple items at once on the same connection simultaneously, thus resulting in the "A script is already running" error. The old version used to be smart enough to execute them one at a time -- so something changed in a more recent version to completely break "Run" and "Run On" when you have more than one item highlighted (even just highlighting 2 items and choosing "Run" runs the first item, but then gives the error for the second item).
    Christian- Josh

Maybe you are looking for

  • LaCie Hard Drive vanishes after 10.4.9 update...

    I've seen this complaint all over the web, but I've seen no helpful solutions from Apple or anyone else. Here's what happened to me. First off, this is CLEARLY a problem with the latest software update 10.4.9, NOT a problem with my drive, and I'll te

  • C3-00 icons on menu

    I am using NOKIA phones C3-00, after I update the firmware to version 8.63. When I select menu, there are two icons "community" the same, I do not know how to delete an icon to either of these icons. Who knows how to fix this problem, please help me

  • Is there a free MySQL driver?

    Dear All, Thank you for your replies to my previous posting. I explored the JDBC resources site that was indicated. It appears that the drivers that are available for MySQL have to be paid for. I was under the impression that a JDBC driver for MySql

  • IOS 6 update, problems with connecting to MacBook

    After installing the ios 6 update for my iphone 4 i tried syncing my phone with my macbook. I learned that i needed the newest itunes (10.7) to do so. I tried downloading the new itunes but learn that i need the new Mountain lion software for my macb

  • Identifying Program for Adobe Form

    Hi, I am trying to identify the actual program linked to the Adobe form. Scenario is like this , Adobe form is built using ABAP Dictionary- Based Interface which is interactive through portal. Thanks & Regards, Kumar