Update all work orders that are on the state ONSITE to have a new address and send these changes to the sever:
procedure UpdateOnSiteWoAddresses { parameter NewAddress Text; variable Wo Structure(WorkOrder); execute { for WorkOrder i where [ i.Objstate = "ONSITE" ] into Wo { set Wo.AddressLine1 = NewAddress; saveAndSend Wo } } }
Set the default CreatedAt
and Objstate
on a work order before creating:
@Overtake procedure EntityPrepare<WorkOrder> Structure(WorkOrder) { execute { super(Record) into Record; call DateTime.Timestamp() into Record.CreatedAt; set Record.Objstate = "NEW"; return Record; } }
Utility procedure to create a new work order and send it to the server:
procedure CreateNewWo Structure(WorkOrder) { parameter Description Text; variable Wo Structure(WorkOrder); execute { create Wo; set Wo.Description = Description; saveAndSend Wo return Wo; } }
Utility procedure that saves a row to the local database, sends it to the server then deletes the local row:
procedure SaveLocation { parameter Position Text; variable Loc Structure(UserLocation); execute { if [Position = null] { error("Invalid position"); } create Loc; call DateTime.Timestamp() into Loc.CreatedAt; set Loc.Location = Position saveAndSend Loc; deleteLocal Loc; } }