Quantcast
Channel: Dynamics 365 Blog
Viewing all 1498 articles
Browse latest View live

Managing general performance issues in Microsoft Dynamics AX

$
0
0

This post is primarily aimed at non technical readers and those responsible for coordinating or managing these issues, but with links drilling through to more in depth blogs containing further details.

By 'general performance', I mean a set of unidentified performance issues across one or more modules, or indeed the entire application.

This is intended to provide a suggested approach drawing on experience, to get you started in what can be a challenging area.

General performance issues can often be highly political and complex. Many organisations and groups within organisations may be involved due to the number of different  potential factors and root causes; it can often be a combination of factors.  There is often no clear error message or steps to reproduce each issue consistently and the issue itself may not be clearly defined and subjective.  As such, collaboration and user perception is key, hence the importance of understanding the issues and setting the right level of expectation from the start.  Generally speaking though, the important thing to remember is the same relatively straightforward approach applies every time when analysing AX performance issues.

Crashes and AOS memory issues, while they may be related to performance in some cases, should at least initially be treated as a separate area,  but then once the call stack is identified from crash dump analysis, some of the principles discussed here may be applied if it is found to be performance related.  There is a series of articles available to help with these, as summarised in this article:
http://blogs.msdn.com/b/emeadaxsupport/archive/2011/04/10/so-your-aos-crashed-is-hanging-or-you-just-want-to-see-what-it-s-doing.aspx

Key steps

 These steps are based on typical approaches we would follow on support combined with my own previous experience.

1. Set User Expectations

Setting the right levels of expectation from the start is key to keeping any performance tuning project within scope.  I say project here deliberately because general performance issues should be treated as such, including scoping, timelines and allocation of multiple resources. There may be questions like 'Could [X technical issue] in some way relate to this performance issue?';  bear in mind that while positive contributions should be encouraged, be careful how you use the information - be careful to stick to your original goals and not be sidetracked. 

Get a list of processes and validate expected durations for those processes from the end users, i.e. whether they are actually realistic or not based on the underlying logic.  If you don't think it's realistic, say so, it's better to have these conversations as early as possible; ask them to define in business terms  what the requirement is and if possible, provide supporting information to go with it. If possible get the target defined in terms of volume  and concurrent users as well. For example:
"With 200 concurrent users, we expect process 'X' to take a maximum of 30 seconds and an average of 10 seconds, for a 100 line order. We have calculated this based on the order volume a user in that area would typically  need to process to meet their targets."

It relates back to the principle of SMART: Specific, Measurable, Achievable, Realistic and Time related.

Users saying "AX is generally slow" or "'X' process is slow" may be valid,  but it doesn't provide enough information on its own to properly analyse the problem;  the Performance Analyser can help but there is nothing better than first-hand information from the users.  It can help to stress the importance of their role in this process. This brings us on to point 2.

2. Ask!

Ask for further details and if you can't get the required information by simply asking,  try other approaches such as site visits to observe users while they are experiencing the issues.  If you don't get your answers, keep asking - you may well find that a lot of "noise" simply disappears  and some specific issues start bubbling to the surface which you can then begin to address.

Once you do start getting the information though, users need to see that their efforts are worthwhile to offer you continued support (i.e. first hand information), so ensure you at least demonstrate that you are working on it and ensure they are being kept informed (ideally, directly if you can). If you can also achieve some quick wins, even better.

Some examples of questions you might want to ask the end users:

  • Is there a general performance issue or can specific processes be identified?
  • For each process that is slow: is the issue intermittent, if so is there any pattern to it, e.g. particular users and/or times of day?
  • In some instances, I have seen end users (or someone on the 'shop floor') recording details in a spreadsheet as and when they occurred - the more first-hand information the better.
  • Even if it is described only as a 'general performance' issue:
    • Can they provide examples of processes they found to be particularly slow to focus in on?
      - Consider asking for the top 2 worst performing processes from each business area, or the top 20 worst performing processes overall, for example; it's subjective and different people from within the business may not entirely agree, but at least they are engaged in the process.
    • How many users are affected and in what areas of the business?
      - Following on from that, are there users or business departments which are not affected?
  • Where an issue is identified with a specific process:
    • Can it be recreated on a test environment?
    • If not, can it consistently be recreated on the production environment?
    • What are the steps for the process (clear and detailed enough for anyone to understand, specifying the AX path)?
    • If applicable, what parameters were used?
    • Is there any setup required before running the process, if so what are the steps?
      (e.g. you might need to ask them to provide a file used for an import - one which would recreate the issue if it depends on the file type/size)
    • What are the expected and actual results? As mentioned in point 2, make this as quantitative as possible, including durations, transaction volumes and concurrent users ideally.

3. Plan

By this point (if not earlier), you should be in a position to formulate an action plan based on:

  1. What the issues and priorities are.
  2. The resources (organisations and individuals) required to address the issues and their availability.
  3. Initial tasks required to address the issues and the start/end dates (including development, quality assurance,testing, deployment, etc.), taking into account the steps below.

 Keep in mind that the plan may well change as time goes on and further issues/actions are identified, but obviously the key is to have one!

4. Install the key recommended tools

There are 2 main tools which together can mostly be used to diagnose any performance issue on AX. 

An added benefit is that as these tools are also the main ones used by Microsoft support, Premier Field Engineers and product team members, if you needed assistance from Microsoft, you would be able to send a back up of the Performance Analyser database and/or AX traces including your findings so far which can reduce the time to solution.

5. Validate setup

It is important to start troubleshooting on a good solid foundation. If the problem is clearly identified with a specific process less of this may be necessary, but a quick validation of the environment at least should still be done for any performance case. The reason being that some issues with specific processes  have been known to be resolved by addressing simple setup issues, for example rebuilding indexes or updating statistics on the  affected tables or setting the MAXDOP setting in SQL Server to 1.

