generating trx file for all the forms in one go

Author: lalitpct@gmail.com (lalitpct)

Hi All,

I know how to generate .trx file of a form for a particualr form , is it possible to generate separate .trx file for all the forms in one go.

(I know how to generate .trx file for entire project but i need individual .trx files  for all the forms )

Now sure if there is any bat file through which we can do it.

 

Regards

Lalit

14 Comments

  1. Hi Lalit,

    you can write a little piece of code accessing UFORM and for any found component
    start an individual export.

    Uli

    You posted it under "Uniface 8" so here is a V8 solution, which runs under uniface 9 as well:

    One option is to use the "icomp" please read the complete article (http://march-hare.com/puuu/undoc/icomp.html).

    Export object in a trx file. Function 192 (common parameters)
    Register Description Values
    $99 Function code 192
    $98 Target File name   
    $97 Supersede 0 (no) 1 (yes) 

    Depending of the object you will export the registers you will need are:
     

    Object $92 $93 $94 $95 $96
    Component 1       Component name 16
    Start Up shell       Application name 18
    Model       Model name 38
    Library       Library name 58
    Global registers     "" Library name 50
    Global procs "P" Proc name Library name "P" 26
    Includes "P" Include name2 Library name "I" 26
    Messages Language Text name Library name "M" 26
    Panels "C" Panel name Library name "C" 26
    Devices T.T. "T" Device name Library name "D" 26
    Keyboard T.T. "T" Keyboard name Library name "T" 26
    Menus Language Menu name Library name   88
    Glyph Language Library name Glyph name "I" 92
    Entity I. Template        EIT name 42
    Field I. Template        FIT name 44
    Field S. Template        FST name 46
    Field L. Template        FLT name 48
    Field Template        FT name 80
    Signatures   Subsystem name ("" works for all subsystems) Signature name "SYSTEM_LIBRARY" 100
    Constants "P" "DEFPARAM" Library name "I" 26

    1To complete the component export operation you should do after the icomp :

    $96 = 26
    $94 = <componentname>
    $95 = "I"
    93 = "!DEFPARAM" ; ! is <gold>!
    $92 = "P"
    perform "icomp"

    2 Specify &!DEFPARAMS in the include name profile (&! Are <gold>&<gold>!


    Author: ulrich-merkel (ulrichmerkel@web.de)
  2. i tried the program and it works when i give the componant name , but when i try to export all the forms in IDF its not working .

    I think i shd get the formname and then put it in a loop so that we can extract .trx for the same ?


    Author: lalitpct (lalitpct@gmail.com)
  3. Hi Lalit,

    100% correct:

    just build a form based on the entity UFORM.DICT,
    select all the forms you want to export and traverse the occurences
    start your single-trx-export component with each componentname (fieldname: ULABEL.UFORM)

    Uli

    To load the metadictionary into your development environment, start

    .....\idf.exe   /ins meta


    Author: ulrich-merkel (ulrichmerkel@web.de)
  4. Exporting multiple components to separate files
    Uniface 8 & 9

    Step 1:
    Go online and find a free version management tool that is SCCI based.
    You do not need to install it if you just want clustered exports, you just need the .DLL.
    (I use igloo.dll)

    Step 2:
    Goto Utilities -> Preferences -> System
    Enter the location of the DLL.

    Step 3:
    Press the Clustering? button.
    Adjust the settings to your own taste.

    Step 4:
    When doing an export, make sure the option Use File Clustering Defaults is checked.

    Step 5:
    Check your result.

    I have also uploaded a PDF with the revelant screen shots.


    Author: Theo Neeskens (tneeskens@itblockz.nl)
  5. Hi Theo

    Finding a "free version management tool that is SCCI based" is not the problem :-)

    But you need an extra licence in UnifAce to use the SCCI :-(

    Ingo


    Author: istiller (i2stiller@gmx.de)
  6. Sorry Ingo,

    Forgot about that.
    All the more reason to buy this feature then :-)

    Regards,

    Theo


    Author: Theo Neeskens (tneeskens@itblockz.nl)
  7. thanks uli

    below is the absolute basic code which is working fine and able to get trx file now

     variables
                     string FORM_NAME
                     string TGT_FORMNAME
                  endvariables
                  ; Clean global registers
         1        call clear_reg
                  ; Set the registers
                  ;setting the register variables required
         2        $96 = 16
         3        $99 = 192
         4        filedump "TRX_REPORT","C:\Users\Ld78977\Desktop\LalitSingh\trx_report.txt"
         5        clear/e "UFORM.DICT"
         6        retrieve/e "UFORM.DICT"
         7        setocc "UFORM.DICT",1
                  ;setocc "parameters",1
         8-1      while ($status > 0)
         9-1         putmess "ULABEL %%ULABEL.UFORM.DICT"
        10-1         $98 = lowercase("%%ULABEL.UFORM.DICT%%%.trx")
        11-1         putmess "$98 is %%$98"
        12-1         setocc "UFORM.DICT",$curocc(UFORM.DICT)+1
        13-1         perform "icomp"
        14-1         filedump/append "%%^","C:\Users\Ld78977\Desktop\LalitSingh\trx_report.txt"
        15-1         filedump/append "Trx Generated for Form %%ULABEL.UFORM.DICT","C:\Users\Ld78977\Desktop\LalitSingh\trx_report.txt"
        16-1      endwhile
                  ;call clear_reg
                  ;start clearing registers
    ******        entry clear_reg
                  variables
                     numeric v
                  endvariables
         1           v = 30
         2-1         while (v <= 99)
         3-1            call asvalue(v,"")
         4-1            v = v + 1
         5-1         endwhile
         6        end
                  ;end clearing registers
                  ;start
    ******        entry asvalue
                  params
                     numeric preg : IN
                     string pvalue : IN
                  endparams
         1-1         selectcase preg
         2-1         case 90
         3-1            $90 = pvalue
         4-1         case 91
         5-1            $91 = pvalue
         6-1         case 92
         7-1            $92 = pvalue
         8-1         case 93
         9-1            $93 = pvalue
        10-1         case 94
        11-1            $94 = pvalue
        12-1         case 95
        13-1            $95 = pvalue  
        14-1         case 96
        15-1            $96 = pvalue
        16-1         case 97
        17-1            $97 = pvalue
        18-1         case 98
        19-1            $98 = pvalue  
        20-1         case 99
        21-1            $99 = pvalue
        22-1         endselectcase
        23        end


    Author: lalitpct (lalitpct@gmail.com)
  8. .. in V9, you can get from the help file the following info:

    $ude export

    Export data from the Repository.

    Syntax

       $ude ("export", ObjectType , ObjectProfile ,{ZipArchive :}Filename {, OptionList} )


    Author: ulrich-merkel (ulrichmerkel@web.de)
  9. In Uniface 9 you can configure a (dummy) version control interface. In the clustering preferences you can define that you want each component exported to a separate file. Not sure if this was already possible in Uniface 8


    Author: Theo Neeskens (tneeskens@itblockz.nl)
  10. Hi all,
    Above code helped me to get trx of individual forms.
    Now when I try to take back up of entire repository  in trx file (for eg way we do from utilities>>export) I am unable to do.

    In the execute trigger I am putting below code, but it doesnt work.
    Does anyone have idea what shall be the exact values for registry

    $90 = ""
    $91 = ""
    $92 = ""
    $93 = ""
    $94 = ""
    $95 = ""  
    $96 = ""
    $97 = 1
    $99 = 192
    $98  = "test.trx"


    Author: lalitpct (lalitpct@gmail.com)
  11. It does not work that way at all:

    You have to do the same as you do in the EXPORT form:

    If the field is empty, nothing will be exported.

     

    For each object type you need a separate perform (with GOLD*) to get all occurences.

    Dont't forget to enable the append option.


    Author: ulrich-merkel (ulrichmerkel@web.de)
  12. Thanks so it means in 8.4 I need to do it manually.

    ok and in 9..4 is it possible by using $UDE  to take export of entire IDF in screen?

    Basically I want to schedule backup of the entire repository on weekly basis


    Author: lalitpct (lalitpct@gmail.com)
  13. NO, why manually ???

    All you have to do is to export any object of the list with GOLD* as a profile.

    even $ude is based on OBJECTS so it is the same story (and icomp is still supported in V9)

     

    If you want to save some time, fill out your export form using selct all and enter your file location.

    then use "Create Shortcut"

    Double-Click on this icon will open a filled export form

    Due to a BUG, the "Components" and "Variables" are not checked,

    either check them manually or press "Select All" again

    Then all you have to do is to press "Export".


    Author: ulrich-merkel (ulrichmerkel@web.de)
  14. Why manually?

    Just use the commandline with the /CPY option to export all entities od a data model

    so you can do the job with: /CPY IDF:*.DICT XML:MYEXPORT.XML

    The Uniface Reposirory resides (according to nthe 8.4.01 REF.PDF) in 4 Models

    Table 1-1   Application models of the Application Objects Repository
    DICT $IDF
    PRINTER $SYS
    SYSENV $SYS
    TEXT $UUU


    Author: ulrich-merkel (ulrichmerkel@web.de)