Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

Admins can use Pulsar Settings to implement Validation Rules and Triggers for the following execution points:

...

5. BeforeDelete

6. OnDelete

7. onBarcodeScan

Validation Rules and Trigger execution points are composed of three "post-action" execution points, OnCreate, OnSave, and OnDelete, where the create, save, or delete action has occurred or is certain to occur, and three "pre-action" execution points, BeforeEdit, BeforeSave, and BeforeDelete, where conditions can be validated before the actions occur. The differences between Validation Rules and Triggers actually have to do with the actions taken within the setting. Validation Rules will contain Alert actions that inform the user of a failed condition. Triggers will often update the current record or other records with no user interaction. Validation Rules and Triggers can be combined in Pulsar, and all of the logic for a particular object type and execution point can be contained in a single setting. 

...

Code Block
DEFAULT{
Action=SetVar;
VarName=Order_Id;
VarValue=Order__c;
|
Action=SqlQuery;
QueryString=Select SUM ( CAST( Amount__c AS REAL ) ) AS SUM_ORDER_AMOUNT FROM Order_Line_Item__c WHERE Order__c = ‘%%Order_Id%%’;
QueryReturnFields=SUM_ORDER_AMOUNT;
|
Action=SqlQuery;
QueryString=Update Order__c SET Sub_Total__c = ‘%%SUM_ORDER_AMOUNT%%’ WHERE Id = ‘%%Order_Id%%’;
}

 

Example Barcode Scanner Setting

Name: On Barcode – Opportunity

Key: pulsar.onBarcodeScan.Opportunity

Note that there is another setting that first needs to be enabled for the user to see the scan barcode icon on a record. (pulsar.layout.enableBarcodeScanner. Refer to that setting on Layout Detail View Controller Settings).

  

Code Block
DEFAULT{ 
Action=SetVar; 
VarName=ScanCode; 
VarValue=@@CurrentScanCode; 
| 
Action=SetVar; 
VarName=UserId; 
VarValue=@@CurrentUserId; 
| 
Action=SetVar; 
VarName=CurrentDate; 
VarValue=@@Today; 
| 
Action=SqlQuery; 
QueryString=select (CASE WHEN length('%%ScanCode%%') = 0 THEN 1 ELSE 0 END) as emptyScanCode; 
QueryReturnFields=emptyScanCode; 
QueryTest=%%emptyScanCode%%=1; 
QueryTestTrue=BARCODE_SCANNER_ERROR; 
| 
Action=SqlQuery; 
QueryString=select Id from Store_Asset__c where Scan_Code__c = '%%ScanCode%%' LIMIT 1; 
QueryReturnFields=@@QueryCount, Id AS AssetId; 
QueryTest=%%QueryCount%%<=0; 
QueryTestTrue=ASSET_NOT_FOUND; 
| 
Action=CreateAndMapFields; 
ObjectType=Task; 
ActionShouldComplete=TRUE; 
ActionShouldDisplay=FALSE; 
OwnerId=%%UserId%%; 
WhatId=%%AssetId%%; 
Status="Completed"; 
Subject="Post Call Auto Create"; 
ActivityDate=%%CurrentDate%%; 
| 
Action=Alert; 
Message="Successfully logged the asset"; 
AlertType=DismissCurrentWindow; 
} 

ASSET_NOT_FOUND{ 
Action=Alert; 
Message=No Asset matching %%ScanCode%% is found in the database; 
} 

BARCODE_SCANNER_ERROR{ 
Action=Alert; 
Message=Please point the camera at the code and wait for the scanner to display the number; 
}