Tech Tip: Loading a hierarchical list from a thread-safe execution.
PRODUCT: 4D | VERSION: 20 | PLATFORM: Mac & Win
Published On: May 20, 2024
Loading a hierarchical list programmatically cannot be done from a thread-safe method. Here is a way to get around this restriction.
Execute the following method in the On Startup or On Server Startup to load all lists into the storage.
Use the following method to get a list based on a name in the form of a collection.
Execute the following method in the On Startup or On Server Startup to load all lists into the storage.
// Method: preloadLists var $i : Integer var $newList_c : Collection ARRAY TEXT($list_at; 0) ARRAY LONGINT($list_al; 0) LIST OF CHOICE LISTS($list_al; $list_at) Use (Storage) Storage.list:=New shared object Use (Storage.list) For ($i; 1; Size of array($list_at)) ARRAY TEXT($item_at; 0) LIST TO ARRAY($list_at{$i}; $item_at) $newList_c:=New shared collection Use ($newList_c) ARRAY TO COLLECTION($newList_c; $item_at) End use Storage.list[$list_at{$i}]:=$newList_c End for End use End use |
Use the following method to get a list based on a name in the form of a collection.
// Method: getList #DECLARE($name_t : Text)->$list_c : Collection If (Storage.list[$name_t]#Null) $list_c:=Storage.list[$name_t] End if |