FAQ |
Need help right now? Report your problem to us.
This topic contains the following sections:
As a rule, if your table supports updates and you do not update a column value (regardless of data type), TDE preserves the existing value. However, some tables do not support updates:
These tables create read-only records in order to prevent fraud or to capture what was true at a precise moment in time. Because TDE expects to get new values for all of the columns, it does not persist values, such as the state of Boolean flags, from one insert to the next. The exceptions are those Point diagnostics with Time To Live persistence.Telogis Ids are either integers or GUIDs, but they are always passed in as strings. External keys are always entered as strings.
Invalid input cannot compromise a table record or cause only half of it to be updated correctly: TDE completely validates the input data first and only performs the update action if all validation succeeds. If there is an invalid value in a given row, TDE will fail that update and proceed to the next.
If you are using a Telogis key, such as to select a unit by its Tag, you can change that value at the same time. When you select the unit by its Tag, you are really specifying the unit by its underlying Id: you are just instructing TDE to find that Id by way of a Tag value.
Even though you used the old Tag value to find the record, you can modify Tag in the same template, because it will be a separate line in your [Output] section.
For a different delimiter, add a Delimiter= entry to the [Template] section; for fixed-width files, add a [Columns] section.
User variables are arguments passed into your template, in the query string. Defining variables in the [User] section lets you create reusable, parameterized templates.
You can map Address data types to a string input ("3110 Esperanza Crossing, Austin, TX 78741"), which TDE will parse for you into a native Address (StreetNumber, StreetName, City, etc.). When you create a Marker table, you can map your string to the EnvelopeAddress (Text) column, which TDE will parse for you into the marker's address segments.
By default, TDE outputs as UTC (Coordinated Universal Time), rather than a local time zone (see DateTime conversion). For Retrieve, TDE automatically converts a timestamp to your time zone if you include a time zone string in the output formatting:
# Converts StopTime to your format and time zone Stop(yyyy-MM-dd HH:mm, PST) = Input.StopTime
You also have the option to dynamically set the time zone with a user variable defined in either the [User] section or the [Calculated] section.
# Converts StopTime to your format and time zone specified by a variable defined
# in either the [User] or [Calculated] sections
Stop(yyyy-MM-dd HH:mm, TimeZoneVariable) = Input.StopTime
No, provided you use correct DateTime conversion. For Create/Update/Delete, if your local column's time is expressed in terms of a local time zone, you must explicitly include a time zone string, so that TDE can covert it correctly:
LastMajorServiceTime(yyyy-MM-dd HH:mm, CST) = Input.MajorService # converts from your format and time zone
Some characters, such as #, [, and ], have special meaning in templates; however, you do not need to prefix escape characters in order to process them in strings. The template parser will treat your special characters as string literals as long as you enclose them in double quotes:
[Filter] Id(ExtId) = Equals("ABC#123") # Pound sign within quotes parses as a literal
TDE stores the information to reference the photo, not the bitmap itself: PhotoId is an integer, which is the identifying number for the photo that is associated with a driver or a vehicle.
Currently, you cannot pass in a CSV file in a web browser, but you can programatically, or using a tool such as Fiddler.
Location values that your units send to Verizon Connect are all uniformly quantized (mapped) onto a 16 cm grid. When you retrieve the values, TDE returns Latitude and Longitude as decimal degrees, to 6 or more decimal places.
If you need to validate location data by comparing it with what you are retrieving from TDE, be sure to account for the quantization: use a range test, or round off both values to the same decimal place.
For the Output of Retrieve templates, adding Input.Id gets you the Verizon Connect GUID for the object. To instead get back the value of the external key being stored for the Id, just put the column name value within parentheses. Review your existing input templates to find the value <MyId> that was used to store those external keys.
Id(<MyId>) = Input.Id # Use <MyId> value from input templates
No, for TableID =, you can only reference the primary table that you are working with. To use a Telogis key, just reference the actual column name in the referenced table and prefix it with the indicator "Telogis, ":
[Template] TableID = Unit-1.0 ; no entry for Driver table ... [Output] DriverId(Telogis, Nickname) = Input.DriverName # UnitColumn(Telogis, DriverColumn)
Because the JavaScript in the [Script] section only runs on the server, your local version of JavaScript is not relevant. Currently, the server supports valid ECMAScript 5 compliant JavaScript code.
To comment out the entire [Script] section, put # characters at the beginning of each line, starting with the header: # [Script]
However, to comment out lines within the [Script] block code, you need to use native JavaScript commenting, using // characters:
[Script]
(function(tde) {
tde.onRow = function(row) {
// ...comment in JavaScript code
}
})(tde)
Look for stray spaces after the commas that define your CSV data. To delimit a field, the quotation mark must be the first character after the comma, and that includes white space. Per CSV standards, TDE takes the first non-quote character after a comma to begin the next value, so a space before the quote mark causes TDE to take everything up to the next comma, including both the space and the quote mark.
# BEFORE # AFTER a, "b",c a,"b",c # ...parses as: a a "b" b (string) c c
If you have commas within your data, stray spaces can even split values:
# BEFORE # AFTER x, "y, z", w x,"y, z",w # ...parses as: x x "y y, z (string) z" w w
In sum, watch for leading spaces, and always use double quotes to delimit anything that you need to embed: commas, quotes, linebreaks, leading zeros.
For a Retrieve template, a successful response gives the data you requested; for all others, the response is the number of changes for each type, such as {"Failed":1,"Created":3}. However, very large CSV files have to be processed in the background, so the response you get gives the URL for requesting status updates. For explanation of the return status codes, see Running a template.
By default, the token expires in 24 hours. When you request a login token, you can specify when you want the token to expire, either by date or duration:
You can delete a template the same way that you update it, except that you call DELETE instead of POST to /templates/<template_id>. Since you're not updating the template, you do not need to include the template text in the body of your call. See Updating or deleting a template.
The query string is the portion of the URL (after the question mark) that passes unchanged to TDE: http://server/program/path/?query_string
Each parameter (name=value pair) you need to pass must be separated by & and have no spaces or quotes:
?param1=value1¶m2=value2¶m3=value3...
You can leave most ASCII characters as-is: letters (A–Z and a–z), numbers (0–9), and '.','-','~', '_'.
To encode spaces, use %20: &Name=John%20Doe
To encode other characters, use its hex representation (%HH). For example, encode an ExtId value of +_ABC123 like this:
&ExtId=%2B_ABC123
If your ISO 8601 format is correct, most likely you are missing the timezone. The REST parameters for time must all be in Greenwich Mean Time GMT (Zulu), which you need to indicate with a final "Z":
from=2013-11-21T09:25:10Z&to=2013-11-21T10:25:10Z
There are separate calls for read (GET) and delete (DELETE) methods. The GET /hos_events/deleted call only retrieves a list of events that have already been flagged as deleted, whereas the DELETE /hos_events call actually deletes the HOS (hours of service) events you specify.
No, the lightweight REST calls only use JSON formatting. When you need XML output, use SOAP or Template processing.
When you authenticate, you submit credentials for a specific user (or customer and user, for Fleet). That token is all that you need to use. Currently, the driver authenticates through the account of the current (logged in) user.
This exception might indicate a communication problem, such as loss of network access or database connectivity. In some cases, the REST method may not exist. Contact Support to resolve the issue.