Escalation & sending external Mail (outlook)

Jeff Rappaport Jeff at Business-Workflow.com
Wed May 25 11:39:37 EDT 2005


Gopi/Jim,

   You can also use FM: END_TIME_DETERMINE 

Jeff Rappaport 
www.Business-Workflow.com

---- Original message ----
>Date: Wed, 25 May 2005 07:03:19 -0600
>From: "Hall, Jim" <Jim.Hall at fortisalberta.com>
>Subject: RE: Escalation & sending external Mail (outlook)
>To: <sap-wug at mit.edu>
>
>   Gopi:
>    
>    I have a method, with a function module that I use
>   to calculate a wait of 5 working days.
>    
>   Here is the method info and the function module.
>    
>   Hope it helps
>    
>
>   Jim Hall
>   Systems Analyst
>   Fortis Alberta Inc.
>   Information Technology 
>    
>
>    
>    BEGIN_METHOD ZCALC5WORKDAYS CHANGING CONTAINER.   
>   DATA:                                             
>         TIME LIKE SYST-UZEIT,                       
>         DATE LIKE SYST-DATUM.                       
>                                                     
>   Data: w_date type syst-datum,                     
>         W_WORKDAYS TYPE PA2001-ABWTG.               
>                                                     
>     GEt time.                                       
>     TIME = SY-UZEIT.                                
>     W_DATE = SY-DATUM + 7.                          
>                                                     
>    DO.                                              
>      CALL FUNCTION 'Z_CALENDAR_CALCULATE_DAYS'      
>        EXPORTING                                    
>         IDENT                          = 'CA'       
>          START_DATE                     = SY-DATUM  
>          END_DATE                       = W_DATE    
>      IMPORTING                                      
>        WORKDAYS                       = W_WORKDAYS. 
>                                                     
>                                                     
>      IF W_WORKDAYS => 6.                            
>         EXIT.                                       
>      ENDIF.                                         
>      W_DATE = W_DATE + 1.                          
>    ENDDO.                                          
>                                                    
>    DATE = W_DATE.                                  
>                                                    
>     SWC_SET_ELEMENT CONTAINER 'Time' TIME.         
>     SWC_SET_ELEMENT CONTAINER 'Date' DATE.         
>   END_METHOD.                                      
>    
>   Function module is as follows
>
>   FUNCTION Z_CALENDAR_CALCULATE_DAYS.
>
>   *"-----------------------------------------------------
-----------------
>
>   *"*"Local interface:
>
>   *"       IMPORTING
>
>   *"             VALUE(IDENT) LIKE  TFACD-IDENT
>
>   *"             VALUE(START_DATE) LIKE  SY-DATUM
>
>   *"             VALUE(END_DATE) LIKE  SY-DATUM
>
>   *"       EXPORTING
>
>   *"             VALUE(WORKDAYS) LIKE  PA2001-ABWTG
>
>   *"             VALUE(HOLIDAYS) LIKE  PA2001-ABWTG
>
>   *"       EXCEPTIONS
>
>   *"              INVALID_RANGE
>
>   *"              CALENDAR_RANGE_NOT_FOUND
>
>   *"-----------------------------------------------------
-----------------
>
>    
>
>   *$*$---------------------------------------------------
----------------*
>
>   *$*$ Function Module calculates the number of
>   Workdays and the number  *
>
>   *$*$ of holidays for the specified calendar within
>   the period provided *
>
>   *$*$---------------------------------------------------
----------------*
>
>    
>
>   RANGES: LR_JAHR FOR TFACS-JAHR.
>
>    
>
>   FIELD-SYMBOLS: <MONTH>.
>
>    
>
>   DATA: LT_TFACS LIKE TFACS OCCURS 0 WITH HEADER LINE,
>
>         L_START_MONTH(2) TYPE N,
>
>         L_START_YEAR(4) TYPE N,
>
>         L_START_DAY(2) TYPE N,
>
>         L_END_MONTH(2) TYPE N,
>
>         L_END_YEAR(4) TYPE N,
>
>         L_END_DAY(2) TYPE N,
>
>         L_START_FLD TYPE I,
>
>         L_END_FLD TYPE I,
>
>         L_TIMES TYPE I,
>
>         L_MONTH(2) TYPE N,
>
>         L_NUM_DAYS TYPE I,
>
>         L_DAY TYPE I.
>
>    
>
>   IF START_DATE > END_DATE.
>
>     RAISE INVALID_RANGE.
>
>   ENDIF.
>
>    
>
>   * Determine the years for the specified period
>
>   MOVE: 'I'             TO LR_JAHR-SIGN,
>
>         'BTW'           TO LR_JAHR-OPTION.
>
>   WRITE START_DATE+0(4) TO LR_JAHR-LOW.
>
>   IF START_DATE+0(4) NE END_DATE+0(4).
>
>     WRITE END_DATE+0(4) TO LR_JAHR-HIGH.
>
>   ELSE.
>
>     WRITE START_DATE+0(4) TO LR_JAHR-HIGH.
>
>   ENDIF.
>
>   APPEND LR_JAHR.
>
>    
>
>   * Get the entries for the specified Calendar/Years
>
>   SELECT * INTO TABLE LT_TFACS
>
>          FROM TFACS
>
>               WHERE IDENT EQ IDENT
>
>                 AND JAHR  IN LR_JAHR.
>
>   IF SY-SUBRC NE 0.
>
>     RAISE CALENDAR_RANGE_NOT_FOUND.
>
>   ENDIF.
>
>    
>
>   * Separate Dates into Component Parts
>
>   WRITE: START_DATE+0(4) TO L_START_YEAR,
>
>          START_DATE+4(2) TO L_START_MONTH,
>
>          START_DATE+6(2) TO L_START_DAY,
>
>          END_DATE+0(4)   TO L_END_YEAR,
>
>          END_DATE+4(2)   TO L_END_MONTH,
>
>          END_DATE+6(2)   TO L_END_DAY.
>
>    
>
>   * For each year retrieved within TFACS, calculate
>   the number of days
>
>   * per month (for the specified period).
>
>   LOOP AT LT_TFACS.
>
>     IF LT_TFACS-JAHR EQ L_START_YEAR.
>
>       L_START_FLD = L_START_MONTH + 2.
>
>     ELSE.
>
>       L_START_FLD = 3.
>
>     ENDIF.
>
>     IF LT_TFACS-JAHR EQ L_END_YEAR.
>
>       L_END_FLD = L_END_MONTH + 2.
>
>     ELSE.
>
>       L_END_FLD = 14.
>
>     ENDIF.
>
>     L_TIMES = L_END_FLD - L_START_FLD + 1.
>
>     DO L_TIMES TIMES.
>
>   * Get current Month
>
>       ASSIGN COMPONENT L_START_FLD OF STRUCTURE
>   LT_TFACS TO <MONTH>.
>
>       ADD 1 TO L_START_FLD.
>
>       L_MONTH = L_START_FLD - 3.
>
>   * <month> now contains the factory calendar for the
>   current month
>
>    
>
>   * When start and End date fall in same month
>
>       IF ( LT_TFACS-JAHR EQ L_START_YEAR ) AND
>
>          ( LT_TFACS-JAHR EQ L_END_YEAR ) AND
>
>          ( L_MONTH       EQ L_START_MONTH ) AND
>
>          ( L_MONTH       EQ L_END_MONTH ).
>
>         L_NUM_DAYS = ( STRLEN( <MONTH> ) - L_START_DAY
>   ) -
>
>                      ( STRLEN( <MONTH> ) - L_END_DAY )
>   + 1.
>
>         L_DAY = L_START_DAY - 1.
>
>   * When current month is the same as the start month
>
>       ELSEIF ( LT_TFACS-JAHR EQ L_START_YEAR ) AND
>
>              ( L_MONTH       EQ L_START_MONTH ).
>
>         L_NUM_DAYS = STRLEN( <MONTH> ) - L_START_DAY +
>   1.
>
>         L_DAY = L_START_DAY - 1.
>
>   * When current month is the same as the end month
>
>       ELSEIF ( LT_TFACS-JAHR EQ L_END_YEAR ) AND
>
>              ( L_MONTH       EQ L_END_MONTH ).
>
>         L_NUM_DAYS = L_END_DAY.
>
>         L_DAY = 0.
>
>   * For all other Months
>
>       ELSE.
>
>         L_NUM_DAYS = STRLEN( <MONTH> ).
>
>         L_DAY = 0.
>
>       ENDIF.
>
>       PERFORM CALCULATE_DAYS USING L_NUM_DAYS
>
>                                    L_DAY
>
>                                    <MONTH>
>
>                              CHANGING WORKDAYS
>
>                                       HOLIDAYS.
>
>     ENDDO.
>
>    
>
>   ENDLOOP.
>
>    
>
>   ENDFUNCTION.
>
>    
>
>   *&-----------------------------------------------------
----------------*
>
>   *&      Form  CALCULATE_DAYS
>
>   *&-----------------------------------------------------
----------------*
>
>   *       text
>
>   *------------------------------------------------------
----------------*
>
>   *      -->P_NUM_DAYS 
>   text                                             *
>
>   *      -->P_START_DAY
>   text                                             *
>
>   *      -->P_MONTH    
>   text                                             *
>
>   *      <--P_WORKDAYS 
>   text                                             *
>
>   *      <--P_HOLIDAYS  text     
>                                          *
>
>   *------------------------------------------------------
----------------*
>
>   FORM CALCULATE_DAYS USING    P_NUM_DAYS  TYPE I
>
>                                P_START_DAY TYPE I
>
>                                P_MONTH     LIKE
>   TFACS-MON01
>
>                       CHANGING P_WORKDAYS  LIKE
>   PA2001-ABWTG
>
>                                P_HOLIDAYS  LIKE
>   PA2001-ABWTG.
>
>    
>
>     DATA: L_X(1),
>
>           L_START_DAY TYPE I.
>
>    
>
>     MOVE P_START_DAY TO L_START_DAY.
>
>    
>
>     DO P_NUM_DAYS TIMES.
>
>       MOVE P_MONTH+L_START_DAY(1) TO L_X.
>
>       IF L_X EQ '1'.
>
>         ADD 1 TO P_WORKDAYS.
>
>       ELSEIF L_X EQ '0'.
>
>         ADD 1 TO P_HOLIDAYS.
>
>       ENDIF.
>
>       ADD 1 TO L_START_DAY.
>
>     ENDDO.
>
>    
>
>   ENDFORM.                    " CALCULATE_DAYS
>
>    
>
>    
>
>     ------------------------------------------------
>
>   From: sap-wug-bounces at mit.edu
>   [mailto:sap-wug-bounces at mit.edu] On Behalf Of
>   Gopinath Addepalli Prasad
>   Sent: May 24, 2005 10:38 PM
>   To: sap-wug at mit.edu
>   Subject: Escalation & sending external Mail
>   (outlook)
>   Hi,
>    
>      Could any one tell me how to find the day as a
>   working day for giving reminder to the
>      approver to approve ?
>    
>       Could any one tell me how to send the external
>   mail (outlook) from the task approved to request
>   creator..?
>    
>      Thier help is greatly appriciated.
>    
>   Regards,
>   Gopi.
>________________
>_______________________________________________
>SAP-WUG mailing list
>SAP-WUG at mit.edu
>http://mailman.mit.edu/mailman/listinfo/sap-wug
Jeffrey A. Rappaport
Business Workflow, LLC
voice: (732)355-0123
fax:   (509)757-4144
email: Jeff at Business-Workflow.com
web:   www.Business-Workflow.com


More information about the SAP-WUG mailing list