MoneyWorks Manual
SetPersistent (table, key1, key2, array)
Definition: Updates a record with values from an associative array using the key values as for GetPersistent().
Here is an example of using a mutex and persistent storage to execute something at most once a week by only one user without risk of a race condition whereby two users might look at the user2 persistent storage record at the same time:
on Load if GetMutex("rate_update") let values = GetPersistent("user2", kMyDevKey, "last_update") if values["date1"] < Today() - 7 GetRates() // do weekly thing let values["date1"] = Today() SetPersistent("user2", kMyDevKey, "last_update", values) endif ReleaseMutex("rate_update") endif end
See the table below for tables and fields supported by GetPersistent and SetPersistent.
table | key1 | key2 | fields |
user | 7 character key of your choosing | none | data |
user2 | 32 bit numeric developer key. You may use any value from #80000000-#8FFFFFFF for internal projects. For projects that you wish to distribute to others, please contact Cognito for a key range that you can use exclusively. | 27 character key of your choosing | int1, int2, float1, float2, date1, date2, text1, text2, text |
lists | 15 char listID(may or may not be a listID known to the Validation Lists list) | 15 character list item | comment |
offledger | must be "USR" (you can Get the "CUR" (currency) records if you wish, but you may not Set them) | 15 character name | description, balance91..balance00, budget29..budget00, budgetnext01..budgetnext18 |
In MoneyWorks 7.1 and later, the fourth parameter may be omitted: this will cause the record identified by the key(s) to be deleted. In this case the return value is a boolean indicating success or failure. If the key parameters contain wildcards, then all matching records will be deleted.
Availability: MWScript