Two problems with dictionary field

  1. In form action event, attempt to set value to field contained in dictionary field will set the value to the dictionary field itself.
/// Example1
/* Variable */      /* Value */
dic:field_1     <-  "foo"

/* Result
    dic = "foo"
    // Output to console.log shows that field "dic" is string, not object.
/// Example2
dic:field_1  <-  JSONParse({"foo":"bar"})

/* Result
    dic:field_1 = undefined
    dic:foo = "bar"
    dic = {foo: "bar"}
    // The parsed object {foo: "bar"} is assigned to the dictionary field "dic".
  1. If dictionary field contains Array or Object property, the variable setting is disabled in the workflow.
/* In form */
dic  <-  JSONParse({"field_1": "not change", "foo": {}})
/* In workflow or form */
dic:field_1  <-  "change!"

/* Result
    dic:field_1 = "not change"
    dic:foo = {}

As for problem 1, it seems to be a bug.

As for problem 2, I’m not sure if there is an internal error.
I think the documentation needs to be updated or fix feature.

It does not support deep object variables, but only single-level object variables. If it exceeds one level, it will become a string. Personally, I think so. @frank , you can answer whether it is a bug or the current function.

Hey, thanks for reply!

Due to a possible misunderstanding regarding problem 1, we have revised the post and added a clearer example.
Problem 1 is simple: assignments to “dic:*” (e.g. “dic:foo”, “dic:bar”) are interpreted as assignments to “dic”.

Hi h_ak,

Thanks for the report. We will fix problem 1 & 2 this week.