Skip to Content
Author's profile photo Former Member

Extended Approval Notification with SAP Fiori Component

I would like to share my experience with SAP FIORI Approval application through this blog. This blog will walk you through required steps to enable SAP FIORI Approval component to send external email notification with FIORI application URL as part of email. This will allow user to review work item and make a decision (i.e. Approve or Reject).

Here is the main steps to implement Extended Notification for SAP Fiori Approve Purchase Order App or any other Approval apps.

1)      Implement OSS Note in 2056158, if it is required in your system.

2)      Assign Purchase Order Task to UI5_BSP – Visualization Type using SAP Transaction SWFVISU.

3)      Change the workflow Business Scenario setting and Assign Custom handler class using T-code SWNCONFIG.

4)      Testing the SAP Fiori App.

1) Implement OSS Note 2056158 manual correction in your system.

    1. Go to SE11
    2. Enhance the fixed value Domain SWFVVTYP using transaction SE11.
    3. Add the value UI5_BSP (UI5 based on BSP) and activate the domain.


2) Create an entry for Purchase Order Task and  Visualization Type as UI5_BSP –  using SAP Transaction SWFVISU.


3) Change the workflow Business Scenario settings and Assign Custom handler class using T-code SWNCONFIG.


    1. Now change the Subscription Basic data.
      1. Recipient Address: “*”
      2. Recipient Type : Cus Receiver Determination Through Handler
      3. Handler : CL_SWN_SUBSCRIPTION as shown below screen shot.



2.  Subscription Settings

    1. Show Action Execute As: LINK1


3.  Change Filter Settings: ALL_DELTA

    1. DELTA: “X”
    2. TASK : TS20000166


4. Create an entry for General Settings:

    1. Settings: UI5_BSP
    2. Description :
    3. Value :
    4. UI5_BSP Approve Purchase Order URL:

http:// <Server Name>/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=800&sap-language=EN#PurchaseOrder-approve&/HeaderDetails/WorkflowTaskCollection(SAP__Origin=’LOCAL’,WorkitemID=’{$zitem.externalObjectId}‘)


5. Create custom handler class and assign the Workflow scenario.

    1. Scenario: WORKFLOW
    2. Visualization Type : UI5_BSP
    3. Category: STANDARD
    4. Message Template: WORKFLOW1
    5. Notification Handler : ZCL_SWN_NOTIF_WORKFLOW
    6. Handler for User : CL_SWN_USER_STD


     6. Creating Custom Notification Handler class


     7. Redefine super class method “ADD_LINK_ACTION_EXECUTE”  and following code.


               METHOD add_link_action_execute.

      CALL METHOD super->add_link_action_execute
= c_links
*     no_subscription = 1
*     others  = 2
IF sysubrc <> 0.
* Implement suitable error handling here
*- add link invoking the workitem execution
*- according to subscription and general settings

      DATA li_subs       TYPE REF TO if_swn_subscription.
DATA l_execute_as  TYPE swn_showactionas.
DATA lt_links      TYPE swntlinks.
DATA wa_link       TYPE swnslink.
DATA l_param       TYPE string.
DATA l_user        TYPE syuname.
DATA l_langu       TYPE sylangu.
DATA l_logon_id    TYPE string.
DATA: lt_text      TYPE textpool_table.
DATA l_dummy       TYPE c.
DATA lt_visu_tasks TYPE swntvt.
DATA l_done        TYPE flag.

      FIELD-SYMBOLS: <text> LIKE LINE OF lt_text.
TYPE swfvt.
DATA: l_url TYPE string,
TYPE swn_setting.

      entered( ‘add_link_action_execute’ ).

      *- note 1230808: retrieve texts in the communication language of user
= get_text_elements( ).
= m_user_ref->get_language( ).
= get_subscription_ref( ).
*- get subscription params
CALL METHOD li_subs->get_value_raw
= ‘SHOW_ACTION_EXECUTE_AS’                  “#EC NOTEXT
= l_execute_as
OTHERS  = 1.
IF l_execute_as IS INITIAL.
*-  note 1057871: workitem execution should not be
*-  provided within notification

      *- check if a special visualization type is requested
= get_visu_tasks( ).
READ TABLE lt_visu_tasks WITH KEY task = app_type
IF sysubrc = 0.
IF <visu>vtyp EQ ‘UI5_BSP’.
= <visu>vtyp.
category = swn1_ref_type_tech.
id = swn1_ref_id_execute.
READ TABLE lt_text ASSIGNING <text> WITH KEY id = ‘I’ key = ‘002’.
IF sysubrc IS INITIAL.
caption = <text>entry.
caption = ‘Workitem ausführen’(002).
SELECT SINGLE value FROM swn_settings INTO l_url
WHERE parameter_id = l_param_id.
REPLACE ‘{$zitem.externalObjectId}’ IN l_url
IF sysubrc <> 0.
MESSAGE e155(swn) WITH wa_linkcaption INTO wa_linkcaption.
CLEAR wa_linkurl.
url = l_url.
CLEAR : c_links[].
APPEND wa_link TO c_links.
= ‘X’.


      leaving( ‘add_link_action_execute’ ).


