Skip to Content

The SP_TransactionNotification is to receive notification on any transaction – in other words to do some validation in SAP Business One and prevent the user from doing an action if the validation condition fails. This stored procedure(SP) is created automatically with each database.This stored procedure is fired whenever operations are performed on business objects like document or master records and User-Defined Objects.


The SBO_SP_TransactionNotification stored procedure is created automatically when new company is created in SAP Business One.




Below are the parameters:


Parameter Description
@objecttype returns a string representing the type of object which is a numerical value

It may have values of:

  • A (where a record was added)
  • U (where a record was updated)
  • D (where a record was deleted),
  • C (where a document was canceled)
  • L (where a document was closed)
@list_of_cols_val_tab_del This returns a tab-delimited list of values required to retrieve the object from B1.
@error a integer value shows the number
@error_message message needs to be show as a message to user


please make sure you always go through the “@error, @error_message” at the end, especially in the case where you want the transaction to be considered as successful. Without the return of these 2 values, SAP Business One will consider the transaction as failed.


Adding Code to the Stored Procedure

Look at a sample code that uses it. The SBO_SP_TransactionNotification stored procedure should be modified to include the following Transact-SQL code. Add the following text to the section of the stored procedure that says “Add Your Code Here”




Sample Code




Sample Code for multiple notifications


Only the query needs to be change according to your need.


Disabling\Comment Code

Comment within SQL statements do not affect the statement execution. You can comment statement in to ways.

In line comments < — > or block comment < /*  */>


Sample Code




Difference between PostTransactionNotice and TransactionNotification procedure


The only differences being when they are triggered and the ability to use the @error functionality of SBO_SP_TransactionNotification to rollback transactions. SBO_SP_PostTransactionNotice can only be triggered at the end of an action (transaction committed). Most users only use SP_TransactionNotification because it can be used to verify data to block unwanted posting.



The following documentation is available:


TransactionNotification of SAP Business One HANA

To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. Ngoc Nguyen Thanh

    Hi Mustafa
    I want to many SBO_TransactionNotification in sap b1. Can you explain me how to create many SBO_TransactionNotification at once time ?


    1. Rafaee Mustafa Post author

      Hello Ngco,

      SP_Transaction would be only one, you can insert your SQL code for many documents with proper syntax and terminators .

      On your request updating this blog with multiple Notifications on single SP_transaction.


  2. Sapna Chaudhari

    Hi Rafaee Mustafa,

    Thanks for the information.

    I tried the below code for making  TaxCode field mandatory in Purchase Order. I add it SBO_SP_TransactionNotification but it cannot affect…plz give me solution………..


    If(@transaction_type= ‘A’ or @transaction_type = ‘U’) and @object_type =’22’)


    If exists(select  T0.[ItemCode] from POR1 T0  inner join OPOR T1 on T0.[DocEntry]=T1.[DocEntry]

    Where (T0.[TaxCode] is null or T0.[TaxCode]=’-’  or T0.[LocCode]is null or T0.[Price]) and T0.[DocEntry]=@list_of_cols_val_tab_del)


    Select @error=1, @error_message=’Enter the TaxCode’





    1. Rafaee Mustafa Post author

      Hello Sapna,

      Please check with below code

      select  T0.[ItemCode] from POR1 T0  inner join OPOR T1 on T0.[DocEntry]=T1.[DocEntry] Where (T0.[TaxCode] is null or T0.[TaxCode]= ‘-‘  or T0.[LocCode] is null) and T1.DocEntry] = @list_of_cols_val_tab_del


      further for the instant help from community members I would request you to post your query on


Leave a Reply