You can use the following guides to check known areas of setup that can affect AX performance:
 http://blogs.msdn.com/b/axsupport/archive/2014/09/05/ax-performance-troubleshooting-checklist-part-1a-introduction-and-sql-configuration.aspx 
http://blogs.msdn.com/b/axsupport/archive/2014/09/05/ax-performance-troubleshooting-checklist-part-1b-application-and-aos-configuration.aspx

6. General performance analysis

General performance issues can involve a lot of potential factors and therefore  can often require collaboration across a lot of different organisations  and groups within organisations, e.g. general infrastructure, development, database, AX support, desktop support, etc.  In the most successful performance projects I have seen, there has been a spirit of openness and collaboration towards the shared goal of improving performance, without which people may tend to try to defend their own areas and can be less willing to contribute information if they feel there is a risk in doing so.

If you haven't already, depending on the scale of the issue you may wish to consider setting up a regular conference call  to share information, agree and assign actions and review progress, for example on a weekly basis.

Your main tool of choice to begin with should be the performance analyser (see step 1).

Following on from the configuration checklists (parts 1 a and b above), you should then move to Part 2, which can be found here: http://blogs.msdn.com/b/axsupport/archive/2014/09/08/ax-performance-troubleshooting-checklist-part-2.aspx

There are scripts included in the Performance Analyser package that will help you to check all of the above areas, as described here: http://blogs.msdn.com/b/axsupport/archive/2014/09/01/microsoft-dynamics-ax-general-performance-analysis-scripts.aspx

On the SQL Server tier, you may also be able to draw on the experience of the customer's DBA and they may already have a lot of relevant information which could provide some insight. Bear in mind though that they probably won't have a great deal of experience with AX and SQL tuning for AX can be different in some ways (e.g. in AX 2009, included columns are not available and index changes need to be made in the AOT).

The next phase, which can also overlap to a degree, is to analyse specific processes. Having said that, it's important to get as much done at the 'general' end  (e.g. setup, hardware, etc) first when dealing with general performance issues, to avoid costly and potentially unnecessary additional monitoring / analysis time later.

One analogy is the funnel: the investigation starts wide, looking at general settings, gathering information,  etc and can then gradually become more focused as you narrow things down. This would also apply to specific processes,  but you would expect to filter down to a granular level much more quickly.

Another analogy is the onion: performance tuning is iterative, where the cycle includes analysis, corrective actions/tuning, deployment of changes then review.

7.Analyse specific processes

Even when investigating general performance, as mentioned above you should still get some examples from users of where processes are particularly slow. This is for 2 main reasons:

  1. You can measure durations before and after to see the impact of your changes (discussed in step 6) - but bear in mind a lot of those changes don't target specific processes, so again user expectations should be set accordingly beforehand.
  2. After general performance tuning, you may still need to look at x++ and specific processes in more granular detail.

Following on from step 4, you can analyse the AX traces using the Trace Parser tool. See the following blog regarding trace analysis.
http://blogs.msdn.com/b/axinthefield/archive/2011/06/25/dynamics-ax-tracing-part-3.aspx

8.Iterative Review

Review should be a regular part of the process because as mentioned already, performance tuning is iterative;  resolution of some underlying technical issues may help, but then more can be identified after changes  are deployed and the performance tuning is able to become more focused and in depth.

However, at the same time it's important to be able to recognise when to stop tuning and move on. There is generally a 'law of diminishing returns' to be applied here, meaning in each iteration of the performance tuning of a specific process,  you would expect the potential for improvement to reduce exponentially.

So some kind of exit criteria should be applied (and predefined as early as possible).  For example, you may have simply reached the target duration agreed with the end user or some kind of cost / benefit decision was made, such as:

  • The estimated hours of analysis to improve average duration of opening of form X by 0.2 seconds are too great to justify, or
  • To do this requires changing the design and the end users would prefer to live with the additional 0.2 seconds and keep the existing design.

As well as reviewing performance fixes that are deployed, I have also seen QA (quality assurance) processes put in place  for performance of every code deployment. One benefit of this is that the customer can feel more reassured that any downturn in performance is not seen to be a result of a recent code deployment. Other things I have seen (following a similar principle) are:  putting all other code deployments (i.e. anything other than performance fixes) on hold during the period of performance tuning;  being prepared to reverse deployments if there is any doubts over whether or not they caused a performance issue.

Finally, review what could have been done pro-actively that can be applied in future to avoid the issue happening again and plan to have it in place on every AX implementation project. Areas to consider may include:

  • Benchmarking and user acceptance testing activities.
  • Agreeing key performance metrics from the start
  • Hardware sizing
  • Solution design
  • Setup/configuration according to best practices
  • Performance QA
  • etc.

Further reading:
Performance Resource Page for Microsoft Dynamics AX


AX Content: Let us help you configure AX modules

$
0
0

We’ve created and recently published what we’re referring to as content roadmaps. Each content roadmap refers to a different AX module or large feature area and it includes links to important information about how to plan, use, and configure that module or feature area. We have content roadmaps for Accounts payable, Accounts receivable, General ledger, Fixed assets, Human resources, Budgeting, and companion apps.  There are also additional content roadmaps available for ReportingWorkflowAnalytics, Retail online store and Retail point of sale.

These content roadmaps provide you with a one-stop-shop of links that direct you to the following kinds of information about each module or feature area:

  • Information to help you get started
  • Prerequisites    
  • Configuration information
  • Module integration  
  • How to complete basic tasks
  • What’s new information
  • Where to find additional information

