JavaScript transform tutorials

Tutorials for the JavaScript transform method

Recalculate a Celsius temperature a Fahrenheit

This tutorial creates a JavaScript code package to read a "temperatureCelsius" property out of a JSON document in the source_payload field. It assumes the temperature value is Celsius, converts it to Fahrenheit, and writes the result to the temperature_fahrenheit field.

 

Create a JavaScript code package

// integrationTableTransform returns a modified record
// Server sets the record variable before running the code package
try {
   let temperatureCelsius = record.source_payload.temperatureCelsius;
   let temperatureFahrenheit = (temperatureCelsius * 1.8) + 32;
   record.temperature_fahrenheit = temperatureFahrenheit;
} catch (err) {
    record.transformError = err.message;
}

The code package uses JavaScript to read a "temperatureCelsius" property out of the JSON document in the source_payload field. It assumes the temperature value is Celsius, converts it to Fahrenheit, and writes the result to the temperature_fahrenheit field. When you assign this transform to an integration table, the server automatically creates the temperature_fahrenheit field if it does not already exist.

{
  "api": "admin",
  "apiVersion": "1.0",
  "action": "createCodePackage",
  "params": {
    "databaseName": "faircom",
    "ownerName": "admin",
    "codeName": "convertCelsiusToFahrenheit",
    "newCodeName": "convertCelsiusToFahrenheit",
    "codeLanguage": "javascript",
    "codeFormat": "utf8",
    "codeType": "integrationTableTransform",
    "codeStatus": "testing",
    "description": "Converts the value of the \"temperature_celsius\" field to Fahrenheit and stores the result in the temperature_fahrenheit field.",
    "comment": "",
    "code": "// integrationTableTransform returns a modified record\n// Server sets the record variable before running the code package \ntry {\n\n    let temperatureCelsius = record.source_payload.temperatureCelsius;\n    let temperatureFahrenheit = (temperatureCelsius * 1.8) + 32;\n\n    record.temperature_fahrenheit = temperatureFahrenheit;\n\n} catch (err) {\n    record.transformError = err.message;\n}"
  },
  "authToken": "replaceWithAuthTokenFromCreateSession"
}

 

Create an integration table with a transform

{
  "api": "hub",
  "apiVersion": "1.0",
  "action": "createIntegrationTable",
  "params": {
    "tableName": "test1",
    "fields": [
      {
        "name": "temperature_fahrenheit",
        "type": "double"
      }
    ],
    "transformSteps": [
      {
        "transformStepMethod": "javascript",
        "transformStepService": "v8TransformService",
        "codeName": "convertCelsiusToFahrenheit",
        "ownerName": "admin",
        "databaseName": "faircom"
      }
    ]
  },
  "authToken": "replaceWithAuthTokenFromCreateSession"
}

 

Insert a record

Insert a record into the table to run the transform on that record and populate the temperature_fahrenheit field.

Notice that we are only inserting a value into the source_payload field.

{
  "api": "db",
  "apiVersion": "1.0",
  "action": "insertRecords",
  "params": {
    "tableName": "test1",
    "dataFormat": "objects",
    "sourceData": [
      {
        "source_payload": { "temperatureCelsius": 20 }
      }
    ]
  },
  "authToken": "replaceWithAuthTokenFromCreateSession"
}

 

Query the results

{
  "api": "db",
  "apiVersion": "1.0",
  "action": "getRecordsByTable",
  "params": {
    "tableName": "test1"
 },
  "authToken": "replaceWithAuthTokenFromCreateSession"
}

 

Results

The temperature_fahrenheit field contains 68. When you inserted the record, the server automatically ran the JavaScript transform, which calculated the fahrenheit value from "temperatureCelsius" in the source_payload field and updated the temperature_fahrenheit field.

"data": [
    {
      "source_payload": { "temperatureCelsius": 20 },
      "temperature_fahrenheit": 68,
      
      "create_ts": "2025-05-08T00:46:35.166",
      "changeId": 16128,
      "error": false,
      "log": null,
      "id": 1
    }
  ]