OpenEdge ABL user-defined functions let your application define a logical rule or transformation once, then apply the rule or transformation with absolute consistency an unlimited number of times. For example, if you are developing a weather application that converts temperatures between Celsius (C) and Fahrenheit (F), you can write two user-defined functions, one for converting from C to F and one for converting from F to C. Then, whenever your application must convert a temperature in either direction, you merely reference one of the user-defined functions.
The definition of a user-defined function can reside in the procedure that references it, in a procedure external to the procedure that references it, or in a procedure remote to the procedure that references it. In other words, a user-defined function can be defined locally, externally, or remotely.
User-defined functions follow the rules of scope and visibility that internal procedures follow.