AX 2012 R3 & SEPA

$
0
0

Microsoft Dynamics AX 2012 R3 is released with SEPA support 'out of the box' for SEPA Credit and SEPA Direct Debit transfers with all known SEPA updates released by Microsoft upon the release date of R3 (May 2014) included

The SEPA credit transfer payment format is implemented by using the payment format functionality in Microsoft Dynamics AX. Nine SEPA export file formats are available in Microsoft Dynamics AX. These export formats conform to the SEPA ISO 20022 XML standard that is specified in the SEPA Credit Transfer Scheme Rulebook that the EPC releases.

The following SEPA export file formats are currently available:

- The SEPA ISO20022 Credit Transfer export format is used for most countries/regions within the Single Euro Payments Area.
- Support is provided for eight countries that have special requirements, and a separate export format is provided for each of these countries: Austria, Belgium, Finland, France, Germany, Italy, Spain, and The Netherlands.

The SEPA direct debit generic payment format is currently supported in Microsoft Dynamics and follows the EPC B2B and Core Direct Debit Scheme Rulebooks. The ability to deal with pre-notification and handle direct debit mandates is currently supported in Microsoft Dynamics.

The following SEPA export file formats are currently available:
- The SEPA ISO20022 Direct Debit export format is used for most countries/regions within the Single Euro Payments Area.
- Support is provided for seven countries that have special requirements and separate export format for each of these countries/regions: Austria, Belgium, France, Germany, Italy, Spain and The Netherlands.

The latest SEPA update released for Microsoft Dynamics AX 2012 R3 at the time of writing(September 2014) is KB 2959798. Further details on this release can be found on the link below


http://blogs.msdn.com/b/axsupport/archive/2014/06/26/release-announcement-name-of-outbound-port-for-credit-transfer-or-direct-debit-can-be-setup-differently-than-sepacredittransfer-or-sepadirectdebit-in-microsoft-dynamics-ax-2012-r3.aspx

Dynamics AX Workflow - Quick Tips

$
0
0

In support I field a number of workflow cases and I very often will use the Tutorial Workflow Processor for testing.  I often get asked by customers and partners about the Workflow Processor.

You can find the workflow processor in the AOT under Forms | Tutorial_WorkflowProcessor (bonus tip: type the letter U and it will be two above UnitOfMeasure). If you right click on the Tutorial_WorkflowProcessor and choose Open a small form titled Demo will open.  Click on Start and you should see something like this:

 

 

You can see from the screenshot that there are 4 records in the queue.  So what use is this you ask?  We use this in support for testing very often because by watching the processor you can see the record count increase and then decrease when submitting and approving workflows.  If the count is at zero and you submit an item it will tick up to 1 and then back to zero after it is submitted and processed.  When you approve the workflow you will see it count up and then back down again as well. Additionally the workflow processor is faster then the standard batch processor which is set to recur every minute by default. It definitely beats clicking refresh over and over again while doing testing.

Another great use for the processor is to test workflows that are "stuck".  You will see these workflows sitting in a pending state and they aren't assigned to anyone.  In these cases you can run the processor (in test!) to see if this gets them moving.  If it does that usually indicates an issue with batches.  We know this because the workflow processor takes place of the batch processing infrastructure. 

There are a few caveats of course.  Generally speaking you don't want to run this in production.  There is a Clear button on the processor which clears out records and that usually isn't desired. 

A really quick tip.  When you open the Workflow Canvas you can see a list of errors and warnings on the bottom of the screen like this:

If you double click an error message the correct window will open so you can fix the error.  Pretty handy if you are in a hurry!

 

How to always open the Role Center on startup

$
0
0

Role Centers are role-specific home pages that provide an overview of information that pertains to a user's job function in the business or organization. With Dynamics AX 2012, when a user logs in, the application displays the area page of the last visited module, and not the Home/Role Center page.

Dynamics AX 2012 was designed this way as most of the users prefer to find the application where they left it, and don't want to have to navigate back to the module they were using.

Unfortunately there isn't any parameter to change this behavior and some customers would like to always have the Home/Role Center displayed when they log in.

We thought about various workarounds to make this working so the Role Center always displays on login, and the simplest seems to be the following:

  1. Open a Developer workspace
  2. In the AOT, find the class named Application
  3. Double-click the startup method
  4. Add the following line of code at the end of the method: infolog.navPane().selectedGroup('Home');
  5. Save and compile

I hope this is helpful!

Bertrand

 

 

Allocation rules’ “Specific” and “Unspecific” criteria with multiple sets of allocation rules in AX 2012

$
0
0

Allocation rules on a ledger account can be configured to behave many ways, and here’s some explanations on how to use “Specific” and “Unspecific” in the current design for allocations in AX 2012. For testing, we’ll setup 2 main accounts, “A” and “B” to serve as our destination accounts, with the source being 110180 “Petty cash”.

On the “Allocation rule” form (accessed from the "Main accounts" form), we define the percentage to be allocated, the dimension criterion for the source account, the destination ledger account, and how to handle the destination’s dimensions. For each dimension in the source criteria, you can select either “Specific” or “Unspecific”. If we set a source dimension to “Specific”, we tell AX that the transactions to the ledger account with that value apply to this rule. If the dimension is set to “Specific” and the dimension field is blank, the rule will only apply if the transaction’s corresponding dimension is blank. For example, if all dimensions in the source criteria are set to “Specific”, and Department is set to “OU_1” with the other dimensions blank, the only transaction that would be allocated by this allocation rule would be transactions with the ledger dimension combination of 110180-OU_1- - . If there are any other dimensions on the transaction, the transaction will not apply to this rule.


