Context
Change Type: Improvement
Product area: Analytics
Component: Streaming Analytics
Deployed at: eu.latest.cumulocity.com, apj.cumulocity.com, jp.cumulocity.com, cumulocity.com, us.cumulocity.com, emea.cumulocity.com
Technical details
Build artifact: apama-in-c8y (25.129.0)
Internal ID: PAM-34615
Description
The ManagedObject event has a unique way of handling c8y_Position fragments that have the parseable float values added to their position property, and all other values added to their params property. All other events of the Cumulocity transport API simply add the fragment as a whole to their params property. This has made it cumbersome to robustly copy c8y_Position to a ManagedObject from another event and vice versa. To make this easier, two new helper actions have been added to the ManagedObject event to populate ManagedObject from a c8y_Position object, and conversely create the object from the ManagedObject event.
-
action setC8yPosition(any c8y_Position)This new action sets the
ManagedObjectusing thec8y_Positionobject. This must be of the formdictionary<string, any>, but is validated prior to use. Example:on all Event(type="locationUpdate") as evt { ManagedObject mo := new ManagedObject; mo.id := evt.source; mo.setC8yPosition(evt.params.getOrDefault("c8y_Position")); send mo to ManagedObject.SEND_CHANNEL; } -
action getC8yPosition() returns dictionary<string, any>This new action produces a
c8y_Positionstyle object from theManagedObject. Example:evt.params["c8y_Position"] := mo.getC8yPosition();