Skip to Content
Author's profile photo Ginger Gatling

Innovative ways to use alerts

Alerts can add tremendous value to your business processes. A business process can execute thousands of times a day, you only need to know if an exception has occurred in the process. The alert framework in SAP NetWeaver can notify you of these alerts. You have many options on how to react to the alerts. When talking to customers about alerts, many limit the discussion to SAP application modules that natively use the alert framework, such as SCEM, and other customers immediately think of technical alerts in CCMS such as response time and CPU utilization. However, alerts can cover the full gamut of your needs: from technical alerts to business alerts. Since the alert framework is available in every SAP NetWeaver Application Server, alerts can be raised from any SAP system. Additionally, API’s exist so you can have non-SAP systems trigger alerts in SAP NetWeaver. Alerts could occur because of a purchasing process in an ERP system, a KPI alert in a BI system, or a BPM alert coming from SAP NetWeaver Exchange Infrastructure. These alerts can be routed to the user and subsequent actions can be taken. Let’s look at a couple of examples of how you might want to take advantage of using alerts. Triggering an alert The first step with alerts is that the alert has to be triggered. The application system must know it is time to raise an alert. This can happen in many ways. Some applications, such as SCEM, automatically raise alerts. But there are many other ways to raise them as well. Examples include: 1. A workflow event from the business object respository can raise an alert. SAP systems have many events that occur natively, these can be used to trigger alerts. In transaction SWE2 use function module SALRT_CREATE_VIA_EVENT to raise the alert. 2. Use the Post Processing Framework (PPF) to raise an alert. I’m not familiar with the PPF, but I think it’s used in CRM. Please reply if you’ve used this to raise an alert. 3. Beginning in NW04, CCMS can raise alerts via the auto-reaction method. 4. BI process chains can send alerts. 5. Information Broadcasting in BI can also be used to trigger alerts. 6. There is a function module, SALRT_CREATE_API, that can be used to trigger alerts. 7. Integration processes in SAP Netweaver Exchange Infrastructure can raise alerts. So, just get creative – there are many, many ways to get the alerts triggered. Triggering alerts is explained in online help as well. If you just want to trigger an alert to see what you can do, RSALERTTEST is a simple program you can use to raise any alert. Defining an alert and what to do with the alert Alerts are defined in transaction code ALRTCATDEF. In this transaction code you define the name of the alert, and what should happen after the alert has occurred. This is where you can get super creative. Here is an example of an alert I created. image I just called it ZMYTEST. image When defining alerts, you indicate the subsequent actions that could happen based on the alert. This is where your creativity is your limit. The subsequent actions are defined as a URL. So, this could be any thing that you can render as a URL. In my example I’m starting a guided procedure as the result of an alert. Guided procedures are new in NetWeaver 2004s. I will do blogs on guided procedures in the future (here’s a tutorial for guided procedures), but the cool thing is you can enter ANY URL. However, as far as I know the URL cannot be built dynamically, I think it is a static URL. If you’ve used this with dynamic parameters, please reply so we can learn from your experiences. Deciding who should get the alert In the definition of the alert category, you decide who can get the alert. The awesome thing is that you assign roles, or use subscriptions. Users can also subscribe to alerts themselves as well. Example of how this could work Here’s an example of how this could work, putting the pieces together and rendering the alert to the user. 1. Configure the application to trigger the alert. In my example, I will use a business object in an ERP system. If a purchase order is cancelled, I want an alert to be triggered. image Since I have a workflow background, this method is easiest for me. In transaction code SWE2, I am use an event from the business object PURCHASE_ORDER, when the purchase order is cancelled, the funtion module SALRT_CREATE_VIA_EVENT raises the alert category PURCHASE_ORDER_CANCELLED that was created in transaction code ALRTCATDEF.Optionally, I could execute other function modules (CHECK_CUSTOMER_PRIORITY) to see if I really wanted to raise this alert. (For those who don’t know much about SWE2, these addtional function modules do not have to be written, there is a graphically tool you can use to create additional conditions to consider before raising the alert.) 2. I create a guided procedure, and add it as a subsequent action for my alert, PURCHASE_ORDER_CANCELLED. image 3. I have configured my Universal Worklist to receive alerts for this system. I discussed this in a blog earlier this year: Integrating Alerts into UWL. This just involves adding the system to UWL and registering it with the alert connector. 4. Now I raise the alert (by cancelling a purchase order, or running RSALERTTEST as a test). The alert gets routed to my Universal Worklist. image I click on the alert, and I can see the link to the URL defined for the alert category. image Because my URL is linked to a guided procedure, my guided procedure starts. Guided procedures can then link to BI reports, CAF services, SAP transactions, KM objects, function modules, and a variety of other processes. The awesome thing is that my URL launches. Maybe you want to use a URL to launch your custom application or function. Please let me know if this topic interests you, and if you are using alerts. We can do follow-on blogs on alerts, guided procedures, and other tools used to resolve alert situations.

