You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

ITM/IMAS releases of Kepler provide two, built from scratch, actors for record manipulation.

1. 1. Setting values inside Record Token using recordset actor

recordset actor allows you to set/modify values inside Record Token. It works following way:

  1. If there is no field inside Record Token, it will add it into Record Token

    { a = 1 } -> inputRecord -+
                              |
                               >- { a = 1, b = 2 }
                              |
    2         -> b           -+                    // I am passing value 2 into port with the name b - new 
                                                   // entry inside record will be created
  2. If there is a field with given name inside Record Token, it will be replaced

    { a = 1, b = 1 } -> inputRecord -+
                                     |
                                      >- { a = 1, b = 2 }
                                     |
    2                -> b           -+             // I am passing value 2 into port with the name b - old 
                                                   // value will be replaced with new one
  3. If there is a field with given name inside Record Token, the type of field may change if you pass different type in the input

     

    { a = 1, b = 1 }  -> inputRecord -+
                                      |
                                       >- { a = 1, b = { c = 2 } }
                                      |
    { c = 2 }         -> b           -+            // I am passing record { c = 2 } into port b - old value 
                                                   // will be replaced with Record Token element (nested Record Token)
  4. You can modify nested Record Type values by separating names of elements with /. E.g. you can specify "a/b"

    { a = { b = 1} }  -> inputRecord -+
                                      |
                                       >- { a = 1, b = { c = 2 } }
                                      |
    2                 -> a/b         -+            // I am passing value 2 into port a/b - this time, I modify element a.b inside Record Token
                                                   // note that we have to use "/" in port name due to the fact Kepler 
                                                   // doesn't allow to use "." as name separator

2. 2. Getting values from Record Token using recordget actor

recordget actor allows you to retrieve values from Record Token. Comparing to expressions, you can:

  • get the whole Record Token as it is (e.g. to pass it further) via "//" port
  • you can get multiple fields at the same time by specifying their names using output ports
  • you can get nested values directly from the Record Token

 

  • No labels