Compile objects from command line interface

Author: p.lovati@pokerspa.it (PaoloLovati)

Hi, compiling objects from command line interface using "/aft=DateTime" sub-switch doesn't work with the following switches: /gly /sig all objects are always compiled. Using the switch "/all" has the same effect on objects of type Glyph and Signature. I tried using the parameter "DateTime" both with and without separators. The Uniface environment is [MSW] 9.7.04.02, G404 and uses a standardized directory structure Maybe I'm missing something... Thanks Paolo

4 Comments

  1. Hi Daniel, Thanks for your reply. I know that those actions can be done with the aid of the $ude function but I'm calling IDF from a batch script. Waiting for a solution from labs I'll write a component that will do the same action using the code you sent, then I'll run this component from the batch script whth the "/tst" switch. Thanks, Paolo


    Author: PaoloLovati (p.lovati@pokerspa.it)
  2. Hi Paolo Just a to test: Try /pri=63 and have a look to message file. Maybe there is a hint, why the timestamp is not propagte to the "where clause" Ingo


    Author: istiller (i2stiller@gmx.de)
  3. Hi Ingo, here is the log file generated using /gly /aft=20-07-2018:07:00:00 and /pri=63: 2018-07-20 09:40:33.57 - Uniface session started I/O function: O, mode: 0, on file/table: UDICVER field -> UDICVER pos 0 len 0 0 type G0 G pack 73 scalfmt 1 csfmt 0 dbfmt 0 index 0 field -> VERSNAME pos 0 len 16 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 1 field -> VERSTYPE pos 16 len 1 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 1 field -> UDESCR pos 17 len 25 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 0 field -> UTIMESTAMP pos 42 len 7 0 type E1 E pack 0 scalfmt 0 csfmt 115 dbfmt 117 index 0 index - > 1.1-1 field VERSNAME index - > 1.2-1 field VERSTYPE I/O function: F, mode: 0, on file/table: UDICVER index: 1 = Where ((VERSNAME = 'DICTVERSION') And (VERSTYPE = 'V')) SELECT "VERSNAME", "VERSTYPE", "UDESCR", "UTIMESTAMP" FROM "UDICVER" WHERE "VERSNAME" = :"WVERSNAME" AND "VERSTYPE" = :"WVERST YPE" -> Length fetched: 49 . I/O function: Z, mode: 0, on file/table: UDICVER I/O function: O, mode: 0, on file/table: UGLYPH field -> UGLYPH pos 0 len 0 0 type G0 G pack 73 scalfmt 1 csfmt 0 dbfmt 0 index 0 field -> UTIMESTAMP pos 0 len 7 0 type E1 E pack 0 scalfmt 0 csfmt 115 dbfmt 117 index 0 field -> UCVERS pos 7 len 1 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 0 field -> UCSUB pos 8 len 1 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 1 field -> UCLABEL pos 9 len 16 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 1 field -> UCVAR pos 25 len 16 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 1 field -> UCTYPE pos 41 len 3 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 1 field -> UCLASS pos 44 len 8 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 1 field -> UCOPTION pos 52 len 1 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 0 field -> UVERS pos 53 len 12 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 0 field -> UDESCR pos 65 len 25 0 type S1 S pack 0 scalfmt 0 csfmt 0 dbfmt 0 index 0 field -> UBITMAP pos 90 len 8102 0 type I1 B pack 10 scalfmt 0 csfmt 2 dbfmt 2 index 0 index - > 1.1-1 field UCSUB index - > 1.2-1 field UCLABEL index - > 1.3-1 field UCVAR index - > 1.4-1 field UCTYPE index - > 1.5-1 field UCLASS I/O function: S, mode: 0, on file/table: UGLYPH index: 1 >= Where ((UCSUB = 'I')) SELECT "UCSUB", "UCLABEL", "UCVAR", "UCTYPE", "UCLASS" FROM "UGLYPH" WHERE (("UCSUB" = :"WPH1")) -> Hits selected: 126 . ... the only "where clause" is on UCSUB, so all the entries are selected...


    Author: PaoloLovati (p.lovati@pokerspa.it)
  4. Hi Paolo, Thanks for the info. I did some tests and it seems that the /aft sub-switch also did not work in version 8.4 for /gly and /sig. It could very well be that this never worked. Sorry. I also tried to find a known issue for this, but so far without any luck. It seems a bit odd if no one has reported this before. Anyways, you also could compile the glyphs using the $ude function (instead from the command line). E.g.

    sql/data "select uclabel,ucvar from uglyph where (ucsub = 'I' and utimestamp>= '2018-07-01 00:00:00')", "IDF" vList = $result forlist vItem in vList    vResult = $ude("Compile", "glyph", $itemnr(1, vItem), "", $concat("library=", $itemnr(2, vItem))) endfor

    The same can be done for signatures.

    sql/data "select uspecnam from usspec where (utimestamp>= '2018-07-01 00:00:00')", "IDF" vList = $result forlist vItem in vList    vResult = $ude("Compile", "signature", $itemnr(1, vItem), "") endfor

    I hope this helps. Daniel


    Author: diseli (daniel.iseli@uniface.com)