project BLF > class BSetting > method DataLoadDomain

Description

Load all system settings that are scoped to a domain into the class temp-tables.


Parameters


iiDomainIdinputinteger
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program6/bsetting.p)

/* Load config */
<Q-1 run SelectConfig (all) (Read) (NoCache)
   (output dataset tqSelectConfig) in BSettingConfiguration >

/* Load setting */
assign vcLoad = "for each fcSetting where fcSetting.SettingScope = '":U + string(iiDomainId) + "'":U.

<M-2 run DataLoad
   (input  '':U (icRowids), 
    input  '':U (icPkeys), 

    input  '':U (icObjectIds), 
    input  vcLoad (icFreeform), 
    input  false (ilKeepPrevious), 
    output viFcReturnSuper (oiReturnStatus)) in BSetting>

if viFcReturnSuper = -4
then assign viFcReturnSuper = 0.

if viFcReturnSuper < 0 or
   oiReturnStatus  = 0
then assign oiReturnStatus = viFcReturnSuper.

if oiReturnStatus < 0
then return.

/* Remove irrelevant setting */
for each tqSelectConfig where
         tqSelectConfig.tcSettingConfigLevel <> {&SETTINGCONFIG-LEVEL-DOMAIN},
    each tfcSetting where
         tfcSetting.SettingConfig_ID = tqSelectConfig.tiSettingConfig_ID:
    delete tfcSetting.
end.

/* Add missing setting */
for each tqSelectConfig where
         tqSelectConfig.tcSettingConfigLevel = {&SETTINGCONFIG-LEVEL-DOMAIN}:
    find first tfcSetting where
               tfcSetting.SettingConfig_ID = tqSelectConfig.tiSettingConfig_ID
               no-error.

    if not available tfcSetting
    then do:
        <M-4 run AddDetailLine
           (input  'fcSetting':U (icTable), 
            input  '':U (icParentRowid), 
            output viFcReturnSuper (oiReturnStatus)) in BSetting>

        if viFcReturnSuper < 0 or
           oiReturnStatus  = 0
        then assign oiReturnStatus = viFcReturnSuper.

        if oiReturnStatus < 0
        then return.

        assign tfcSetting.SettingConfig_ID = tqSelectConfig.tiSettingConfig_ID
               tfcSetting.SettingIsActive  = false
               tfcSetting.SettingScope     = string(iiDomainId).
    end.

    <M-5 run GetConfigLabel
       (input  tqSelectConfig.tcSettingConfigName (icConfigCode), 
        output tfcSetting.tcSettingConfigLabel (ocConfigLabel), 
        output viFcReturnSuper (oiReturnStatus)) in BSetting>
end.

empty temp-table tqSelectConfig.