Skip to main content

Hi UnifAce

Don't know if this is an error, a bug or a feature:-)

Assume a simple component to work with in IDE.
Modify the proccode in an entity proc container (UXGROUP)
Now call an external component (via IDE-Plugin) which loops through all proc containers of the component.

a) In the external programm I can read the stored UFORM but UXGROUP is still unmodified (i.e. the old proc code)
b) Back in IDE, the trigger in UXGROUP is still the modified version .
c) Try to compile the component to store the component for sure in whole
d) got strange errros

1) After playing around an try to call the plugin once again:
   [startUserOption] User action failed to complete. Failed to process message. [error=-100000] Coding error

2) Compiling

==============  Exception log  [11-jul-24 09:07:17]  =================
  Error       : -100006
  Description : Store failed.
  Context     : 
[context]
  [ID] = "LOCK_ERROR"
  [STATUS] = "-10"
  [MAINUDO_ID] = "cpt:IP1100T2"
  [PROCERROR] = "-10"
  [PROCERRORCONTEXT] = "ERROR=-10MNEM=<UIOSERR_LOCK_DATA_MISMATCH>DESCRIPTION=Lock, data mismatchCOMPONENT=UC_CPTPROCNAME=184\\LOCKTRIGGER=LOCKLINE=1PROCLINE=lock "
  [DBERROR] = "0"
  [DBERRORTEXT] = ""
  [ENTITY] = "UXGROUP"
  [KEY] = "ULABEL.UXGROUP.DICT=PC_TRGUBASE.UXGROUP.DICT=FAV_DATENBASISUFORM.UXGROUP.DICT=IP1100T2"

  Callstack   : 
    Component  Instance        Type            Proc Container  Proc Module  Line Nr                          Code
    ---------  --------        ----            --------------  -----------  -------                          ----
    UC_CPT     _ALIAS00000007  .               MOD                          entry THROWDATABASEIOEXCEPTION   4     call THROWIOEXCEPTION("Store failed.",VCONTEXT,$proccontext("STACK"))                                                      
    UC_CPT     _ALIAS00000007  UXGROUP.DICT    TRG                          occTrigger LOCK                  4     return (THROWDATABASEIOEXCEPTION("LOCK_ERROR","UXGROUP","DICT",$status,$procerror,$procerrorcontext,$dberror,$dberrortext))
    UC_CPT     _ALIAS00000007  ENT.UDO         CLL                          collOperation PRIVATE_SDOSETMOD  40    @VFIELDNAME = VSDOFIELDVALUE                                                                                               
    UC_CPT     _ALIAS00000007  ENT.UDO         CLL                          collOperation SDOTODBOCCITERATE  8      $collhandle(ENT.UDO)->private_sdoSetMod(VSDOTYPE,1)                                                                       
    UC_CPT     _ALIAS00000007  CPT.UDO         CLL                          collOperation SDOTODBOCCITERATE  21     $collhandle(ENT.UDO)->sdoToDboccIterate()                                                                                 
    UC_CPT     _ALIAS00000007  CPT.UDO         CLL                          collOperation PREWRITE           2      $collhandle(CPT.UDO)->sdoToDboccIterate()                                                                                 
    UC_CPT     _ALIAS00000007  .               MOD                          entry STOREDATA                  27     $collhandle(CPT.UDO)->preWrite()                                                                                          
    UC_CPT     _ALIAS00000007  .               OPR                          operation UC_SAVEMAINUDO         2     call STOREDATA(1)                                                                                                          
    UC_MAIN    UC_MAIN         .               OPR                          operation MC_ENDLOCKCOMMIT       64    activate VINSTANCE."UC_SAVEMAINUDO"(  )                                                                                    
    UV_CODE    _ALIAS00000018  .               MOD                          entry SAVEMAINUDO                16    activate "UC_MAIN"."MC_ENDLOCKCOMMIT"( VCONTROLLERURL , VTXENDED )                                                         
    UV_CODE    _ALIAS00000018  CODEBOX.LAYOUT  OCC                          occOperation SAVEALL             31    call SAVEMAINUDO(0)                                                                                                        
    UV_CODE    _ALIAS00000018  .               TRG                          trigger LOSEFOCUS                44     $occhandle(CODEBOX.LAYOUT)->saveAll()                                                                                     
    IDE                        .               MOD                          entry START_IDE                  294   apstart                                                                                                                    
    IDE                        .               TRG                          trigger APSTART                  31    call START_IDE()                                                                                                           


Last lines before this message are

Act <lock> ent UXGROUP, occ 9
Act <error> ent UXGROUP, occ 9
End <error> ent UXGROUP, occ 9, status -1
ERROR=-10MNEM=<UIOSERR_LOCK_DATA_MISMATCH>DESCRIPTION=Lock, data mismatchCOMPONENT=UC_CPTPROCNAME=184\\LOCKTRIGGER=LOCKLINE=1PROCLINE=lock 
Act <OPER> es UEXCEPTION

