Creating a SmartList integration is a rather complex task. You will add several items to your integrating application’s dictionary during the process. These include the following:
If you will be creating a new SmartList object for your integration, you will need to create a global variable that will hold the key values for the row that is being added to the SmartList.
Object triggers registered to activate when the SmartList window is opened are used to add new columns and Go To items to existing SmartList objects. They are also used to create new SmartList objects. Trigger processing procedures perform the steps necessary to add columns and Go To items to SmartList objects.
You will add several global procedures with special names that will be called automatically by the SmartList. These procedures will supply SmartList with information needed to display data, perform Go To actions, and so on. All of these procedures will begin with the word Explorer, which is the internal name used for SmartList.
The Explorer procedures you add to your dictionary will be shared by all of the SmartList objects you create, as well as the new columns and Go To items you add to existing SmartList objects. The code you add to these procedures must use the parameters passed into the procedure to know which SmartList object is requesting information.
For example, “Explorer_Get_Table_Name” is one of the procedures you will add for your SmartList integration. This procedure returns the technical name of a table that contains the data for a specific column. The procedure has the following parameters:
inout string l_Table_Name; in integer IN_Object_Dict_ID; in integer IN_Object_Type; in integer IN_Field_Dict_ID; in integer IN_Field_ID; in integer IN_Doc_Type;
Notice the parameters that specify the SmartList object and field being queried. You will use these parameters to know when one of your SmartList objects or columns is being queried.
You will have better results if you complete your SmartList integration code before testing it. All of the SmartList procedures work together, so any missing procedures will cause runtime errors.
Remember that SmartList resources are stored in a third-party dictionary, so they can only be accessed with the runtime engine. You cannot test your SmartList integration with test mode.
The SmartList column and Go To records are stored in tables in the system database. As you test, you may need to manually remove SmartList columns and Go To items that you added for your integration. If incorrect parameter values were used when you added these items, subsequent attempts to re-add the corrected items will fail because the records already exist. The column information is stored in the ASITAB20 table, while the Go To information is stored in the ASIEXP60 table.