How to avoid the globallist limits on size and array elements if the source file is large (more than about 1000 entries). This solution can apply to all globallists where there are a large number of source elements. Typically the files operator, locations and contacts have this problem.
This knowledge entry discusses three possible solutions:
A. Monitor the list size.
B. Change all globallist combo boxes to fill boxes (recommended).
C. Use operators’ initials instead of their full names.
Although this entry specifically discusses the operator file and Operators globallist, it can also apply to any other large global lists.
WARNING: This knowledge entry is aimed at ServiceCenter and Service Manager system administrators only. It assumes training and experience with the ServiceCenter/Service Manager Forms Designer, Link tool, and Database Manager.
The maximum record size is 32 KB in ServiceCenter version 3.x and earlier and 64 KB in ServiceCenter 4 and later. The maximum number of array elements is roughly 2037 in later ServiceCenter/Service Manager versions but the number can vary. Many large organizations have source files that exceed these limits. You have several choices of what to do:
Method One: Monitor the globallist size
To check the current total size of any globallist record:
1. Use the Database Manager to access the globallists file and retrieve the record you want to check. For the operators, retrieve the record whose List Name is Operators (the Filename is operator).
2. Start the ServiceCenter/Service Manager RAD debugger (you require SysAdmin rights to perform this action), and type this command on the debugger command line:
3. The resulting number is the current size, in bytes, of this globallist record.
WARNING: If record size exceeds 64 KB, the record will not process.
Method Two: Convert globallist combo boxes to fill boxes
This is the recommended method in most cases. For the example supplied below for the operators file, see also the related knowledge entry ‘ServiceCenter LDAP errors: “The maximum string length of 65505 has been exceeded (fillcombo,begin.loop)” and “Unhandled error building list for table operator” when rebuilding the operator globallist’. Instead of adding fill boxes and links, as discussed in Steps 2 and 3 below, you can also use a simple text box and force users to type the complete value.
1. Use the Forms Designer to modify each form that currently contains a combo box with an operator globallist. For operators, there may be many forms throughout ServiceCenter that need to change, such as:
A. Login forms, for example, login.prompt.g
B. The Call Queue and other “Queue” applications that display inboxes associated with individual operators.
C. Any other forms (in Service, Problem, Request, Change, or Inventory Management, for example) that work against the operator file using a global list.
D. Search forms against the same files identified in C. above.
E. Behind-the-scenes configuration forms such as profile records, category records, and phase definitions.
2. For each existing operator combo box, create a fill box to replace it.
3. Create or modify each link record associated with a form from Step 1. Add a link from the new fill box field to the operator file, then save your changes.
4. Use the Database Manager to access the globallists file.
5. Modify each globallist record whose Filename is operator and that you are replacing with fill boxes, for example, Operators, technicians, and Non-Sys-Operators. Set the Limiting SQL value to false, then save your changes.
Note: The Limiting SQL box holds the query that determines what records to include in the globallist. It may have a different label in some ServiceCenter versions.
6. After each globallist from Step 5 has been refreshed, you can also set the Expiration box to a distant future date, such as 1/1/36, so no processing cycles are wasted rebuilding even these empty lists.
Method Three: Shorten each list element
If the 32K or 64K record size limit is a problem but the total number of elements is far below 2037, you may be able to shorten each element name instead of having to change to fill boxes. For operator records specifically, you may be able to change from operators’ full names to their initials, eight-character names, or some other shorter unique ID for each operator. However:
A. Be aware that there is still a limit of roughly 2037 total items in a list.
B. Remember that both the display list size and value list size contribute to the overall globallist record size.
C. You must do mass updates or other processing to converting all existing old values to new values.