- Drawing
- Painting
- Walking
- Gardening
- Knitting
- Cooking
- Fishing
Results-oriented achiever with proven ability to exceed targets and drive success in fast-paced environments. Combines strategic thinking with hands-on experience to deliver impactful solutions and enhance organizational performance.
Purpose:
Designed and developed Australian payroll add-on in existing payroll module in AX 2012 and later upgraded solution to be compatible with Dynamics 365 for Finance and operations using extensions.
Responsibilities:
Purpose:
To design and develop new functionality and provide support within AX 2009.
Areas of focus:
Responsibilities:
Achievements:
During my time at PSW I developed and implemented the following:
Pick and pack functionality for the warehouse over in China to streamline their ‘back to school’ SEDA program. This functionality enabled warehouse workers over in China to scan items directly from a picking list into a carton and generate the Australia Post shipment and label with the student’s name and address. Once the Australia Post shipment was generated, and the label attached to the carton, the carton could then be packed into a shipping container. The cartons were then sent directly to students once the shipping container arrived in Australia.
This piece of development included a .Net component to enable PSW’s AX 2009 system to talk directly to Australia Post for the purpose of generating shipments and Australia Post labels.
PSW decided to move from using the old AX 2009 Retail module and application to ERPLY. I designed and developed a custom module inside AX specifically for this purpose. I adopted the approach of using staging data, very similar to what was introduced later in AX 2012. Each type of transaction i.e. expense, purchase orders, transfer orders and sales orders had its own staging tables, user interface and associated batch jobs. The role of the batch jobs was to transform raw staging data into each document type within AX.
Much of the work involved in this piece revolved around the sales order component. the different types of orders that would be processed at store i.e. Standard, Parent Orders, Layby’s, and Vouchers. The process behind these orders required a 2-transaction approach; The payment from the customer was recorded in AX as a pre-payment and then offset against the tax invoice generated from the sales order. There were literally hundreds of transactions coming into AX each day from multiple stores around the country.
The user interface displayed the status of the transactions and included a validation and logging process to facilitate trouble shooting incorrect data coming through from ERPLY.
Customisation of the ‘Print Management’ framework inside AX to enable setup of parameterised message templates for the different document types sent to customers and vendors via e-mail i.e. tax invoices and account statements. This functionality also enabled text messages to be sent to customers and vendors using the same parameterised message templates.
This customisation made it possible to send messages directly from code by passing only a couple of parameters. These messages/emails/text messages could be sent to users belonging to specific user groups. I also built this functionality into the existing batch framework so that error messages relating to specific tasks could be sent to users in the form of a list via e-mail. Currently the existing batch framework can only be configured to send e-mails to users if the actual job itself fails. This function would send a list of records i.e. sales orders where the orders failed to post along with the related error message.
Purpose:
To design and develop new functionality and assist the Finance Department with data related issues and reporting requirements within Dynamics AX 2012,
Responsibilities:
Purpose:
To provide functional and technical advice in relation financial areas within Dynamics AX 2012 on ad-hoc basis.
Responsibilities:
Purpose:
Responsibilities:
Purpose:
Responsibilities:
Achievements:
In October 2013 I commenced employment with Renown Corporation as a Dynamics AX Developer. I have worked on a number of projects and have developed some helpful tools leveraging the existing frameworks inside dynamics AX.
Some of my achievements whilst at Dialog IT include the following:
SSRS Report Wizard
I created an SSRS Report Wizard for generating the Dynamics AX objects required for creating an SSRS Report. The wizard was made available from the “Tools” menu within Dynamics AX. The objects created by the wizard include:
DATA PROVIDER - Allows a developer to build a query by specifying the required table, fields and display methods. The wizard would then create a query in the AOT. The query is then initialised in the code of the 'processReport' method of the data provider class in order to populate the temporary table with data which is used to display on the report.
CONTRACT – The wizard gave the ability for developers to select various data types to be used for building parameters on the report contract class. These could be flagged as multi-select if required. Financial Dimension were also available as multi-select. The parameters are then built into the code of the query in the 'processReport' method on the data provider class.
UI BUILDER - This class is created in order to facilitate parameters that are flagged as multi-select. Its purpose is to bind the 'parm' methods in the contract class to the lookup methods generated in the UI Builder.
CONTROLLER – Although the main purpose for this class is to enable execution from within X++ code; the main purpose here is to correct a gap in the multi select capability provided in the standard application. When you use a multi-select on a contract class the user is returned an error if they do not make a selection. The user could get around this be selecting everything in the list. However, this will exclude transactions when the value is null, which is not ideal. So in order to get around this limitation the SSRS Report Wizard will write code in the 'preRunModifyContract' method of the controller class for each multi select parameter and replace the multi-select list with a special value that can be interpreted by the data provider class at runtime. This will then suppress the creation of the query range for that parameter.
TEMPORARY TABLE – The SSRS Report wizard will create a temporary table based on the fields and field datatypes selected by the user.
QUERY – The query is created in the AOT based on the tables and fields selected by a developer. The parameters on the contract class are added to the query as ranges at runtime.
EMPTY SSRS REPORT – An empty SSRS report is generated based on the report name specified by the developer. When the Visual Studio environment is opened, the developer can select the report from the 'Application explorer'. A data source can be added to the report with the data provider generated by the SSRS Report Wizard added as the report query.
This tool enabled some of our functional consultants who were already familiar with native SSRS to write their own reports in Dynamics AX.
Configurable E-mails, Alerts and Notifications
Built a fully configurable interface leveraging the standard alerts and notifications framework inside Dynamics AX in order to provide the following functions:
EMAILING REPORTS
Administrators can configure any type of report for transmission by e-mail (inclusive of reports that implement print management). The global address book has been modified in order to include the method of correspondence on any Customer, Vendor, Contact or Worker by including a flag that enables selection of the preferred method of delivery:
Reports can be e-mailed to Customers, Vendors, Contacts, Workers and Users. The recipient type is specified when configuring the report for e-mail.
MESSAGE TEMPLATES
Fully configurable messages for each configured notification template. Messages are used when configuring the template for e-mails and internal notifications. Parameters are available within the message template. These parameters are based on the type of recipient and record that is specified on the template header. By default the following table metadata will be available as parameters on an e-mail template, for the following recipient types:
Additional parameters will be available when configuring notification templates from a record buffer in Dynamics AX. The metadata included in the parameters will come from the record buffer.
E-MAIL MONITORING
E-mail monitoring can be attached on the calling record used when sending an e-mail message. This gives users the ability to do the following:
DOCUMENT HANDLING
The document handling framework has also been customised so that document handling files can be included as attachments when sending e-mails. These attachments can be included along with the report attachment when e-mailing reports.
EMAILS AND NOTIFICATIONS
Emails and or notifications can be easily sent from anywhere in X++ code.
Payroll Integration
I recently I worked on the Payroll Integration Project for Sensis where the requirement was to integrate payroll related data with Dynamics NAV via web service or comma delimited format. Because there were multiple process coming in and out of Dynamics AX I built a “Data integration helper” interface that could be extended for each import/export process.
This interface could be invoked by any query created in the AOT. A user would then select the query in a lookup of a 'runbaseBatch' dialog. The type of integration (import or export) also had to be specified. This customisation included a lot of development around dictionary classes inside AX in order to read and write data. The beauty of this interface was that it could be used later on for other integration requirements. This interface could also be extended for more complex integrations such as the creation of General Journals, which was also a requirement for the payroll integration.
Dialog IT now have 2 other major clients who are going to be utilising this same framework.
APPurpose:
To assist with the upgrade of the PeoplePoint solution from AX 2009 to AX 2012.
Responsibilities:
Achievements:
I May 2013 I worked as a contractor for 4 months with APTEAN. This was an upgrade from AX 2009 to AX 2012 for their PeoplePoint solution, created for aged and community care providers. The PeoplePoint solution had over 11,000 customised objects, much of which required refactoring in order to make them compatible with the new frameworks inside Dynamics AX 2012.
Some of the major areas of focus included:
Due to time constraints and the number of tables and fields requiring upgrade scripts, I was asked if I could come up with a way to automate the upgrade script writing process. I was able to achieve this by creating the following tools as a two part process.
I created an “Upgrade script helper” class to determine all the tables and fields in the data dictionary that would require an upgrade script. The helper class would find all tables and fields that only resided in a specific layer (i.e. VAR) that had been assigned the “DEL_” prefix or the “SysDeletedObjects60” configuration key. The helper class would output a list of all the objects to Microsoft Excel which was used as a basis for writing the upgrade scripts. The helper class also had the ability to output table methods, classes and class methods as well as move them to a specific model selected by the user.
I also created a “Script generator” class in the source and target environments which automated the creation of several types of upgrade scripts. The class was built into the X++ code editor. The scripts that could be generated by the framework included the following:
AX 2009 script generator
AX 2012 script generator
The script generator was completely dynamic and included a user dialog, which gave the developer the opportunity to select the appropriate tables and fields to be used in the script generation.
Prior to being asked to extend the upgrade framework in order to automate the upgrade script writing process, I had estimated that the manual process would take 3-4 weeks. With the above framework in place, I was able to complete the upgrade scripts in both source and target environments in only 4 days.
I was a mentor to the PeoplePoint development team where I provided other useful tools in order to assist other developers with their development tasks. I have also given technical demonstrations via WebEx to share my knowledge with my colleagues.
Purpose:
Responsibilities:
Achievements:
Designed and built a Windows application in C# for integration with AX 2012 using AIF. Its purpose is for employees to record time and expenses as well as track their availability, budgets and actual hours worked:
New module for importing data in order to automatically create invoice and expense journals for:
Enterprise Portal Development:
SQL Reporting Services
Moore Stephens uses the Projects module of AX internally for recording and invoicing time and expenses for all of their clients. They had been using AX for a period of 8 years. Their initial installation was AX 3 and they upgraded to AX 2009 early in 2010, prior to my commencement.
The projects module in their environment had been very heavily modified and their ledger and projects had also never balanced until I re-built their customisations is 2011. Major areas of customisation included the following:
I also upgraded their environment to from AX 2009 to AX 2012 prior to departing in May 2013.
Purpose:
To work as a technical consulting team member responsible for ensuring the highest quality of development services are provided to clients.
Responsibilities: