I'm facing an issue.
I'm calling an API that returns this response:
Engine: Dictionary Fuel: Dictionary Code: "100003" Name: "D" NameEx: "Diesel" Layout: Dictionary Name: "l" Power: List of Dictionary: 2 items Dictionary Value: "88.00" Unit: "KW" Dictionary Value: "120.00" Unit: "HP" Displacement: Dictionary Value: "1560.00" Unit: "ccm" CylindersNumber: "4" ValvesPerCylinder: "2"
I need to get the Power Value when Unit is equal to "HP".
I created this expression rule (and many others):
a!forEach( ri!Power, if( ri!Power[fv!index].Unit = "HP", ri!Power[fv!index].Value, {} ) )
But when I use it inside a process I get this error:
An error occurred while evaluating expression: power:rule!SBX_GetVehiclePowerValue(pv!response.eurotaxIdentificationResponse.VehicleList.Vehicle.Engine.Power) (Expression evaluation error in rule 'sbx_getvehiclepowervalue' at function a!forEach: Cannot index "Power" because it is an array type (List of SBX_Unit_Value_Type). Only fields with scalar types can be indexed from an array.) (Data Outputs)
When I test my expression rule I use this data and it works:
{ { "Value": "88.00", "Unit": "KW" }, { "Value": "120.00", "Unit": "HP" } }
Any lead to resolve this issue ? Thanks !
UPDATE:
Well, it was a problem from the response I get. I had to create a rule to retrieve data from vehicle list
=load( a!forEach( items: ri!vehiculeList.Vehicle, expression: fv!item.Engine.Power ) )
Thanks for your help !
Discussion posts and replies are publicly visible