Cleanup Old Signatures

Author: cdouglass@siriussoftware.com.au (Colin)

Hello Everyone, How do I cleanup the signatures from uniface components that have been removed? Thanks, Col Douglass

17 Comments

  1. Colin said Hi Theo,   I used the tool you developed and it works fine. One question though. It doesn't do anything with tables USLINK and USILINK. Should it? My data here has entries in both those tables referencing (using columns USLINK-->USPECNAMCAL and USILINK-->UIMPLNAMCAL) the removed component.   Thanks,

    I probably missed those tables... Will investigate when I have some time and will update the tool when needed. Will post a reply in this thread when I know more.


    Author: Theo Neeskens (tneeskens@itblockz.nl)
  2. One way is to sort the signature list by clicking on the column header for the icon column on the very left.  You will then find it sorts all the signatures with no implementation together. Unfortunately, they are about two thirds of the way down the page.  I don't believe there is any useful command line to get rid of signatures for removed components easily. 


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  3. Hi, I have made little tool that helps you find and delete signatures without implementation. Code reviews, comments etc are welcome ! http://unifaceinfo.com/wp-content/uploads/dlm_uploads/2014/06/sigclean.zip


    Author: Theo Neeskens (tneeskens@itblockz.nl)
  4. Uniface lab;  delete component ==> delete signature??  Wink


    Author: Knut (knut.dybendahl@gmail.com)
  5. Ummm, what? I can't find a delete signature anywhere in version 9.5 (Except of course the signature editor, but it's a total pain to try and find unimplemented signatures in there, hence Theo's code (which looks good)).


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  6. Sorry - only sayin...  When I delete a UF component in IDF - since UF manages to remove UFORM and all associated child records then it shouldn't really be too hard to kill the signature / operations too?


    Author: Knut (knut.dybendahl@gmail.com)
  7. Yes, I've never really understood why they remain behind. 


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  8. KnutD said Uniface lab;  delete component ==> delete signature??  Wink

    This functionality is already implemented. Laugh In case a component is deleted with the Component Integration Editor (menu Editors > Component Integration) then both component and signature are automatically deleted. Cool Therefore: the Component Editor is for deleting components, the Signature Editor is for deleting signatures, and the Component Integration Editor is for deleting both. Makes sense, or not?Wink Please forgive my irony... Smile


    Author: diseli (daniel.iseli@uniface.com)
  9. Except that the component integration editor takes something like 20 minutes to synchronise the diagram every time I go into it, and I haven't the time to wait to then find and delete a single form. It is actively hundreds of time faster to delete them both independantly. Confused Except that where you forget you are then left with useless tag ends of signatures which complain they aren't implemented on the compile. Cry All in all, the fact that they have a separate but not independent existance is mostly annoying.... Yell


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  10. diseli said
    KnutD said Uniface lab;  delete component ==> delete signature??  Wink
    This functionality is already implemented. Laugh In case a component is deleted with the Component Integration Editor (menu Editors > Component Integration) then both component and signature are automatically deleted. Cool Therefore: the Component Editor is for deleting components, the Signature Editor is for deleting signatures, and the Component Integration Editor is for deleting both. Makes sense, or not?Wink Please forgive my irony... Smile

    ahm....  Following that line of thinking.... Then I would need the Component Integration Editor to create the UF signatures..... yet I don't.... When I create a component in the Component Editor, UF creates (and compiles) the signatures automatically - it's not something I have to worry about. Conversely, when I delete a component in the Component Editor, UF does not delete the signatures automatically - therein lies the real irony Wink Cool


    Author: Knut (knut.dybendahl@gmail.com)
  11. Ok, I probably should have added some <IRONY> tags in my last post. Wink I of course also agree that the current functionality is certainly not ideal and it should be more consistent. However...

    KnutD said ahm....  Following that line of thinking.... Then I would need the Component Integration Editor to create the UF signatures..... yet I don't....

    Yes, it does. When you create a new UF component in the Component Integration Editor (e.g. a form) then it will create both the component and the signature (without even compiling the component). Smile

    KnutD said When I create a component in the Component Editor, UF creates (and compiles) the signatures automatically - it's not something I have to worry about.

    Actually, the Compiler is creating the signature and not the Component Editor itself. Smile But I agree, this is not something you have to worry about.

    KnutD said Conversely, when I delete a component in the Component Editor, UF does not delete the signatures automatically - therein lies the real irony Wink

     <IRONY> So what you actually need is a signature un-compile option for the Compiler </IRONY> Wink Ok, enough fun. Laugh


    Author: diseli (daniel.iseli@uniface.com)
  12. Or a method of starting the integration editor which doesn't take twenty minutes "Synchronising...."


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  13. Theo Neeskens said Hi, I have made little tool that helps you find and delete signatures without implementation. Code reviews, comments etc are welcome ! http://unifaceinfo.com/wp-content/uploads/dlm_uploads/2014/06/sigclean.zip

    Hi Theo,   I used the tool you developed and it works fine. One question though. It doesn't do anything with tables USLINK and USILINK. Should it? My data here has entries in both those tables referencing (using columns USLINK-->USPECNAMCAL and USILINK-->UIMPLNAMCAL) the removed component.   Thanks,


    Author: Colin (cdouglass@siriussoftware.com.au)
  14. Yeah, it's that whole "I don't know which entities the component code is stored in", problem that would make me extremely wary of any home grown insert/delete on the model.  For example, if your IDF does not use the cross reference data, then your investigation would not indicate the changes in here. Since the cross reference file is across many objects, finding the component name in the data may be a matter of luck. This would then allow for incorrect data in the IDF, which we have limited idea of the inherent data integrity requirements.  I certainly would be reluctant to help one of my customers who came to me with "I wrote this routine to delete orders from the data and now the whole orders database is giving me the wrong calculations", and I expect Uniface would be in much the same boat.  The problem WE have as developers is that we have to learn to live with the shortcomings (not the bugs but the design 'flaws') for two more years until we can (Hopefully) get on the Version 10 bandwagon, and have some hope of influencing the ongoing development. Until then, I fear we are 'tail end charlie' on the development schedule. 


    Author: Iain Sharp (i.sharp@pcisystems.co.uk)
  15. Just do it the dITo way and start with an empty repository.   create a new component "DITOFIND" with entity and fields etc., including compile. go to the assembly workbench (wait until their part of data are created).   Now EXPORT all of the repository to myfind.exp in the dosbox, use: find /n "&lt;DSC " myfind.exp &gt; myfind.entities find /n "DITOFIND" myfind.exp &gt; myfind.formfields   It's EASY


    Author: ulrich-merkel (ulrichmerkel@web.de)
  16. From a customer point of view, I think it's better to write a "component delete" form on our own, which deletes components including all connected occurences rather than try to remove half of the debris left over from the Global Actions. Perhaps I will spend some time as a dITo project with some hints how these infos are collected and evaluated. If we create our own tool, we can have it now. P.S. As the data model documentation can NOT be trusted, it takes some investigation at first which records are created when a new component is compiled. All of them should have the formname somewhere in the record, so it's not too hard to find them, especially if we start with an empty repository at first.


    Author: ulrich-merkel (ulrichmerkel@web.de)
  17. Hi, it took me some time to do this but now I have updated the Signature Cleaner to include USLINK and USILINK. I have replaced the download at: http://unifaceinfo.com/downloads/download-info/signature-cleaner/   Unfortunately it still won't cleanup ALL unused signatures, because there is a bug in the Global Actions screen. See this discussion: http://unifaceinfo.com/forum/unifacedevelopment/global-actions-component-delete/#p6048442


    Author: Theo Neeskens (tneeskens@itblockz.nl)