Hi
let's say i selected two sales orders
First one: salesId = 1, AccountNum = 01 with two lines (item = A , Qty =1, Item = B, Qty = 2)
Second one: salesId = 2, AccountNum = 02 with 1 line (item = C , Qty = 5)
I want to convert this to JSON like this:
{
"SalesHeaderContract":
[
{
"AccountNum": "01",
"SalesOrderLinesContract": [
{
"ItemId": "A",
"Qty": 1.0
},
{
"ItemId": "B",
"Qty": 2.0
}
],
"SalesId": "1"
},
{
"AccountNum": "02",
"SalesOrderLinesContract": [
{
"ItemId": "C",
"Qty": 5.0
}
],
"SalesId": "2"
}
]
}
But here's what i'm getting (lines are repeating in each one)
{
"SalesHeaderContract":
[
{
"AccountNum": "01",
"SalesOrderLinesContract": [
{
"ItemId": "A",
"Qty": 1.0
},
{
"ItemId": "B",
"Qty": 2.0
},
{
"ItemId": "C",
"Qty": 5.0
}
],
"SalesId": "1"
},
{
"AccountNum": "02",
"SalesLinesContract": [
{
"ItemId": "A",
"Qty": 1.0
},
{
"ItemId": "B",
"Qty": 2.0
},
{
"ItemId": "C",
"Qty": 5.0
}
],
"SalesId": "2"
}
]
}
Here's what i did:
MultiSelectionHelper selection = MultiSelectionHelper::createFromCaller(_args.caller());
SalesTable salesTable = selection.getFirst();
SalesLine salesLine;
SalesHeaderContract salesHeaderContract; //it has salesId,AccountNum and List of SalesLinesContract
SalesLinesContract salesLinesContract; // it has item and quantity
SalesHeaderContractSecond salesHeaderContractSecond = new SalesHeaderContractSecond(); // it has list of SalesHeaderContract
List listHeader = new List(Types::Class);
List listLines = new List(Types::Class);
while (salesTable)
{
salesHeaderContract= new SalesHeaderContract();
salesHeaderContract.SalesId(salesTable.SalesId);
salesHeaderContract.CustAccount(salesTable.CustAccount);
listHeader.addEnd(salesHeaderContract);
while select salesLine where salesLine.SalesId==salesTable.SalesId
{
salesLinesContract = new mzSalesOrderLinesContract();
salesLinesContract.ItemId(salesLine.ItemId);
salesLinesContract.Qty(salesLine.QtyOrdered);
listLines.addEnd(mzSalesOrderLinesContract);
salesHeaderContract.SalesLinesContract(listLines);
}
salesHeaderContractSecond.SalesHeaderContract(listHeader);
salesTable = selection.getNext();
}
str msg = FormJsonSerializer::serializeClass(salesHeaderContractSecond);
File::SendStringAsFileToUser(msg,"file");
How can i change this code to make it work?