project BLF > class TApplication > method GetDefaultsFolder
Description
Returns full path on the file system of the directory where XML files with default system data are stored.
Parameters
Internal usage
BLF
program code (program1/tapplication.p)
vhFcComponent = ?.
<M-20 run MainBlock () in XML>
<M-93 run ReadXMLNodeValue
(input search('server.xml') (icXMLFile),
input 'defaultdata' (icStartTag),
input 'DefaultDataDirectory' (icNodeTag),
output ocFolder (ocNodeValue),
output viFcReturnSuper (oiReturnStatus)) in XML>
if index(ocFolder,"$ENVROOT") > 0
then do:
<M-75 run ReadXMLNodeValue
(input search('server.xml') (icXMLFile),
input 'serverConfiguration' (icStartTag),
input 'ENVROOT' (icNodeTag),
output vcenvroot (ocNodeValue),
output viFcReturnSuper (oiReturnStatus)) in XML>
ocFolder = replace(ocFolder,"$ENVROOT",vcenvroot).
end.
run gipr_DeleteProcedure in vhFcComponent.
delete procedure vhFcComponent.
/*
Validate folder name in server.xml.
When invalid do not return an error but simply ignore it.
*/
file-info:file-name = ocFolder.
if file-info:file-type = ?
then do:
ocFolder = search ("program/tapplication.r").
if ocFolder = ?
then ocFolder = search ("program/tapplication.p").
if ocFolder = ?
then ocFolder = session:temp-dir.
else if index (ocFolder,".pl<<") = 0
then ocFolder = substring (ocFolder , 1, length (ocFolder,"CHARACTER":U) - 22,"CHARACTER":U).
else if opsys = "UNIX"
then ocFolder = substring (ocFolder, 1, r-index (ocFolder, "/", index(ocFolder, ".pl<<")),"CHARACTER").
else ocFolder = substring (ocFolder, 1, r-index (ocFolder,"~\", index(ocFolder, ".pl<<")),"CHARACTER").
end.
else ocFolder = file-info:full-pathname + (if opsys = "UNIX" then "/" else "~\").