Click or drag to resize
Print this page

Need help right now? Report your problem to us.

This topic contains the following sections:

Tables and data types
Does a missing Boolean value import as the default or keep the prior value?

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.

Can I insert an Id as a string, or does TDE only accept numerical Ids?

Telogis Ids are either integers or GUIDs, but they are always passed in as strings. External keys are always entered as strings.

What does TDE do if my update has an invalid column value?

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.

Can I look up a record with an old value and change it at the same time?

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.

Writing templates
What if my CSV is not comma-delimited?

For a different delimiter, add a Delimiter= entry to the [Template] section; for fixed-width files, add a [Columns] section.

Why and how would I reference a variable from the User 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.

  • In a Retrieve template, putting a user variable in the [Filter] section (such as Region = MyRegion) lets you append the desired filter value (such as &MyRegion=TX) whenever you run the template.
  • In a Create template, putting a user variable in the [Output] section lets you set a column to a desired value at run time.
What if my CSV only has the address as a single string? do I have to segment it into address parts?

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.

For a Retrieve template, what time zone is the timestamp data I get back?

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
When inserting data into the Verizon Connect system, do I need to convert time to UTC/GMT?

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
What escape characters let me put special characters in my strings?

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:

Id(ExtId) = Equals("ABC#123")   # Pound sign within quotes parses as a literal

Can I store the photo of a Driver in TDE?

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.

For input templates, can I pass in my input CSV file using the POST webservice method?

Currently, you cannot pass in a CSV file in a web browser, but you can programatically, or using a tool such as Fiddler.

How do I compare lat/lon values?

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.

How can I retrieve a list of external keys that were previously mapped into my TDE tables?

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
Do I need to reference another Table ID in order to use Telogis keys in my template?

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, ":

TableID = Unit-1.0    ; no entry for Driver table
DriverId(Telogis, Nickname) = Input.DriverName    # UnitColumn(Telogis, DriverColumn)
What version of JavaScript should I use in the [Script] section of my templates?

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.

How do I comment out the [Script] section of my templates?

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:

(function(tde) {
  tde.onRow = function(row) {
  //  ...comment in JavaScript code
Running templates
Why is my CSV data importing with quotes?

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

In sum, watch for leading spaces, and always use double quotes to delimit anything that you need to embed: commas, quotes, linebreaks, leading zeros.

How do I know if the template completes or encountered an error?

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.

How long can I use my authentication token before it expires?

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:

  • To expire by date and time, use &expiry=<datetime_of_expiration>, such as &expiry=2013-10-10
  • To expire by duration, use &expires=<seconds_until_expiration>, such as &expires=43200 (12 hours)
How do I delete a TDE template?

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.

How do I include spaces or symbols on my query string?

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:


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:

REST service
Why am I getting an "unable to parse time" error?

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":


In the REST service, why are there two calls for deleting "hos_events"?

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.

Can I get REST call responses formatted in XML, rather than JSON format?

No, the lightweight REST calls only use JSON formatting. When you need XML output, use SOAP or Template processing.

In the REST service, do I log in as the customer or the driver? Which one should I use for the succeeding calls?

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.

In REST service return messages, what does "Endpoint not found" mean?

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.