Unused Keys Tool v3.0 (Beta)

AdministratorAdministrator Member, Moderator, Administrator Posts: 2,500
edited 2009-11-05 in Download section
Unused Keys Tool v3.0 (Beta)
This tool allows you to make complete analysis of key and SumIndexField usage in a Navision Database.

http://www.mibuso.com/dlinfo.asp?FileID=755

Discuss this download here.

Comments

  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    You know, Ed, this might be the single most important thing that happened to Navision. Because, in real life, not the fancy things are that what count but performance, raw speed. Well done!
  • ara3nara3n Member Posts: 9,256
    wow
    The documentation is excelent. Great Job. There is that 1 hour barrier that have to spend to compile this, and post the results for all the standard navision tables. Now risking putting this on actual database and modifying all the tables will increase the number of objects modified.
    This will be very usefull for performance trouble shooting as the author mentioned.

    Thank you.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • kauffmannkauffmann Member Posts: 56
    First of all: great idea, well done. =D>

    I encountered two problems. The first one was an errormessage about an invalid third parameter when using COPYSTR (value cannot be negative). The error occurred in Codeunit 70200 Unused Keys, Function FileAnalyse:

    Old code:
    varObjectName := DELCHR(COPYSTR(TextBuffer,PosBreacket+1,PosWhere-PosBreacket-1),'=','"');
    
    New code:
    //AJK.ns
    IF PosWhere = 0 THEN
      varObjectName := DELCHR(COPYSTR(TextBuffer,PosBreacket+1),'=','"')
    ELSE
    //AJK.ne
      varObjectName := DELCHR(COPYSTR(TextBuffer,PosBreacket+1,PosWhere-PosBreacket-1),'=','"');
    

    The second problem is much more difficult. I get an errormessage about not enough stack memory due to incorrect usage of recursive functions. :-k I have to investigate to see where this problem occurs. #-o
    A good programmer makes al the right mistakes
    My blog
  • max_hlmax_hl Member Posts: 13
    Only one problem yet.
    txt_cashregnewrecorddenied@1109400015 : TextConst 'DEU=Neuer Datensatz wurde abgelehnt!;ENU=New Record was denied!';

    Failed on english translation - "Record"
    codeunit 70200 SelectRecord
    IF (STRPOS(TextBuffer,' Record ') > 0) OR ((STRPOS(TextBuffer,' RecordRef') > 0)) THEN...

    But this is not reference.
    IF (STRPOS(TextBuffer,' Record ') > 0) OR ((STRPOS(TextBuffer,' RecordRef') > 0)) AND (STRPOS(TextBuffer, ' TextConst ') = 0) THEN...

    the helpful..
    Thanks for good utility!
  • suvidhasuvidha Member Posts: 117
    Hi,
    I’m using this tool and I get this error:

    Overflow under type conversion of Text to Text.
    Value: PayPaidDays."Professional Tax"

    in form: Tax Professional Tax
    But when i compile this form no errors!!!

    whats happening????
  • krikikriki Member, Moderator Posts: 9,112
    It means that some text is put into a text-variable that is too small.
    E.g. you want to put 'This is the string' into a Text10. The variable is too small.

    With the debugger you can check where the error occurs.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • dspasovdspasov Member Posts: 33
    Hello,
    Here you are another error to fix:
    If we have in a Codeunit setcurrentkey("Order No_", Correction); where between the fields there is a space, in this sitation the tool doesn`t mach it with the proper key from the table.
    I made test where i deleted the spaces and the tool works.

    BR
  • BeliasBelias Member Posts: 2,998
    i keep getting overflow from text to text error here!
    NoteIndexUseCalcSums(PosCalcSums : Integer;VarNameCalcSums : Text[30];FieldsStr : Text[1000])
    FieldsNo := SubStrNo(FieldsStr,',')+1;
      FOR N:= 1 TO FieldsNo DO BEGIN
        IF STRPOS(FieldsArray[N],VarNameCalcSums) > 0 THEN
          FieldsArray[N] := COPYSTR(FieldsArray[N],STRLEN(VarNameCalcSums)+2);
        FieldsArray[N] := DELCHR(SELECTSTR(N,FieldsStr),'=','"'); //HERE
        FieldsArray[N] := DELCHR(FieldsArray[N],'<>',' ');
      END;
    

    i declared the both variables (fieldsstr,fieldsarray) at lenght 1000 but i still have the error...now i changhed all field lenghts to 250...i know it's not the best approach, but it's easier like this than debugging this ton of code... :whistle:
    EDIT: neither increasing field lenght solves the problem...i give up :|
    -Mirko-
    "Never memorize what you can easily find in a book".....Or Mibuso
    My Blog
Sign In or Register to comment.