If we set dimensions to “Unspecific”, we tell AX that the rule applies for any dimension including blanks. For example, If we set Department to “Specific” and “OU_1”, while the rest of the dimensions are “Unspecific”, all transactions to account 110180 with Department “OU_1” will allocate, no matter what the other dimension values are or if they are blank.

 

It is possible to have multiple sets of allocation rules, as long as there are no conflicts. For example, let’s set up allocation rules that will allocate 50% to account “A” and 50% to account “B” when the Department is “OU_1” and the worker is 000131 with any CostCenter and any ExpensePurpose. In addition, allocate 60% to account “A”  and 40% account “B” when the Department is the “OU_1” but the worker is 000123 with any CostCenter and any ExpensePurpose.

 


 


 

To see the ledger postings, we’ll post a general journal to this main account. Here is the first journal and voucher with Worker 000131 to illustrate the 50%/50% allocation:

 

 

Here’s a similar transaction, except this time using the 000123 Worker dimension to meet the 60%/40% allocation criterion:

 

 
As mentioned earlier, there is a potential for conflicts. If I designate a source dimension as “Specific” to Department “OU_1” for the first 50% to account “A”, and then try to set the other 50% to “Unspecific” going to account “B”, an error will occur stating “Allocations with different selection criterion for dimension exist. This may cause wrong allocation.” This is because “Unspecific” for a source dimension includes all values, including the “Specific” “OU_1” dimension. This could cause incorrect allocation, as a transaction with 110180-OU_1- - would meet both source criterion (50% to account “A” and 50% to account “B”), while a transaction with 110180- - - would only meet the “Unspecific” criterion and therefore would only be 50% to account “B” and have a less than 100% allocation. This is incorrect.

 

 

As a final note, if you encounter any issues when using multiple sets of allocation rules, look up KB 2986833 in Lifecycle Services. This corrects an issue with multiple allocation rules where the source criteria is ignored and over 100% allocation is possible.

 

Tyler Lewin
Senior Support Engineer

 

 

AXRETAIL: How to control the Action flow

$
0
0

Applies to AX 2012 R2 

Description:

The purpose of this article is to provide an example, how to control the data flow concerning (preaction/action).

Retailers might have to add new catalogs, Changing prices and barcodes during opening hours. If the number of changes are huge, the processing time increases and

the locking behaviour on the store database is affected.

 

 

1. Change the code, so processed always is 2 when the data is changed/added by table methods

\Classes\RetailConnActionManagement\insertAction

preactionTable.action = _type;
preactionTable.preactionDate = systemdateget();
preactionTable.preactionTime = timenow();
preactionTable.linkDown = _linkDown;
preactionTable.userId = curuserid();
preactionTable.processed = 2;

//Default: PreactionTable.processed = NoYES::No;

2. Change the default value of Processed to 2, then data inserted from a Insert_recordset will also get the value 2 in the processed field.

Code path example

Class/RetailAssortmentSchedulerTask/deltaSync

method line 106 

            insert_recordset preactions (action, linkDown, locationFilter, preactionDate, preactionTime, RefRecId, RefTableId)
                select
                    action, linkDown,
                    filter, preactionDate,
                    preactionTime, RecId, assortmentTableId
                from explodedInner
                where
                    explodedInner.createdTransactionId == currentTransId &&
                    explodedInner.OMOperatingUnitId == omOperatingUnitRefRecId &&
                    explodedInner.AssortmentRecId == assortmentRefRecId;

 

 

3. Import the two SQL agent jobs attached. (the owner id is contoso\Administrator must be changed)

The two jobs are releasing the data in two steps

  • Release Preactions non A 1040 tables

            - All preactions that are not in a table list will be released every minute.

 

  • Release Preactions A 1040 tables

           - All preactions will be released in batch of 10000 every 15 minutes

 

4. The create action can utilize batch worker threads

 If the Create actions periodic job is run in batch processing mode, it will use the Microsoft Dynamics AX batch processing framework to scale out processing by using multi-threaded logic. For this to work, you need to update the Retail Scheduler Number of documents in the batch task parameter to a larger number. For example, the number must be in the thousands instead of 0 (zero).

Hotfix needed

Create Actions job performs daily cleanup during every batch task which slows the job down considerably

 KB Article Number (s) : 2995408  

 

 

 

 5. Add the CREATE ACTIONS to batch every 5-15 minutes

 

 

6. It is possible to control the A job flow when sending the data out of AX.

In the case a table has very high number of changes, it can cause locking issue on the store database.

By setting the number of Action Counter Interval, it will look only take the specified number of lines in the RetailConnActionTable

 

Responsible class:

\Classes\RetailConnReplicationAJob\processActions

 

    // There is no logging for this method as this is executed in a very tight loop. It affects the run time.

    [sourceCounter, upperCounter] = this.replicationCounter(_fromTableId, _schedulerSubjobTable.ActionCounterInterval);

    if (sourceCounter >= upperCounter)

    {

        return0;

    }

 

    currentDeletedRecordCount = 0;

    currentReadRecordCount = 0;

 

 

 

Author: Kim Truelsen

Date...: 7/10-2014

 

The error message "The transactions on voucher XXX do not balance as per [date]. (accounting currency: 50,00 - reporting currency: 50,00)" in open customer transactions settlement

$
0
0

There might be a situation when you are not able to settle customer transaction with payment due to error message "The transactions on voucher XXX do not balance as per [date]. (accounting currency: 50,00 - reporting currency: 50,00)" (when the amount in error message is full invoice amount).

Caseswhenthis issue canoccur:

1. You have enabled the “Mark lines on free text invoices and interest notes” in AR/Setup/Tab Settlement/AR parameters.

2. Post Free text invoice for a customer.

