Packt Publishing offers 20-30% Discount on all Dynamics books
Guys planning to buy a book on Dynamics Ax, NAV, GP then you don’t find a better time then this.Pack Publishing is carrying on a “Dynamics Month” sale and as a part of it offering a discount of 20 – 30% on all their dynamics related publications and a chance to win free access to their e-library
check out here to see the offer Please refer to http://www.packtpub.com/article/exclusive-offer-on-microsoft-dynamics-books
Also excerpts from their press release,
Packt has produced a multitude of bestsellers in Sure Step, NAV, GP and AX – and not only do theyexcel in terms of quantity, but in quality, with each book garnering numerous positive reviews. And to celebrate this achievement Packt is crowning May: Dynamics Month, offering terrific discounts on all Dynamics books, as well as holding a competition providing you with the chance to win one year’s free access to PacktLib – Packt’s online library!
Recent Dynamics publications include:
• Microsoft Dynamics Sure Step 2010
• Microsoft Dynamics GP 2010 Cookbook
• Microsoft Dynamics NAV 2009 Programming Cookbook
Throughout 2011 Packt will continue to build-upon this success with a further focus of branching into CRM.
Quick Excel report – Dynamics Ax 2009
Excel is the most convenient software to examine changes in data. Specially when you have made them code and wanted it to be tracked. That’s is one of the many reasons why excel tops to be the most used software in the world.
This article in detail will tell you how to create an ad hoc excel sheet just in case you wanted to show data changes, compile information from different tables etc.
Create a similar code for your need. [Follow inline comments to understand the code]
static void JobExportToExcel(Args _args)
{
SalesLine salesLine, oldSalesLine;
str text;
TextIO io;
#WinAPI
;
//Column header for the excel. The header fields and the data field must match
//in number and order
//You can use anything as a delimiter but # is convenient as this rarely appears
//as data (other choices ~, |)
text = 'Order # Customer # Item # Lot id # New tax group # Old tax group \n';
select * from salesLine
where salesLine.TaxItemGroup == 'GST' ||
salesLine.TaxItemGroup == 'Free';
while (salesLine)
{
//save this incase you wanted to show the old value
oldSalesLine = salesLine.orig();
if (salesLine.TaxItemGroup == 'GST')
{
salesLine.TaxItemGroup = 'CAPITAL';
}
else
{
salesLine.TaxItemGroup = 'Free';
}
//append the text
text += strfmt('%1 # %2 # %3 # %4 # %5 # %6 \n', salesLine.SalesId, salesLine.CustAccount, salesLine.ItemId, salesLine.InventTransId, salesLine.TaxItemGroup, oldSalesLine.TaxItemGroup);
//do it after the update text otherwise you loose the orig
salesLine.update();
next salesLine;
}
//So far no excel :-)...that comes later
io = new TextIO(WinAPI::getFolderPath(#CSIDL_DESKTOPDIRECTORY) + '\\exportToExcel.txt', 'w');
io.write(text);
}
You can continue to either watch the video or text based on your convenience.
step 1. Create a delimited text IO file through a job as shown above
step 2. Open Excel (Don’t try rightclick open with).
setp 3. Click Open file -> Select “ALL files” in the export dialog
step 4: select the textIO file that was recently given
step 5: Specify delimited in the dialog and enter the delimiter (# in this case)
step 6. Click finish your data is in.
Just format the column size.
Creating a custom compiler output type and displaying in the compiler output in Dynamics Ax 2009
This article will guide in creating a custom compiler output Type like “To Do” , “Error” and “Best Practices” in Dynamics Ax 2009.
0. First change your compiler to “Message window” until you complete this. Retaining it as “Form” might result in runtime errors which cannot be resolved. This is because it will stop your compiler from executing and consequently any further progress.
1. Add a element to the enum “SysCompilerOutput”. Let’s call it “Custom”
2. Add a new datasource to the Form “SysCompilerOutput” for the table “TmpCompilerOutput”. Name it “Custom”. Also create a tab, grid and drag fields to it.
3. Now override the “init” method of the datasource and write the following code.
public void init()
{
QueryBuildRange range;
;
super();
range = this.query().dataSourceNo(1).addRange(fieldnum(TmpCompilerOutput, SysCompilerOutputTab));
range.value(queryValue(SysCompilerOutputTab::Custom));
range.status(RangeStatus::Hidden);
}
4. Go to class “\Classes\SysCompilerOutput” and create a global variable “Custom_Ds” and create a parm method for this datasource like “\Classes\SysCompilerOutput\parmBestPractices_ds“
5. Go to “\Classes\SysCompilerOutput\updateDataSources ” and add the following lines
this.updateCursor(custom_ds, tmpCompilerOutput);
custom_ds.research();
6. Now change your compiler output to “Form”
7. Run the following Job to test it.
static void JobTestCompiler(Args _args)
{
SysCompileroutput output;
;
output = infolog.compilerOutput();
output.compilerOutputMessage('Custom Message 1', 66, 1, 2, 3, 'Just a try', 'Method name', SysCompilerOutputTab::Custom);
output.compilerOutputMessage('Custom Message 2', 85, 1, 2, 3, 'Second Try', 'Property name', SysCompilerOutputTab::Custom);
}
8. Now you can make the above call from any place in the application to add contents to the compiler output tab.
**Just a note, This is only to start with it. You may want to setup your own custom error messages, error codes, images. You have to explore forward from here to accomplish those.**
Microsoft Dynamics Ax 2009 Administration Book – Review
Ax 30 was then fresh in the hands of Microsoft, I had just begun my professional career with Dynamics Ax. There was one frustration that was common among our entire team and that was lack of materials and books. It was Steen anderson’s Morphx It that came as savior in those days and more like Inside Microsoft Dynamics Ax, Supply chain management with Ax followed. As Steen had kicked off development series, today Marco has done it for administration. I think this is the first book dedicated to the installation and administration of Dynamics Ax. Thanks to Marco for the great move which could be followed by more in the days to come.
Target Audience: VAR’s and IT admin’s
Dynamics Ax has transformed itself from a single piece software to multitude of systems working together to deliver a complete enterprise solution. This technically dilutes to different set of softwares like Sharepoint, SSRS, Dynamics Ax, Office working in tandem. Integrating different systems in practical situations throw up wide challenges. Microsoft Dynamics Ax 2009 Administration comes in handy to help overcome these challenges.This book on administration will be a good beginner guide for novice users and help to broader insights for the experienced users.
What is so good about it ???
The book basically starts with choice of hardware, topologies, installation of Ax, EP, SSRS and moves on to discuss in detail about configuration of Security, Workflow and AIF. Towards the final part the book talks about data migration, backup and performance tunning. This is a right mix of detail required for anybody doing administration.
The content on kerberos authentication in the context of Ax is unique and sparingly discussed on the web. Chapter on security cover setting up security on EP, Cubes, SSRS, RLS security setup apart from the dynamics Ax security setup. Configuration related chapters also have content to run basic steps to ensure proper configuration.
Apart from the essential chapters the appendix also includes good information related to peculiar but blocking issues like AOS Common trouble shooting guidelines, installing multiple EP portal in a web server and most steps to enable Ax 2009 to work along with Sharepoint 2010[Ax 2009 was basically designed to work for SP2007]
Good efforts have been made to include many screenshots that would guide through installation and configuration steps.
What would be good to be included in next version ?
- More troubleshooting guidelines along with the ideal setup explanations for installations.
- Chapter on handling upgrades and roll-ups in production environments
- Short examples of topology decisions relating to real world experiences
few points that would make this book interesting read for ISV’s too is
- Detail on development topologies
- Detail on building on top of Dynamics Ax like Layers, Patches and version maintenance
Overall: Good book to understand and start with planning, installing and configuring Dynamics Ax
Rating: 3.5/5 Click here to buy it now
A special Thanks to Marco for sharing the copy of book through PACKT Publisher to review and present it before you. An interesting co-incidence is that I wrote this review straight back after visiting the Marina Bay Sands hotel adoring the cover page in this book
Dynamics Ax 2012 Unleashed – Pre-order now @ Amazon
Couldn’t believe my eyes gentlemen, this afternoon I was surprised to see a pre-order open for a book on Dynamics Ax 2012 in Amazon. Not much information except for the author names. The authors are from the executive team of cole systems. Click here to know more about the authors..
“Microsoft Dynamics AX 2012 Unleashed” by Ivan cole and David weiner – Pre order for yourself here…http://amzn.to/eVuWjX
Finding unused labels in Dynamics Ax 2009
The pain of unused labels is felt when you start translating your application to support the global versions. As we were porting our application to German we were seeing every possible way to speed up the translation work, one of it was to avoid translating unused labels. So we tried a few tools that helps us identify this but unfortunately nothing turned helpful. We then resorted to invent our own strategy
….
I’m just reposting what my colleague had already posted on his blog with little more detail and a few additions …
*This job works only if your cross reference is updated*
static void FindUnUsedLabels()
{
str 50 labelId;
str labelString;
int i;
//set max label to the highest number of labelId in your application
int maxLabel = 2000;
xRefNames names;
XRefReferences ref;
;
while (i <= maxLabel)
{
//Sequential generation
labelId = "@IFC" + int2str(i);
//Find if the label id has an cross reference
//record
select recid from names
where names.Name == labelid
exists join ref
where names.RecId == ref.xRefNameRecId;
labelString = SysLabel::labelId2String(labelId);
//If there is no record in cross reference then log it
if (! names.RecId &&
//avoid logging labels that are already deleted (This is because of sequential check like IFC1, IFC2, IFC3 etc...)
labelString != labelId)
{
info(strfmt("%1 - %2\n", labelId, SysLabel::labelId2String(labelId)));
}
i++;
}
}
Tools4Dax – Development tools for Dynamics Ax
There is always a gap between what the developer wants and the product offers. Though Dynamics Ax is making fast improvement in the upcoming versions in bridging thesegaps, the current version has a handful of it
.. that’s when utilities come in to help like the verticals for functional gaps.
I can remember how utilities like Tabax/Sidax from Max Belugin, Kashperuk’s Table Addon, DaxConfig by Arijit, AxAssist helped me and inspired me to come up with my own utilities…But these days I miss the trend. Uust to keep it kicking and alive is another such utility from itwrkx.com “Tools4Dax”.
This utility offers quite a number of features I did try a few of them but yet to use it full fledged. Here is the list of features that Tools4Dax promises to offer and moreover it’s FREE!!!
- Getting AOT node information about a field in a form.
- Finding all unused labels.
- Generating common table methods like find().
- Generating default objects like forms.
- Inserting user specified class, method and headers and comments in code.
- Inserting commonly used statements in code.
- Generating project trees and adding nodes.
- Debugging Queries.
Performance counter missing/cannot be removed error for Dynamics Ax 2009
Recently when we were trying to upgrade one of our systems to the latest roll up we were facing a error that was preventing us from installing the new application.
The error was something like “Performance counters cannot be removed” and sometimes “Performance counter missing”. After some investigation we found that the conflict was with the .Net framework. We found a defunct Visual studio installation inside, so after uninstalling it along with the .Net framework we were able to continue with our install process. Simply removing the .Net framework even didn’t help us.
So if you are getting performance counter related error during your installation process make it a point to check your .Net framework and VS installations.
Creating Edit methods for DS that don’t allow editing in Dynamics ax – Followup
A while ago i made a post on allowing a edit method to work on a disabled datasource .. http://bit.ly/hZMBIW
I found a still better idea from one of the comments, this post is to highlight the comment.
I rather would loop trough all data source fields (FormDataObject) and set them allowEdit=false at initalization time of the form/ds. That’s more confortable for the user, because he sees, that he cannot modify other fields than the edit fields. - LuegisdorfOne suggestion that i would add along to this is creating a SysHelper class for this, in case you find this recurring. You can just pass the record or datasource and the method will disable all the fields.
public class SysDictTable extends DictTable implements SysDictXmlReflectionProvider, SysDictXmlDocumentationProvider
{
public static void disableDSfields(FormDataSource _fds)
{
SysDictTable dictTable;
int i;
;
dictTable = new SysDictTable(_fds.table());
for (i = 1; i <= dictTable.fieldCntWithoutSys(); i++)
{
_fds.object(dictTable.fieldCnt2Id(i)).allowEdit(false);
}
}
}
Microsoft Dynamics Ax 2012 – Executive Interview -Complete Episodes
Couple of weeks back I did a post informing about the series of post to come from Softwareadvice.com [ http://bit.ly/eZxAZN] Softwareadvice.com has now completely released the seven parts and it’s available in their blog now http://www.softwareadvice.com/articles/category/enterprise/
Rest of the series talks about survivals of channel partners in cloud era, tries to find if Ax is the favorite ERP, the strength of Ax to compete with Oracle and SAP and finally about the rebounding ERP market situation.
I have also created a playlist in YouTube to watch this seven part series in sequence. Use this link to connect to the playlist Ax 2012 – Executive Interview
Courtesy: Thanks to Derek from SoftwareAdvice for keeping me posted on the update