Could it be that the IDE forget to store and commint all modfied subentities (UXGROUP,UXFIELD)  when loosing focus?
Without being sure that the component is stored in its entirety in the database, an external plugin makes no sense :-(

Anyone else who also gets such errors ?


Ingo



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

Hi UnifAce

Don't know if this is an error, a bug or a feature:-)

Assume a simple component to work with in IDE.
Modify the proccode in an entity proc container (UXGROUP)
Now call an external component (via IDE-Plugin) which loops through all proc containers of the component.

a) In the external programm I can read the stored UFORM but UXGROUP is still unmodified (i.e. the old proc code)
b) Back in IDE, the trigger in UXGROUP is still the modified version .
c) Try to compile the component to store the component for sure in whole
d) got strange errros

1) After playing around an try to call the plugin once again:
   [startUserOption] User action failed to complete. Failed to process message. [error=-100000] Coding error

2) Compiling

==============  Exception log  [11-jul-24 09:07:17]  =================
  Error       : -100006
  Description : Store failed.
  Context     : 
[context]
  [ID] = "LOCK_ERROR"
  [STATUS] = "-10"
  [MAINUDO_ID] = "cpt:IP1100T2"
  [PROCERROR] = "-10"
  [PROCERRORCONTEXT] = "ERROR=-10MNEM=<UIOSERR_LOCK_DATA_MISMATCH>DESCRIPTION=Lock, data mismatchCOMPONENT=UC_CPTPROCNAME=184\\LOCKTRIGGER=LOCKLINE=1PROCLINE=lock "
  [DBERROR] = "0"
  [DBERRORTEXT] = ""
  [ENTITY] = "UXGROUP"
  [KEY] = "ULABEL.UXGROUP.DICT=PC_TRGUBASE.UXGROUP.DICT=FAV_DATENBASISUFORM.UXGROUP.DICT=IP1100T2"

  Callstack   : 
    Component  Instance        Type            Proc Container  Proc Module  Line Nr                          Code
    ---------  --------        ----            --------------  -----------  -------                          ----
    UC_CPT     _ALIAS00000007  .               MOD                          entry THROWDATABASEIOEXCEPTION   4     call THROWIOEXCEPTION("Store failed.",VCONTEXT,$proccontext("STACK"))                                                      
    UC_CPT     _ALIAS00000007  UXGROUP.DICT    TRG                          occTrigger LOCK                  4     return (THROWDATABASEIOEXCEPTION("LOCK_ERROR","UXGROUP","DICT",$status,$procerror,$procerrorcontext,$dberror,$dberrortext))
    UC_CPT     _ALIAS00000007  ENT.UDO         CLL                          collOperation PRIVATE_SDOSETMOD  40    @VFIELDNAME = VSDOFIELDVALUE                                                                                               
    UC_CPT     _ALIAS00000007  ENT.UDO         CLL                          collOperation SDOTODBOCCITERATE  8      $collhandle(ENT.UDO)->private_sdoSetMod(VSDOTYPE,1)                                                                       
    UC_CPT     _ALIAS00000007  CPT.UDO         CLL                          collOperation SDOTODBOCCITERATE  21     $collhandle(ENT.UDO)->sdoToDboccIterate()                                                                                 
    UC_CPT     _ALIAS00000007  CPT.UDO         CLL                          collOperation PREWRITE           2      $collhandle(CPT.UDO)->sdoToDboccIterate()                                                                                 
    UC_CPT     _ALIAS00000007  .               MOD                          entry STOREDATA                  27     $collhandle(CPT.UDO)->preWrite()                                                                                          
    UC_CPT     _ALIAS00000007  .               OPR                          operation UC_SAVEMAINUDO         2     call STOREDATA(1)                                                                                                          
    UC_MAIN    UC_MAIN         .               OPR                          operation MC_ENDLOCKCOMMIT       64    activate VINSTANCE."UC_SAVEMAINUDO"(  )                                                                                    
    UV_CODE    _ALIAS00000018  .               MOD                          entry SAVEMAINUDO                16    activate "UC_MAIN"."MC_ENDLOCKCOMMIT"( VCONTROLLERURL , VTXENDED )                                                         
    UV_CODE    _ALIAS00000018  CODEBOX.LAYOUT  OCC                          occOperation SAVEALL             31    call SAVEMAINUDO(0)                                                                                                        
    UV_CODE    _ALIAS00000018  .               TRG                          trigger LOSEFOCUS                44     $occhandle(CODEBOX.LAYOUT)->saveAll()                                                                                     
    IDE                        .               MOD                          entry START_IDE                  294   apstart                                                                                                                    
    IDE                        .               TRG                          trigger APSTART                  31    call START_IDE()                                                                                                           