3. Delete posted FTI in step 2 (it was possible to delete posted FTI before R2 CU7, but the hotfix KB 2878451 solves this issue in 6.2.1000.2487).

4. Create payment journal and try to settle it with invoice transaction posted in step 2. (or you can have payment posted and settle open transactions later).

Actual result: the error appears "The transactions on voucher XXX do not balance as per [date]. (accounting currency: 50,00 - reporting currency: 50,00)" (when the amount in error message is full invoice amount).

Solution: disable the parameter “Mark lines on free text invoices and interest notes” and then settle open transactions again. Settlement should be posted successfully. Go back and enable the “Mark lines on free text invoices and interest notes” parameter again.

If you have the hotfix KB 2878451 installed, you should not be faced with this issue.

 

 


Dynamics AX 2012 Payroll - Pay Statement does not display the appropriate taxes based on where the employee works and resides

$
0
0

When reviewing a Pay Statement for an employee that works in one state but resides in another state, we are seeing that the state taxes display for the state where the employee works as opposed to the state where the employee resides.

This applies to Dynamics AX 2012 R2 and Dynamics AX 2012 R3.

 

For this example, we have an employee who works in Pennsylvania and resides in Ohio.  In the pay statement listed above we see that the employee is paying Pennsylvania state tax.  The employee should be subject to Ohio taxes and Pennsylvania city tax where applicable.  This may be caused by not having the Non-Resident Certificate on File parameter selected. 

 

Please Note: You may need to contact state officials to make sure the employee can obtain a Non-Resident Certificate.

 

To review this, please perform the following steps:

1.  Click on Payroll, click Common, click Workers and click on Workers.

2.  Select the worker who needs to update the Non-Resident Certificate on File parameter

3.  Click on the Payroll tab and click Worker Tax Codes.

4.  Select the USA-PA-SIT tax code.

5.  Under the Non-Resident Certificate parameter, set this option to True.

 

After this parameter is selected, create an Earnings Statement and a Pay Statement.  We will now see that the state tax for the state that the worker is employed in no longer displays on the Pay Statement.

 

 Ryan S.

Sales tax payment - identified problems and troubleshooting best practice

$
0
0

During last month’s we received few service requests connected with “Sales tax payment” (VAT payment), where user face one of below problems:

  • Error message: “Account number for transaction type Sales tax does not exist”
  • Difference between sales tax payment voucher and report and in connection in account balance
  • Error message: “The combination 3800---- is not valid for the account structure Account structure – cee”

In many scenarios, debugging “sales tax payment” is not possible or it is very difficult, so we would like to share attached document.
In the word document, we wanted to share:

  • Published KB articles for AX 2012 RTM, R2, R3 that might be useful in case of “sales tax payment”
  • Examples how to identify transaction that is responsible for problems with sales tax payment
  • Few scripts/jobs that can help in troubleshooting

Thanks to this best practice, we could identify few issues and fix it, so I would like to encourage everyone who face such problem to review attached document and maybe even use our "best practice".

Thank You,
Monika

Link the workers to the vendors in order to manage the expense reports in AX 2012

$
0
0

In the attached document it is described through an example how to setup and manage the expense reports when it is necessary to link the worker that submit the expense report with a vendor account.

It is useful to link the worker to a vendor so that it is possible to easily manage the expense reports payments, settlements, etc. and use the various A/P reports.

AX for Retail 2012 R3 Receipt Printing Enhancements: Print Multiple Logos and Select Images in AX Client

$
0
0

Credit to Brian Storie (Microsoft) for authoring this article

AX for Retail 2012 R3 introduced a new feature on the Receipt Format Designer that allows you to select a specific image for your Receipt Logo.   In previous versions of AX for Retail you had to place a specific logo file on each terminal, either as a local bitmap on the file system or directly into the printer’s memory.  This made for a lot of effort if you ever wanted to change the logo on your printed receipt.  The new functionality now allows you to centrally manage your receipt images directly from Headquarters, and even provides the ability to have multiple logos on the same receipt.

Importing the Images

To use the new method of printing logos you first need to import the images you want to print into the RetailImages table in Headquarters.  Loading the Image into AX is pretty straightforward;  simply go to Retail > Setup >  POS  > Images:

001

Click New to create a new image and enter a value for Image ID.  Once the ID is set click the Select Image button and load the image from your file system.  This will then insert the image into the RetailImages table in the AX Database.   You will also see a preview of the logo:

002

003

 

Close the window after uploading the image file.

 

Adding the Logo to the Receipt

Once the image has been added to the table you will be able to add it to your receipt using the receipt designer.  Go to Retail > POS > Receipt Formats and select the receipt you want to modify.  Click the Designer button.

004

 

Adding a logo to the layout is the same as previous versions:  simply drag the Logo field from the field list onto either the Header or Footer section.  For this example I'm going to stick with the demo data example of having the logo at the top of the header:

005

 

Note that the field just says “Logo” when you drop it on the form. If you leave it as-is, EPOS will look for look for the file RetailPOSLogo.bmp in your POS folder and use that when printing (just like previous versions).  However, the new feature allows you to change any logo field to print a specific image. 

Make sure the Logo field is selected and click on the new Select Image button at the bottom of the window:

 

008

 

This will bring up the Select Image form.  Select the ID of the logo you want to use on this receipt and click Select Image.  For this example select the image that was uploaded earlier (10001):

006

 

If you look closely at the Logo field on the form you will see that it now shows the specific logo ID: 

007

 

If you want multiple logos, simply drag new logo fields anywhere you want into the Receipt Layout and repeat the process to select a different image.  Note that you can have as many different images on as many different receipts as you want.

 

Testing the Logo

