Find operation returns matches for deleted items

After deleting some alarms from a Citect 2018R2 update 07 system (including deleting various alarm records, variable tags, labels, Cicode file updates and removing genie instances from Pages) I then ran a 'Find' on one of the deleted alarm references to ensure I'd not missed anything.

But instead if getting the expected '0 matches' result the 'Find' produced multiple hits for the deleted alarm reference, all of which with 'Item' and 'Location' columns blank in the Find results window. So double-clicking on any of them (or clicking Go To button) has no effect. All of the matches were with 'Graphics' checked under Search options, if Graphics is un-checked then no matches are found.

I've now tried Packing the project, performing Update Pages on the project, and even (as a test) deleting the applicable Page and trying again. None of these things have resolved the issue.

Are the matches being detected in the pgdynobj.DBF file?

Has anyone else seen this before and can anybody suggest how it can be resolved?

Thanks

  • You could try to recreate the fast runtime display to see if it will make any difference:
    1. from the Graphic Builder, select Options
    2. unselect Fast Runtime Display
    3. then pack libraries in Active and Include projects
    4. update page in Active and included projects
    5. compile without the incremental option selected.
    6. go again at step 2 and select again Fast Runtime Display
    7. perform 2, 3, 4, 5

    At this stage see if the searching still has the references that you saw before.
    You can open the pgdynobj.DBF to see if you still have any reference there.
  • Hi Antonio.

    I followed your instructions but unfortunately the outcome was the same - I still get 27 hits from the Find tool for an alarm that has been fully deleted.
    As you suggested I managed to take a look at the pgdynobj.DBF (I dragged it into Excel to view, is there a better way of opening this file?) and sure enough I can see the same hits from the Find results in that file, so at least I know that's where they are being found.

    Thanks
    Ash
  • "Pack Libraries in Active and Included Project" should have done the trick according to this tech note.

    https://softwaresupportsp.aveva.com/#/okmimarticle/docid/tn3212

    Otherwise you might need to raise this with support.

  • I used a simple DBF viewer (DBFNavigator).
    You may try opening using this software and pack it to see if this may solve the problem.
    I think I agree with to report it to support may be using a small project where you have the same issue.
  • Yes I have also raised it formally with support. As I said I tried Packing Libraries (for Active project and for Active project and included projects) but that doesn't help.

    This isn't causing us any issues at runtime (none that we know of anyway!) and we compile with 0 warnings, so I would say it's a low priority issue. It just begs the question, how many other items have we deleted that also have this problem?

    I think I'll now wait to see what the advice from support is.

    Thanks
    Ash
  • It could be remnants of the deleted items in the CTG file. Have you tried turning off the option "Fast Update Pages" in the Graphics Builder and then perform an Update Pages on the project?

    I usually perform a text search on all files in a project using Total Commander when I doubt the results of Citect's Search and Replace tool. When I find a remnant of text in the CTG but not in the CTF file, then it's not important. CTG files are not cleaned very good by the Graphics Builder.

    For Total Commander there's also a nice plugin to be able to quickly view dbf files, called BaseView.
    For editing Citect dbf files I only use Citect's official Excel AddOn. Other external tools, like the old Citect SAVE_DBF macro and OpenOffice can break the integrity of the dbf files very easily.

    Regards,
    Patrick
  • There are a couple things in play here. In V8.10 the Update Pages mechanism was changed (this is also true for 8.20 which this issue was raised against). The change was subtle, but it basically brought back ownership of tracking page changes into Citect Studio/Graphics Builder. So if you edited any files outside, it could cause issues.

    Way way back in my project delivery days, I also observed similar issues. It wasn't the CTG that was at fault, but actually the pages*.dbf files that had not been cleaned up correctly. The blame lies squarely with Graphics Builder. The CTG file is the master of graphics info. When saving pages, it updates the CTG then DBFs. The DBF files are simply there for the compiler. I really whish the compiler could be enhanced to read the CTG directly and we remove the pages*.DBF entirely.

    Anyway, the solution at the time was to delete all pg*.dbf files from the project (and all include projects) - except for the pglang.dbf. Then do an update pages. The problem with this approach is that it won't work on new Citect Studio, due to the aforementioned change to the update pages functionality. So the only solution now is to either open each page manually and save, or use Graphics Builder Automation interface to do the same. This will then gaurantee that the info in the DBF matches what is in the CTG. The CTF is simply a bitmap equivalent of CTG for loading pages faster in runtime.
  • I believe that processes that I suggested to Ash should somehow recreate the CTF.
    If the issue persists the best is to use the graphic builder automation as you suggested.
    Do you have an example of this script? It may be good to add it on the toolbox.