4)  Testing the SAP Fiori App.

     1)  Create purchase order using ME21 or Me21n transaction as shown below screen shot.

     2)  Run standard program SWN_SELSEN as background job to send external email notification.

     3)  Check your email inbox.

     4) Launch the SAP fiori approval work item by clicking email notification hyper link, then system

          should launch the sap fiori app as shown below screen.


Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Hi, we're having problems implementing this solution.

      1. when I redefine super class method "ADD_LINK_ACTION_EXECUTE" I was getting an error re: private object GET_TEXT_ELEMENTS.  I changed this and added an endless loop so I could debug. 

      2. When I create a new purchase order, it creates an entry in Inbox->Workflow but when I run SWN_SELSEN all values are 00000000000.  The code for the redefined class does not appear to be called.

      Any ideas ?

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Shaunna,

      which class did you redefine?

      I have used this class CL_SWN_NOTIF_WORKFLOW as a super class and it is private method in supper class. So I just created the GET_TEXT_ELEMENTS new method and copied the code from supper class.

      Please follow the same thing and let me know if you have any issues.

      Thanks & regards,

      Raghava Vakada

      Author's profile photo Former Member
      Former Member

      Hi Raghava

      using SE24 I had created a new class called ZCL_SWN_NOTIF_WORKFLOW as per the instructions.In the properties tab, the superclass is CL_SWN_NOTIF_WORKFLOW. 

      I have copied in the GET_TEXT_ELEMENTS as a new method (Level = Instance, Visibility = Private) and have copied the Private Section from the superclass too as this was causing an error.

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      What is the error..

      You have to create two more private attributes also(M_TEXT_ELEMENTS_READ,M_TEXT_ELEMENTS) then you can activate the wrapper class..let me know if you are running any other issues..

      Author's profile photo Ramana SBLSV
      Ramana SBLSV

      Hi Raghava,

      I'm new to SAP Fiori so could you please suggest me whether the above configuration to be done in SAP Frontend server(Gateway) or SAP Backend Server(SAP Business Suite/ECC/CRM/SRM).

      Kindly suggest me to solve this issue.



      Author's profile photo Former Member
      Former Member

      Hi Raghava,

      these two private attributes are already there.  The Z class compiles without error.  My problem is that when I run step 4.Testing the Fiori App, nothing happens.

      I have created the purchase order using ME21n and I have run standard program SWN_SELSEN as background job to send external email notification.  But the results are 0000000000, it appears that nothing is getting picked up. Also no email arrives and I cannot see one in transaction SCOT.

      I have put breakpoints in the Z Class code to see if there is a problem with the Z Class code but it is not stopping.  This implies that the code is not getting executed.

      Can you check all the steps above to ensure that no configuration steps are missing ?



      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Shaunna,

      while executing this SWN_SELSEN program, make sure you should select the check box "No Time check During Send". So that you can see emails in Transaction SOST immediately..



      Author's profile photo Former Member
      Former Member

      Hi Raghava

      when we create a new purchase order, we can see it in the inbox.  When I run SWN_SELSEN I tick the checkbox "No Time check During Send".  When this program runs it shows a small report.. all values are 00000000 so it appears that the PO is NOT getting picked up.  I have also checked transaction SOST and there are no emails there either.



      Author's profile photo Former Member
      Former Member

      Hi Raghava,

      Thanks for posting this.

      Just to confirm, all these settings are to be done in the backend or the gateway?

      I have gone through the steps and had done the config in the backend.

      I have tried adding the FIORI URL for the general settings set up for UI5_BSP and for some reason it did not accept my URL.

      What could be the reason, you think?


      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Furaidah,

      Yes..all these setting needs to be done back-end system.

      It might be length issue. It will accept only 255 characters. All entries will be created in table SWN_SETTINGS and also check the data type.

      For your testing, copy existing "WD_HOST" to UI5_BSP and enter your url.

      This will work for you and let me know.

      Thanks & regards,

      Raghava Vakada

      Author's profile photo Former Member
      Former Member

      Thanks Raghava,

      Unfortunately our backend is at 703 and we are in the process of the upgrade to 740, but takes sometime.

      Trying to apply note 2056158 requires other notes to be applied first and we do not want to take the risk.

      We are thinking of 'selectively' choosing the  'corrections'  that will work for us. Is there any other option, we can explore?

      Otherwise, we will need to wait for the upgrade

      Thanks for your help.

      Author's profile photo Former Member
      Former Member

      Hi Raghava,

      We applied note 2056158 manually, only maintaining the UI5_BSP visualizaton type.

      And then we wrote the codes, as suggested by you.

      And it all turned up fine !. 😆 Thanks again for providing us the step by step instructions.

      If you have anything that we should be aware of, please share with us. We are still new with this FIORI stuff 😀

      Author's profile photo Former Member
      Former Member

      Hi Furaidah,

      we have having problems.  We have implemented the steps as defined by Raghava above but when we get to the last step 'Testing the SAP Fiori App' and create the PO using ME23N and then run SWN_SELSEN nothing is getting picked up.  Any ideas ? Did you have to make any additional changes to the steps above ? Did you have to add any extra configuration ?

      thanks in advance Shaunna

      Author's profile photo Former Member
      Former Member

      Hi Shaunna,

      Have you checked if your workflow has worked at all?

      Try SWI6 , enter object and PO and see if there's any workflow being triggered.

      Also, go to the approver's inbox (SBWP) to see if there's any work item to be released.

      Once you have done that, check table SWN_NOTIF if there's any pending. IF there is, check your delivery schedule in SWNConfig.

      Try these steps first and see how it goes.

      Author's profile photo ZIED KHOUJA

      Hi yusof

      We are facing the same problem nothing gets picked up when we run SWN_SELSEN

      I checked  the approver’s inbox we have the workflow there but when I check the table SWN_NOTIF I don't find any pending notification.

      Is there extra configurations that needs to be done ?
      Thank you

      Author's profile photo Rui Salema
      Rui Salema


      If you just redefine method ADD_LINK_ACTION_EXECUTE it won't be called because  method ADD_LINKS_ACTION will call the same method but in the superclass.

      In my opinion it would be a better option to copy class CL_SWN_NOTIF_WORKFLOW to customer namespace.


      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Salema,

      Add_links_action call the method add_link_action_execute at line number at bottom of the method. you can debug the code while running the program swn_notif.

      Please check the receiver personal number communication info type 0105 subtype 0010/0001 recipient address and recipient type in transaction PA30.

      It will resolve many issues.



      Author's profile photo Rui Salema
      Rui Salema


      That's exactly my point.

      The calling stack for class CL_SWN_NOTIF_WORKFLOW is the following:

      IF_SWN_NOTIF~GET_LINKS (entry point from BSP swn_message1)



      You need to redefine at least all these 3 methods, otherwise the ADD_LINK_ACTION_EXECUTE is called in superclass, not in the Z class.



      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hi Rui,

      I don't know why you need to redefine all 3 methods.

      as per  above my blog scenario, I don't need to redefine all other methods

      just redefine method ADD_LINK_ACTION_EXECUTE and add your custom logic . 


      Raghava Vakada

      Author's profile photo Former Member
      Former Member

      Hi Raghava,

      your solution is very interesting but I have not the full picture.

      My question is: which user will be used to execute the work item?

      I would be interested in using this solution from a mobile client (IOS or Android smartphone). The user will receive the mail notification with the link to work item execution in his mail client; clicking on the link he should automatically logon to Fiori. How can it work? There should be some single sign on mechanism with the on the smartphone?

      Am I missing something?

      Thanks and regards,


      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Hello Bruno,

      Depends on workflow configuration. if a user received the workitem and he has approval authorizations. then he can execute the workitem..

      No..It will ask you first login details and then launch the approval workitem if login credentials are correct..

      Thanks & regards,

      Raghava vakada

      Author's profile photo Satadru Das
      Satadru Das

      Hi Raghava,


      We have followed the steps mentioned above. We don't have the Approve Purchase Orders app, but we are trying to link the My Inbox app. Here, however, we are unable to find the Approve/ Reject buttons against the PO. We are using the standard PO approval workflow and I see that the decision keys are defined for the same in SPRO.

      Kindly let us know what is going wrong.




      Author's profile photo Gaurang Gujar
      Gaurang Gujar

      Hi Raghava,


      I used the above solution also I changed the handler at category level .


      Everything seems good but for substitute users the email body appears to be blank.




      Author's profile photo Muralikrishna Peravali
      Muralikrishna Peravali

      Hello Raghava,

      I am new to FIORI App. Actually we have implemented the PO Reject/Released workflow to Fiori. when user Release the PO through the FIORI APP then the notification is not reaching to buyer. Could you please help me on this.

      Thanks and Regards,

      Muralikrishna Peravali

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli


      I am cĂșrrenclty facing issues with extended notifications that only for non dialog users the extended notification works not for the personal user. Could you pleae let me know if this is a standard functionality ?

      Thanks and Regards,

      Vijaya Chintarlapalli