Hopefully you remembered to click the Save button before you closed the designer form.  In order to test the receipt all you need to do is push your changes to the channel database.  EPOS will automatically use the new receipt layout and images you stored to the RetailImages table.  All of the tables you need to replicate are in the 1090 job.

If everything works correctly you should see your (multiple!) images on your printed receipt:

receipt

Notes

Here are a few things to keep in mind with this new feature:

  1. In R2 and previous versions EPOS used to scale the image to exactly 250 pixels wide.   In R3 the image is sent to the printer as is (it literally sends an OPOS constant called “PTR_BM_ASIS”).  If your image is larger than the OPOS printer can handle it will not print your logo.  Due to differences in Printer hardware you may need experiment different image widths in order to print your logo.
  2. Depending on your Receipt Printer you may be able to print color bitmaps.  However we typically get the best results using a monochrome bmp file.
  3. With the new method EPOS loads the images from the channel database every time a receipt is printed.   If you are having network or SQL Server limitations you may want to use the default logo to reduce network congestion.  Logo bitmaps tend to be rather small in size, though, so this may not be a problem.

AX for Retail 2012 R2 Cannot see Variants when selecting a Transfer Order in POS

$
0
0

Thank you to Brett Christiansen for helping with this blog

KB 2829678 fixes an issue with Variants not showing on Transfer orders.  AX 2012 CU6 includes this hotfix.

With the fix installed on my machine, I had an issue where an older item on a transfer order in the demo data would show the variants fine (Item 0140), but my new item would not display the variants.

What we found was the string displayed on the form is built using the dimension information from the EcoResProductMasterDimensionValue table. The query is a complex join to get information from this table for each dimension.

Broken the query down, it comes to showing the value for the dimension description in EcoResProductMasterDimensionValue.Description. 

Go to Product information management > Common > Released Products and select your item that does not show the variant in POS. 

Click Product dimensions

Notice that my variants do not have a Name\Description

I enter a value in the Name field for both of my variants

I then ran the 1040 job to push the change to the item variant to POS.

Now, when I log into POS and select Picking and Receiving when I select the Transfer Order I do see the variants.

 

AX 2012 RTM, R2, and R3: 'New Credit Card' window does not open and generates a stack trace error

$
0
0

Credit to Brian Storie, Brett Christiansen, and Shane Erstad for helping with this blog.

 

We have seen a few customers have issues opening the ‘New Customer credit card’ window and receiving the below stack trace error
(Accounts receivable > Common> Customers > All Customers, Customer tab > Set up > Credit cards and select New):

Error executing code: 
object not initialized

Stack trace

(S)\Classes\\parmStringValue

(S)\Classes\CreditCard\addCreditCard - line 28

(C)\Forms\CreditCardCust\Methods\AddNewCardHolder - line 12

(C)\Forms\CreditCardCust\Designs\DesignList\AddButton\Methods

\Clicked - line 3

 

To resolve the error, first ensure that the Payment Services dll is located in AX client\Bin\Connectors and AX AOS\bin\Connectors folders.  Also ensure that the AX users have sufficient rights to access the Connectors folder.

When the opening the “New customer credit card” window, the Credit card type, Month, Year, and Country/region values are pulled from the database before the window can be opened. If there is an issue with any of these fields, the above error will be generated.

In my case, the customer had issues with ISO codes in the Address setup window that were not valid.

To correct these invalid ISO codes, go to Organization Administration > Setup > Addresses > Address setup and click the Country/region link.

When entering a new record for the country/region, make sure the ISO values are 2 alphabetic characters (ISO should not contain numbers and should not be blank).

See screen shot below for an example:

 

 

Managing Direct Delivery Sales Orders with Direct Delivery Journals

$
0
0

With AX R3 you now have a place to manage many Direct Delivery Sales Orders in one place, the Direct Delivery Journal.  I like to think of this as the Direct Delivery ‘Workbench’ because like other ‘workbench’ forms in R3, this gives us a collective place to display many different Sales Orders, and work on processing the Direct Delivery portion of their processing in one place.  This eliminates the need to bounce back and forth between the Sales Orders and Purchase Orders.

Direct Delivery Journals form (Procurement and Sourcing | Journals | Direct Delivery):

This form (MCRDropShipWorkbench) is defined as:

“The direct delivery workbench is used to create, send and process direct delivery orders.

  • The Direct Delivery tab shows all Sales Orders that have lines that are marked for Direct Delivery but do not have a Purchase Order created for them yet.
  • The Confirmation tab shows all DD Purchase Orders that have not yet been sent to the Vendor, i.e. Confirmed
  • The Delivery tab shows all DD Purchase Orders that have been confirmed but not received from the Vendor

 

To use Direct Delivery Workbench:

First is a Product you want to be Direct Delivered.  For this, you can go about it in two ways.

1. You can set a Product to always be Direct Delivery.  This is set on the Released Product Details | Delivery fast tab of our Item

Note: You must specify a Vendor for the item in the Purchase fast tab for this to work

 


2. On the Sales Order go to Line Details fast tab | Delivery and mark the Direct Delivery Checkbox

  • This is not controlled in anyway by the Direct Delivery checkbox on the Sales Order Header | Intercompany Settings fast tab.
  • If the Product is set to Direct Delivery in its Released Product Details, the Line Details checkbox is marked automatically.
  • You still need a default vendor set up for the item if you are going to set it at the Line Details level of the Sales Order.

 

 

Basic Direct Delivery processing using the DD workbench (Direct Delivery Journal form)

1. Create Sales Order for any Customer

2. Enter line for Direct Delivery Product or set line to be Direct Delivery in Delivery Tab of Line Details and then Save the SO

3. Open Direct Delivery workbench in Procurement and Sourcing | Journals | Direct Delivery

4. Select the Sales Order line you want to create Direct Delivery for in the Direct Delivery tab

5. Click Create Direct Delivery button at top of form

  • The Sales Order is removed from this tab and Infolog with PO XXX was created is displayed
  • The Purchase Order created now shows up in the Confirmation tab

6. In the Confirmation Tab you will see the Purchase Order that was generated previously

  • The Sales Order reference is in the Sales Order tab in the lower pane

7. Select the Purchase Order you want to confirm on the Confirmation tab and select Confirm Purchase Order button

  • This will Confirm the Purchase Order, just as in normal Purchase Order Processing.
  • Any Printing is done based off of the normal Purchase Order Confirmation process
  • Once the Purchase Order is confirmed, it is removed from the Confirmation tab and shows up in the Delivery tab.

8. On the Delivery tab, select the Purchase Order that is confirmed and you want to receive, then click the Full Product Receipt button

  • This will also simultaneously put our Sales Order into a Delivered Status
  • You can post Partial Receipts here as well
  • Once the Purchase Order (and Sales Order) have been ‘packing slip updated’ the PO will be removed from the Delivery tab
  • Normal Invoicing practices are now available on both the Purchase Order and the Sales Order

 

Enjoy!

Kelly G.


Compare Tool causing a failure, forcing an element restore which results in negating the changes made on the element

$
0
0

 

Consider the following scenario n an AX 2012 R2 CU7

 

 

 

1. Go to AOT > Forms > CustTable > Designs > Design > Tab > TabPageDetails > TabHeader > TabGeneral >

       UpperGroup > Identification > Group:Classification > Classification_CustClassificationId 

       and here you do have the "Help Text" and "Label" properties for the above mentioned grid control

2. Now delete the "Help Text" and the "Label" control properties content

3. Save and compile the CustTable form

4. Now perform a Compare for this object, let’s say between "USR" and "SYS layers

5. As soon as Compare Tool dialog pops up and you click on the "Compare" button, you get  the below error:

     TreeNode object not initialized.

   Stack trace

(C)\Classes\SysTreeNode\onComparableSelected - line 5

(C)\Classes\SysTreeNodeDelayLoaded\onComparableSelected - line 8

(C)\Classes\SysCompare\getCombo - line 15

(C)\Classes\SysCompare\startCompare - line 28

(C)\Forms\SysCompareForm\Designs\DesignList\CompareButton\Methods\Clicked - line 10

 

6. Close the window.

7. Now try to Compile the CustTable form, you get the following error:

      "Unable to save . Version of Form CustTable on the server is newer"

8. You need to restore it :

9. As soon as you perform the Restore, you could see that, all the changes what you made earlier will be lost.

 

Actual Result

Compare Tool causing a failure, forcing an element restore which results in negating the changes made on the element

 

Workaround description:

 

- The Comparison Tool failure is caused by keeping the "Show Label" control property  

  set to "Yes" after deleting the "Help Text" and the "Label" control properties content.

 

- Setting the "Show Label" control property to "No" after deleting the   "Help Text"

    and the "Label" control properties content  resolves the issue.

 

Screen shot below:

Inter-company goods trading (sales price equal to cost price) - Microsoft Dynamics AX 2012

$
0
0

The intercompany transactions are a common business practice where companies trading goods between each other. There is company sells the goods, and a company receives the goods.

The used documents in Microsoft Dynamics AX are sales order which used in the sender company which sells the goods, and the purchase order which used in Receiver Company which receives the goods. The trading of inter-companies may requires to keep the item cost consistent in the both companies and this requires a specific treatment in Microsoft Dynamics AX operations, and transactions executions.

The scenario assume that there are two sister companies; company A represents the company which purchase goods from an external vendor, and these goods are sold to its sister company B, these goods will be sold for an external customer the two sister companies are agreed that the sales and cost price of the intercompany transactions should be equal. Assume that the item cost in company A has changed after issuing the goods to the sister company B, by an extra charges (freight, transportation) and at the end of the month this changes will be reflected on the item cost  after running the inventory recalculation/closing. This will be reflected on the intercompany-sales price on company A, and intercompany-purchase cost on company B.  


 

In order to simulate this scenario on Microsoft Dynamics AX 2012 R3 we should have the master data, intercompany configurations, setups, and transaction execution.

 

In Microsoft Dynamics AX 2012 R3 client, go to the company which will represent the company which will sell the products (company A in our scenario). Go to Accounts Receivables| Common| Customers| All customers, and create a new customer represents the intercompany customer "company B". then go to General ribbon|  Setup| Intercompany. In the Intercompany form mark Activate check box and identify the vendor account in the company B.

  
  
  

Then move to  Sales order policies and Mark Unit price equal to cost price check box



Create an intercompany-sales order in the company A, then Microsoft Dynamics AX will create an intercompany purchase order in company B. The intercompany sales price is item the cost in the inventory, and the intercompany purchase order cost price equal to sales price.


 

 

At this stage the item cost is changed based on additional charges on company A, and this will be reflected on the intercompany sales order after running the recalculation/closing, then will be reflected on the intercompany purchase order. In case of the intercompany sales order is invoiced the cost changes will not be reflected on intercompany purchase order, neither the intercompany sales order.

Check also TechNet article Check intercompany order price discrepancies [AX 2012]

Thanks

Acknowledgment; 

SueAnne MacRae          Escalation Engineer
Valentinas Vaitkevicius  Escalation Engineer
Slawomir Bronisz           Escalation Engineer

 

Using the Named User License Count report

$
0
0

