[[main_page|NovoMotion Outbound Menu]] ====== NovoMotion Trigger Generator ====== The NovoMotion deployment package includes a process to enable and disable triggers. This process is executed in the U2 environment and is called NOVO.E.T Its sequence is as follows: NOVO.E.T filename or ALL; UPDATE or DELETE; and ENABLE or DISABLE * **Filename** is the file to be acted upon. Using **ALL** instead of a specific file name will enable/disable triggers on all filenames. * Either **UPDATE** or **DELETE** can be specified - both can be specified if needed. * Either **ENABLE** or **DISABLE** can be executed. **Example:** NOVO.E.T IM UPDATE DELETE ENABLE **Please Note:** Versions of NovoMotion before 4.0 allow the additional keyword AFTER to be used to change the execution order of the existing trigger in conjunction with the new NovoMotion trigger. At release 4.0 and beyond, the AFTER keyword is the default syntax and is no longer allowed. If the **AFTER** keyword is used or if the NovoMotion version is 4.0 or greater, the order is as follows: - Request the write of data to a file - Execute the Manage 2000 trigger - Execute the NovoMotion trigger - Write the base file record to disk. THIS IS USEFUL IF THE MANAGE 2000 TRIGGER IS CHANGING DATA ON THE BASE FILE THAT SHOULD BE RESPECTED BY THE NOVOMOTION TRIGGER. Prior to NovoMotion version 4.0 and with no AFTER keyword, the order is as follows: - Request the write of data to a file - Execute the NovoMotion trigger - Execute the Manage 2000 trigger - Write the base file record to disk. Here is an example where the update trigger was enabled on the PT file: :NOVO.E.T PT UPDATE ENABLE Verify current trigger status... Create Update Trigger... :LIST.TRIGGER PT BEFORE UPDATE TRIGGER: NOVO.UPDATE.TRIGGER BEFORE DELETE TRIGGER: not defined If a trigger already exists on the file being enabled, the user is asked to specify if the new trigger should replace the existing trigger. Users can choose to enable at their discretion. Here is what the user will see: :NOVO.E.T WC ENABLE UPDATE DELETE Verify current trigger status... This file already has an UPDATE trigger defined: GLOBAL.UPDATE.TRIGGER Replace it? ?N ... UPDATE trigger will not be replaced. This file already has an DELETE trigger defined: GLOBAL.DELETE.TRIGGER Replace it? ?N ... DELETE trigger will not be replaced. If the user then checked the trigger, here is the expected result: :LIST.TRIGGER WC BEFORE UPDATE TRIGGER: GLOBAL.UPDATE.TRIGGER BEFORE DELETE TRIGGER: GLOBAL.DELETE.TRIGGER Here is what the user will see when enabling the trigger and accepting the overwrite: :NOVO.E.T WC ENABLE UPDATE DELETE Verify current trigger status... This file already has an UPDATE trigger defined: GLOBAL.UPDATE.TRIGGER Replace it? ?Y This file already has an DELETE trigger defined: GLOBAL.DELETE.TRIGGER Replace it? ?Y Create Update Trigger... Create Delete Trigger... Here are the results: :LIST.TRIGGER WC BEFORE UPDATE TRIGGER: NOVO.UPDATE.TRIGGER BEFORE DELETE TRIGGER: NOVO.DELETE.TRIGGER If the user DOES enable the NovoMotion trigger and an existing trigger is there, the NovoMotion trigger will execute the existing trigger code before it executes itself. **NOTE:** There is also a global RECOMPILE keyword that is only used when new versions of the software are installed. Its syntax is: :NOVO.E.T RECOMPILE **Additional Usage Notes:** If a U2 file is about to be purged yet the user wishes to retain the data in the related SQL table - even though a U2 DELETE trigger exists - the user would DISABLE the DELETE trigger for the file, purge the file, and then ENABLE the trigger. \\ [[main_page|NovoMotion Outbound Menu]]