Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X
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)
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:
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 } );