Bhaski
July 10, 2024, 11:33am
1
Hi Gurus,
I was trying below script test to do a calculation and not able to do , need your help.
I have a flow table WHINVTBL which below data
PArtID
PartDesc
InvQty
Intransit
123
itm1
10
2
456
itm2
6
1
Now calculating SOH by doing InvQty - Intransit and want to return a new table from script with below value
PArtID
PartDesc
SOH
123
itm1
8
456
itm2
5
------- using below -----------
let SOH =0;
let NEWWHINVTBL = WHINVTBL ;
FOR k in WhINVTBL {
set SOH = k.InvQty - k.Intransit;
NEWWHINVTBL =NEWWHINVTBL & [ITMID: k.PartId ,ITEMDESC: k.PartDesc, SOH: SOH];
}
return NEWWHINVTBL;
It’s not happening, please help me in this what wrong I’m doing in script.
rovech
July 10, 2024, 2:00pm
2
Hi, I think you should use the Empty statement to initialize the NEWWHIINVTBL.
Even easier is probably to use MAP AS:
/Roel
ivstde
July 11, 2024, 1:06pm
3
Hi,
above you are saying let NEWWHINVTBL = WHINVTBL ; which means that the columns of NEWWHINVTBL should be the same 4 columns as WHINVTBL too. (PArtID, PartDesc, InvQty, Intransit)
But then in the loop you want to add record with 3 columns (ITMID, ITEMDESC, SOH) to NEWWHINVTBL which is defined as 4 column table.
So just define
let NEWWHINVTBL = table(ITMID, ITEMDESC, SOH);
and it should work.
Hope this helps!
B R
Ivan
Bhaski
July 16, 2024, 12:31pm
4
Thanks Ivan,
It helps me as I did a small mistake there.
daniel
July 16, 2024, 9:34pm
5
Also, for performance reasons, I would NOT do “for k in WhINVTBL”. Instead try:
let SOH = 0;
let NEWWHINVTBL = map WHINVTBL as [ITMID: PartID, ITEMDESC: PartDesc, SOH: InvQty - Intransit];
return NEWWHINVTBL;