Last lines before this message are

Act <lock> ent UXGROUP, occ 9
Act <error> ent UXGROUP, occ 9
End <error> ent UXGROUP, occ 9, status -1
ERROR=-10MNEM=<UIOSERR_LOCK_DATA_MISMATCH>DESCRIPTION=Lock, data mismatchCOMPONENT=UC_CPTPROCNAME=184\\LOCKTRIGGER=LOCKLINE=1PROCLINE=lock 
Act <OPER> es UEXCEPTION

Could it be that the IDE forget to store and commint all modfied subentities (UXGROUP,UXFIELD)  when loosing focus?
Without being sure that the component is stored in its entirety in the database, an external plugin makes no sense :-(

Anyone else who also gets such errors ?


Ingo



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

Hi
I tried to figure out, what happens in the background.

But now all going well. Very strange.

But about about refresh in IDE
Just for fun I did assign (in the callback operation)
pRedirectionUrl="UDE:STARTPAGE"
Okay, my extrenal component returns and voila the startpage is in focus.
But when try to modfy again in the component, I got an data missmatch error.
This due to the fact, that I did modify the component in the background.
But the refresh flag was set
pRefresh =1

It looks like, the pRefresh refrers to pRedirectionUrl but not on the original pURL

a) There is a need for a extended interface (IDE_API_2)
  params
    string  pObjectUrl       : in
    numeric pRefresh         : out
    string  pRedirectionUrl  : out
    numeric pRefreshRedirect : out
  endparams

b) And/or a check when a workshet item got focus, if is still up-to-date.
  
Ingo



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

Hi
I tried to figure out, what happens in the background.

But now all going well. Very strange.

But about about refresh in IDE
Just for fun I did assign (in the callback operation)
pRedirectionUrl="UDE:STARTPAGE"
Okay, my extrenal component returns and voila the startpage is in focus.
But when try to modfy again in the component, I got an data missmatch error.
This due to the fact, that I did modify the component in the background.
But the refresh flag was set
pRefresh =1

It looks like, the pRefresh refrers to pRedirectionUrl but not on the original pURL

a) There is a need for a extended interface (IDE_API_2)
  params
    string  pObjectUrl       : in
    numeric pRefresh         : out
    string  pRedirectionUrl  : out
    numeric pRefreshRedirect : out
  endparams

b) And/or a check when a workshet item got focus, if is still up-to-date.
  
Ingo



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

Just another whish for IDE-API_2 :-)

The callback for an action should have an "additional" parameter

The menu structure have to be extende by a new sub element "additional"

[menu]
 [option]
 [label] = "Option 1"
 [component] = "MY_CPT"
 [operation] = "doOption1"
 [enabled] = 1
 [additonal] = "my parametes"

And the call back operation should be extended

public operation ide_cb_oper1
  params
   string  pRedirectionUrl : out
   numeric pRefresh        : out
   string  pAdditional      : in
  endparams

public operation ide_cb_oper2
 params
    string  pObjectUrl       : in
    numeric pRefresh         : out
    string  pRedirectionUrl  : out
    numeric pRefreshRedirect : out
    string  pAdditional       : in
  endparams

The IDE should then be call with addition item in pAdditional. 

Background:
With tis addtional I can use the same call back function from different menu items 
Lets say you have a operation to compile forms in a batch
Menu items
 "Compile components: Internal ones"
 "Compile components: Customer ones"


Ingo



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

Hi UnifAce

Don't know if this is an error, a bug or a feature:-)

Assume a simple component to work with in IDE.
Modify the proccode in an entity proc container (UXGROUP)
Now call an external component (via IDE-Plugin) which loops through all proc containers of the component.

a) In the external programm I can read the stored UFORM but UXGROUP is still unmodified (i.e. the old proc code)
b) Back in IDE, the trigger in UXGROUP is still the modified version .
c) Try to compile the component to store the component for sure in whole
d) got strange errros

1) After playing around an try to call the plugin once again:
   [startUserOption] User action failed to complete. Failed to process message. [error=-100000] Coding error

2) Compiling

==============  Exception log  [11-jul-24 09:07:17]  =================
  Error       : -100006
  Description : Store failed.
  Context     : 
