Skip to main content
1-Visitor
May 31, 2019
Question

Combining specific results from two info tables to another infotables

  • May 31, 2019
  • 1 reply
  • 1760 views

I am needing to combine two Info-tables and display certain information from those on another info-table. I keep getting the error "Error executing service GetSalesOrderPartStyleProduct. Message :: Unable to Execute Union: Field [Customer] was not found in both infotables - See Script Error Log for more details." I understand what it means but cannot figure out where I am going wrong in my code. I created my service which has an info-table output. My thought was switching "Union" to "Join"

var params = {
	infoTableName : "InfoTable",
	dataShapeName : "TrainingDataShape_COB"
};
// CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(TrainingDataShape_COB)
var myInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);

//// result: Two info tables given

var itPartInfo = Things["Training.InfoTable.PartInfo"].GetDataTableEntries(params);
var itOrderInfo = Things["Training.InfoTable.OrderInfo"].GetDataTableEntries(params);

var query = {
 filters: {
 "fieldName":"Color",
 "type": "EQ",
 "value": "Orange"
 }
};

var params1 = {
	t1: itOrderInfo /* INFOTABLE */,
	t2: itPartInfo /* INFOTABLE */

};

// result: INFOTABLE
var result = Resources["InfoTableFunctions"].Union(params1)

var orange = Resources["InfoTableFunctions"].Combine({
	t: myInfoTable,
	columns: "OrderLineID",
 	columns: "SalesOrder",
 	columns: "PartID",
 	columns: "Style",
 	columns: "ProductCode",
	count: undefined,
});

var result = Resources["InfoTableFunctions"].DeriveFields(orange)

 

1 reply

Chao1231-VisitorAuthor
1-Visitor
June 4, 2019

 

Well I realize what I did wrong in the above code, a lot things. Now my code will only display as, which is progress but not the result i am looking for:

Capture.PNG

 

 

Here is what I came up with now:

var params = {
	infoTableName : "InfoTable",
	dataShapeName : "TrainingDataShape_COB"
};
// CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(TrainingDataShape_COB)
var myInfoTable = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);

//// result: Two info tables given
var itPartInfo = Things["Training.InfoTable.PartInfo"].GetDataTableEntries(params);
var itOrderInfo = Things["Training.InfoTable.OrderInfo"].GetDataTableEntries(params);

var query = {
	filters: {
		type: "AND",
		filters:
	[
		{
			type: "EQ",
			fieldName: "Color",
			value: "Orange"
		}
	]
 }
};

//Should produce new InfoTable containing desired columns
var params = {
 t1: itPartInfo /* INFOTABLE */,
	t2: itOrderInfo /* INFOTABLE */,
 columns1: 'SalesOrder,OrderLineID,ID' /* STRING */,
	columns2: 'Style,ProductCode' /* STRING */,
	joinColumns1: 'SalesOrder' /* STRING */,
 joinColumns2: 'OrderLineID' /* STRING */,
 joinType: 'INNER' /* STRING */,
};

// result: INFOTABLE
var result = Resources["InfoTableFunctions"].Intersect(params);

var result = Resources['InfoTableFunctions'].Query(
	{
		query : query,
		t : myInfoTable
	}
);