Navision Object Manager
I have been working on an object management development tool on and off for about a year. I call it Object manager. I have been using it productively in my work for the last 8 months and have been enhancing it as I go. I would like to offer it to everyone as a group project. Currently the object IDs are in the 87500 range, so only developer licenses could have access. Maybe this can be changed soon with some add-on range objects.
The project touches these major areas so far:
Object History with restoration
Projects with Objects
CodeSafe - an automatic object backup feature
Text Compare - using a modified version of the compare tool
Enhance Object Import/Export using a new file format .vso (very silly object)
Multi user Object Locks
Upgrades
Object Date/Time Compare
It is a very useful tool as it is, but I think if we all used our heads and skills together it could be fantastic and increase everyone's productivity.
I would be glad to post and/or email the objects to anyone who is interested.
If anyone is interested in working on this project, please email me and we can get this organized and going.
New version:
Now includes objects and database.
http://www.mibuso.com/dlinfo.asp?FileID=480
Discuss this download here.
Comments
and it doesnt seem to auto add objects to codesafe when i click design.
otherwise - its an AMAZING tool, which i hope matures asap, cause we need something like that terribly!
What do you mean by an english interface... ( Do you mean my english is so bad it needs to be translated into english 8-[ )
The process I used for codesafe was to check first if the date/time version of the object was in history and if it was, not add it to codesafe
But I think it might be better to always add it to codesafe then there would be no confusion-- Good Suggestion!
We could have a way to delete codesafe at the end of the day and/or on demand.
I tried as many ways as I could think of to open Object designer automatically if itv wasn't but I couldn't get it to work. I have an incomplete understanding of the SendKeys functionality.
When I tried I got a looping condition where multiple copies of Object Designer Kept Opening (so I made it manual with a check if it was open
If you or anyone knows how to fix this it would help the tool greatly.
Steve
I have been working on an object management development tool on and off for about a year. I call it Object manager. I have been using it productively in my work for the last 8 months and have been enhancing it as I go. I would like to offer it to everyone as a group project. Currently the object IDs are in the 87500 range, so only developer licenses could have access. Maybe this can be changed soon with some add-on range objects.
The project touches these major areas so far:
Object History with restoration
Projects with Objects
CodeSafe - an automatic object backup feature
Text Compare - using a modified version of the compare tool
Enhance Object Import/Export using a new file format .vso (very silly object)
Multi user Object Locks
Upgrades
Object Date/Time Compare
It is a very useful tool as it is, but I think if we all used our heads and skills together it could be fanta stic and increase everyone's productivity.
I would be glad to post and/or email the objects to anyone who is interested.
If anyone is interested in working on this project, please email me and we can get this organized and going.
New version:
Now objects and database.
Important:
Needs also following download: Navision Object Manager - Mod
http://www.mibuso.com/dlinfo.asp?FileID=480
Discuss this download here.
I'm running Nav 4.0 on Win2k (all patches applied).
Any ideas?
Thanks,
D
This fbk file is from 3.7.
You need to restore this into a new empty 4.0 Database. the problem is that rounding precision is no longer a field in the service mgt. setup table in 4.0. so you are getting the error when you try to restore on top of an existing 4.0 DB.
If you are using the Object Manager in 4.0 you will not have the menusuite or xml object types available (the rest of the functionality will work however)
A 4.0 version is not available yet, but is in the works
I hope this helps.
Thanks for your interest
Steve
You have some very interesting functionality here; I'll give you a more indepth opinion when I've putzed around with it more.
Thanks,
D
Thanks for trying it out I look forward to hearing from you
steve
one question and one idea:
question: I've got some objects added to project and I want to export them into FOB file (not VSO). How can I do this? #-o #-o [-o<
idea: maybe there should be some table which can allow users to modify keys, which are sended via SendKeys function. for example our czech Navision has got different keyboard shortcuts than english navision, so we must switch languages between czech for testing and english for OM usage.... I think, this could be great advantage [-o< [-o<
how do i delete objects?
so you're saying just send shift+12 to navision isn't enough to open OD?
Thanks for the interest and kind words.
To export a project's objects as a fob here are the steps:
From OM main form
Choose your project
Object Management menu > projects> Export project Objects as text
This runs sendKeys looping through the objects in the project and marking and filtering them in Objec t Designer and opening the Export Objects File Dialog in the text export mode. Change the File name to reflect a .fob instead of .txt and change the Save as Type to fob and it will export as a fob.
There should be a choice also for export as fob It's just not there yet.
Also this could be done from the project card too.
I have not worked yet with the multilanguage functions in Navision But That's a great idea.
I will look into implementing it.
Thanks for your ideas
Thanks again,
Steve
PS Martin, would you be interested in working on making the Run Object Manager CodeUnit 87505 Multilanguage? That would be a great help.
Thanks for your interest.
Sorry I misunderstood you. You were right it does need the english language for sendkeys I didn't know they were different in other languages (I should get out more )
To delete an object:
On the main OM form
Object Management Menu > Objects > Delete
The reason you would use this is it gives you the option of deleting all the history and the codesafe of the object as well as the object itself.
Otherwise go to Object Designer and delete as usual.
Yes shift F12 is enough to open OD, I'm a mouse guy and liked the button .
Steve
Thanks for the suggestion.
I think I will try this.
I will see if I can make the sendKey command Text constants and then we can add different languages as people submit the variations they need.
I think this may be the way to go.
Steve
PS Maybe Martin and MrQQ and you and I could collaborate on this.
Name ConstValueNL ConstValueENU
OBJECTDESIGNER_____NL= +{F12} EU= +{F12} TABLEFILTER_________NL= ^{F7} ENU= ^{F7} FILEMENU____________NL= %B ENU= %F EXPORTMENU_________NL= x ENU= t OPENDESIGNERFROMFORM_______________NL= ^{F2} ENU= ^{F2} OPENDESIGNERFORMOBJECTDESIGNER____NL= %e ENU= %d APPLY___________NL= %t ENU= %a ALLOBJECTS_____NL= %a ENU= %a ALLRECORDS_____NL= ^+{F7} ENU= ^+{F7} SELECTALL_______NL= ^a ENU= ^a
Here ya go
In the current version I am sending these shortcuts directly to sendKeys as a literal strings but
There is a SendString function which loops through a string and calls sendletter
A SendLetter function which has a case statement that sendKeys a specific letter or symbol or number.
I will be using these two functions and text constants in the new version.
So I need the string equivalent for each of these American English keyboard shortcuts and some Text Constants
first some definitions
% = alt
^ = cntrl
+ = shift
+{F12} open OD
+^{F7} clear filters
These chose the object type buttons on object designer:
%B{HOME}^{HOME}{TAB} Table
%M{HOME}^{HOME}{TAB} Form
%P{HOME}^{HOME}{TAB} Report
%O{HOME}^{HOME}{TAB} Dataport
%C{HOME}^{HOME}{TAB} Codeunit
XML Port
Menusuite
%A{HOME}^{HOME}{TAB} All
^HOME
TAB
^ END
ENTER Enter
%D open object in design mode
%R run object
%N New Object
F11 compile object
Labels the text compare file new and old so the equivalent
I need a word for New and a word for Old.
a letter for the object types
T table
F form
R report
D dataport
C codeunit
X xml port
M menusuite
.txt
added to a project export in txt _Obj.txt
Whatever the keyboard shortcuts are on the export file dialog
Save In
File Name
Save as type
Save
^{F1} this marks an object
%VM this is menu view > marked only
%FT this is menu file > export
%el this is menu edit > select all
This is a start you can explore CU 87505 in case I missed any.
Steve
we crossed in the mail
ENU = '{ENTER}' Enter
NL = '{ENTER}' Enter
ENU=%D open object in design mode
NL=%E
ENU=%(R) run object
NL=%E
ENU=%(N) New Object
NL=%N
I need a word for New and a word for Old.
ENU=New
NL=Nieuw
ENU=Old
NL=Oud
a letter for the object types
ENU = T table
NL = T
ENU = F form
NL = M
ENU = R report
NL = R
ENU = D dataport
NL = D
ENU = C codeunit
NL = C
ENU = X xml port
NL = X
ENU = M menusuite
NL = M
Whatever the keyboard shortcuts are on the export file dialog
FILE:
ENU=%F
NL=%B
EXPORT:
ENU=T
NL=X
FILENAME:
ENU=?
NL=%N
TYPE:
ENU=?
NL=%T
VIEW
ENU = %V this is menu view
NL = %D
MARKEDONLY
ENU = M > marked only
NL = E
EDIT
ENU = %e
NL = %w
SELECT ALL
ENU = l this is menu edit > select all
NL = A
For the SELECT ALL you might find it more convenient to use the CTRL+A combination, that a lot faster and you wont see the menu.
SELECT ALL
ENU = ^A
NL = ^A
MIND THAT THE SAVEAS DIALOG USES THE WINDOWS LANGUAGE AND NOT THE NAVISION LANGAUGE #-o
Try using multiple text constants so you get something human readable like this:
Sendkeys(FILE + EXPORT)[/b]
I will be implementing this as my next project this week
Steve
i'll write czech keybord shortcuts for localization (thanks to janpieter for listing :-)
I presume all F-keys are the same.
ENU = '{ENTER}' Enter
NL = '{ENTER}' Enter
ENU=%D open object in design mode
CSY=%G
ENU=%(R) run object
CSY=%R
ENU=%(N) New Object
CSY=%W
I need a word for New and a word for Old.
ENU=New
CSY=Nový
ENU=Old
CSY=Starý
a letter for the object types
ENU = T table
CSY = B
ENU = F form
CSY = M
ENU = R report
CSY = P
ENU = D dataport
CSY = D
ENU = C codeunit
CSY = C
ENU = X xml port
CSY = X
ENU = M menusuite
CSY = M
Whatever the keyboard shortcuts are on the export file dialog
FILE:
ENU=%F
CSY=%S
EXPORT:
ENU=T
CSY=X
FILENAME:
ENU=?
CSY=%N
TYPE:
ENU=?
CSY=%T
VIEW
ENU = %V this is menu view
CSY = %Z
MARKEDONLY
ENU = M > marked only
CSY = U
EDIT
ENU = %e
CSY = %A
SELECT ALL
ENU = l this is menu edit > select all
CSY = A
For the SELECT ALL you might find it more convenient to use the CTRL+A combination, that a lot faster and you wont see the menu.
SELECT ALL
ENU = ^A
^ = ^A
MIND THAT THE SAVEAS DIALOG USES THE WINDOWS LANGUAGE AND NOT THE NAVISION LANGAUGE #-o
Try using multiple text constants so you get something human readable like this:
Sendkeys(FILE + EXPORT)[/b][/quote]
Thanks for you input.
I am working on the multilanguage Run Object Designere Codeunit this week. I'll keep yopu posted on my progress
Steve
You referenced this sendkey
Sendkeys(FILE + EXPORT)[/b]
What does the [/b] mean?
I have had no luck at all trying to send variables to sendkeys.
I can only send literal strings
How do i send variables?
I am using the shell sendkeys
Thanks
Steve
Sorry the \b i think its a leftover of trying to get the text in bold. The \b should not be there ... :-k
What i did is create this function in Navision as kind of wrapper in Navision and that works. lclsShell is a local variable of type automations, subtype 'Windows Script Host Object Model'.WshShell
Like this i think you shoud be able to send text constants, though i didnt try it.
Regards
Jan-Pieter
I'll try it
steve
The text constants worked great with the wshell.sendkeys(TextConstant)
Thanks
@janpieter: do U want to know some other czech words?
steve
maybe is Czech just such a romantic language as French .. Maybe then it is worth it .. (general chat now)