View Single Post
Old 9th January 2018, 14:06
bdittmar's Avatar
bdittmar bdittmar is offline
Join Date: Apr 2002
Location: Germany, 50.584097,8.544078
Posts: 1,767
bdittmar will become famous soon enough
Baan: 2.2/3.1/4c4/LN6.1 FP6/FP9/HiDox - DB: tbase, ms-sql7, oracle10gV1, 11g - OS: HP-UX, W2K3, SLES
UE UserExit


A User Exit DLL (UEDLL) is a DLL that will reside outside the standard software.
It will have the same name as a standard DAL with the extension ‘ue’ (for ‘user exit’). 
E.g. ‘whinh200ue’ for table whinh200. Customers can implement a UEDLL in order 
to be able to define extra business logic before and after 
the standard ‘before’ and ‘after’ handling of

saves and deletes, by means of specific hooks that will be executed by the 4GL engine 
and/or DAL Engine. In this way it is possible to e.g. conditionally publish 
data changes to the outside world.

Interaction with 4GL Engine / DAL Engine

When present, the User Exit DLL for a certain table will be loaded by the 4GL engine/DAL 
Engine by the time the DALfor this particular table will be loaded. In situations where 
no DAL is present this will be the moment at which a DAL would be loaded if it existed. 
This means that there is no need to have a DAL in order to make use of the UEDLL.


A DLL becomes a UEDLL when it meets the following conditions:
•Its name is consisting of the table code with ‘ue’ as suffix, like whinh200ue
•It includes bic_dal, as follows: #include <bic_dal>


A UEDLL is treated like a regular DAL. This means all kind of DAL related functionality can be used, like:
•Pre-defined variable subdal

Note however that the following restrictions apply:
•Business methods cannot be implemented in a UEDLL Instead the business logic 
should be programmed in another (separate) general DLL.
•It is strongly discouraged to define other external functions in a UEDLL and 
link the UEDLL directly to other scripts. Instead, use a normal general DLL. 
(This also applies to regular DALs).

User Exit Hooks

A UEDLL script can contain the following hooks:

Reply With Quote