
With the patch 10.3.02.038 in Uniface, we’ve introduced two new $ude ProcScript functions for looking up runtime resources and copying them to an archive (UAR) file. These are:
By combining these two $ude functions, you can package runtime resources into one or more deployment archive files, which enables you to improve your development and deployment workflow. You can:
- Build your own archiving mechanism, in combination with the IDE custom menu/worksheet plug-ins, that might be very useful to maintain application and/or patch distributions.
- Script your build environments to automatically generate deployment archives.
$ude("lookup")
Use $ude("lookup") function to check whether a compiled runtime object, symbol table, or script listing exists. This is similar to $ude("exist"), but $ude("lookup") returns a Uniface list of existing resources, symbol tables, or script listings. Sub-lists specify the resources in this format:
"TYPE=ObjectType!;NAME=ObjectName!;LIBRARY=LibraryName!;LANGUAGE=Language!;CLASS=Class"
For example:
vResultList = $ude("lookup", "resources_output;form", "MYFORM*")
List returned in vResultList:
"TYPE=Form!;NAME=MYFORM1!;LIBRARY=!;LANGUAGE=!;CLASS=;TYPE=Form!;NAME=MYFORM2!;LIBRARY=!;LANGUAGE=!;CLASS="
$ude("archive")
You can use $ude("archive") to copy the compiled runtime objects to a Uniface Archive (UAR) using the list returned by $ude("lookup").
There are two ways to do this:
1. One object at a time
One way to copy objects to a Uniface archive is by resource type:
$ude("archive",ResourceType, ResourceName, ArchiveFile {, OptionList})
For example (using the value of vResultList from the $ude("lookup") example):
vArchive = "myarchive.uar" forlist vObject in vResultList vType = $valuepart($itemnr(1, vObject)) ; TYPE vName = $valuepart($itemnr(2, vObject)) ; NAME putitem/id vOptions, "LIBRARY", $valuepart($itemnr(3, vObject)) putitem/id vOptions, "LANGUAGE", $valuepart($itemnr(4, vObject)) putitem/id vOptions, "CLASS", $valuepart($itemnr(5, vObject)) vReturn = $ude("archive", vType, vName, vArchive, vOptions) endfor lflush $concat(vArchive, ":")
The archive file is kept open so each call to $ude("archive") adds an object to the file. To close the file and complete the transaction, use flush or flush.
2. Using a list of objects
The other way to copy objects to a Uniface archive is by using the list option. Hereby the list of objects can be used that is returned by $ude("lookup"). In addition, a description can be added to the archive file.
For example (again with the value of vResultList from the previous example):
vArchive = "myarchive.uar" putitem/id vOptions, "description", "My Form Archive" vReturn = $ude("archive", "list", vResultList, vArchive, vOptions)
The description of the archive is (e.g.) shown in the output of the /who command line switch.
It is important to note that an existing archive file is overwritten with no prompt unless the option "append=true" is specified. Here’s an example of how to add several lists of runtime objects to a Uniface archive:
vResultList = $ude("lookup", "resources_output;form", "*") vArchive = "components.uar" putitem/id vOptions, "description", "Archive with components" vReturn = $ude("archive", "list", vResultList, vArchive, vOptions) vOptions = "append=true" vResultList = $ude("lookup", "resources_output;service", "*") vReturn = $ude("archive", "list", vResultList, vArchive, vOptions) vResultList = $ude("lookup", "resources_output;report", "*") vReturn = $ude("archive", "list", vResultList, vArchive, vOptions) ; ...
Do you want to know more about coding in Uniface? Check out our eLearning environment.
Do you want to stay updated on the latest Uniface news? Please subscribe to our quarterly newsletter.
Related
-
In the Spotlight: Raúl CorreiaJan 13, 2021
-
Five major software development trends in 2021.Jan 4, 2021
-
Meet our developers: Mattia LacroceDec 17, 2020
-
Meet our developers: Xander BosDec 7, 2020
-
Meet our developers: Garima GuptaNov 18, 2020
-
Uniface CE and EE licensingJul 7, 2020
-
Regular expressions in the quick search dialog of the IDE code editors.Jun 22, 2020
-
About templates, models and objects.Jun 18, 2020
-
Utilities for Uniface 10.Jun 16, 2020