project BLF > class CustomizationController > method GetAllCustomizedEvents

Description

This method is used to retrieve all events that are implemented in the customized component code. This returns a comma-separated (longchar) string of named events, for which the customization code needs to subscribe, and for which the standard code needs to publish.
A customized event is typically formatted as follows: "<BusinessComponentCode>.<MethodName>.[before|after]". For example: "BCurrency.InitialValues.Before" is an event that implements the hook that will be called right before the standard program code executes InitialValues() in BCurrency.


Parameters


opEventListoutputlongcharA comma separated list of named events that are implemented (= code exists) in the customization code.
A customized event is typically formatted as follows: "<BusinessComponentCode>.<MethodName>.[before|after]". For example: "BCurrency.InitialValues.Before" is an event that implements the hook that will be called right before the standard program code executes InitialValues() in BCurrency.


Internal usage


BLF
method BApplicationProperty.APIGetAppServerInformation


program code (program1/customizationcontroller.p)

for each tCustomizedComponent:

    do transaction on error undo, leave on stop undo, leave:
        vhCust = ?.
        run value (tCustomizedComponent.tcFullPath)
            persistent set vhCust (input ?, input ?) no-error.
    end.

    if valid-handle (vhCust)
    then do viFcCount1 = num-entries(vhCust:internal-entries) to 1 by -1:
        vcevent = "(" + string(tCustomizedComponent.tiPathEntry) + ") " + entry(viFcCount1,vhCust:internal-entries).
        if num-entries(vcevent,".") = 3
        then if vlFirst
             then assign opEventList = vcevent
                         vlFirst     = no.
             else if lookup (vcevent,opEventList) = 0
                  then assign opEventList = opEventList + "," + vcevent.
    end.

    if valid-handle (vhCust)
    then if not tCustomizedComponent.tcComponentName begins "bcustom["
    then do:
        run value ("appinfo/" + lc(tCustomizedComponent.tcComponentName) + "version.p")
           (output viClassMajorVersion,
            output viClassMinorVersion) no-error.
        vcCustomizationVersion = "*NotAvailable*".
        vcCustomizationVersion = dynamic-function ("CheckVersion" in vhCust) no-error.
        if vcCustomizationVersion <> string(viClassMajorVersion) + "." + string(viClassMinorVersion)
        then assign opEventList = opEventList
                                + (if vlFirst then "" else ",")
                                + "(" + string(tCustomizedComponent.tiPathEntry) + ") " + tCustomizedComponent.tcComponentName
                                + substitute(":ERROR:Version mismatch (&1 should be &2).",
                                             vcCustomizationVersion,
                                             string(viClassMajorVersion) + "." + string(viClassMinorVersion))
                    vlFirst     = no.
    end.
    
    if valid-handle (vhcust)
    then delete procedure vhCust.
    else do viFcCount1 = 1 to error-status:num-messages:
        vcFcMaskList = error-status:get-message(viFcCount1).
        opEventList = opEventList
                    + (if vlFirst then "" else ",")
                    + "(" + string(tCustomizedComponent.tiPathEntry) + ") " + tCustomizedComponent.tcComponentName
                    + ":ERROR:" + replace (vcFcMaskList,",",";").
        vlFirst     = no.
    end.
end.