Assigned Tags

      15 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      Good job Ginger...perhaps we can explain more about the options subscribers to alerts have...and the ability to get an alert in the pub! 

      Best Regards,
      Matt

      Author's profile photo Former Member
      Former Member
      Ginger,

      Your blog was awesome to say the least.
      Would appreciate inputs on the following scenario

      I would want alerts created in R/3 system to be made available in the alert inbox of my BW development system ( BW 3.5 version - WAS 640)

      In your example , you have mentioned that you have made the neccesary settings in UWL to take alerts from the R/3 system

      How can I get to do the same for the alert inbox

      Thanks for your time

      Cheers 

      Author's profile photo Steven De Saeger
      Steven De Saeger
      Hi,

      First off all, very nice blog, keep them coming ...

      The whole idea about the alert framework is great and we were very excited when getting our XI box installed to start using it ... only to find out that it is way too limited in terms of data usage and dynamic content generation.

      We have a custom tool that allows for definition of alerts with dynamical key definition and content templates with XSLT mappings. 

      The dynamical key feature allows us to define any number of key fields and perform routing upon the actual key values ... 

      The alert framework gives us 1 key which is the alert category ...

      A practical example ?  We want to route an alert to different end-users based on the actual partner value within an XML message .... Impossible with the alert framework without defining 2 alert categories and use a 'fork' in a BPM ...  ( if somebody could tell me otherwise that would be great but ... )

      The creation of subsequent actions is great but without the possibility to generate dynamical url's not really usefull ...

      I like the idea about the alert framework, the way it is integrated within SAP and the possibility for end-users to choose how they will receive an alert but the lack of decent data content routing features makes it for us impossible to use ...

      Regards,

      Steven

      Author's profile photo Ginger Gatling
      Ginger Gatling
      Blog Post Author
      Hi Steven,
      Thanks for your comments - I'll pass them on to product definition.  I don't know what the future plans are for the alert framework.  But routing based on more fields than the alert category sounds like a great idea.
      Regards
      Ginger
      Author's profile photo Steven De Saeger
      Steven De Saeger
      Great !

      One other thing ... the link towards the guided procedures does not work for me ?  I would like to know more about them ...

      Steven

      Author's profile photo Ginger Gatling
      Ginger Gatling
      Blog Post Author
      Hi Steven,
      Guided procedures are only available in NetWeaver 2004s.  Maybe in your case you have a web dynpro or other URL you would want to call.  Look for a blog on guided procedures from me in January!
      Best regards
      Ginger
      Author's profile photo Sindhu Gangadharan
      Sindhu Gangadharan
      This was really informative for me to get a quick overview on what are the different possibilities to define alerts...thanks for the same.
      Sindhu.
      Author's profile photo Former Member
      Former Member
      Hi All,

      I want create an alert manually via FUNCTION MODULE "SALERT_CREATE" in SAP R/3
      Enterprise for test purpose. First I defined a new alert category via SAP
      transaction code "alrtcatdef", and assigned Fixed Alert Recipients to my own sap
      user ID, then I run FUNCTION MODULE "SALERT_CREATE", input the IP_CAT vaule use this
      new alert category name which I just difined,unfortunately I always get the
      exception message:Alert has no recipients,but I already assigned the Fixed Alert
      Recipients early in defined alert category step. Anybody experienced this?

      Thanks,

      Jeffrey

      Author's profile photo Former Member
      Former Member
      I see how to use the containers to pass values into the the short and long text of an alert.  Very nice.

      We need to be able to pass a value to build the URL.  There is no "Insert Expression" capability for Subsequent Activity.  Is there another way to feed values to this area?  It seems like it should be possible.

      Author's profile photo Former Member
      Former Member

      Hi Jeff,4. My example launches a URL with the 'first_name' parameter which happens to be provided when the alert is raised!

      Author's profile photo Former Member
      Former Member

      Hi,Vijay.

      Author's profile photo Ginger Gatling
      Ginger Gatling
      Blog Post Author
      Hello,
      I tried that awhile back and it also did not work.  I think you have to use the remote FM to pass data to the alert containuer.  I don't think you can do it through the event and SWE2.  You might want to post this question on the forum to see if you found someone who did it...but I think you'll need to call the alert FM where you can declare and pass the data to the alert container yourself.
      Regards
      Ginger
      Author's profile photo Former Member
      Former Member
      Hi Ginger,

      Thanks for your response,
      Can you please guide me how to proceed further?
      I have posted the same in Forums but i didnot got any replies. I thought this is a blog and there may be some quick response from experts.

      Thanks in advance,
      Vijay.

      Author's profile photo Former Member
      Former Member
      Dear Ginger Gatling,

      We are using the alerts to sent BI (Netweaver2004S) exception to the Universel Worklist. As I can read in your excellent blog, the URL in the alert can not be made dynamic.

      "However, as far as I know the URL cannot be built dynamically, I think it is a static URL. If you've used this with dynamic parameters, please reply so we can learn from your experiences."

      For a BI alert it can be very use to have a dynamic URL. We should be able to pass a filter value into the URL so if you click on the link you arrive directly on the exception.

      So my question is: Is there a way to use the container value in the URL?

      We would like to replace COSTELMNT in the following URL by the value of the corresponding container.

      http://sapprtd1.imec.be:50100/irj/servlet/prt/portal/prtroot/pcd!3aportal_content!2fcom.sap.pct!2fplatform_add_ons!2fcom.sap.ip.bi!2fiViews!2fcom.sap.ip.bi.bex?QUERY=ZC_COOM_C02_ALERT&VARIABLE_SCREEN=%20&BI_COMMAND_1-BI_COMMAND_TYPE=SET_VARIABLES_STATE&BI_COMMAND_1-VARIABLE_VALUES-VARIABLE_VALUE_1-VARIABLE_TYPE=VARIABLE_INPUT_STRING&BI_COMMAND_1-VARIABLE_VALUES-VARIABLE_VALUE_1-VARIABLE_TYPE-VARIABLE_INPUT_STRING=COSTELMNT&BI_COMMAND_1-VARIABLE_VALUES-VARIABLE_VALUE_1-VARIABLE=VAR_20070822152422

      If you have any additional information it would be very usefull. Thanks in advance.

      Kind regards,
      Jeroen Roosen

      Author's profile photo Harry Dietz
      Harry Dietz
      Hi!
      In the interface of SALRT_CREATE_API there is a parameter called IT_ACTIVITIES where you can give the URLs. So doesn't this fulfill your requirements?

      Kind regards
      Harry