[context]
  [ID] = "LOCK_ERROR"
  [STATUS] = "-10"
  [MAINUDO_ID] = "cpt:IP1100T2"
  [PROCERROR] = "-10"
  [PROCERRORCONTEXT] = "ERROR=-10MNEM=<UIOSERR_LOCK_DATA_MISMATCH>DESCRIPTION=Lock, data mismatchCOMPONENT=UC_CPTPROCNAME=184\\LOCKTRIGGER=LOCKLINE=1PROCLINE=lock "
  [DBERROR] = "0"
  [DBERRORTEXT] = ""
  [ENTITY] = "UXGROUP"
  [KEY] = "ULABEL.UXGROUP.DICT=PC_TRGUBASE.UXGROUP.DICT=FAV_DATENBASISUFORM.UXGROUP.DICT=IP1100T2"

  Callstack   : 
    Component  Instance        Type            Proc Container  Proc Module  Line Nr                          Code
    ---------  --------        ----            --------------  -----------  -------                          ----
    UC_CPT     _ALIAS00000007  .               MOD                          entry THROWDATABASEIOEXCEPTION   4     call THROWIOEXCEPTION("Store failed.",VCONTEXT,$proccontext("STACK"))                                                      
    UC_CPT     _ALIAS00000007  UXGROUP.DICT    TRG                          occTrigger LOCK                  4     return (THROWDATABASEIOEXCEPTION("LOCK_ERROR","UXGROUP","DICT",$status,$procerror,$procerrorcontext,$dberror,$dberrortext))
    UC_CPT     _ALIAS00000007  ENT.UDO         CLL                          collOperation PRIVATE_SDOSETMOD  40    @VFIELDNAME = VSDOFIELDVALUE                                                                                               
    UC_CPT     _ALIAS00000007  ENT.UDO         CLL                          collOperation SDOTODBOCCITERATE  8      $collhandle(ENT.UDO)->private_sdoSetMod(VSDOTYPE,1)                                                                       
    UC_CPT     _ALIAS00000007  CPT.UDO         CLL                          collOperation SDOTODBOCCITERATE  21     $collhandle(ENT.UDO)->sdoToDboccIterate()                                                                                 
    UC_CPT     _ALIAS00000007  CPT.UDO         CLL                          collOperation PREWRITE           2      $collhandle(CPT.UDO)->sdoToDboccIterate()                                                                                 
    UC_CPT     _ALIAS00000007  .               MOD                          entry STOREDATA                  27     $collhandle(CPT.UDO)->preWrite()                                                                                          
    UC_CPT     _ALIAS00000007  .               OPR                          operation UC_SAVEMAINUDO         2     call STOREDATA(1)                                                                                                          
    UC_MAIN    UC_MAIN         .               OPR                          operation MC_ENDLOCKCOMMIT       64    activate VINSTANCE."UC_SAVEMAINUDO"(  )                                                                                    
    UV_CODE    _ALIAS00000018  .               MOD                          entry SAVEMAINUDO                16    activate "UC_MAIN"."MC_ENDLOCKCOMMIT"( VCONTROLLERURL , VTXENDED )                                                         
    UV_CODE    _ALIAS00000018  CODEBOX.LAYOUT  OCC                          occOperation SAVEALL             31    call SAVEMAINUDO(0)                                                                                                        
    UV_CODE    _ALIAS00000018  .               TRG                          trigger LOSEFOCUS                44     $occhandle(CODEBOX.LAYOUT)->saveAll()                                                                                     
    IDE                        .               MOD                          entry START_IDE                  294   apstart                                                                                                                    
    IDE                        .               TRG                          trigger APSTART                  31    call START_IDE()                                                                                                           


Last lines before this message are

Act <lock> ent UXGROUP, occ 9
Act <error> ent UXGROUP, occ 9
End <error> ent UXGROUP, occ 9, status -1
ERROR=-10MNEM=<UIOSERR_LOCK_DATA_MISMATCH>DESCRIPTION=Lock, data mismatchCOMPONENT=UC_CPTPROCNAME=184\\LOCKTRIGGER=LOCKLINE=1PROCLINE=lock 
Act <OPER> es UEXCEPTION

Could it be that the IDE forget to store and commint all modfied subentities (UXGROUP,UXFIELD)  when loosing focus?
Without being sure that the component is stored in its entirety in the database, an external plugin makes no sense :-(

Anyone else who also gets such errors ?


Ingo



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

Hi Ingo,

IMHO a software enabling to include external plugins:
should complete its own transaction before running any external plugin
but ...
it could also decide to run external plugins in their trasactions

My 2 cents...

Regards,
Gianni



------------------------------
Gianni Sandigliano
IT
------------------------------

Hi Ingo,

IMHO a software enabling to include external plugins:
should complete its own transaction before running any external plugin
but ...
it could also decide to run external plugins in their trasactions

My 2 cents...

Regards,
Gianni



------------------------------
Gianni Sandigliano
IT
------------------------------

if you are using sqlite as your DICT then by default there is a database lock and you will get locking issues.... 

My guess, is anything called via the menu will be in the same transaction.



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