tag:blogger.com,1999:blog-76342185643014887592024-03-05T20:41:56.127-08:00Rudi’s Dynamics AX Techinal/Development blogBlogging about Dynamics AX Technical and Development things, and a few other computer related things.Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-7634218564301488759.post-6698495277289659652018-08-08T00:25:00.002-07:002018-08-08T00:25:46.339-07:00Label translator for AX2009/AX2012 (Bing Translate)I made this little tool to help translate Label files in AX.<br />
<br />
The process is that you export the labels you want to translate from AX, run the C# program that translates all the labels using Bing Translate, and then imports the new Translated labels into AX.<br />
<br />
You do need access to Microsoft Azure to use the tool.<br />
And also Visual Studio to compile the C# program.<br />
<br />
<a href="https://github.com/RudiHansen/AXLabelTranslator">https://github.com/RudiHansen/AXLabelTranslator</a><br />
<br />
This is the first version of this tool, so its not 100% tested and still needs a lille work.<br />
But at least it gets the job done.Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com1tag:blogger.com,1999:blog-7634218564301488759.post-42495681885755659282018-01-30T23:54:00.000-08:002018-01-30T23:54:11.175-08:00Axapta Manager (AxDynManagerV1.06)<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">I previously made a program to list, start and stop Dynamics AX Services.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">But i always through that is missed a few features, so now I am starting on this new version. (<a href="http://birkelan.no-ip.org/uploads/AxDynManager/AxDynManagerV1.06.zip">Download link</a>) </span><br />
<span lang="EN-US" style="font-size: 13.5pt;">This is version 1.06 see change list at the end of the post.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 13.5pt;">The program is tested for AX 2009 and AX 2012.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">When you start the program this is what you will see:</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBiQXm5cSkSRYOxxaLE1rllTAmZ8B7aHNTScsWrx5bQz3bs9gj1wcb9eTrBfEOikhBf-HscBeKN8EpC8W_4ijPS0az-tUfrKu9pEkdg6PF4S9RWdLJYMjRgMj2_I89RG_xXBk83B8YV_nF/s1600/Screen1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="351" data-original-width="655" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBiQXm5cSkSRYOxxaLE1rllTAmZ8B7aHNTScsWrx5bQz3bs9gj1wcb9eTrBfEOikhBf-HscBeKN8EpC8W_4ijPS0az-tUfrKu9pEkdg6PF4S9RWdLJYMjRgMj2_I89RG_xXBk83B8YV_nF/s320/Screen1.jpg" width="320" /></a></div>
<span lang="EN-US" style="font-size: 13.5pt;"></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
On the left you will see the list of services that you have, and on the right the list of possible AX configurations.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Config menu.</h2>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
Under the menu item, Tools/Config, you can change the programs settings.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s1600/MainFormMenu.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s320/MainFormMenu.jpg" width="320" /></a></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">Here you can add/remove computers to look for services on.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s1600/ConfigForm.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s400/ConfigForm.jpg" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To remove a computer from the list, double click on the item.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To add a computer, input its name in the text box, and press the "Add" button, or enter.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">The refresh field controls how often the service list will be refreshed.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Controlling services.</h2>
<div>
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
If you right click on an item in the service list, you will get this menu, where you can start, stop or restart a service.<br />
If you select more that one Service, all those services will be affected. If you choose to restart, all services will first stop, and only start again when all services has stopped.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br />
You can also control a service by double clicking on it, double clicking on a started service will stop it, and on a stopped service it will start it.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s1600/ServiceListMenu.jpg" imageanchor="1"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s320/ServiceListMenu.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Changing AX Config list.</span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">If you right click on an item in the Config list, you will get this menu.</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s1600/AXConfigsListMenu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s320/AXConfigsListMenu.jpg" width="320" /></a></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Edit:</span></div>
<div>
<span style="font-size: 18px;">Edit an existing configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Delete:</span></div>
<div>
<span style="font-size: 18px;">Deletes the selected configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Registry:</span></div>
<div>
<span style="font-size: 18px;">Imports all AX configurations from the registry.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Config file:</span></div>
<div>
<span style="font-size: 18px;">Imports one configuration from an AX configuration file.</span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Starting AX.</span></h2>
<div>
<span style="font-size: 18px;">If you double click on an item in the Configs list, that Dynamics AX will be started.</span></div>
<div>
<span style="font-size: 18px;">This function requires that the right version of AX is installed on the machine.</span></div>
<div>
<br />
Planned changes.<br />
<br />
General:<br />
<span style="white-space: pre;"> </span>AutoUpdate : Expand library to be able to handle updates from both web and local/network.<br />
<br />
Service list:<br />
<span style="white-space: pre;"> </span>Status text on Service list does not show updating correctly (Method UpdateGroupBox1Text)<br />
<span style="white-space: pre;"> </span>Add a counter of online users on the AOS.<br />
<span style="white-space: pre;"> </span>Setup witch strings to search for to show the service list.<br />
<span style="white-space: pre;"> </span>Make it possible to change service startup type.<br />
Config list:<br />
<span style="white-space: pre;"> </span>Add run AX as different user<br />
<span style="white-space: pre;"> </span>Add copy Config<br />
<span style="white-space: pre;"> </span>Add move Config (Up / Down)<br />
<span style="white-space: pre;"> </span>Add check of AOS running before starting AX. (How?)<br />
Documentation:<br />
<span style="white-space: pre;"> </span>Document Edit Config.<br />
<span style="white-space: pre;"> </span>Check if anything needs to be documented.<br />
<span style="white-space: pre;"> </span>Move all Documentation to Word document<br />
<br />
Changlog.<br />
<br />
1.06 : When a computer is no longer online, remove it from service list.<br />
Fixed Status text on Service list.<br />
Fixed problem with update of ServiceList.<br />
Added DebugInfoForm and Parameter to Enable/Disable the form.<br />
<div>
1.05<span style="white-space: pre;"> </span> : Add "Update service status" to Main menu.</div>
<span style="white-space: pre;"> </span>Check of Form.Location's values in save and load of settings.<br />
<span style="white-space: pre;"> </span>Reset Window function now works better, but does exit applikation.<br />
<span style="white-space: pre;"> </span>Load settings from lastversion if currentversion do not exist.<br />
<span style="white-space: pre;"> </span>Fix Error001 : Write to logfil fails if no access to file.<br />
<span style="white-space: pre;"> </span>Fix Error002 : GetUpdateAOSServiceList fails on old .Net framework<br />
<span style="white-space: pre;"> </span>Fix Error003 : Problem with semicolon in AOS name in AXConfigData.<br />
<span style="white-space: pre;"> </span>Optimize Computer and Services list updates to use threading.<br />
1.04<span style="white-space: pre;"> </span> : Add "Command to run at kernel startup" to Configuration<br />
<span style="white-space: pre;"> </span>Add "Command to run at applikation startup" to Configuration<br />
<span style="white-space: pre;"> </span>Add column to show the Startup type of the service<br />
<span style="white-space: pre;"> </span>Add Error handeling on Start/Stop services. (UAC Problem)<br />
<span style="white-space: pre;"> </span>Settings now saved in AppData/Local folder<br />
<span style="white-space: pre;"> </span>Changed update of Service Status, services having their status changed are updated<br />
<span style="white-space: pre;"> </span>more frequently, but the entire list is only updated on the refresh interval from<br />
<span style="white-space: pre;"> </span>the configuration. (Default 5 min)<br />
<span style="white-space: pre;"> </span>Changed to .Net Framework 4.6.1<br />
<span style="white-space: pre;"> </span>Add AutoUpdate<br />
<span style="white-space: pre;"> </span>Check .Net version on Startup<br />
<span style="white-space: pre;"> </span>Added options to disable AutoUpdate from Config<br />
<span style="white-space: pre;"> </span>Added options to disable Service Start Mode field from Config (Does not work<br />
<span style="white-space: pre;"> </span>with .Netversions from before 4.6.1 )<br />
1.03 : Added splitter to form, should make it easyer to resize the form to show the right stuff.<br />
<span style="white-space: pre;"> </span>Added menu item "Reset Window", this sets default values for window size.<br />
<span style="white-space: pre;"> </span>Save some settings to file AxDynManager.settings in program folder.<br />
<span style="white-space: pre;"> </span>Rewrite code for handeling the service list to give it better structure.<br />
<span style="white-space: pre;"> </span>Enabled multi select in Service list, this means that you can now start/stop and restart<br />
<span style="white-space: pre;"> </span>more than one service in one go.<br />
<span style="white-space: pre;"> </span>When selecting restart on more than one service, alle services are stopped first,<br />
<span style="white-space: pre;"> </span>and then started only when all services are stopped.<br />
<span style="white-space: pre;"> </span>Fixed error with double backslash read from Registry.<br />
<span style="white-space: pre;"> </span>Fixes error with vertical bar in config file.<br />
1.02 : Fixed error with parmBinDir not beeing read from AXConfig file.<br />
<span style="white-space: pre;"> </span>Added parmBinDir to EditAXConfig form.<br />
<span style="white-space: pre;"> </span>Fixed error when there are no AX Configs anywhere.<br />
<span style="white-space: pre;"> </span>Fixed error with BinDir not being read from AXConfig file.<br />
<span style="white-space: pre;"> </span>Fixed EditAxConfig form, field TabIndex, and the position of the OpenFile buttons.<br />
<span style="white-space: pre;"> </span>Added Class UtilLogging.<br />
<span style="white-space: pre;"> </span>Added logging in AXStartup.cs<br />
<span style="white-space: pre;"> </span>Added check if the paths in ParmBinDir and ParmLog exists before starting AX.<br />
<span style="white-space: pre;"> </span>Added check for double backslash in filePaths when importing configfile.<br />
<span style="white-space: pre;"> </span>Added handeling of multible AOS servers for parmAOS2.<br />
<span style="white-space: pre;"> </span>Added handeling of space in parmStartupMsg (Replace with Acsii 255)<br />
<br />
1.01 : Save and Load AX Configuration list to file. (Done on start of program, and changes of list)<br />
<span style="white-space: pre;"> </span>Added for to Edit AX Configurations.<br />
<span style="white-space: pre;"> </span>Import of AX Configuration from .axc files.<br />
<span style="white-space: pre;"> </span>Made it possible to delete an AX Configuration from the list.<br />
<span style="white-space: pre;"> </span>Function to check last program version and do config cleanup.<br />
<br />
THANKS TO : Florian and Sigvelli, for comments and sugestions.</div>
Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com2tag:blogger.com,1999:blog-7634218564301488759.post-43213589591455443012018-01-24T01:00:00.000-08:002018-01-24T01:00:40.579-08:00Axapta Manager (AxDynManagerV1.05)<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">I previously made a program to list, start and stop Dynamics AX Services.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">But i always through that is missed a few features, so now I am starting on this new version. (<a href="http://birkelan.no-ip.org/uploads/AxDynManager/AxDynManagerV1.05.zip">Download link</a>) </span><br />
<span lang="EN-US" style="font-size: 13.5pt;">This is version 1.05 see change list at the end of the post.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 13.5pt;">The program is tested for AX 2009 and AX 2012.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">When you start the program this is what you will see:</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBiQXm5cSkSRYOxxaLE1rllTAmZ8B7aHNTScsWrx5bQz3bs9gj1wcb9eTrBfEOikhBf-HscBeKN8EpC8W_4ijPS0az-tUfrKu9pEkdg6PF4S9RWdLJYMjRgMj2_I89RG_xXBk83B8YV_nF/s1600/Screen1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="351" data-original-width="655" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBiQXm5cSkSRYOxxaLE1rllTAmZ8B7aHNTScsWrx5bQz3bs9gj1wcb9eTrBfEOikhBf-HscBeKN8EpC8W_4ijPS0az-tUfrKu9pEkdg6PF4S9RWdLJYMjRgMj2_I89RG_xXBk83B8YV_nF/s320/Screen1.jpg" width="320" /></a></div>
<span lang="EN-US" style="font-size: 13.5pt;"></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
On the left you will see the list of services that you have, and on the right the list of possible AX configurations.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Config menu.</h2>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
Under the menu item, Tools/Config, you can change the programs settings.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s1600/MainFormMenu.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s320/MainFormMenu.jpg" width="320" /></a></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">Here you can add/remove computers to look for services on.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s1600/ConfigForm.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s400/ConfigForm.jpg" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To remove a computer from the list, double click on the item.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To add a computer, input its name in the text box, and press the "Add" button, or enter.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">The refresh field controls how often the service list will be refreshed.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Controlling services.</h2>
<div>
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
If you right click on an item in the service list, you will get this menu, where you can start, stop or restart a service.<br />
If you select more that one Service, all those services will be affected. If you choose to restart, all services will first stop, and only start again when all services has stopped.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br />
You can also control a service by double clicking on it, double clicking on a started service will stop it, and on a stopped service it will start it.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s1600/ServiceListMenu.jpg" imageanchor="1"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s320/ServiceListMenu.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Changing AX Config list.</span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">If you right click on an item in the Config list, you will get this menu.</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s1600/AXConfigsListMenu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s320/AXConfigsListMenu.jpg" width="320" /></a></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Edit:</span></div>
<div>
<span style="font-size: 18px;">Edit an existing configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Delete:</span></div>
<div>
<span style="font-size: 18px;">Deletes the selected configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Registry:</span></div>
<div>
<span style="font-size: 18px;">Imports all AX configurations from the registry.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Config file:</span></div>
<div>
<span style="font-size: 18px;">Imports one configuration from an AX configuration file.</span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Starting AX.</span></h2>
<div>
<span style="font-size: 18px;">If you double click on an item in the Configs list, that Dynamics AX will be started.</span></div>
<div>
<span style="font-size: 18px;">This function requires that the right version of AX is installed on the machine.</span></div>
<div>
<br />
Planned changes.<br />
<br />
General:<br />
<span style="white-space: pre;"> </span>AutoUpdate : Expand library to be able to handle updates from both web and local/network.<br />
<br />
Service list:<br />
<span style="white-space: pre;"> </span>Status text on Service list does not show updating correctly (Method UpdateGroupBox1Text)<br />
<span style="white-space: pre;"> </span>Add a counter of online users on the AOS.<br />
<span style="white-space: pre;"> </span>Setup witch strings to search for to show the service list.<br />
<span style="white-space: pre;"> </span>Make it possible to change service startup type.<br />
Config list:<br />
<span style="white-space: pre;"> </span>Add run AX as different user<br />
<span style="white-space: pre;"> </span>Add copy Config<br />
<span style="white-space: pre;"> </span>Add move Config (Up / Down)<br />
<span style="white-space: pre;"> </span>Add check of AOS running before starting AX. (How?)<br />
Documentation:<br />
<span style="white-space: pre;"> </span>Document Edit Config.<br />
<span style="white-space: pre;"> </span>Check if anything needs to be documented.<br />
<span style="white-space: pre;"> </span>Move all Documentation to Word document<br />
<br />
Changlog.<br />
<br />
1.05<span style="white-space: pre;"> </span> : Add "Update service status" to Main menu.<br />
<span style="white-space: pre;"> </span>Check of Form.Location's values in save and load of settings.<br />
<span style="white-space: pre;"> </span>Reset Window function now works better, but does exit applikation.<br />
<span style="white-space: pre;"> </span>Load settings from lastversion if currentversion do not exist.<br />
<span style="white-space: pre;"> </span>Fix Error001 : Write to logfil fails if no access to file.<br />
<span style="white-space: pre;"> </span>Fix Error002 : GetUpdateAOSServiceList fails on old .Net framework<br />
<span style="white-space: pre;"> </span>Fix Error003 : Problem with semicolon in AOS name in AXConfigData.<br />
<span style="white-space: pre;"> </span>Optimize Computer and Services list updates to use threading.<br />
1.04<span style="white-space: pre;"> </span> : Add "Command to run at kernel startup" to Configuration<br />
<span style="white-space: pre;"> </span>Add "Command to run at applikation startup" to Configuration<br />
<span style="white-space: pre;"> </span>Add column to show the Startup type of the service<br />
<span style="white-space: pre;"> </span>Add Error handeling on Start/Stop services. (UAC Problem)<br />
<span style="white-space: pre;"> </span>Settings now saved in AppData/Local folder<br />
<span style="white-space: pre;"> </span>Changed update of Service Status, services having their status changed are updated<br />
<span style="white-space: pre;"> </span>more frequently, but the entire list is only updated on the refresh interval from<br />
<span style="white-space: pre;"> </span>the configuration. (Default 5 min)<br />
<span style="white-space: pre;"> </span>Changed to .Net Framework 4.6.1<br />
<span style="white-space: pre;"> </span>Add AutoUpdate<br />
<span style="white-space: pre;"> </span>Check .Net version on Startup<br />
<span style="white-space: pre;"> </span>Added options to disable AutoUpdate from Config<br />
<span style="white-space: pre;"> </span>Added options to disable Service Start Mode field from Config (Does not work<br />
<span style="white-space: pre;"> </span>with .Netversions from before 4.6.1 )<br />
1.03 : Added splitter to form, should make it easyer to resize the form to show the right stuff.<br />
<span style="white-space: pre;"> </span>Added menu item "Reset Window", this sets default values for window size.<br />
<span style="white-space: pre;"> </span>Save some settings to file AxDynManager.settings in program folder.<br />
<span style="white-space: pre;"> </span>Rewrite code for handeling the service list to give it better structure.<br />
<span style="white-space: pre;"> </span>Enabled multi select in Service list, this means that you can now start/stop and restart<br />
<span style="white-space: pre;"> </span>more than one service in one go.<br />
<span style="white-space: pre;"> </span>When selecting restart on more than one service, alle services are stopped first,<br />
<span style="white-space: pre;"> </span>and then started only when all services are stopped.<br />
<span style="white-space: pre;"> </span>Fixed error with double backslash read from Registry.<br />
<span style="white-space: pre;"> </span>Fixes error with vertical bar in config file.<br />
1.02 : Fixed error with parmBinDir not beeing read from AXConfig file.<br />
<span style="white-space: pre;"> </span>Added parmBinDir to EditAXConfig form.<br />
<span style="white-space: pre;"> </span>Fixed error when there are no AX Configs anywhere.<br />
<span style="white-space: pre;"> </span>Fixed error with BinDir not being read from AXConfig file.<br />
<span style="white-space: pre;"> </span>Fixed EditAxConfig form, field TabIndex, and the position of the OpenFile buttons.<br />
<span style="white-space: pre;"> </span>Added Class UtilLogging.<br />
<span style="white-space: pre;"> </span>Added logging in AXStartup.cs<br />
<span style="white-space: pre;"> </span>Added check if the paths in ParmBinDir and ParmLog exists before starting AX.<br />
<span style="white-space: pre;"> </span>Added check for double backslash in filePaths when importing configfile.<br />
<span style="white-space: pre;"> </span>Added handeling of multible AOS servers for parmAOS2.<br />
<span style="white-space: pre;"> </span>Added handeling of space in parmStartupMsg (Replace with Acsii 255)<br />
<br />
1.01 : Save and Load AX Configuration list to file. (Done on start of program, and changes of list)<br />
<span style="white-space: pre;"> </span>Added for to Edit AX Configurations.<br />
<span style="white-space: pre;"> </span>Import of AX Configuration from .axc files.<br />
<span style="white-space: pre;"> </span>Made it possible to delete an AX Configuration from the list.<br />
<span style="white-space: pre;"> </span>Function to check last program version and do config cleanup.<br />
<br />
THANKS TO : Florian and Sigvelli, for comments and sugestions.</div>
Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com2tag:blogger.com,1999:blog-7634218564301488759.post-59905564451783501402017-09-24T08:07:00.000-07:002017-09-24T08:07:11.166-07:00Axapta Manager (AxDynManagerV1.04)<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">I previously made a program to list, start and stop Dynamics AX Services.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">But i always through that is missed a few features, so now I am starting on this new version. (<a href="http://birkelan.no-ip.org/uploads/AxDynManager/AxDynManagerV1.04.zip">Download link</a>) </span><br />
<span lang="EN-US" style="font-size: 13.5pt;">This is version 1.04 see change list at the end of the post.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 13.5pt;">The program is tested for AX 2009 and AX 2012.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">When you start the program this is what you will see:</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBiQXm5cSkSRYOxxaLE1rllTAmZ8B7aHNTScsWrx5bQz3bs9gj1wcb9eTrBfEOikhBf-HscBeKN8EpC8W_4ijPS0az-tUfrKu9pEkdg6PF4S9RWdLJYMjRgMj2_I89RG_xXBk83B8YV_nF/s1600/Screen1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="351" data-original-width="655" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBiQXm5cSkSRYOxxaLE1rllTAmZ8B7aHNTScsWrx5bQz3bs9gj1wcb9eTrBfEOikhBf-HscBeKN8EpC8W_4ijPS0az-tUfrKu9pEkdg6PF4S9RWdLJYMjRgMj2_I89RG_xXBk83B8YV_nF/s320/Screen1.jpg" width="320" /></a></div>
<span lang="EN-US" style="font-size: 13.5pt;"></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
On the left you will see the list of services that you have, and on the right the list of possible AX configurations.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Config menu.</h2>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
Under the menu item, Tools/Config, you can change the programs settings.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s1600/MainFormMenu.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s320/MainFormMenu.jpg" width="320" /></a></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">Here you can add/remove computers to look for services on.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s1600/ConfigForm.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s400/ConfigForm.jpg" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To remove a computer from the list, double click on the item.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To add a computer, input its name in the text box, and press the "Add" button, or enter.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">The refresh field controls how often the service list will be refreshed.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Controlling services.</h2>
<div>
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
If you right click on an item in the service list, you will get this menu, where you can start, stop or restart a service.<br />
If you select more that one Service, all those services will be affected. If you choose to restart, all services will first stop, and only start again when all services has stopped.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br />
You can also control a service by double clicking on it, double clicking on a started service will stop it, and on a stopped service it will start it.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s1600/ServiceListMenu.jpg" imageanchor="1"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s320/ServiceListMenu.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Changing AX Config list.</span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">If you right click on an item in the Config list, you will get this menu.</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s1600/AXConfigsListMenu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s320/AXConfigsListMenu.jpg" width="320" /></a></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Edit:</span></div>
<div>
<span style="font-size: 18px;">Edit an existing configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Delete:</span></div>
<div>
<span style="font-size: 18px;">Deletes the selected configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Registry:</span></div>
<div>
<span style="font-size: 18px;">Imports all AX configurations from the registry.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Config file:</span></div>
<div>
<span style="font-size: 18px;">Imports one configuration from an AX configuration file.</span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Starting AX.</span></h2>
<div>
<span style="font-size: 18px;">If you double click on an item in the Configs list, that Dynamics AX will be started.</span></div>
<div>
<span style="font-size: 18px;">This function requires that the right version of AX is installed on the machine.</span></div>
<div>
<br />
Planned changes.<br />
<br />
General:<br />
<span style="white-space: pre;"> </span><br />
Service list:<br />
<span style="white-space: pre;"> </span>Optimize program start so the loading of services list runs faster and the form shows up with no<br /> delay, perhaps using threading.<br />
<span style="white-space: pre;"> </span>Add a counter of online users on the AOS.<br />
<span style="white-space: pre;"> </span>Setup witch strings to search for to show the service list.<br />
<span style="white-space: pre;"> </span>Make it possible to change service startup type.<br />
Config list:<br />
Add check of AOS running before starting AX. (How?)<br />
Documentation:<br />
<span style="white-space: pre;"> </span>Document Edit Config.<br />
<span style="white-space: pre;"> </span>Check if anything needs to be documented.<br />
<span style="white-space: pre;"> </span>Move all Documentation to Word document<br />
<span style="white-space: pre;"> </span><br />
<br />
Changlog.<br />
<br />
1.04<span style="white-space: pre;"> </span> : Add "Command to run at kernel startup" to Configuration<br />
Add "Command to run at applikation startup" to Configuration<br />
Add column to show the Startup type of the service<br />
Add Error handeling on Start/Stop services. (UAC Problem)<br />
Settings now saved in AppData/Local folder<br />
Changed update of Service Status, services having their status changed are updated<br />
more frequently, but the entire list is only updated on the refresh interval from<br />
the configuration. (Default 5 min)<br />
Changed to .Net Framework 4.6.1<br />
Add AutoUpdate<br />
Check .Net version on Startup<br />
Added options to disable AutoUpdate from Config<br />
Added options to disable Service Start Mode field from Config (Does not work with .Net versions from before 4.6.1 )<br />
1.03 : Added splitter to form, should make it easyer to resize the form to show the right stuff.<br />
Added menu item "Reset Window", this sets default values for window size.<br />
Save some settings to file AxDynManager.settings in program folder.<br />
Rewrite code for handeling the service list to give it better structure.<br />
Enabled multi select in Service list, this means that you can now start/stop and restart<br />
more than one service in one go.<br />
When selecting restart on more than one service, alle services are stopped first,<br />
and then started only when all services are stopped.<br />
Fixed error with double backslash read from Registry.<br />
Fixes error with vertical bar in config file.<br />
1.02 : Fixed error with parmBinDir not beeing read from AXConfig file.<br />
Added parmBinDir to EditAXConfig form.<br />
Fixed error when there are no AX Configs anywhere.<br />
Fixed error with BinDir not being read from AXConfig file.<br />
Fixed EditAxConfig form, field TabIndex, and the position of the OpenFile buttons.<br />
Added Class UtilLogging.<br />
Added logging in AXStartup.cs<br />
Added check if the paths in ParmBinDir and ParmLog exists before starting AX.<br />
Added check for double backslash in filePaths when importing configfile.<br />
Added handeling of multible AOS servers for parmAOS2.<br />
Added handeling of space in parmStartupMsg (Replace with Acsii 255)<br />
<br />
1.01 : Save and Load AX Configuration list to file. (Done on start of program, and changes of list)<br />
Added for to Edit AX Configurations.<br />
Import of AX Configuration from .axc files.<br />
Made it possible to delete an AX Configuration from the list.<br />
Function to check last program version and do config cleanup.<br />
<br />
THANKS TO : Florian and Sigvelli, for comments and suggestions.</div>
Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com4tag:blogger.com,1999:blog-7634218564301488759.post-53373175617667854212017-02-22T12:20:00.001-08:002017-02-22T12:20:15.602-08:00Axapta Manager (AxDynManagerV1.03)<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">I previously made a program to list, start and stop Dynamics AX Services.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">But i always through that is missed a few features, so now I am starting on this new version. (<a href="http://birkelan.no-ip.org/uploads/AxDynManager/AxDynManagerV1.03.zip">Download link</a>) </span><br />
<span lang="EN-US" style="font-size: 13.5pt;">This is version 1.03 see change list at the end of the post.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">In this version the big thing i added was that you can now start/stop and restart more that one service in one go.</span><br />
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span>
<span style="font-size: 13.5pt;">The program is tested for AX 2009 and AX 2012.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">When you start the program this is what you will see:</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstbMTvsjh5uiK2BoqIFLNeQKoArJhThSJKDPB78Ahdpa0QcDOpJ8wc6eG4Eca2Z2Qiq1NYeLN0p0WffqiFmNa6xACgQMCTn59bIh-HaIMRMSOweub1ztO1RDBWj4M4kMuryywJs-ewiyB/s1600/MainForm.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstbMTvsjh5uiK2BoqIFLNeQKoArJhThSJKDPB78Ahdpa0QcDOpJ8wc6eG4Eca2Z2Qiq1NYeLN0p0WffqiFmNa6xACgQMCTn59bIh-HaIMRMSOweub1ztO1RDBWj4M4kMuryywJs-ewiyB/s320/MainForm.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
On the left you will see the list of services that you have, and on the right the list of possible AX configurations.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Config menu.</h2>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
Under the menu item, Tools/Config, you can change the programs settings.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s1600/MainFormMenu.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s320/MainFormMenu.jpg" width="320" /></a></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">Here you can add/remove computers to look for services on.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s1600/ConfigForm.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s400/ConfigForm.jpg" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To remove a computer from the list, double click on the item.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To add a computer, input its name in the text box, and press the "Add" button, or enter.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">The refresh field controls how often the service list will be refreshed.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Controlling services.</h2>
<div>
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
If you right click on an item in the service list, you will get this menu, where you can start, stop or restart a service.<br />
If you select more that one Service, all those services will be affected. If you choose to restart, all services will first stop, and only start again when all services has stopped.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br />
You can also control a service by double clicking on it, double clicking on a started service will stop it, and on a stopped service it will start it.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s1600/ServiceListMenu.jpg" imageanchor="1"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s320/ServiceListMenu.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Changing AX Config list.</span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">If you right click on an item in the Config list, you will get this menu.</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s1600/AXConfigsListMenu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s320/AXConfigsListMenu.jpg" width="320" /></a></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Edit:</span></div>
<div>
<span style="font-size: 18px;">Edit an existing configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Delete:</span></div>
<div>
<span style="font-size: 18px;">Deletes the selected configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Registry:</span></div>
<div>
<span style="font-size: 18px;">Imports all AX configurations from the registry.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Config file:</span></div>
<div>
<span style="font-size: 18px;">Imports one configuration from an AX configuration file.</span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Starting AX.</span></h2>
<div>
<span style="font-size: 18px;">If you double click on an item in the Configs list, that Dynamics AX will be started.</span></div>
<div>
<span style="font-size: 18px;">This function requires that the right version of AX is installed on the machine.</span></div>
<div>
<br />
Planned changes.<br />
<br />
General:<br />
Service list:<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Add a counter of online users on the AOS.<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Setup witch strings to search for to show the service list.<br />
Config list:<br />
Add check of AOS running before starting AX. (How?)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
Changlog.<br />
<br />
1.03 : Added splitter to form, should make it easyer to resize the form to show the right stuff.<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> Added menu item "Reset Window", this sets default values for window size.<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> Save some settings to file AxDynManager.settings in program folder.<br />
Rewrite code for handeling the service list to give it better structure.<br />
Enabled multi select in Service list, this means that you can now start/stop and restart<br />
more than one service in one go.<br />
When selecting restart on more than one service, alle services are stopped first,<br />
and then started only when all services are stopped.<br />
Fixed error with double backslash read from Registry.<br />
Fixes error with vertical bar in config file.<br />
1.02 : Fixed error with parmBinDir not beeing read from AXConfig file.<br />
Added parmBinDir to EditAXConfig form.<br />
Fixed error when there are no AX Configs anywhere.<br />
Fixed error with BinDir not being read from AXConfig file.<br />
Fixed EditAxConfig form, field TabIndex, and the position of the OpenFile buttons.<br />
Added Class UtilLogging.<br />
Added logging in AXStartup.cs<br />
Added check if the paths in ParmBinDir and ParmLog exists before starting AX.<br />
Added check for double backslash in filePaths when importing configfile.<br />
Added handeling of multible AOS servers for parmAOS2.<br />
Added handeling of space in parmStartupMsg (Replace with Acsii 255)<br />
<br />
1.01 : Save and Load AX Configuration list to file. (Done on start of program, and changes of list)<br />
Added for to Edit AX Configurations.<br />
Import of AX Configuration from .axc files.<br />
Made it possible to delete an AX Configuration from the list.<br />
Function to check last program version and do config cleanup.<br />
<br />
THANKS TO : Florian (Testing)</div>
Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com12tag:blogger.com,1999:blog-7634218564301488759.post-56378710177434490442016-11-08T02:30:00.001-08:002016-11-08T02:30:11.841-08:00Axapta Manager (AxDynManagerV1.02)<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">I previously made a program to list, start and stop Dynamics AX Services.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">But i always thought that is missed a few features, so now I am starting on this new version. (<a href="http://birkelan.no-ip.org/uploads/AxDynManager/AxDynManagerV1.02.zip">Download link</a>) </span><br />
<span lang="EN-US" style="font-size: 13.5pt;">This is version 1.02 see change list at the end of the post.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">This version will still handle list, start and stop of services, but also restart of services, and i</span><span style="font-size: 13.5pt;">t will also support multiple servers.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">And as something new i have added the possibility to start your Dynamics AX from the program, supporting multiple configurations.</span><br />
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span>
<span lang="EN-US" style="font-size: 13.5pt;">The program is tested for AX 2009 and AX 2012.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">When you start the program this is what you will see:</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstbMTvsjh5uiK2BoqIFLNeQKoArJhThSJKDPB78Ahdpa0QcDOpJ8wc6eG4Eca2Z2Qiq1NYeLN0p0WffqiFmNa6xACgQMCTn59bIh-HaIMRMSOweub1ztO1RDBWj4M4kMuryywJs-ewiyB/s1600/MainForm.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstbMTvsjh5uiK2BoqIFLNeQKoArJhThSJKDPB78Ahdpa0QcDOpJ8wc6eG4Eca2Z2Qiq1NYeLN0p0WffqiFmNa6xACgQMCTn59bIh-HaIMRMSOweub1ztO1RDBWj4M4kMuryywJs-ewiyB/s320/MainForm.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
On the left you will see the list of services that you have, and on the right the list of possible AX configurations.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Config menu.</h2>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
Under the menu item, Tools/Config, you can change the programs settings.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s1600/MainFormMenu.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s320/MainFormMenu.jpg" width="320" /></a></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">Here you can add/remove computers to look for services on.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s1600/ConfigForm.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s400/ConfigForm.jpg" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To remove a computer from the list, double click on the item.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To add a computer, input its name in the text box, and press the "Add" button, or enter.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">The refresh field controls how often the service list will be refreshed.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Controlling services.</h2>
<div>
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
If you right click on an item in the service list, you will get this menu, where you can start, stop or restart a service.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
You can also control a service by double clicking on it, double clicking on a started service will stop it, and on a stopped service it will start it.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s1600/ServiceListMenu.jpg" imageanchor="1"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s320/ServiceListMenu.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Changing AX Config list.</span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">If you right click on an item in the Config list, you will get this menu.</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s1600/AXConfigsListMenu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s320/AXConfigsListMenu.jpg" width="320" /></a></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Edit:</span></div>
<div>
<span style="font-size: 18px;">Edit an existing configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Delete:</span></div>
<div>
<span style="font-size: 18px;">Deletes the selected configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Registry:</span></div>
<div>
<span style="font-size: 18px;">Imports all AX configurations from the registry.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Config file:</span></div>
<div>
<span style="font-size: 18px;">Imports one configuration from an AX configuration file.</span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Starting AX.</span></h2>
<div>
<span style="font-size: 18px;">If you double click on an item in the Configs list, that Dynamics AX will be started.</span></div>
<div>
<span style="font-size: 18px;">This function requires that the right version of AX is installed on the machine.</span></div>
<div>
<br />
Planned changes.<br />
<br />
General:<br />
Service list:<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Add a counter of online users on the AOS.<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Group services, so you can start, stop or restart an entire group in one go.<br />
Config list:<br />
Add check of AOS running before starting AX. (How?)<br />
<br />
<b>Changlog.</b><br />
<br />
1.02 : Fixed error with parmBinDir not beeing read from AXConfig file.<br />
Added parmBinDir to EditAXConfig form.<br />
Fixed error when there are no AX Configs anywhere.<br />
Fixed error with BinDir not being read from AXConfig file.<br />
Fixed EditAxConfig form, field TabIndex, and the position of the OpenFile buttons.<br />
Added Class UtilLogging.<br />
Added logging in AXStartup.cs<br />
Added check if the paths in ParmBinDir and ParmLog exists before starting AX.<br />
Added check for double backslash in filePaths when importing configfile.<br />
Added handeling of multible AOS servers for parmAOS2.<br />
Added handeling of space in parmStartupMsg (Replace with Acsii 255)<br />
<br />
1.01 : Save and Load AX Configuration list to file. (Done on start of program, and changes of list)<br />
Added for to Edit AX Configurations.<br />
Import of AX Configuration from .axc files.<br />
Made it possible to delete an AX Configuration from the list.<br />
Function to check last program version and do config cleanup.</div>
<div>
<br />
Please do leave a comment if you find the program useful, have a bug or a suggestion for a change.</div>
Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com5tag:blogger.com,1999:blog-7634218564301488759.post-59973515456262806362016-10-26T04:24:00.003-07:002016-10-26T04:24:42.307-07:00Axapta Manager (AxDynManagerV1.01)<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">I previously made a program to list, start and stop Dynamics AX Services.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">But i always thought that is missed a few features, so now I am starting on this new version. (<a href="http://birkelan.no-ip.org/uploads/AxDynManager/AxDynManagerV1.01.zip">Download link</a>) </span><br />
<span lang="EN-US" style="font-size: 13.5pt;">This is version 1.01 see change list at the end of the post.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">This version will still handle list, start and stop of services, but also restart of services, and i</span><span style="font-size: 13.5pt;">t will also support multiple servers.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">And as something new i have added the possibility to start your Dynamics AX from the program, supporting multiple configurations.</span><br />
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span>
<span lang="EN-US" style="font-size: 13.5pt;">The program is tested for AX 2009 and AX 2012.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">When you start the program this is what you will see:</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstbMTvsjh5uiK2BoqIFLNeQKoArJhThSJKDPB78Ahdpa0QcDOpJ8wc6eG4Eca2Z2Qiq1NYeLN0p0WffqiFmNa6xACgQMCTn59bIh-HaIMRMSOweub1ztO1RDBWj4M4kMuryywJs-ewiyB/s1600/MainForm.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstbMTvsjh5uiK2BoqIFLNeQKoArJhThSJKDPB78Ahdpa0QcDOpJ8wc6eG4Eca2Z2Qiq1NYeLN0p0WffqiFmNa6xACgQMCTn59bIh-HaIMRMSOweub1ztO1RDBWj4M4kMuryywJs-ewiyB/s320/MainForm.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
On the left you will see the list of services that you have, and on the right the list of possible AX configurations.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Config menu.</h2>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
Under the menu item, Tools/Config, you can change the programs settings.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s1600/MainFormMenu.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s320/MainFormMenu.jpg" width="320" /></a></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">Here you can add/remove computers to look for services on.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s1600/ConfigForm.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s400/ConfigForm.jpg" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To remove a computer from the list, double click on the item.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To add a computer, input its name in the text box, and press the "Add" button, or enter.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">The refresh field controls how often the service list will be refreshed.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Controlling services.</h2>
<div>
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
If you right click on an item in the service list, you will get this menu, where you can start, stop or restart a service.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
You can also control a service by double clicking on it, double clicking on a started service will stop it, and on a stopped service it will start it.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s1600/ServiceListMenu.jpg" imageanchor="1"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s320/ServiceListMenu.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Changing AX Config list.</span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">If you right click on an item in the Config list, you will get this menu.</span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s1600/AXConfigsListMenu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhas8xeHhogmKUEqVlOxoVYr-bmRDcR43w7YuwJCpuhAD32gW0iQUycl1ssbkIWTyFr3gEYWox3sC81HajnItwyQnWx6KuNx-uGA3oXJxbkGQx_Z5nu281oQVruMxjXoEqgNQpFNnSt-q0-/s320/AXConfigsListMenu.jpg" width="320" /></a></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Edit:</span></div>
<div>
<span style="font-size: 18px;">Edit an existing configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Delete:</span></div>
<div>
<span style="font-size: 18px;">Deletes the selected configuration.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Registry:</span></div>
<div>
<span style="font-size: 18px;">Imports all AX configurations from the registry.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<div>
<span style="font-size: 18px;">Import from Config file:</span></div>
<div>
<span style="font-size: 18px;">Imports one configuration from an AX configuration file.</span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;"><br /></span></h2>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Starting AX.</span></h2>
<div>
<span style="font-size: 18px;">If you double click on an item in the Configs list, that Dynamics AX will be started.</span></div>
<div>
<span style="font-size: 18px;">This function requires that the right version of AX is installed on the machine.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<h2>
<span style="font-size: 18px;">Planned changes.</span></h2>
<ol>
<li>Service list:</li>
<ol>
<li>Add a counter of online users on the AOS.</li>
<li>Group services, so you can start, stop or restart an entire group in one go.</li>
</ol>
<li>Config list:</li>
<ol>
<li>Check if config's AOS is started, (Start if not)</li>
</ol>
</ol>
<div>
<b>Changlog.</b><br />
<br />
1.01 : Save and Load AX Configuration list to file. (Done on start of program, and changes of list)<br />
Added for to Edit AX Configurations.<br />
Import of AX Configuration from .axc files.<br />
Made it possible to delete an AX Configuration from the list.<br />
Function to check last program version and do config cleanup.<br />
<br />
Please do leave a comment if you find the program useful, have a bug or a suggestion for a change.</div>
Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-29738460330086541442016-10-15T08:20:00.000-07:002016-10-15T08:58:00.031-07:00Axapta Manager (AxDynManagerV1.00)<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">I previously made a program to list, start and stop Dynamics AX Services.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">But i always thought that is missed a few features, so now I am starting on this new version. (<a href="http://birkelan.no-ip.org/uploads/AxDynManager/AxDynManagerV1.00.zip">Download link</a>)</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">This version will still handle list, start and stop of services, but also restart of services, and i</span><span style="font-size: 13.5pt;">t will also support multiple servers.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">And as something new i have added the possibility to start your Dynamics AX from the program, supporting multiple configurations.</span><br />
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span>
<span lang="EN-US" style="font-size: 13.5pt;">The program is tested for AX 2009 and AX 2012.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">When you start the program this is what you will see:</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstbMTvsjh5uiK2BoqIFLNeQKoArJhThSJKDPB78Ahdpa0QcDOpJ8wc6eG4Eca2Z2Qiq1NYeLN0p0WffqiFmNa6xACgQMCTn59bIh-HaIMRMSOweub1ztO1RDBWj4M4kMuryywJs-ewiyB/s1600/MainForm.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhstbMTvsjh5uiK2BoqIFLNeQKoArJhThSJKDPB78Ahdpa0QcDOpJ8wc6eG4Eca2Z2Qiq1NYeLN0p0WffqiFmNa6xACgQMCTn59bIh-HaIMRMSOweub1ztO1RDBWj4M4kMuryywJs-ewiyB/s320/MainForm.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
On the left you will see the list of services that you have, and on the right the list of possible AX configurations.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Config menu.</h2>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
Under the menu item, Tools/Config, you can change the programs settings.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s1600/MainFormMenu.jpg" imageanchor="1"><img border="0" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvz__ZeCL4oKRwsS1DLxRjGjaOzwTZc7JPL0sqZzOsE8sY8eMsK66bVzOaaRxBztxQwbr5Tl-tfQ_0d8VzfW0vH48gwPE96mpBxC6bAFlIWCSHok30mp-p3e7Mi7IKKq1LT28uhoDSWHQ7/s320/MainFormMenu.jpg" width="320" /></a></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">Here you can add/remove computers to look for services on.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s1600/ConfigForm.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiLmKeI65bjwhvwVyH2jAEmI9VlVKF2dldOZ7I2g9LbxHKghvNpFX2P0peQ2NCp3D7WL0S3O2GI-aKfN8irxKFOIUf9-mZ4xjLBTltwKO5XiGT6H5TRrPX8buIGbG13cFS8A19HeaSQuHk/s400/ConfigForm.jpg" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To remove a computer from the list, double click on the item.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">To add a computer, input its name in the text box, and press the "Add" button, or enter.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;">The refresh field controls how often the service list will be refreshed.</span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
Controlling services.</h2>
<div>
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
If you right click on an item in the service list, you will get this menu, where you can start, stop or restart a service.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
You can also control a service by double clicking on it, double clicking on a started service will stop it, and on a stopped service it will start it.</div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s1600/ServiceListMenu.jpg" imageanchor="1"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif9NuhOxNJ2uTj1-x0hi3Ovu2WhkQAQy07xNIsCx4Jrxpc4D6JGoY_m1lLKva9VDcKtYYqU3mvspAHyoJx5YKQDPmZR3yja8ZC1oSSqbnSKHD2jvldCNWOGNR2BgQtbuz8g3WCZ2uIK1DR/s320/ServiceListMenu.jpg" width="320" /></a></span></div>
<div style="margin-bottom: .0001pt; margin: 0cm;">
<span lang="EN-US" style="font-size: 13.5pt;"><br /></span></div>
<h2 style="margin-bottom: .0001pt; margin: 0cm;">
<span style="font-size: 18px;">Starting AX.</span></h2>
<div>
<span style="font-size: 18px;">If you double click on an item in the Configs list, that Dynamics AX will be started.</span></div>
<div>
<span style="font-size: 18px;">For right now the list of configurations are imported from the users registry, but i am working on changing this.</span></div>
<div>
<span style="font-size: 18px;"><br /></span></div>
<h2>
<span style="font-size: 18px;">Planned changes.</span></h2>
<br />
<ol>
<li>Service list:</li>
<ol>
<li>Add a counter of online users on the AOS.</li>
<li>Group services, so you can start, stop or restart an entire group in one go.</li>
</ol>
<li>Config list:</li>
<ol>
<li>Import AX configuration file.</li>
<li>Manually change/add configurations.</li>
<li>Save / Load configuration list.</li>
<li>Check if config's AOS is started, (Start if not)</li>
</ol>
</ol>
<div>
Please do leave a comment if you find the program useful, have a bug or a suggestion for a change.</div>
<br />
<span style="font-size: 18px;"><br /></span>Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-7340776875121109512016-10-02T08:27:00.002-07:002016-10-02T08:27:53.109-07:00Show AX Compile progress (AXCompileProgressV1.00)For some time now i wanted a tool that would show me the progress of a Compilation in AX, so i made this little tool.<br />
<br />
It uses the AOT compile log, that you can enable in AX2012, by going to Tools\Options\Development\Compiler<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz3JPrtwH0YODnON2cLFMkTpzX8mPYJA0wrICdk0krB_j9IVjQ0bzdVw8HKzJhiB5TL9e-3ZUX8FDaueJPtvpQOj9UUqktDsQvAa1Y6k-WrD2pp61f-wMPv0nh1tQhm1tSskfD8fwebC62/s1600/CompilerSetup.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz3JPrtwH0YODnON2cLFMkTpzX8mPYJA0wrICdk0krB_j9IVjQ0bzdVw8HKzJhiB5TL9e-3ZUX8FDaueJPtvpQOj9UUqktDsQvAa1Y6k-WrD2pp61f-wMPv0nh1tQhm1tSskfD8fwebC62/s320/CompilerSetup.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
And put a tick in AOT log:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Ax will now generate a compilation log in the given folder named AOTComp.log</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now my program will look at that logfile and from that calculate and show a progress bar for the compilation progress.</div>
<br />
Right now the program might be very buggy since this is the first version, and also it will only look for the logfile under the current users Microsoft\Dynamics AX\Log folder, but i will change that in later versions.<br />
Also the program needs to "run as Administrator", i will see if i can fix that also.<br />
<br />
You can download the program from this link (<a href="http://birkelan.no-ip.org/uploads/AXCompileProgress/AXCompileProgressV1.00.zip">AXCompileProgressV1.00.zip</a>)<br />
<br />
Please do leave a comment if you find the program useful, have a bug or a suggestion for a change.Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-76518494417167322442016-05-31T06:16:00.001-07:002016-06-02T01:59:27.037-07:00Dynamics AX use of the startupcmd parameterIf you start ax32.exe with -startupcmd you can use this to automate some tasks.<br />
<br />
Like for instance this command will perform a full compile of all elements in AX.<br />
ax32.exe -startupcmd=CompileAll<br />
<br />
Here is a full list of all the startupcmd parameters in AX2009 and AX2012.<br />
The code that controls this can be found in Class SysStartupCmd method construct.<br />
You can also add your own commands by adding them to this method.<br />
<br />
<div class="MsoNormal">
<br /></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184; width: 614px;">
<tbody>
<tr style="height: 15.0pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td nowrap="" style="border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Command AX2009<o:p></o:p></div>
</td>
<td nowrap="" style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Command AX2012<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Usage<o:p></o:p></div>
</td>
</tr>
<tr style="height: 28.8pt; mso-yfti-irow: 1;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 28.8pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
setbuildno<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 28.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
setbuildno<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 28.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Updates the
version information text in the About Microsoft Dynamics AX dialog <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 2;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
updatebuildno<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
updatebuildno<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Synchronize the
Build Number Between the Application and Database <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 3;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
synchronize<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
synchronize<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Synchronizes the data dictionary <o:p></o:p></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 4;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
compileall<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
compileall<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Compiles the application <o:p></o:p></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 5;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
compilepartial<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Compiles the
application and updates Crossreference <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 6;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
compilemodel<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Compiles a specific model <o:p></o:p></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 7;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
compilelayerinheritance<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241"></td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 8;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
xrefall<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Updates Crossreferences <o:p></o:p></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 9;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
compileil<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Compiles FULL CIL <o:p></o:p></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 10;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
exit<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
exit<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Shuts down the application <o:p></o:p></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 11;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
aotimport<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
aotimport<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Imports an XPO
file into the AOT <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 12;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
aldimport<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Imports an Lable
file into the AOT <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 13;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
applupgrade<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
applupgrade<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Starts Version upgrade processes <o:p></o:p></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 14;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
loadlicense<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
loadlicense<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Loads a license
file into AX and shuts down <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 28.8pt; mso-yfti-irow: 15;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 28.8pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
checkbestpractices<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 28.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
checkbestpractices<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 28.8pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Compiles the
application and exports the Best Practice warnings to a file. If an XPO file
is provided, only check the Best Practice warnings in the XPO. <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 16;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
updatemetrics<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241"></td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 17;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
autorun<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
autorun<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Runs AX AutoRun
tasks based on an XML file. <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 18;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
runtestproject<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
runtestproject<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Creates, runs
and closes a test project <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 19;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
batch<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
batch<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Starts the
application to run Client batch tasks in a specific group <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 20;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
viewalert<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
viewalert<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Opens a specific alert <o:p></o:p></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 21;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
drilldown<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
drilldown<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Opens the record
that triggered an alert <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 22;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
viewalertrule<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
viewalertrule<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Opens the rule
that triggered an alert <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 23;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
importresources<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
importresources<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Imports a
resource into the AOT <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 24;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
xmlreflection<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
xmlreflection<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Creates an XML
file based on reflection of the AOT <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 25;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
xmldocumentation<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
xmldocumentation<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Creates an XML
documentation file <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 26;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
startupelementaction<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Starts the
application to run element <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 27;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
securityinference<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241"></td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 28;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
generatessasproject<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241"></td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 29;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169"></td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
buildvisualstudioprojects<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241"></td>
</tr>
<tr style="height: 14.4pt; mso-yfti-irow: 30; mso-yfti-lastrow: yes;">
<td nowrap="" style="border-top: none; border: solid windowtext 1.0pt; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 101.25pt;" valign="top" width="169">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
compileSync<o:p></o:p></div>
</td>
<td nowrap="" style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 122.6pt;" valign="top" width="204"></td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 14.4pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt; width: 144.45pt;" valign="top" width="241">
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Compiles the
application and synchronizes the data dictionary <o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<br />
<div class="MsoNormal">
<br /></div>
<div class="OutlineElement Ltr SCX240735726" style="-webkit-tap-highlight-color: transparent; -webkit-user-drag: none; -webkit-user-select: text; background-color: white; clear: both; cursor: text; direction: ltr; font-family: 'Segoe UI', Tahoma, Verdana, sans-serif; font-size: 8px; margin: 0px; overflow: visible; padding: 0px; position: relative;">
</div>
Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com1tag:blogger.com,1999:blog-7634218564301488759.post-17442896460125263682016-03-17T05:07:00.001-07:002016-03-17T05:07:17.349-07:00Define Elements in Excel and create them in AX. (DevCreateV1.06)Just a quick update of this project to V1.06, so the code is now tested on AX2012.<br />
It might also work on AX4, but did not test that.<br />
<br />
As always you are welcome to leave a comment to tell me what you think.<br />
All suggestions for improvements or other projects are welcome.<br />
<br />
Download from here (<a href="http://birkelan.no-ip.org/uploads/DevCreate/DevCreateV1.06.zip">link</a>)<br />
File contains one AX2009 private project.<br />
After import look at job DevCreate_NOTES for documentation.Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-10849459224015544792016-03-16T07:56:00.001-07:002016-03-17T05:00:11.763-07:00Define Elements in Excel and create them in AX. (DevCreateV1.05)I made this little tool that creates Elements in AX based on definitions in an Excel sheet.<br />
<br />
I found that when I was creating Tables for solutions I always liked to define them in an Excel sheet first, to get an overview before actually creating the elements in AX.<br />
<br />
And then when I was done defining the solution, and had to create the Elements by hand in AX, I always thought if only I could feed this Excel sheet to AX, and create the elements automatically.<br />
<br />
So well the idea of this tool was born, and now I have the first version of it ready.<br />
<br />
Now it might be a little buggy still, and the code is not all that nice, but it's better than nothing.<br />
<br />
And also I have only tested in on AX2009 for now. (AX2012 <span style="font-family: "calibri" , sans-serif; font-size: 13.5pt; line-height: 107%;">coming ASAP </span>and then perhaps AX7)<br />
<br />
As always you are welcome to leave a comment to tell me what you think.<br />
All suggestions for improvements or other projects are welcome.<br />
<br />
Download from here (<a href="http://birkelan.no-ip.org/uploads/DevCreate/DevCreateV1.06.zip">link</a>)<br />
File contains one AX2009 private project, after import look at job DevCreate_NOTES for documentation.<br />
<br />
EDIT : Updated to V1.06, Code now also works on AX2012.Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-70803606593515078492016-02-29T02:37:00.002-08:002016-02-29T05:10:43.074-08:00Export Elements Tools V1.06This Class is made to Export all or most recent changes to element in Dynamics AX.<br />
<br />
The Class runs through UtilElements and selects records based on Current User, modifiedDateTime and createdDateTime and then exports the changed elements to a folder.<br />
<br />
The file name of the exported elements are based on Element type, Element name, version and export version. (Version is taken from UtilElements, and export version is an internal variable that is incremented with each export.)<br />
<br />
When running the class you are prompted for Directory (Where to put the exported file) and Processing Date (Used to query against modifiedDateTime and createdDateTime)<br />
<br />
The Class saves some data in SysLastValue<br />
<br />
----------- SETUP -----------<br />
In classDeclaration there is a macro #AXVER that has to be set to the right version of AX, to make the class work.<br />
<br />
---------- DOWNLOAD ----------<br />
You can download the latest version of the Class here, works on AX4, AX2009 and AX2012<br />
<a href="http://birkelan.no-ip.org/uploads/RUHAExportUtilElements/Class_RUHAExportUtilElements_V01_06.xpo">Download Link</a><br />
<br />
---------- CHANGELOG ----------<br />
1.00 2015-01-01 : First version.<br />
1.01 2016-02-17 : Added method to export Projects<br />
1.02 2016-02-17 : Implemented export of projects.<br />
Always run in DAT Company.<br />
1.03 2016-02-18 : Default value for export path. (Needs more thought)<br />
Some minor changes in Search for new elements.<br />
Reorder methods.<br />
1.04 2016-02-18 : Added doc method for documentation. (This)<br />
1.05 2016-02-22 : Rewrite how changed elements are found.<br />
In method findNewOrChangedElements, UtilElement is searched for new<br />
or changed elements, and they are then created as lines in table tmpUtil.<br />
This was done to move the search to a method.<br />
1.06 2016-02-22 : Changed the code so it can run on most versions of AX (4,5 and 6)<br />
<br />
---------- IDEAS / ERRORS ----------<br />
Prompt for witch user to export for, with blank = all, and default = current user.<br />
<br />
Default value for export path, needs rethinking.<br />
<br />
Save values from SysLastValue into a file, so they can be reused.<br />
<br />
Look into making a form that shows what records to export.<br />
<br />
When export is done, move files to another location, (Network drive or perhaps ftp server)<br />
Possible also with an option to compress files before sending them.<br />
<br />Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-18210929998757493462015-04-29T03:41:00.002-07:002015-04-29T03:41:57.947-07:00Auto Create ClassesI think we all have this little archive of code that we use again and again in AX.<br />
<br />
So i have made to different tools for handling these code snippets, and here is the first one of them, the Auto Create Class tool.<br />
<br />
So really simply told when you run the Class, you select witch Class type to generate, then the name and/or further parameters for the Class you are making.<br />
<br />
At the moment the Class can create these Class Types:<br />
<br />
<ul>
<li>Std_Run, Simple class with Main and Run methods.</li>
<li>Std_DialogBatch, Class that can run in Batch and has a Dialog</li>
<li>Std_Exp2Excel, Class for exporting data to Excel, typically a Table, but could be anything.</li>
</ul>
<br />
But i hope to add on to this list as more stuff comes up, if you have any ideas write a comment with it, and i will have a look.<br />
<br />
If you want to use this tool you can download a zip file with the tool from the links below.<br />
The Zip file contains, <br />
<ul>
<li>1 project export file with the elements needed in AX (PrivateProject_DevCreateClasses.xpo)</li>
<li>3 xpo's with exports of the templates for the Standard Classes.</li>
</ul>
<div>
The 3 xpo files are needed for the Class as templates for the Classes it needs to create, so you need to keep them in a Folder you have access to from the AX Client.<br />You will need to make one correction in the classDeclaration of the DevCreateClasses Class.</div>
<div>
<br /></div>
<div>
You will need to change the file location in line 4 to where you have put the xpo's</div>
<div>
This is how the line looks in the method:</div>
<div>
#define.ExportFilePath(@'C:\TEMP\DevCreateClasses\')</div>
<div>
<br /></div>
<br />
---------- Download ----------<br />
<div>
For Dynamics AX 2012 (<a href="http://birkelan.no-ip.org/uploads/DevCreateClasses/6.0/DevCreateClasses.zip" target="_blank">link</a>)<br />
<br />
---------- Problems / Errors ----------<br />
The Class still needs work, so it's a little messy, sorry about that.<br />
AX 2009 version missing.<br />
<br />
<br />
<b>Please remember to leave a Comment it you like this article, have questions for it, or have something else you would like me to write about.</b></div>
Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-83856162575291645852015-03-20T08:26:00.001-07:002015-03-20T09:16:18.007-07:00Windows Service that accesses Dynamics AXSo i saw this question from Eitan Mizrahi on the Microsoft Dynamics AX Community ( <a href="https://community.dynamics.com/ax/f/33/t/155543.aspx" target="_blank">link</a> )<br />
And thought i would make an attempt to make an Windows Service that calls Dynamics AX and gets some data back from it.<br />
<br />
For now the code is really simple, just the bare minimum, connect to Dynamics AX, call a class and receive the result in a string.<br />
<br />
But its a good starting point, so any thing can really be build on top of it.<br />
<br />
Download Visual Studio 2010 code ( <a href="http://birkelan.no-ip.org/uploads/AXTestService/AXTestService.zip" target="_blank">link</a> )<br />
<br />
Three things you have to remember in Visual Studio, i have done it in the project but you might need to check on the reference.<br />
<br />
<ol>
<li>Add a reference to Microsoft.Dynamics.AX.ManagedInterop.dll file, its usually found in the sub of your Dynamics AX installation under \BusinessConnector\Bin\</li>
<li>Change the Target Framework to .Net Framework 2.0</li>
<li>Change the Platform Target to x64 (So this code will only work on a 64bit machine)</li>
</ol>
<br />
As a help to make this i used the code Eitan Mizrahi put in the question on the forum, and this Youtube video on making a Windows Service in Visual Studio ( <a href="https://www.youtube.com/watch?v=uM9o8GsO_u4" target="_blank">link</a> )<br />
<br />
I hope you can use this code, and feel free to leave a comment with suggestions for what i should change, or anything you would like me to look at next.<br />
<br />
With Reguards<br />
--Rudi Hansen<br />
<br />Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-23066795649206171192015-02-20T03:51:00.000-08:002015-02-20T03:51:20.762-08:00The Code Profiler in Dynamics AXThe Code Profiler in Dynamics AX is a powerful tool for finding performance issues in the application.<br />
<br />
But it can also be a little difficult to use simply just because of the overwhelming amount of data it creates, so sometimes it's nice to limit the amount of code it runs on.<br />
<br />
This is where the macro <a href="https://msdn.microsoft.com/en-us/library/aa863679.aspx?f=255&MSPPError=-2147217396" target="_blank">#profileBegin</a> comes in really handy.<br />
<br />
If you already know the place in your code that runs slow, you can put in the macro before and after, and then the profiler only runs on that piece of code.<br />
<br />
Example:<br />
<pre style="background-color: #eeeeee; border: 1px dashed #999999; color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;">
<code style="color: black; word-wrap: normal;">
public void printJournal(Set _journalList)
{
/*
. Cut out code
.
.
*/
{
#profileBegin("printJournal") // RSH Start profiling code
this.sendAsXML();
this.doPrint();
#profileEnd // RSH End profiling code
}
}
}
</code>
</pre>
<br />
Now you only profile the code you actually need to measure, and not allot of unnecessary code.Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-50862807512049035632015-02-20T03:33:00.000-08:002015-02-20T03:33:22.620-08:00Beta versions of Dynamics AXSo one of my thoughts when Microsoft bought the company Navision, and with that company the product we today knows as Dynamics AX, was YES now we will finally get beta versions of the product just like the Visual Studio developers of the world gets beta versions of that product.<br />
<br />
But unfortunately that did not happen, we as developers only get access to the product when its ready to be sold.<br />
<br />
And i do not understand why this is the case, is there any good reason why Microsoft is not letting us get early access to beta version of AX?<br />
<br />
Please let me know what your thoughts are?<br />
<br />Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-69779442634163749952014-04-16T14:45:00.001-07:002022-11-27T10:48:35.445-08:00Axapta AOS Service managerI don't know if this is a problem everyone have, but i find it annoying that when i have to start or stop the Axapta AOS service, then i have to start the Service Manager and find the right service in the long list of Windows services.<br />
<br />
So i made this little tool for the task.
It simply looks at the list of services on the machine for any Axapta AOS service, and displays them in a simple list.<br />
<br />
The status in the list is represented by an Red(Stopped), Yellow(Starting or stopping) or Green(Started)<br />
To start or stop a service you simply double click on the service.<br />
<br />
<br />
<br />Since I made a new version of this program, look instead at the new post about the new version ( <a href="https://rudihansen.blogspot.com/2018/01/axapta-manager-axdynmanagerv106.html">link</a> )<br /><div><br /></div>Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com1tag:blogger.com,1999:blog-7634218564301488759.post-60212661493955388782014-04-11T14:55:00.001-07:002014-07-03T04:01:29.040-07:00My Putty setup for LinuxThis is my setup for PuTTY to connect to my Linux machines.<br />
<br />
Terminal > Keyboard:<br />
- The Function keys and keypad = Linux<br />
<br />
Window>Translation:<br />
- Character set translation on received data = UTF-8<br />
- Adjust how to PuTTY handles line drawing character = Use Unicode line drawing code points<br />
<br />
Connection:<br />
- Sending of null packets to keep session active = 60 # to avoid disconnection from server because of inactivity<br />
<br />
Connection>Data<br />
- Terminal Details - Terminal-type string = linux<br />
<br />
The other parameter seems to work fine by default.Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-73666148095056741142014-04-11T02:50:00.003-07:002014-04-11T02:50:46.628-07:00Resize Hyper-V DisksJust wanted to share this little Hyper-V tip.<br />
<br />
If you are having problems resizing a Hyper-V disk you should try VhResizer from Peter Bursky.<br />
<br />
<a href="http://www.bursky.net/wp-content/uploads/2012/07/VhdResizerSetup.zip" target="_blank">Download link</a>Rudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0tag:blogger.com,1999:blog-7634218564301488759.post-28065471513682861012011-09-20T04:57:00.000-07:002014-04-10T04:59:48.717-07:00Axapta shortcutsDescription of how to make a shortcut for start of Dynamics AX.<br />
<br />
This is how to make a shortcut for Dynamics Ax 2009 and 2012. (4.0 and 5.0)<br />
<br />
The shortcut is build like this:<br />
<br />
[Shortcut for Ax32.exe] [Shortcut for axc (configuration file)]<br />
<br />
So if Ax32.exe is in the folder D:\Axapta40.0\Client\Bin and the config file is in D:\Shortcuts and is called Customer400.axc<br />
<br />
Then the shortcut will look like this:<br />
<br />
D:\Axapta40.0\Client\Bin\Ax32.exe D:\Shortcuts\Customer400.axcRudi Hansenhttp://www.blogger.com/profile/05365302153484702189noreply@blogger.com0