Skip to main content

Hi Freaks
When I migrate componets from 9.7 to 10.4.2.49  I found a small migration issue
In 9.7

#if (xyz)
ENTRY LP_XYZ
: do something
END
#endif
---- end of local proc ----

In 10.4 (after migration)

#if (xyz)
ENTRY LP_XYZ
: do something
END
#endif

end

#enddefine

...

The "#enddefine" is expected. But why is there an "end" between "#endif" and "#enddefine"?
The entry before LP_XYZ do have an "end"
Looks like Uniface thinks that the block #if...#endif defines an entry which does not have an end ...

BTW: Without this flaw, I could compare components from any of our 9.7 dictanaries with any of our 10.4 dictanaries (written in UnifAce) :-)

Ingo



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

Hi Freaks
When I migrate componets from 9.7 to 10.4.2.49  I found a small migration issue
In 9.7

#if (xyz)
ENTRY LP_XYZ
: do something
END
#endif
---- end of local proc ----

In 10.4 (after migration)

#if (xyz)
ENTRY LP_XYZ
: do something
END
#endif

end

#enddefine

...

The "#enddefine" is expected. But why is there an "end" between "#endif" and "#enddefine"?
The entry before LP_XYZ do have an "end"
Looks like Uniface thinks that the block #if...#endif defines an entry which does not have an end ...

BTW: Without this flaw, I could compare components from any of our 9.7 dictanaries with any of our 10.4 dictanaries (written in UnifAce) :-)

Ingo



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

Good morning,

There are new parameters in the asn for this type of behavior. Analyze them and do import tests before doing the actual import. Since there are no longer fixed locations for triggers, there are only containers. For example, Local Proc Modules no longer exists as a trigger. So $triggerAbbr came to maintain this compatibility. When you use <$trigger> to get the name of the triggers in version 10, the name of the container trigger comes instead of the trigger name. If you put $triggerabbr, the name of the acronym that existed in previous versions comes; in the case of local proc modules, it comes LPMX.

Take a look at the manual

; Migration Logical: Enable or disable addition of a 'end' statement to migrated ProcScript modules.
    ; 0 = disable
    ; 1 = enable (default)
MIGRATION_SCRIPT_ADD_END = 0                    

; Migration Logical: Specify whether non-functional code is migrated for components.
    ; 0 = non-functional code is migrated 
    ; 1 = non-functional code is removed from normal components only 
    ; 2 = non-functional code is removed from all components (default)
MIGRATION_SCRIPT_CLEANUP_COMPONENTS = 2         

; Migration Logical: Specify whether the <$triggerAbbr> constant is defined at 
; the start of migrated non-empty triggers.
    ; 0 = <$triggerAbbr> is never defined 
    ; 1 = <$triggerAbbr> is always defined 
    ; 2 = <$triggerAbbr> is defined if the keywords <$triggerAbbr> and #include are found (default)
MIGRATION_TRIGGERABBR = 1                      

; Migration Logical: Specify whether a constant scope block (#startdefine and #enddefine) is added
; to a migrated, non-empty trigger definition, and to each group of migrated operations.
    ; 0 = do not add 
    ; 1 = add for all triggers and operation groups 
    ; 2 = add when the trigger contains #define or #include or <$triggerAbbr> keywords (default)
MIGRATION_SCOPEDEFINE = 1



------------------------------
Juliano Anoar Haoach Garcia
Suport Analyst
Coamo Agroindustrial Cooperativa
Campo Mourão BR
------------------------------

Good morning,

There are new parameters in the asn for this type of behavior. Analyze them and do import tests before doing the actual import. Since there are no longer fixed locations for triggers, there are only containers. For example, Local Proc Modules no longer exists as a trigger. So $triggerAbbr came to maintain this compatibility. When you use <$trigger> to get the name of the triggers in version 10, the name of the container trigger comes instead of the trigger name. If you put $triggerabbr, the name of the acronym that existed in previous versions comes; in the case of local proc modules, it comes LPMX.

Take a look at the manual

; Migration Logical: Enable or disable addition of a 'end' statement to migrated ProcScript modules.
    ; 0 = disable
    ; 1 = enable (default)
MIGRATION_SCRIPT_ADD_END = 0                    

; Migration Logical: Specify whether non-functional code is migrated for components.
    ; 0 = non-functional code is migrated 
    ; 1 = non-functional code is removed from normal components only 
    ; 2 = non-functional code is removed from all components (default)
MIGRATION_SCRIPT_CLEANUP_COMPONENTS = 2         

; Migration Logical: Specify whether the <$triggerAbbr> constant is defined at 
; the start of migrated non-empty triggers.
    ; 0 = <$triggerAbbr> is never defined 
    ; 1 = <$triggerAbbr> is always defined 
    ; 2 = <$triggerAbbr> is defined if the keywords <$triggerAbbr> and #include are found (default)
MIGRATION_TRIGGERABBR = 1                      

; Migration Logical: Specify whether a constant scope block (#startdefine and #enddefine) is added
; to a migrated, non-empty trigger definition, and to each group of migrated operations.
    ; 0 = do not add 
    ; 1 = add for all triggers and operation groups 
    ; 2 = add when the trigger contains #define or #include or <$triggerAbbr> keywords (default)
MIGRATION_SCOPEDEFINE = 1



------------------------------
Juliano Anoar Haoach Garcia
Suport Analyst
Coamo Agroindustrial Cooperativa
Campo Mourão BR
------------------------------

Hi  Juliano

We are doing migration over years, but due to the not so "optimal" UF10-IDE (in our opinion) we still do coding in UF 9 :-)
And I know about the difference about Uniface 9 Trigger and Uniface 10 containers.
My compare tool tries to eleminate this difference.
(And program every week a little bit of improvment)
But in my case, 
a) LPMX was and is a container
b) there is no open "ENTRY" 
So the question is, why does the mogration thinks,it have to insert an "END" :-)