The Named User License Counts report contains information about the users and their assigned security roles in Dynamics AX. This report also analyzes the duties and privileges of each user and calculates the number of licenses that are required for each type (Enterprise/Functional/Task/Self Serve).

More information is available in the Licensing guide

First, be aware that a batch job runs weekly to generate the data used by the report, and therefore, the information in the report is current as of the date that the batch was last run. This job is created when the application is installed.

If you made some changes to your security configuration and want to see the effect on licenses you will have to refresh the report first. To do so you can create and run a job running the following instruction:

SysUserLicenseMiner::GenerateUserLicenseCountReportInfo();

If your report shows too many users in the "Enterprise" Access License Type category make sure you have applied KB 2928112 ("SystemUser role is counted as Enterprise-user [AX 2012 R2]").

Then, if you want to know why a specific role requires a specific type of CAL (Client Access License), one option is to use the Security Development Tool. Make sure to carefully follow the installation instructions, then open the main form ("Security entry point permissions" under System administration > Setup > Security).

Click on "Load additional metadata" this will bring the license information of each entry point.

Then you can search for the security role you want to analyze and see the impact of each entry point access on the type of CAL.

I hope this is helpful!

Bertrand

AX 2012 R2-R3 - Creating a new Retail product and syncing this to an existing Online Store

$
0
0

The intent of article is to provide you with a high level overview on the flow of creating a new Retail product and syncing this to an existing Retail Online Store channel.  This assumes that the Retail Online Store has been previously configured and you are simply looking to add new items to the online store pages that are derived from the published catalogs.  I have included links to TechNet articles that contain more detailed information on each step.
 

Create a New Product: Link
     1. Go to: Retail >> Common >> Products >> Released products by category >> click New Product
     2. Complete the form and ensure that the Retail category is selected.
          a. This will ensure that the item is configured as being available in Retail windows and will associate this to "Retail Product Hierarchy".    
          b. OPTIONAL:  On the product record go to the General tab >> Product categories and add any other subcategories needed, or the Retail Product Hierarchy if it was missed.

Process Assortments: Link
     1. Go to Retail >> Common >> Assortments >> Check or create Assortments so the store and item is part of the correct assortment.
          a. Publish assortment if anything was changed

     2. Go to: Retail >> Periodic >> Process assortments (if batch is selected, ensure the batch processes before continuing)
     3. Go to: Retail >> Common >> Retail Channels >> Online stores >> on the menu bar click "View assortment products"
          a. Verify that the new product(s) shows up in the assorted list for the store.
          b. Verify that this Online Store has a Publishing Status of "Published".  If the Publishing status is set to "In Progress" then you'll need to click Publish, run the 1070 (Channel configuration) job, and wait for SharePoint to send back the "Published" status before proceeding.  See the TechNet article titled Set up an online store for more information.

Edit Catalogs: Link
     1. Go to: Retail >> Common >> Catalogs >> Catalogs >> select the catalog you want to modify and click Edit.
          a. Click Add products, select the product(s) you want to add, and click OK.
          b. Click "Validate catalog", click "Validate catalog" on this form, this will check that the catalog configuration is correct
               A. Fix any errors or warnings that are generated and Validate this again until there is a successful validation.

          c. Click on the "Submit" button to send this to workflow.  Complete the approval of the catalog changes before proceeding.
          d. Click "Publish", select a publish option from the dropdown menu, and click OK to run the batch job.

 

Data Distribution
     1. Go to: Retail >> Periodic >> Data distribution >> Distribution schedule >> Run the 1040 (Products) and 1150 (Catalog) jobs.

Syncing with the Online Store
     1. This will now sync the updated data to the online store.  Check the job history in the Central Admin for the online store to verify the sync occurred. More information on the Online Store
     2. Check for the item in the website navigation or in the Uncategorized list in SharePoint.

 

 

Microsoft Dynamics AX Module Status Setting for Fiscal Periods

$
0
0

During monthly closing it is important to manage the fiscal period’s status in Microsoft Dynamics AX, on the other hand differentiate between the operational closing, and financial closing.

The operational closing represents the departments completion of the transactions of which belongs to the current month (month being closed) for example procurement department finalizing the purchase orders confirmations, sales department completing sales order confirmation, and invoicing, warehousing and inventory department receiving and issuing the goods.  The financial closing represents Finance/controllership department completion of the transactions of which belongs to the current month whether transactions related to operations vendor and customers payments along with settlements, in addition to the transactions belongs to financial closing entry such as fixed assets depreciation, foreign currency revaluation, and adjusting entries.

Microsoft Dynamics AX gives a control point to manage fiscal periods during month closing based on module, users’ whether all users, particular user group, or none, in the other hand the period status whether Open for all transactions, On-hold which formerly known as stopped in Dynamics AX 2009 this status represents a temporary prevention of posting any transactions on this particular period, and it could be back to Open status. The third status is closed this represent permanent close of the period and could not be re-opened again.

In case the module status set to Closed the system will through the following confirmation

In case the module status set to on-hold, or closed the user will got the following Infolog message

 

In case the module status set to open, and access level set to none the user will got the following Infolog message

There is a rationale behind setting Module status for example for vendor as None is to prevent the users to post transactions from the Account payable Sub module not from the general ledger module, and as long as the general ledger under Module status is set to All so that users will be able to post vendor transactions from the General Ledger module only.

 

In case you still have Microsoft Dynamics AX 2009 and users are able to post vendor transactions from the sub module, there is a hotfix addressing this issue KB2977606 or update to latest version of Microsoft Dynamics AX 2012 R3.

 

Check the following TechNet articles about Fiscal periods.

Specify which users can post to a period [AX 2012]
Place a period on hold [AX 2012]
Close periods in the general ledger [AX 2012]

Viewing all 1498 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>