compile multiply forms in smae time

Author: urieli@gmail.com (Uriel)

hello Is there anyway to compile few forms in the same time? I changed some definition of one of my table (in PLSQL) and i have to compile all the forms that use this table. It's about 60 forms. Can you help me?   thanks!

9 Comments

  1. Hi, Do you try  command line /frm  with form separed by ';'  or '|'  like /frm form1;form2 Work with 9.5. At worst, you could try the Uniface Underground Fonction like  icomp ...Embarassed   Cordialy .


    Author: Gilles (gls.tools@free.fr)
  2. UserGho said Hi, Do you try  command line /frm  with form separed by ';'  or '|'  like /frm form1;form2 Work with 9.5. At worst, you could try the Uniface Underground Fonction like  icomp ...Embarassed   Cordialy .  

    Hey thank you! the first one is working. One more question: is there anyway to compile a form from another form.  I mean if i'm in form1 then by click on a button it will compile form2 (or more). thanks


    Author: Uriel (urieli@gmail.com)
  3. Yes, there is. The function used for this is $ude. So for example to compile all components starting with the character 'F': $ude("compile","component","F·*") For more examples look up the ULibrary Help File:

    $UDE compile

    Compile development objects in the Repository.

    $ude("compile",ObjectType,ObjectProfile {,"",OptionList} )

    Arguments

    • ObjectType—list of development object types. See Object Types.
    • ObjectProfile—string specifying an object name or retrieve profile for one or more objects of type ObjectType
    • OptionList—associative list containing one or more options that are appropriate to the operation or the ObjectType. See Option List.

    Arguments can also be a field, variable, or function that evaluates to a string or list.

    ...

    ...


    Author: Daniel_Kurz (kurzster@gmail.com)
  4. The method described by 'UserGho' is part of the Uniface Command Line Switches and works with 'normal' semicolon, asterix etc. to create your subset of components.  There is second method to achieve this: Within IDF, go to Utilities -> Preferences -> Genral and check the box 'Enable Global Actions' (or see that it is already checked). After that, go to GoTo -> Administration -> Global Actions and enter your search pattern into the first field on the left upper corner, using GOLD characters, so asterix, semicolon etc. You can test your GOLD key search pattern by clicking 'Browse' to see what set comes up. Please leave the 'Browse Component' list form by clicking Cancel, otherwise  you'll only have selected one component from your set. Next, with the Global Actions window still open, do File -> Compile and your set of components will compile. Feedback in Message Line and Message Frame. A third method is that a lot of experienced Unifae developers have probably once written a form, based on the Uniface repository model that lets the developer enter the Entity (database table) that has changed, and subsequently retrieves all components that 'touch' this entity and through use of $ude("compile") compile these components on the spot. A typical place to have such a custom developer tool, would be the Additional Menu. ($ude is the new alternative for icomp, which is undocumented and will become deprecated/obsolete) (I started writing this post directly after thepost of 'UserGho', so before seeing the postings of Uriel and Daniel_Kurz. Hence some of my posting may overlay their answers)


    Author: Arjen van Vliet (arjen.van.vliet@uniface.com)
  5. Only now I see that this thread is posted in the Uniface 8 subforum. The URL's in my previous posting all refer to Unifae 9.7 documentation. Some of the functionalitu around $ude may be limited in Uniface 8, please check your local Uniface Help file on this.


    Author: Arjen van Vliet (arjen.van.vliet@uniface.com)
  6. Uriel said
    UserGho said Hi, Do you try  command line /frm  with form separed by ';'  or '|'  like /frm form1;form2 Work with 9.5. At worst, you could try the Uniface Underground Fonction like  icomp ...Embarassed   Cordialy .  
    Hey thank you! the first one is working. One more question: is there anyway to compile a form from another form.  I mean if i'm in form1 then by click on a button it will compile form2 (or more). thanks  

    With uniface 8, you must use the icomp (unofficial) function which is replaced by  $ude (official) function in uniface 9 $99=0 $97=componentname $98=componenttype 0=frm-1=svc-2=rpt perform "icomp"  Cordialy.


    Author: Gilles (gls.tools@free.fr)
  7. Since UXGROUP contains the entity name used in components, and you know the entity name you've modified; Using icomp in 8 (or $ude in 9+);

    ULABEL.UXGROUP = "your entity" retrieve/e "UXGROUP" putlistitems vs_sort, UFORM.UXGROUP sort/list vs_sort, "U" askmess "There are %%$itemcount(vs_sort) components to compile.%%^Is this correct?","No, Yes" selectcase $status case 1 clear $prompt = UBASE.UXGROUP return -1 elsecase setocc "UXGROUP", 1 forentity "UXGROUP" compare/next (UFORM) from "UXGROUP" ; only compile if the next form is different from the current record if ($result < 1) $result = $ude("compile", "form", UFORM.UXGROUP) vn_count += 1 endif endfor clear endselectcase message/info "Compiled %%vn_count components"

    I use this when I don't want to remember / search using global actions and component names separated by GOLD |... Knut


    Author: Knut (knut.dybendahl@gmail.com)
  8. Hi Knut, Just two little considerations: an order by "UFORM" is reasonably needed in the read trigger of UXGROUP... ...and also: it's not caring of having same entity name into two different models... Anyhow, thanks for sharing! Gianni


    Author: gianni (gianni.sandigliano@unifacesolutions.com)
  9. If you want to compile all forms that need compilation after the entities or fields on it have changed, I have made a tool for that a few years ago. You can download it here: http://theunifaceuniverse.blogspot.nl/2011/04/change-entity-compile-forms.html


    Author: Theo Neeskens (tneeskens@itblockz.nl)