Create a simple Setup and a Run script for a Connector

For demonstration purposes, the following content will cover the case of using a table as a data source. Similar for the external API case.

Procedure

Setting up the Setup Script

The Adaptive Framework Setup Script is responsible for returning a field catalog describing the available data to be used within the Adaptive report.

Code for the Setup script:

let fieldCatalog = [];

fieldCatalog.push({ name: "name", label: "Name", type: "text",usage:"OUTPUT"}); // name will appear only under Output
fieldCatalog.push({ name: "part_number", label: "Part number", type: "text" });
fieldCatalog.push({ name: "checkup_date", label: "Checkup date", type: "text" });
fieldCatalog.push({ name: "assigned_for_checking", label: "Assigned status", type: "boolean" });

result.data = fieldCatalog; // passing the possible components back to the adaptive app
complete();
  • Each object in the array will be displayed in the component tree. For the Setup script to work, name, label and type must be included in the objects. You may also add usage as a key in the objects.

  • The key usage is a non-mandatory field that determines whether a field is available for INPUT, OUTPUT or BOTH. For example, is OUTPUT will only display the component under Output in the Adaptive Designer.

  • The key type

For more information, view adaptive in the code snippets.

Setting up the Run Script

The run script is responsible for processing any request made by the Adaptive Framework Application and passing it back the application. To prepare the data you will pass back to your adaptive application, you will need a data source.You may select either a specific table or an external API by dropping it in the Run script.

adaptive designer create scripts tables apis

Code for the Run script:

// In this case, "equipment" is the name of the table used in the example and our

const runData = [];
// Fetching all data from the table
const entity = await entities.equipment.createQueryBuilder("alias")
    .getMany();

for (const i = 0; i < entity.length; i++) {

    equip_name = entity[i].name;
    part_number = entity[i].part_number;
    checkup_date = entity[i].checkup_date;
    assigned_for_checking = entity[i].assigned_for_checking;

    // each key name must match with the value of the key "name" from each object in the "fieldCatalog" array
    runData.push({
        "name": equip_name,
        "part_number": part_number,
        "checkup_date": checkup_date,
        "assigned_for_checking": assigned_for_checking
    });

}

result.data = runData; // passing data back to the adaptive app

complete();

Result

You successfully created a simple Setup and a Run script for a Connector. The outcome of these scripts will reflect on the component tree.