Add string to a list String property in pure Studio/automation
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-12-2012 12:47 PM
Hi,
I would like to add string into a property defined into a document type without new operation definition.
We can't easily add the item as:
- the object returned by Document.getProperty("mySchema:myField") is a String[]
- the set property operation manage only scalar values
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-12-2012 12:59 PM
The following solution is not the most maintainable one (it uses prefixed java classes, even if it is quite stable packages)but works and is 100% Studio
Here is how I did it:
- Fetch > something
I get the document that stores the list
- Execution Context > Set Context Variable
parameters:
name: listOfSringTmp
Value: @{new java.util.ArrayList()}
Temporary variable where the list of all elements will be stored.
- Scripting > Run Script
parameters:
script: java.util.Collections.addAll(Context["listOfSringTmp"], Document.getProperty("mySchema:myField"))
We add values stored into your document
- Scripting > Run Script
parameters:
script: Context["listOfSringTmp"].add("MyNewValue")
And we add the new value
- Scripting > Run Script
parameters:
script: Document.doc.setPropertyValue("mySchema:myField", Context["listOfSringTmp"].toArray())
And we set back the list into the document
- Document > Save
I save my modification.