BTW: Found another problem challenge:
The UXREGS (component variables) will be convert to the declaration block.
Name and template are take direct from UXREGS
But with the description (UDSCR) ond comment (U_DOC) Uniface discards some infomation
If UDESCR is filled, this text is seen in UF10
If UDESCR is not filled and U_DOC is filled, the comments are migrated
But what if UDSCR and U_DOC are filled?
Uniface ignorce the "comment" *grumble*

Ingo



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

Hi  Juliano

We are doing migration over years, but due to the not so "optimal" UF10-IDE (in our opinion) we still do coding in UF 9 :-)
And I know about the difference about Uniface 9 Trigger and Uniface 10 containers.
My compare tool tries to eleminate this difference.
(And program every week a little bit of improvment)
But in my case, 
a) LPMX was and is a container
b) there is no open "ENTRY" 
So the question is, why does the mogration thinks,it have to insert an "END" :-)

BTW: Found another problem challenge:
The UXREGS (component variables) will be convert to the declaration block.
Name and template are take direct from UXREGS
But with the description (UDSCR) ond comment (U_DOC) Uniface discards some infomation
If UDESCR is filled, this text is seen in UF10
If UDESCR is not filled and U_DOC is filled, the comments are migrated
But what if UDSCR and U_DOC are filled?
Uniface ignorce the "comment" *grumble*

Ingo



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

Forget the last part of the prevous mail
Uniface do not discarded but put this comments at the begin of the declaration block.
And as I do have a few variables and one of the last obe do have a comment, I do not see "@pama" at the begining :-)

Let's see, If I can handle this :-)



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

Hi  Juliano

We are doing migration over years, but due to the not so "optimal" UF10-IDE (in our opinion) we still do coding in UF 9 :-)
And I know about the difference about Uniface 9 Trigger and Uniface 10 containers.
My compare tool tries to eleminate this difference.
(And program every week a little bit of improvment)
But in my case, 
a) LPMX was and is a container
b) there is no open "ENTRY" 
So the question is, why does the mogration thinks,it have to insert an "END" :-)

BTW: Found another problem challenge:
The UXREGS (component variables) will be convert to the declaration block.
Name and template are take direct from UXREGS
But with the description (UDSCR) ond comment (U_DOC) Uniface discards some infomation
If UDESCR is filled, this text is seen in UF10
If UDESCR is not filled and U_DOC is filled, the comments are migrated
But what if UDSCR and U_DOC are filled?
Uniface ignorce the "comment" *grumble*

Ingo



------------------------------
Ingo Stiller
Aareon Deutschland GmbH
------------------------------
It's better to let the error occur than to remove the end by ans

Juliano Anoar Haoach Garcia
Analista de Suporte
Fone: (44) 3599-8280 - Ramal 8280
jgarcia@coamo.com.br

Coamo Agroindustrial Cooperativa
Administração Central
Campo Mourão - PR - www.coamo.com.br
De: Ingo Stiller via Rocket Software Forum
Enviada em: segunda-feira, 10 de março de 2025 12:42
Para: Juliano Anoar Haoach Garcia
Assunto: RE: Rocket Uniface : Small migration issue

Hi Juliano We are doing migration over years, but due to the not so "optimal" UF10-IDE (in our opinion) we still do coding in UF 9 :-) And I...
Invite colleagues to join Rocket Forum and expand our expert network!
________________________________
[Rocket Forum]
Uniface User Forum
Post New Message Online Post New Message
Invite your colleagues to join the Rocket Forum and grow our expert network. Share this link.

Re: Small migration issue
Reply to Group Online
Reply to Group
Reply to Sender
Reply to Sender via Email
[Ingo Stiller]
Mar 10, 2025 11:40 AM
Ingo Stiller

Hi Juliano

We are doing migration over years, but due to the not so "optimal" UF10-IDE (in our opinion) we still do coding in UF 9 :-)
And I know about the difference about Uniface 9 Trigger and Uniface 10 containers.
My compare tool tries to eleminate this difference.
(And program every week a little bit of improvment)
But in my case,
a) LPMX was and is a container
b) there is no open "ENTRY"
So the question is, why does the mogration thinks,it have to insert an "END" :-)

BTW: Found another problem challenge:
The UXREGS (component variables) will be convert to the declaration block.
Name and template are take direct from UXREGS
But with the description (UDSCR) ond comment (U_DOC) Uniface discards some infomation
If UDESCR is filled, this text is seen in UF10
If UDESCR is not filled and U_DOC is filled, the comments are migrated
But what if UDSCR and U_DOC are filled?
Uniface ignorce the "comment" *grumble*

Ingo


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

Reply to Group Online Reply to Group via Email Reply to Sender Online View Thread Forward Flag as Inappropriate Post New Message Online Post New Message via Email