MenuSuite Analyser v1.03 (NAV)

Administrator
Member, Moderator, Administrator Posts: 2,506
MenuSuite Analyser (Navision)
Freeware, by Christophe Watrelot (cwatrelot@gesway.com), April 2006
Sure you've spent some time looking "Where is this $%#&£!!! function!"
1) ObjectDesigner, MenuSuite, select all MenuSuite objects then Export as txt.
2) Run form 89040 "Menu nodes", Functions, Import MenuSuite
You can choose a language with "Language Filter" flowfilter.
So, Don't worry, be happy!
http://www.mibuso.com/dlinfo.asp?FileID=585
Discuss this download here.
Freeware, by Christophe Watrelot (cwatrelot@gesway.com), April 2006
Sure you've spent some time looking "Where is this $%#&£!!! function!"
1) ObjectDesigner, MenuSuite, select all MenuSuite objects then Export as txt.
2) Run form 89040 "Menu nodes", Functions, Import MenuSuite
You can choose a language with "Language Filter" flowfilter.
So, Don't worry, be happy!
http://www.mibuso.com/dlinfo.asp?FileID=585
Discuss this download here.
0
Comments
-
Found a bug in it. He needs to increase the Name field in Menu Nodes to 50 characters. I got overflow error. Once increased everything worked. fine.0
-
Hi!
Report 89040
In function 'GetMenuNode(VAR pObject : Record Object)' add the following line ****
WHILE GetToken('') <> '}' DO BEGIN
Expected(';');
CASE GetToken('') OF
'Name' :
Name := GetProperty();
'CaptionML' :
GetCaptionML(NodeID);
'MemberOfMenu' :
GetNodeProperty(MemberOfMenu);
'RunObjectType' :
CASE GetProperty() OF
'Form' : RunObjectType := RunObjectType::Form;
'Report' : RunObjectType := RunObjectType::Report;
'Dataport' : RunObjectType := RunObjectType::Dataport;
'Codeunit' : RunObjectType := RunObjectType::Codeunit;
*** 'Table' : RunObjectType := RunObjectType::Table; ***
----
Then it will work, if the menuegroup uses a table. Without that line there was an unespected error.
Hope that helps.0 -
Hi!
The error message:
; was expected line ; position 4.
Error is in:
Expected(pToken : Text[30])
IF Token <> pToken THEN
ERROR(tExpected,pToken,LineNo,LinePos - STRLEN(Token));
Something is wrong with customer menu suite part of the menu.0 -
yep, I experienced problems with customer's menusuite too
how to fix it, can please anybody help?Martin Bokůvka, AxiomProvis0 -
The error Doomhammer and annar talk about is because of null value in Version list. It works if you write something in the Company menusuite Version list and do the menusuite export / import in analyzer after that.
Cheers,
vjac0 -
MenuSuite Analyser v1.01 (NAV)
Freeware, by Christophe Watrelot (cwatrelot@gesway.com), April 2006
Sure you've spent some time looking "Where is this $%#&£!!! function!"
1) ObjectDesigner, MenuSuite, select all MenuSuite objects then Export as txt.
2) Run form 89040 "Menu nodes", Functions, Import MenuSuite
You can choose a language with "Language Filter" flowfilter.
So, Don't worry, be happy!
Version 1.01:
2008-10-13 Update by Davor Perkovac (davor.perkovac@gmail.com)
Changes:
-fix for importing menusuites containing table objects
-for for importing menusuites with no version tag
http://www.mibuso.com/dlinfo.asp?FileID=585
Discuss this download here.0 -
Great Tool.
I increased the length of field name in Menu Nodes to 50, otherwise the import would stop.
Question:
Do you think it would be possible to export a menu (as text) based on the data which is in the tables? The problem I see with the menus is that they store every single change in them, although this would not be necessary.
Example:
When you delete an entry which is part of Menu 10 this is stored in Menu 90 and this information is necessary to correctly display the menu.
When you first create a new entry in Menu 90 then delete that entry in error and last restore the same entry all 3 transactions (create, delete, create) are stored in Menu 90 and this information is simply redundant. In this case it would be enough to store only the last transaction in Menu 90.
At a customer we once had a problem with lost items in the Sales & Marketing Menu and in the end I had to clear everything from the menu and then put it all back in which increased the size of Menu 90 from 230KB to 330KB.
As this tool is available since 2006 did someone already create an export tool?Frank Dickschat
FD Consulting0 -
MenuSuite Analyser v1.02 (NAV)
Freeware, by Christophe Watrelot (cwatrelot@gesway.com), April 2006
Sure you've spent some time looking "Where is this $%#&£!!! function!"
1) ObjectDesigner, MenuSuite, select all MenuSuite objects then Export as txt.
2) Run form 89040 "Menu nodes", Functions, Import MenuSuite
You can choose a language with "Language Filter" flowfilter.
So, Don't worry, be happy!
Version 1.02:
Update by Nikolay Kruglov (nkruglov@stratsol.ru)
Changes:
- redisigned objects
- separate import source texts with menusuites. It does not mention of menusuites order, replace exist, import only new
- semigraph view
- show changes history
Version 1.01:
2008-10-13 Update by Davor Perkovac (davor.perkovac@gmail.com)
Changes:
-fix for importing menusuites containing table objects
-for for importing menusuites with no version tag
http://www.mibuso.com/dlinfo.asp?FileID=585
Discuss this download here.0 -
Thank you for making this available.
In your instructions, you indicate to run form 89040. I think you mean 89140.
When I run it, I get an error There is no Menusuite Node caption within the filter. Filters: Node ID: ''
I fixed the error. It was in form 89144, in the onformat trigger of the Caption texbox:
// KHIG 04/11/08
//lMenuSuiteNodeCaption.FINDFIRST;
IF lMenuSuiteNodeCaption.FINDFIRST THEN;
// KHIG end
It would be nice to be have to option to sort by object number.0 -
Karenh wrote:I fixed the error. It was in form 89144, in the onformat trigger of the Caption texbox:Karenh wrote:It would be nice to be have to option to sort by object number.
- Sort (Sgift+F8) - Key=Object Type,Object ID
- Field Filter - Object ID <> 00 -
I fixed another error in Form 89144, Function SetCursor. A customers menusuite would import but running the main form would bring an error like "The filter !_AAHBI|||||||||||||||||||||||||||||||||||_A|_B|_C..." is invalid
GrowsFilter := pMenuSuiteNode."Scion ID"; lMenuSuiteNode.SETCURRENTKEY("Line No."); lMenuSuiteNode.SETRANGE(Level,1); IF lMenuSuiteNode.FINDSET THEN BEGIN REPEAT //- fdi01 //GrowsFilter := STRSUBSTNO('%1|%2',GrowsFilter,lMenuSuiteNode."Scion ID"); IF lMenuSuiteNode."Scion ID" <> '' THEN BEGIN IF GrowsFilter = '' THEN BEGIN GrowsFilter := lMenuSuiteNode."Scion ID"; END ELSE BEGIN GrowsFilter := STRSUBSTNO('%1|%2',GrowsFilter,lMenuSuiteNode."Scion ID"); END; END; //+ fdi01 UNTIL lMenuSuiteNode.NEXT = 0; lMenuSuiteNode := pMenuSuiteNode; WHILE lMenuSuiteNode.Level > 2 DO BEGIN lMenuSuiteNode.SETFILTER("Line No.",'..%1',lMenuSuiteNode."Line No."); lMenuSuiteNode.SETRANGE(Level,lMenuSuiteNode.Level - 1); lMenuSuiteNode.FINDLAST; //- fdi01 //GrowsFilter := STRSUBSTNO('%1|%2',GrowsFilter,lMenuSuiteNode."Scion ID"); IF lMenuSuiteNode."Scion ID" <> '' THEN BEGIN IF GrowsFilter = '' THEN BEGIN GrowsFilter := lMenuSuiteNode."Scion ID"; END ELSE BEGIN GrowsFilter := STRSUBSTNO('%1|%2',GrowsFilter,lMenuSuiteNode."Scion ID"); END; END; //+ fdi01 END; END; SETFILTER("Scion ID",GrowsFilter); FINDFIRST; CurrForm.UPDATE(FALSE); Rec := pMenuSuiteNode; CurrForm.UPDATE(FALSE);
Frank Dickschat
FD Consulting0 -
FDickschat wrote:I fixed another error in Form 89144, Function SetCursor. A customers menusuite would import but running the main form would bring an error like "The filter !_AAHBI|||||||||||||||||||||||||||||||||||_A|_B|_C..." is invalid
To fix this error we need to change the Codeunit 89140 RUN trigger
gRootNodeID := '00000000-0000-0000-0000-000000000000';
IF lMenuSuiteNode.GET(gRootNodeID) THEN
SetLineNo(lMenuSuiteNode);
lMenuSuiteNode.SETRANGE("Line No.",0);
// add new line
lMenuSuiteNode.SETFILTER("Node Type",'<>%1',lMenuSuiteNode."Node Type"::Root);
//
lMenuSuiteNode.MODIFYALL("Show Node",TRUE);
lMenuSuiteNode.MODIFYALL(Level,1);
lMenuSuiteNode.MODIFYALL("Scions Filter",'~');0 -
MenuSuite Analyser v1.03 (NAV)
Freeware, by Christophe Watrelot (cwatrelot@gesway.com), April 2006
Sure you've spent some time looking "Where is this $%#&£!!! function!"
1) ObjectDesigner, MenuSuite, select all MenuSuite objects then Export as txt.
2) Run form 89040 "Menu nodes", Functions, Import MenuSuite
You can choose a language with "Language Filter" flowfilter.
So, Don't worry, be happy!
Version 1.03:
Update by Nikolay Kruglov (nkruglov@stratsol.ru)
Changes:
- fixed error - open form with empty table
- fixed error - import MenuSuite with "hung" Node
Run form 89140 "MenuSuite Nodes"
Version 1.02:
Update by Nikolay Kruglov (nkruglov@stratsol.ru)
Changes:
- redesigned objects
- separate import source texts with menusuites. It does not mention of menusuites order, replace exist, import only new
- semigraph view
- show changes history
Version 1.01:
2008-10-13 Update by Davor Perkovac (davor.perkovac@gmail.com)
Changes:
-fix for importing menusuites containing table objects
-for for importing menusuites with no version tag
http://www.mibuso.com/dlinfo.asp?FileID=585
Discuss this download here.0 -
Hallo Christophe,
Thank you for this create tool!
I changed some of your forms to make them run with MenuSite with missing translations.89140 MenuSuite Nodes SourceExpr=Caption; OnFormat=VAR lMenuSuiteNodeCaption@1000 : Record 65427; li@1001 : Integer; BEGIN IF Text = '' THEN BEGIN IF NOT lMenuSuiteNodeCaption.GET("Node ID",WINDOWSLANGUAGE) THEN IF NOT lMenuSuiteNodeCaption.GET("Node ID",1033) THEN BEGIN lMenuSuiteNodeCaption.SETRANGE("Node ID","Node ID"); // Start kvs01.bh // lMenuSuiteNodeCaption.FINDFIRST; IF NOT lMenuSuiteNodeCaption.FINDFIRST THEN BEGIN lMenuSuiteNodeCaption.INIT; END; END; Text := STRSUBSTNO('<< %1 >>',lMenuSuiteNodeCaption.Caption);
89144 MenuSuite Graph SourceExpr=Caption; OnFormat=VAR lMenuSuiteNodeCaption@1000 : Record 65427; li@1001 : Integer; BEGIN IF Text = '' THEN BEGIN IF NOT lMenuSuiteNodeCaption.GET("Node ID",WINDOWSLANGUAGE) THEN IF NOT lMenuSuiteNodeCaption.GET("Node ID",1033) THEN BEGIN lMenuSuiteNodeCaption.SETRANGE("Node ID","Node ID"); // Start kvs01.bh //lMenuSuiteNodeCaption.FINDFIRST; IF NOT lMenuSuiteNodeCaption.FINDFIRST THEN lMenuSuiteNodeCaption.INIT; // Stop kvs01.bh END; Text := STRSUBSTNO('<< %1 >>',lMenuSuiteNodeCaption.Caption); PROCEDURE SetCursor@1(pMenuSuiteNode@1000 : Record 65426); lMenuSuiteNode.SETRANGE(Level,1); // Start kvs01.bh lMenuSuiteNode.SETFILTER("Scion ID",'<>'''''); // Stop kvs01.bh IF lMenuSuiteNode.FINDSET THEN BEGIN REPEAT // Start kvs01.bh //GrowsFilter := STRSUBSTNO('%1|%2',GrowsFilter,lMenuSuiteNode."Scion ID"); IF GrowsFilter <> '' THEN GrowsFilter += '|'; GrowsFilter += lMenuSuiteNode."Scion ID"; // Stop kvs01.bh UNTIL lMenuSuiteNode.NEXT = 0;
0 -
Hi folks.
I incorporated the patches and changed the Record Size of some properties so it works with more exotic languages like "German".
We Use "Nein" instead of "No" and other nice words.
Tested with NAV 5.0 SP1, German Version
BTW: What's a "Scion" ?
Patched Objects attached as picture.=(there is no question that cannot be used if we use our brain)=0 -
Hej
I revoked this comment: Exported the Role Tailored Menu's too!! :oops:With Kind Regards
Thoms Hviid Thorn0 -
Hi
A stupid question. Is it possible to use this tool with the Menusuites of 2009 version?
I get the following errormessage:--------------------------- Microsoft Dynamics NAV Classic --------------------------- The filter '|||||||||||||||||||||||||||||||||||||||||||||_A|_B|_C|_D|_E|_F|_G|_H|_I|_J|_K|_L|_M' is invalid. A value or an interval is missing in the filter in the Scion ID field in the MenuSuite Node table. --------------------------- OK ---------------------------
Or came this error from a other Issue?
Best regards
Jeannot Keiser0 -
I agree, it would be really nice to have this utility working with NAV2009. Current version is not working.0
-
Can this one export it to a new txt file too?0
-
djkdjk wrote:Hi
A stupid question. Is it possible to use this tool with the Menusuites of 2009 version?
I get the following errormessage:--------------------------- Microsoft Dynamics NAV Classic --------------------------- The filter '|||||||||||||||||||||||||||||||||||||||||||||_A|_B|_C|_D|_E|_F|_G|_H|_I|_J|_K|_L|_M' is invalid. A value or an interval is missing in the filter in the Scion ID field in the MenuSuite Node table. --------------------------- OK ---------------------------
Or came this error from a other Issue?
Best regards
Jeannot Keiser
Form 89411SetCursor(pMenuSuiteNode : Record "MenuSuite Node") GrowsFilter := pMenuSuiteNode."Scion ID"; <...> GrowsFilter := STRSUBSTNO('%1|%2',GrowsFilter,lMenuSuiteNode."Scion ID"); END; END; GrowsFilter := DELCHR(GrowsFilter,'<>','|'); <<---- Add this GrowsFiltertemp:= ''; FOR i := 1 TO STRLEN(GrowsFilter) DO BEGIN IF COPYSTR(GrowsFilter,i,2) <> '||' THEN GrowsFiltertemp += FORMAT(GrowsFilter[i]); END; GrowsFilter := GrowsFiltertemp; SETFILTER("Scion ID",GrowsFilter); FINDFIRST; <...>
Regards
Dan Lindström
NCSD Navision 2.00 since 1999 (Navision Certified Solution Developer)
MBSP Developer for Microsoft Dynamics NAV 20090 -
Hello Christophe Watrelot and all of you
this is a very nice tool but I receive an error when importing Company Menusuite 90
as reported in the attached file, if I import other menu objects as 10,20 or 30 I don't receive any errors, but in this case I have a further question: if I drill down to the customers card (for example) and then push on Menusuite (button)->Where Used there is nothing the Where Used form, this happens with any other form, codeunit or report among all the objects of the Menusuite Node List
So my questions is does the Where Used function work? In case can you tell me what am I doing wrong?
Thank you in advance for your attention
Regards0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions