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