Skip to content

Invoking Functions with Complex Data Type Parameter

In OData functions, parameter aliases should be used to represent structure type parameter values. The value for the alias should be specified as a separate query option using the name of the parameter alias.

Parameter Aliases

Parameter aliases MUST start with an @ character and its value MUST be specified either as a URL literal (for primitive values) or as a JSON formatted OData object (for complex values, or collections of primitive or complex values).

For more details about parameter aliases, please follow the links below.


Following requests are to “FunctionStructBindTestUb” function which has RootStruct structure parameter.

With All Attributes

http[s]://{host}:{port}/{main|b2b}/ifsapplications/projection/v1/Operations.svc/FunctionStructBindTestUb(StructPara=@Alias1)?@Alias1={ "RootAlpha": "Alpha1", "RootBoolean": true, "RootDate": "2018-10-01", "Children": [ { "Level1Integer": 1, "Level1Enum": "Car", "Child": { "Level2Number": 1.95, "Level2Text": "Text1" } }, { "Level1Integer": 3, "Level1Enum": "Suv", "Child": { "Level2Number": 3.69, "Level2Text": "Text2" } } ] }

With Some Attributes

http[s]://{host}:{port}/{main|b2b}/ifsapplications/projection/v1/Operations.svc/FunctionStructBindTestUb(StructPara=@Alias1)?@Alias1={ "RootAlpha": "Alpha1", "RootDate": "2018-10-01", "Children": [ { "Level1Integer": 1, "Level1Enum": "Car", "Child": { "Level2Number": 1.95 } }, { "Level1Integer": 3, "Level1Enum": "Suv" } ] }

Marble code for the above action and Complex type


Marble Action


Marble Structure