Skip to main content
11-Garnet
May 14, 2024 5:57 PM UTC
Solved

Best Way to Code

Hi Everyone, I am currently running  Thingworx version 9.3.5,
I am currently trying to run a code on replacing X number for a message what would be the best way to do that?
Example below:

let message = "";

switch (number) {

    case 253:

        message = "On Standby";

        break;

VelkumarAnswer
19-Tanzanite
May 16, 2024 4:34 AM UTC

Yes your method is right.

 

But we can optimize it by bit

var messageValue = "Message not found";

// result: INFOTABLE dataShape: ""
let data = Things["DATATABLE"].GetDataTableEntryByKey({
	key: "KEYVALUE" /* STRING */
});

if(data.length > 0){
 messageValue = data.messageField;
}

 

Also refer -Best Practices for Coding in JavaScript (ptc.com)

 

/VR

4 replies

19-Tanzanite
May 15, 2024 5:08 AM UTC

Hi @VC_10938534 

 

You can create an DataTable with number as primary key to store this data.

 

In script, you can use GetDataTableEntryByKey service to get message value which will avoid long if or switch condition in code.

 

Also in future if you need to add more number and message, you can add entry directly in DataTable without altering the script.

 

/VR

Translate
11-Garnet
May 15, 2024 3:52 PM UTC

Im fairly new to coding would this be right?
var params = {
tableName: "YourDataTableName",
key: "YourKeyToSearch"
};


var result = Things["YourDataTableThing"].GetDataTableEntryByKey(params);

if (result !== undefined && result !== null) {
var messageValue = result.messageField;

} else {

} 

Translate
Velkumar19-TanzaniteAnswer
19-Tanzanite
May 16, 2024 4:34 AM UTC

Yes your method is right.

 

But we can optimize it by bit

var messageValue = "Message not found";

// result: INFOTABLE dataShape: ""
let data = Things["DATATABLE"].GetDataTableEntryByKey({
	key: "KEYVALUE" /* STRING */
});

if(data.length > 0){
 messageValue = data.messageField;
}

 

Also refer -Best Practices for Coding in JavaScript (ptc.com)

 

/VR

Translate