Trigger an Event Using Program
and then Trigger a Process Chain
by Event
Applies to:
SAP BI Source System. For more information, visit the Business Intelligence homepage.
Summary
This article gives clear picture of creating an Event, storing variables in standard variant table TVARVC
using report ,use of stored global variable in DTP filter and triggering a process chain based on event.
Author: Lovina Dsouza
Company: L&T Infotech
Created on: 21 December 2009
Author Bio
Lovina Dsouza has been working with L&T Infotech for last 2.7 years and has worked on BI and ABAP
Objects.
SAP COMMUNITY NETWORK SDN - [Link] | BPX - [Link] | BOC - [Link] | UAC - [Link]
2010 SAP AG 1
Trigger an Event Using Program and then Trigger a Process Chain by Event
Table of Contents
Introduction ......................................................................................................................................................... 3
Example .............................................................................................................................................................. 3
Disclaimer and Liability Notice ............................................................................................................................ 8
SAP COMMUNITY NETWORK SDN - [Link] | BPX - [Link] | BOC - [Link] | UAC - [Link]
2010 SAP AG 2
Trigger an Event Using Program and then Trigger a Process Chain by Event
Introduction
This article addresses the following requirements.
Trigger an Event using Program
Populate data in DTP filter using ABAP code
Trigger a process chain using EVENT which is triggered by program
Example
Create a Simple Report which will check field z_DATE from TABLE1 with System date. If match is found then
store the corresponding values of Fiscal year and Forecast cycle from TABLE1 into TVARVC table and then
raise an Event EVENT1.
The values of Fiscal year and Forecast cycle from TVARVC will be accessed in DTP filter.
And EVENT1 will trigger the process chain with required values in DTP filter.
Following would be the Entries in Table1
Follow below Steps
1) Create an Event
2) Create entries in Global Table
3) Create a Report to Trigger an Event
4) Create a Process chain
5) Write code in DTP filter
FISCYEAR FORECYCLE Z_DATE
2009 Cycle1 10.12.2009
2008 Cycle2 11.11.2008
1. First step is to create an event EVENT1 in SM62
SAP COMMUNITY NETWORK SDN - [Link] | BPX - [Link] | BOC - [Link] | UAC - [Link]
2010 SAP AG 3
Trigger an Event Using Program and then Trigger a Process Chain by Event
2. Create two variables Z_FISCYEAR (Forecast Cycle) , Z_FRCYLE(Fiscal Year) in TVARVC table
as shown below.
TVARVC table is the Table of Variant Variables (Client-Specific)
3. Create a report to fetch Fiscal Year and Forecast cycle forn TABLE1 ,store values in TVARVC
table and then raise an event EVENT1.
SELECT SINGLE
FISCYEAR
FORECYCLE
FROM TABLE1
INTO (w_fiscyear,
w_forecycle)
WHERE Z_DATE EQ sy-datum.
IF sy-subrc EQ 0.
* update the entries in TVARVC where name eq 'Z_FISCYEAR'.
UPDATE tvarvc
SET low = w_fiscyear
WHERE name EQ z_fiscyear.
IF sy-subrc EQ 0.
COMMIT WORK.
ENDIF.
* update the entries in TVARVC where name eq 'Z_FRCYCLE'.
UPDATE tvarvc
SET low = w_forecycle
WHERE name EQ z_frcyle.
IF sy-subrc EQ 0 .
COMMIT WORK.
ENDIF.
CALL FUNCTION 'BP_EVENT_RAISE'
EXPORTING
SAP COMMUNITY NETWORK SDN - [Link] | BPX - [Link] | BOC - [Link] | UAC - [Link]
2010 SAP AG 4
Trigger an Event Using Program and then Trigger a Process Chain by Event
eventid = EVENT1
* EVENTPARM = ' '
* TARGET_INSTANCE = ' '
EXCEPTIONS
bad_eventid = 1
eventid_does_not_exist = 2
eventid_missing = 3
raise_failed = 4
OTHERS = 5.
IF sy-subrc NE 0.
ENDIF.
4. Now create a process chain based on EVENT1
SAP COMMUNITY NETWORK SDN - [Link] | BPX - [Link] | BOC - [Link] | UAC - [Link]
2010 SAP AG 5
Trigger an Event Using Program and then Trigger a Process Chain by Event
5. The filter for DTP will be set based on forecast cycle and Fiscal year values store in standard
table.
This DTP is used in our process chain.
DTP filter code is
written over here
Below is the code written for both variables to fetch filter selection.
For Forecast cycle :
DATA: l_idx LIKE sy-tabix.
READ TABLE l_t_range WITH KEY
fieldname = FORECYCLE
l_idx = sy-tabix.
*....
SELECT SINGLE low INTO l_t_range-low FROM tvarvc WHERE name EQ
z_frcyle.
IF sy-subrc EQ 0.
l_t_range-sign = I.
l_t_range-option = EQ.
ENDIF.
IF l_idx <> 0.
MODIFY l_t_range INDEX l_idx.
ELSE.
APPEND l_t_range.
ENDIF.
p_subrc = 0.
SAP COMMUNITY NETWORK SDN - [Link] | BPX - [Link] | BOC - [Link] | UAC - [Link]
2010 SAP AG 6
Trigger an Event Using Program and then Trigger a Process Chain by Event
For Fiscal Year
DATA: l_idx LIKE sy-tabix.
READ TABLE l_t_range WITH KEY
fieldname = 0FISCYEAR.
l_idx = sy-tabix.
*....
SELECT SINGLE low INTO l_t_range-low FROM tvarvc WHERE name EQ
z_fiscyear.
IF sy-subrc EQ 0.
l_t_range-sign = I.
l_t_range-option = EQ.
ENDIF.
IF l_idx <> 0.
MODIFY l_t_range INDEX l_idx.
ELSE.
APPEND l_t_range.
ENDIF.
p_subrc =
SAP COMMUNITY NETWORK SDN - [Link] | BPX - [Link] | BOC - [Link] | UAC - [Link]
2010 SAP AG 7
Trigger an Event Using Program and then Trigger a Process Chain by Event
Disclaimer and Liability Notice
This document may discuss sample coding or other information that does not include SAP official interfaces and therefore is not
supported by SAP. Changes made based on this information are not supported and can be overwritten during an upgrade.
SAP will not be held liable for any damages caused by using or misusing the information, code or methods suggested in this document,
and anyone using these methods does so at his/her own risk.
SAP offers no guarantees and assumes no responsibility or liability of any type with respect to the content of this technical article or
code sample, including any liability resulting from incompatibility between the content within this document and the materials and
services offered by SAP. You agree that you will not hold, or seek to hold, SAP responsible or liable with respect to the content of this
document.
SAP COMMUNITY NETWORK SDN - [Link] | BPX - [Link] | BOC - [Link] | UAC - [Link]
2010 SAP AG 8