Alert Scripts
It is possible to create scripts, written in pseudo Java, that can be injected at runtime and used by Webhooks and Websockets.
An Alert Script can be very simple or very complex, their scope is to evaluate conditions and return true or false. If the script returns true the message is sent.
Alerts can be created and installed at run-time into the system. These are the predefined alerts available:
Bunker price
import com.dataloy.ds.*;
import com.dataloy.*;
import java.math.*;
BunkerOrderLine bunkerOrderLineOld= null;
BunkerOrderLine bunkerOrderLineNew= null;
if(dlpObject instanceof BunkerOrderLine)
bunkerOrderLineNew= dlpObject;
if(oldDlpObject instanceof BunkerOrderLine)
bunkerOrderLineOld= oldDlpObject;
if( bunkerOrderLineOld!=null && bunkerOrderLineNew!=null && ((bunkerOrderLineOld.getUnitPrice()==null && bunkerOrderLineNew.getUnitPrice()!=null) || (bunkerOrderLineOld.getUnitPrice()!=null && bunkerOrderLineNew.getUnitPrice()==null) || !bunkerOrderLineNew.getUnitPrice().equals(bunkerOrderLineOld.getUnitPrice()))){
mapResultsForMessage.put("?1",bunkerOrderLineNew.getBunkerType().getBunkerTypeDesc());
mapResultsForMessage.put("?2",bunkerOrderLineNew.getBunkerOrder().getPortCall().getVoyage().getVessel().getVesselName());
if(bunkerOrderLineNew.getBunkerOrder().getPortCall().getVoyage().getVoyageHeader()!= null && bunkerOrderLineNew.getBunkerOrder().getPortCall().getVoyage().getVoyageHeader().getReferenceNo()!=null)
mapResultsForMessage.put("?3",bunkerOrderLineNew.getBunkerOrder().getPortCall().getVoyage().getVoyageHeader().getReferenceNo());
else
mapResultsForMessage.put("?3",bunkerOrderLineNew.getBunkerOrder().getPortCall().getVoyage().getKey());
mapResultsForMessage.put("?4",bunkerOrderLineNew.getBunkerOrder().getPortCall().getPort().getPortName());
Double value1= new BigDecimal(bunkerOrderLineNew.getUnitPrice()).setScale(2, RoundingMode.HALF_UP).doubleValue();
Double value2= new BigDecimal(bunkerOrderLineOld.getUnitPrice()).setScale(2, RoundingMode.HALF_UP).doubleValue();
String strValue1= value1.toString();
String appValue1= strValue1.substring(strValue1.indexOf(".")+1, strValue1.length());
while(appValue1.length()<2)
appValue1= appValue1 +0;
String finalValue1= strValue1.substring(0,strValue1.indexOf(".")+1)+appValue1;
String strValue2= value2.toString();
String appValue2= strValue2.substring(strValue2.indexOf(".")+1, strValue2.length());
while(appValue2.length()<2)
appValue2= appValue2 +0;
String finalValue2= strValue2.substring(0,strValue2.indexOf(".")+1)+appValue2;
mapResultsForMessage.put("?5",finalValue1 );
mapResultsForMessage.put("?6",finalValue2 );
return true;
}
else{
return false;
}Bunker quantity
Bunker date
Offhire start date
Days in port updated
ETA outside laycan
Was this helpful?