Working with Rules and Functions
If you are using the source editor, adapt these instructions that focus on the form-based editor and mention the equivalent settings in the source editor.
Rule Source Editor
* @description
* @author
*/
rule Rules.ProcessDebits.ApplyDebit {
attribute {
priority = 1;
forwardChain = true;
Optionally add entry for Rank as needed (Rank=RuleFunction), or enter in Form view.
}
declare {
Events.Debit debit;
Concepts.Account account;
}
when {
//Checks whether the extId of an Account instance in working memory
//matches the incoming event's account ID
account@extId == debit.AccountId;
}
then {
//If Account Status is not Suspended, debits the account
if (account.Status !="Suspended") {
account.Debits=debit.Amount;
System.debugOut("############### Debiting account <" +account@extId+ "> by $" +debit.Amount);
account.Balance=account.Balance - debit.Amount;
System.debugOut("############### New balance: $" + account.Balance);
}
else {
System.debugOut("############### Cannot debit the suspended acount <" +account@extId +">");
}
Event.consumeEvent(debit);
}
}
Copyright © TIBCO Software Inc. All Rights Reserved.