Some customers are using the file system or the library to store input XML documents, in case they need to be re-processed later due to an error. Other customers use the file system or the library to temporarily store inputs that need to be combined with other inputs that arrive later.
While this data is usually meant to be temporary, it is often never deleted, as the deletion procedure requires a somewhat complex workflow action.
This can cause a number of problems:
When saving to the file system with the “append version” conflict resolution, the time to save the file will increase with the number of same-name files that already exist.
Getting a full listing of the files in a folder/resource library takes a long time and uses a lot of memory when a huge number of files exist in the same folder.
The storage usage keeps growing.
The time-limited persistent storage is an application-managed storage with automatic expiry and compression. This conserves storage space by compressing the stored data, ensures near-constant time saving and re-uses storage space from expired items to limit the storage usage growth.
To be able to use the time-limited store, an instance must be created in tenant settings.
In the settings section “Time-limited store” create a new instance as below:
This component can store the current workflow payload in a time-limited store. The stored payload is identified by a unique key. If an item with the same key already exists in the store, the item will be overwritten.
As “Time-limited store” select a storage instance that has been defined in settings.
As “Unique key” specify the unique key identifying this item. The same key can be used to read the item from the store.
This component can read a previously stored item from a time-limited store and make it the payload.
As “Time-limited store” select a storage instance that has been defined in settings.
As “Output type“ select the data type of the item that is read from the store.
As “Unique key” specify the unique key of the item to read. If no key is specified, then the “first” item in the store will be read. The item order is unspecified. Leaving this field blank can be used to iterates through all items in the store in a repeat loop.
The workflow variable “interformng.persistentStore.key” will afterwards contain the key of the item that was read.