Uniface User Forum

 View Only
  • 1.  Global constants in globale procedures

    Posted 04-04-2023 04:53

    Hi 

    We do have in UF 9.7 a lot of global constants (per library) defined.
    Some of this constants will be used in global procedures. 
    Now I'm migrating via UF 10.3 to UF 10.4 and oops: The constants in the global procedures will not be resolved.
    In the listing the is no clue about 'defparam'. When I insert as first line in a globale procedure: 
    #include DEFPARAM
    nothing changed.
    Missspelling DEFPARAM like DEFXYZ gives me warning that there is no include script DEFXYZ what is correct.

    So UnifAce recognize a globale include script but don't use it !?!?!

    The question is now: 
    How do you get UnifAce to use global constants in global objects?


    TIA
    Ingo



    ------------------------------
    Ingo Stiller
    Aareon Deutschland GmbH
    ------------------------------


  • 2.  RE: Global constants in globale procedures

    Posted 04-04-2023 04:58

    insert a line (into the global procedure)
    #define global_constant=xyz
    solves the problem
    However, it does not make sense to define the constants again in each global object.



    ------------------------------
    Ingo Stiller
    Aareon Deutschland GmbH
    ------------------------------



  • 3.  RE: Global constants in globale procedures

    Posted 04-04-2023 05:20

    A shot in the dark, but I think the below suggests that defparam needs to be included in the project

    Global constants must be defined in an IncludeScript called DEFPARAM.

    You must have created a project to contain your application definitions.
    https://www3.rocketsoftware.com/rocketd3/support/documentation/Uniface/10/uniface/proc/procLanguage/Precompiler/definingGlobalConstants.htm?tocpath=Scripting%20Application%20Behavior%7CProcScript%20Syntax%7COperands%7CConstants%7C_____1


    ------------------------------
    Osman Shariff
    ------------------------------



  • 4.  RE: Global constants in globale procedures

    Posted 04-04-2023 07:03

    Hi Osman

    The global constants are in the DEFPARAM(s). And it does work wunderfull for normal components but globale procedures :-)



    ------------------------------
    Ingo Stiller
    Aareon Deutschland GmbH
    ------------------------------



  • 5.  RE: Global constants in globale procedures

    PARTNER
    Posted 04-05-2023 01:31
    Hi Ingo,
     
    we're also just migrating to 10.4 (from 10.3). And we have a lot of global constants in the DEFPARAM.
     
    I cannot confirm this behaviour in our environment. These global constants (from DEFPARAM) work with global procedures (without the need to redefine them).
     
    Unfortunately I have no solution for you, but it seems not to be a global issue.
     
    Best regards


    ------------------------------
    Michael Rösch
    Abrechnungszentrum Emmendingen
    ------------------------------



  • 6.  RE: Global constants in globale procedures

    ROCKETEER
    Posted 04-05-2023 07:40

    Hi Ingo,

    You should not have to manually include DEFPARAM if the library name is the same between the GlobalScript Library and the IncludeScript Library, it will be included by default. If you need global constants from a different library you should be able to include the library name on the #include i.e. #include LIBNAME:DEFPARAM.

    Kind regards,
    Mike 



    ------------------------------
    Michael Taylor
    Rocket Internal - All Brands
    ------------------------------