Skip to main content
Version: 10.0

Transaction Notification Examples

Here you can find an example usage of Transaction Notification.


Manufacturing Order

Scenario 01 - Manufacturing Order's Status Blocking

It is required to block the Manufacturing Order status change to Scheduled or Not Scheduled when the current Manufacturing Order status is in the Released status.

Example

For HANA

-- PF Manufacturing Order (MOR) - Custom restriction for MOR status update 
if :object_type='CT_PF_ManufacOrd' and (:transaction_type='U') then
select count(*) into cnt
from "@CT_PF_AMOR" t0h -- Log table of MOR header
inner join "@CT_PF_AMOR" t1h on t0h."DocEntry"= t1h."DocEntry" and t0h."LogInst" + 1 = t1h."LogInst"
where
    t0h."DocEntry"=:list_of_cols_val_tab_del
    and t1h."LogInst"=(
        select Max("LogInst")
        from "@CT_PF_AMOR"
        where "DocEntry"=:list_of_cols_val_tab_del
        )
    and t0h."U_Status" <> t1h."U_Status"
    and t0h."U_Status" in ('RL') -- Last status of the MOR
    and t1h."U_Status" in ('SC','NS'); -- Status of the MOR to be updated
     
if :cnt>=1
    then error := -10000;
    error_message := '[Custom rule] Changng status is not allowed';
end if;

MS SQL

-- PF Manufacturing Order (MOR) - Custom restriction for MOR status update 
if @object_type='CT_PF_ManufacOrd' and (@transaction_type='U')
begin
declare @cnt int;
select @cnt = count(*)
from "@CT_PF_AMOR" t0h -- Log table of MOR header
inner join "@CT_PF_AMOR" t1h on t0h."DocEntry"= t1h."DocEntry" and t0h."LogInst" + 1 = t1h."LogInst"
where
    t0h."DocEntry"=@list_of_cols_val_tab_del
    and t1h."LogInst"=(
        select Max("LogInst")
        from "@CT_PF_AMOR"
        where "DocEntry"=@list_of_cols_val_tab_del
        )
    and t0h."U_Status" <> t1h."U_Status"
    and t0h."U_Status" in ('RL') -- Last status of the MOR
    and t1h."U_Status" in ('SC','NS'); -- Status of the MOR to be updated
     
if @cnt>=1
    begin
        select @error = -10000;
        select @error_message = '[Custom rule] Changng status is not allowed';
    end
end