Quantcast
Channel: Microsoft Dynamics 365 Support
Viewing all 840 articles
Browse latest View live

Inconsistency between quantity in purchase order and quantity in inventory transaction.

$
0
0

The purchase order invoicing process has a functionality where the end user could identify a particular quantity which will be invoiced, and this could be controlled by the over/under deliver percentage on the purchase order line. The invoiced quantity in the purchase order invoice is linked to the item unit of measure, where the item inventory unit of measure could be different than the purchase unit of measure. For example a company stock specific item in Kilogram and purchase it from the vendor in Ton, in that sense the purchase invoice will be issued in tons, and the inventory will be added in kilogram and bear in mind that in some scenarios the inventory and purchase unit of measure are the same.

The unit of measures are defined on the item master, Product information management| Common| Released product, then press edit on a particular item record then go to Manage costs fast tab, as shown in the below screen shot the which illustrate the inventory base unit of measure.

In order identify the sales unit of measure move to Purchase fast tab

In a purchase order with quantity = 10 ea in a purchase line, the quantity here represented in the purchase unit of measure

The quantity of the purchase line which represents the purchase unit of measure will be reflected in the purchase order invoice, in addition to inventory unit of measure as well. The quantity in purchase unit of measure will be found under Lines details tab, Quantity filed. The quantity under update will be the base of the liability entry (Quantity * Purchase price).

The quantity in inventory unit of measure will be found under Product tab, Quantity filed.

 

If the user change the quantity in the quantity filed under the Line details tab, then the quantity under the Product tab will be changed as well, if the user change quantity under Product details the quantities under Line details tab will not change, in that said the changes mechanism only works in one way as mentioned.

 

If the second scenario of changes occurred where the user change quantities under Product tab, the system will keep the quantity under Line details tab as it represents the purchase unit of measure, which is acceptable if there is a slight differences in the purchase unit of measure and inventory unit of measure.

But if it is occurred without a business requirement this will lead to inconsistency between quantity in purchase order and quantity in inventory transaction.

The conclusion an issue may raise because of this mismatch, and in order to check the posted transactions, go to Accounts payable| Inquiry| Journals| Invoice journal then right click and press Record info, and press Show all fields.

The quantity in the left side represents quantity in purchase line, and quantity in right side represents the quantity updated in the inventory transactions.

The rationale behind it in case there is an item has two different unit of measure (Purchase & Inventory) and the user may want to change the quantity of which will be added to the inventory without changing the quantity in the purchase order, in the other hand if the item has the same unit of measure the quantities in the two fields should be identical, but if the user changes the quantities under line Product tab it will not change the quantities under Line details tab.  Please note that the same mechanism working in the Sales order side.


AX Content: Help Server update for AX2012 R3 is available, easier to find and install

$
0
0

We’ve got new content for your Help Server, and now it’s easier to find! Help Server content for Microsoft Dynamics AX 2012 R3 in many languages is now available. We’ve also published four new Knowledge Base articles that make it easier to find Help Server updates for specific versions of AX and for specific languages.

One of our goals in delivering help content on a Help Server starting with the release of Microsoft Dynamics AX 2012, was to make it easier for customers to update their content between major product releases. But one side effect of releasing multiple Help Server updates – in multiple languages for each update – is that anyone looking for a specific MSI had a long list of MSIs to scroll through to find the one they needed.

To make this experience better, we’ve released a new set of KB articles that group MSIs for each version of AX together along with the translated content for that version. The KB article that we’ve used to provide access to new Help Server content up to now – 2585394– is still available, and it’s been updated to include links to each of the new KBs. It also includes descriptions of the updated information that was added for each update. The new KB numbers are in the following table.

 Version

Microsoft Knowledge Base article

 Microsoft Dynamics AX 2012 R3

 3011580  – https://support.microsoft.com/kb/3011580/ Updated Help server content is available for Microsoft Dynamics AX 2012 R3

 Microsoft Dynamics AX 2012 R2

 3011575 – https://support.microsoft.com/kb/3011575/ Updated Help server content is available for Microsoft Dynamics AX 2012 R2

 Microsoft Dynamics AX 2012  Feature Pack

 3011574  – https://support.microsoft.com/kb/3011574/ Updated Help server   content is available for Microsoft Dynamics AX 2012 Feature Pack

 Microsoft Dynamics AX 2012

 3011581 – https://support.microsoft.com/kb/3011581/ Updated Help server content is available for Microsoft Dynamics AX 2012

 

Along with the new KBs, the process for installing updated Help Server content has been updated to allow you to uninstall existing content from the Setup program, rather than the Control Panel, before you install the newest content. This process enables you to uninstall content for multiple languages in a single step.

As always, we welcome your questions and feedback, either through comments to this post, or by emailing the Microsoft Dynamics AX Content Publishing team at adocs@microsoft.com.

Why does my sales order credit memo not use the correct exchange rate?

$
0
0

The definition of ‘correct’ can vary greatly in this situation, so instead of answering the question directly, I will list out a few potential reasons why this may happen.

 

Reason 1: No link to original invoice was created when the credit memo was entered

The credit line was manually entered, and was not created using the sales order header or line function to reference the original sales document.  In this situation, since it is not linked to the original invoice, it is going to pick up the prevailing exchange rate for the date the credit memo is entered.

 

Reason 2: New exchange rates were created between the time of the invoice and the time of the credit memo

The credit memo was created using the sales order header function, and the invoice and credit memo were entered with the same dates, but new exchange rates were created between the time that the invoice was entered and the entry of the credit memo. In the customer example that I encountered, they were simply testing the functionality.  Both the invoice and credit were entered with an August 28th date.  When the invoice was posted, it picked up a July 20th exchange rate since that was the last rate entered.  Prior to entering the credit, they populated additional exchange rates, including a rate for August 28th.  As a result, the credit picked up the current rate, August 28th.  In this situation, they simply need to run the ‘Foreign currency revaluation’ function so that the invoice would pick up the August 28th exchange rate as well.

 

Reason 3: Incorrect Accounts receivable parameters

The credit memo was created using the sales order header function, and the Accounts receivable parameter for Default settlement type for credit notes is set to ‘Designated transactions’.  In the customer example that I encountered, they were expecting this option to also control the exchange rate.  In this situation, the ‘Use exchange rate from source documents’ should also be marked.  The default settlement type, is just going to apply to the settlement process between the invoice and credit.  By also marking the ‘Use exchange rate from source documents’ option, the exchange rate used on the invoice will be copied to the credit memo.

 

Mike E

Project Management and Service Industries Hotfixes Released in January 2015

$
0
0

In this blog series I will be posting the hotfixes released for the Project Management and Accounting, as well as the Service Industries modules for Dynamics AX 2012 R2 and Dynamics AX 2012 R3 twice each month. I would like to raise visibility for customers and partners to see what's been updated and changed, as there are many fixes that change and improve existing functionality. It will also give you a chance to be proactive if any of these appear to be something you might encounter in the future.

I will break these hotfixes down between the two releases. Keep in mind that a hotfix is first released on the build that the issue or design change is reported for. If you see a hotfix that exists in a different release, search for the fix in Lifecycle Services to see if it exists for your build. If the hotfix does not exist in Lifecycle Services for your version, there's a strong chance that it is in the works of being developed for your build of AX. In that scenario, the recommendation would be to submit a new support request so we can track the need for the hotfix.

If you see a hotfix that you would like to download and test, please log into Microsoft Dynamics Lifecycle Services (https://lcs.dynamics.com) to review code changes, search for related issues, and download the hotfix for testing. If you are unfamiliar with Lifecycle Services, review the following blog for instructions on using Lifecycle Services to download a hotfix:

http://blogs.msdn.com/b/axsupport/archive/2013/12/13/using-lifecycle-services-to-download-hotfixes.aspx

If you have any questions about these fixes that cannot be answered by Lifecycle Services, please activate a new support request so our Project Engineers can assist you.

Watch for these posts twice each month, and I look forward to any suggestions and feedback!

Tyler Lewin
Senior Support Engineer
Microsoft Dynamics AX

 


Dynamics AX 2012 R2 


 KB 3029593 - After installing KB 3029593, the "Project quotation confirmation" report displays "There is not data available." This will correct the report.

 KB 3029627 - If we have a sales price defined on the project contract, this KB will ensure timesheets default in the sales price from the contract, instead of showing 0.00.

 KB 3030409 - Project indirect costs transactions will now post with an activity number.

 KB 3029581 - This will prevent users from sending an already sent project quotation by disabling the "Generate quotation" button.

 KB 3032337 - Vendor credit notes registered in an invoice register journal and then posted in Approval journal to a project will now have quantities in the correct negative sign on the invoice approval journal and project transactions.   

 KB 3032587 - The "Committed amount" in the "Funding limit" fast tab of the project contract will no longer be updated on unposted free-text invoices.

 KB 3031508 - When editing the hours on a timesheet, the sales price was getting updated instead of retaining the sales price defined on the project. With this fix, the sales price will remain the same when editing the timesheet lines.

 KB 3031855- This hotfix corrects an issue with purchase orders with projects associated. If we correct a receipt, invoice that quantity, receive and invoice the remainder, the item transactions on the item do not have cost amounts for the second invoice.

 KB 3031508 - If an expense transaction type is used in fixed-price project revenue budgeting, the amount will now be displayed in the project statement's budget revenue field.

 KB 3019929 - This hotfix will prevent funding limit errors when posting a vendor invoice on a PO that matches the funding limit and has gone through the purchase order year end process.

 KB 3030406 - The total cost amount of project transactions is now correct when part of tax receivable is non-deductible.

KB 3033503 - After installing this fix, you will no longer receive the error "Revenue could not be allocated. Verify that funding rules have been set up to allocate the revenue." error when adjusting an item transaction on an investment project.

KB 3260258 - When using a timesheet line level workflow and the approver clicks "Return" and cancels the form, this allows the approver to approve without a workflow stopped error stating "Returned status cannot be changed to Approved status".

KB 3034659 - This hotfix will ensure purchase requisition form budget checking functionality works properly for project related purchase requisitions, where before it would give a budget exceeded error.

KB 3036193 - When using an alternative project budget for a child project, this hotfix will prevent the user from receiving a error when trying to post invoice for purchase order, where before it would give a budget exceeded error.

 


Dynamics AX 2012 R3


 KB 3030060 - This hotfix will correct an issue with customer advances that are split still showing as able to be reconciled when they've been settled.

 KB 3030407 - After this hotfix the cost price from beginning balance journal expense entries will be reflected in the "Posted project transactions" list page. 

 KB 3034049 - Project date is now considered while adjusting timesheet transactions that are in a previous closed period when using option to post to closed periods.

 KB 3030059 - When the intercompany expense report is posted with Project Contract currency, the system would update the sales price the exchange difference.

 KB 3031059- This hotfix will prevent elimination posting from throwing the error "No account number exists for account type Accrued revenue - sales value for project xxxxx."

 KB 3033201 - After installing this KB, resources with expired certifications can no longer be scheduled in projects.

 KB 3035213 - This will ensure that an item requirement created from a request for quotation contains the same quantity as the purchase order and request for quotation.

 KB 3034406 - This hotfix will prevent the error "Tax direction must be specified on ledger account" when posting a project invoice proposal.

 KB 3031637 - This fix will make AX only show valid activities on intercompany timesheets.


  


 

Previous hotfix blog: http://blogs.msdn.com/b/axsupport/archive/2014/12/31/project-management-and-service-industries-hotfixes-released-in-december-2014-part-2.aspx

 

 

Adding Exchange Rates using the AIF LedgerExchangeRateService Service

$
0
0

The following example should help if you need to add an Exchange Rate to an existing Currency Pair in Microsoft Dynamics AX 2012 R3 using the AIF LedgerExchangeRateService service.  When you create the AIF Inbound Port for this service, I recommend to enable logging under the Troubleshooting section in case you need to review the XML that is created.

 

C# Console Application Example

The existing Currency Pair (EUR to USD) already contains a couple Exchange Rates. This example will show how to add a new set of Exchange Rates.

 

 

The code below adds a new Exchange Rate to this existing Currency Pair. 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using UpdateExchangeRateTester.ERService;

namespace UpdateExchangeRateTester
{
    class Program
    {
        static void Main(string[] args)
        {
            ExchangeRateServiceClient proxy = new ExchangeRateServiceClient();

            CallContext cc = new CallContext();
            cc.Company = "USMF";

            // Call Read First per http://community.dynamics.com/ax/f/33/t/75714.aspx
            //Criteria will be the From and To for the CurrencyPair (EUR to USD)
            QueryCriteria qc = new QueryCriteria();
            qc.CriteriaElement = new CriteriaElement[2];
            qc.CriteriaElement[0] = new CriteriaElement();
            qc.CriteriaElement[0].FieldName = "FromCurrencyCode";
            qc.CriteriaElement[0].DataSourceName = "CurrencyPair";
            qc.CriteriaElement[0].Value1 = "EUR";
            qc.CriteriaElement[1] = new CriteriaElement();
            qc.CriteriaElement[1].FieldName = "ToCurrencyCode";
            qc.CriteriaElement[1].DataSourceName = "CurrencyPair";
            qc.CriteriaElement[1].Value1 = "USD";
            EntityKey[] keylist = proxy.findKeys(cc, qc);
            AxdLedgerExchangeRate axdExchangeRate = proxy.read(cc, keylist);


            foreach (AxdEntity_CurrencyPair currencyPair in axdExchangeRate.CurrencyPair)
            {
                currencyPair.action = AxdEnum_AxdEntityAction.update;
                currencyPair.actionSpecified = true;        
                currencyPair.RateType = null; // do not send in a CurrencyPair RateType on updates
               
                //create new exchange rate
                AxdEntity_ExchangeRate newExchangeRate = new AxdEntity_ExchangeRate();
                newExchangeRate.ExchangeRate = 95.60M; //AX value is .95600
                newExchangeRate.ExchangeRateSpecified = true;
                newExchangeRate.ValidFrom = new DateTime(2015, 2, 5);
                newExchangeRate.ValidFromSpecified = true;
                //newExchangeRate.ValidTo = new DateTime(2015, 1, 16);
                //newExchangeRate.ValidToSpecified = true;
                newExchangeRate.action = AxdEnum_AxdEntityAction.create;
                newExchangeRate.actionSpecified = true;
               
                currencyPair.ExchangeRate = new AxdEntity_ExchangeRate[1] { newExchangeRate };
            }

 

            try
            {
                proxy.update(cc, keylist, axdExchangeRate);
                Console.WriteLine("Update Call Complete");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("The AxdLedgerExchangeRate was not updated.");
            }
            Console.ReadLine();
        }
    }
}


A couple items I had to do was set the RateType to null on the AxdEntity_CurrencyPair object otherwise I was receiving an AIF Exception on it. I also did not send the existing Exchange Rate data in the AxdEntity_ExchangeRate[] collection.I just created a new AxdEntity_ExchangeRate with the action property set to create. The final result looks like:

 

 

XML Example

This is the XML document that AIF processes from the C# Console Application. You can use this as a starting point if you need to know what the XML schema should look like if you need to create XML for a File Adapter Inbound port.

<?xml version="1.0" encoding="UTF-8"?>
<ExchangeRateServiceUpdateRequest xmlns="http://schemas.microsoft.com/dynamics/2008/01/services">
  <EntityKeyList xmlns="http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKeyList">
    <EntityKey xmlns="http://schemas.microsoft.com/dynamics/2006/02/documents/EntityKey">
      <KeyData>
        <KeyField>
          <Field>RecId</Field>
          <Value>22565423204</Value>
        </KeyField>
      </KeyData>
    </EntityKey>
  </EntityKeyList>
  <LedgerExchangeRate xmlns="http://schemas.microsoft.com/dynamics/2008/01/documents/LedgerExchangeRate">
    <DocPurpose>Original</DocPurpose>
    <SenderId>USMF</SenderId>
    <ValidAsOfDateTime>2015-02-05T00:00:00Z</ValidAsOfDateTime>
    <ValidFromDateTime xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></ValidFromDateTime>
    <ValidTimeStateType>AsOf</ValidTimeStateType>
    <ValidToDateTime xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></ValidToDateTime>
    <CurrencyPair class="entity" action="update">
      <_DocumentHash>911f6653fc2da5d3ce42d69fb95f7269</_DocumentHash>
      <RecId>22565423204</RecId>
      <RecVersion>1</RecVersion>
      <FromCurrencyCode>EUR</FromCurrencyCode>
      <ToCurrencyCode>USD</ToCurrencyCode>
      <ExchangeRateType>Average</ExchangeRateType>
      <ExchangeRateDisplayFactor>One</ExchangeRateDisplayFactor>
      <ExchangeRate class="entity" action="create">
        <ExchangeRate>95.60</ExchangeRate>
        <ValidFrom>2015-02-05</ValidFrom>
      </ExchangeRate>
    </CurrencyPair>
  </LedgerExchangeRate>
</ExchangeRateServiceUpdateRequest>

 

AX for Retail: Size Barcode setup and creation with number sequence

$
0
0

Below are steps to create a barcode for an item that tracks the Size variant and use a number sequence to automatically create the new barcodes.

1. Set up the bar code Mask characters:
    Retail >>Setup>>Bar codes and labels>>Mast characters
      a.  Product = I
      b.  Size = Z


  


2.  Set up the Bar Code Mask Setup for “Size”: 
     Retail >> Setup >> Bar codes and labels >> Bar code mask setup

NOTE:  When using “Functions>>Create bar codes from number sequence” in Step 10, because Number Sequences will be used to generate the bar code, this Bar code mask setup is not actually used.  If you choose “Functions >> Create/Update bar codes”, then this assigned Bar code mask setup is used.  Either way this MUST be assigned to the Bar codes in the next step otherwise general AX code will fail due to this field being blank.

 

3.  Set up the Bar codes: 
     Retail >> Setup >> Bar codes and labels >> Bar code setup

4.  Set up the Number Sequence: 
     Organization administration >> Common >> Number sequences >> Number sequences
      a.  Create a new number sequence for UPC (this will tie into a Vendor account)
           If you normally have a prefix for bar codes, then you would add a constant along with the alphanumeric auto-generated number.

NOTE:  The Number Sequence must be 1 digit less than the maximum length of the Bar code.  This is due to a check digit being added by the AX code.

In our scenario the Bar code length must be 13, so the total of the number sequence must be 12.

2 + length of constant

10 + length of alpanumeric

12 = length of number sequence

  1 + check digit

13 = total for bar code

  


5.  Create a new Size Group to auto-populate the dimensions: 
     Retail >> Setup >> Variant groups >> Size groups
      a.  Select Auto number bar code

 NOTE:  You must assign the Variant Groups prior to creating the Item.  This is required during the number sequence bar code creation.  You can add product dimensions directly to the product, but the barcode creation requires a variant group.

6.  Add this to the Retail product hierarchy for auto applying to product masters in a category
     Retail >> Setup >> Category hierarchies >> Retail product hierarchy
      a.  Select the category from the tree and in the details pane, expand the Retail product properties fast tab
      b.  In the Variant groups, add the necessary groups from the dropdown.

In our scenario we added Size group: Size

   

7.  Create a new item:  
     Retail >> Common >> Products >> Released products by category or 
     Product information management >> Common >> Products >> Released products

      a.  Product type: Item
      b.  Product subtype: Product master
      c.  Product/Item Number is 10 digits long because of the Barcode Mask Setup and the Number Sequence configuration.
      d.  Retail category: This must be populated for the item to be available in Retail, select the category you choose in Step 6 to assign the size group.
      e.  Reference group: Select any value
   

8.  Assign the available sizes to the item.
      a.  Find the product we just created, select it ,and click Edit.
      b.  Expand the Retail fast tab and note that the Size group is added automatically from the Retail product hierarchy.  Select "Size" in the Bar code setup field.


   

   c.  On the Product menu select Product dimensions. You should see a list of available size dimensions.

 

      d.  Close the Product dimensions form.
      e.  On the Menu bar, select Released product variants 
      f.  Select the Variant suggestions button
      g.  Click Select All and then click Create

 

You now see the sizes in the Released product variants form
Close the Release product variants form, but leave the Released product details form open for Step 10.

 

9.  In order for the Number Sequence to work, it must be assigned to a vendor.
     Accounts Payable >> Common >> Vendors >> All vendors
      a.  Select account 1001 and click Edit.
      b.  Expand the Retail fast tab
      c.  Select UPC (from Step 4) in the Bar code number sequence field.
      d.  Close the form.

  

10. Create the Bar code
      a.  Go to back to the item: 
           Retail >> Common >> Products >> Released products by category
      b.  On the Manage inventory menu under Warehouse, click Bar codes
 

An Info Log window may appear with errors/warnings, this can be ignored due to the next step.
      c.  Select the new record that was auto-created when the form opened and click Delete.  Another Info log with error messages will appear, close this.  We will create new lines for bar codes.
      d.  Click Functions >> Create bar code from number sequences


      e.  Select the Vendor (1001) you assigned the bar code number sequence.

 

      f.  Select “OK” to create bar codes message

 

3 bar codes are created, one for each variant using the sequence number for the UPC (1100000000075,1100000000082,1100000000099)

11 is the constant, the alphanumeric next number (0000000007, 0000000008, 0000000009), and the check digit (5,2,9).


 

Attachment function using Document handling for settled "closed" transaction

$
0
0

You may get into the following situation where trying to attach a document  on a paid "settled" transaction, and the new button is dimmed.

Assuming that there is a vendor settled invoice transaction, and go to document handling  by Go to File| Command| Document handling

There is an option in Microsoft Dynamics AX where to be able to activate the document handling for the closed "settled" transactions.  

 

First need to specify a table(s) for document handing,

1-      Go to Organization and administration| Setup| Document management| Active document tables

2-      In the active document tables form, press Ctrl + N to create a new record

3-      Select table name “in my example I’ve selected Vendor transactions table [VendTrans]”

4-      Mark always enabled

  1. Go to Accounts payable| Common| Vendors| All vendor
  2. Select a particular vendor, then press Transactions
  3. Highlight the closed transaction in my example “APIN000003”
  4. Go to File| Command| Document handling
  5. In the document handling form you can add new file

 

Scrap value of the fixed assets

$
0
0

There is a common business requirement for fixed asset where keeping a specific amount as an asset net book value. This amount represents the estimated salvage value at the end of asset service life, it also known as fixed asset residual value.

In order to consider this business requirements in Microsoft Dynamics AX, this should be identified on Fixed Asset - Value model.

Assume that there is a Fixed asset with a depreciation profile "Reducing balance" with a service life for 1 Year, and 12 Month as depreciation periods

The asset acquisition date is 1/1/2015 and acquisition price is 12,000.00

Here under Depreciation tab identify the salvage "residual " value which represent the estimated scrap value of the fixed assets, in this example it is 1 USD.

In order to check the monthly depreciation, go to Inquiry| Profile

The depreciation is calculated with the following equation;

Monthly depreciation = (Fixed asset acquisition price – Salvage value) / Fixed asset useful life

Monthly depreciation = (12,000.00 - 1.00)/12

Monthly depreciation = 11,999/12

Monthly depreciation = 999.92

And at the end there is a residual amount = 1.00 USD which will be remain in the asset netbook value.

 


AX for Retail 2012 R3: Category Price Rules Expiration Issue and Old Trade Agreement Still Active.

$
0
0

When using Category price rules to update sales trade agreements and selecting to expire previous trade agreements, you must manually post the expired price/discount agreement journal before the original trade agreement is expired.

NOTE:  If the original trade agreement was not created using the same Category price rule, the Expiration Journal will not be created and you will need to manually expire the trade agreement.

As an example I have created an item number named Test and assigned it to the Action Sports Retail Category.

This new item does not have a sales trade agreement.

 

I can use the Category Price rules functionality in AX 2012 R3 to create the original trade agreement

Go to Retail>Periodic>Category price rules.

Add a record for the Action Sports category with the Price rule you want.

In the following example I am using a "Fixed amount" and setting the trade agreement price to $10.00

Select "Generate trade agreements" to open the Generate trade agreements wizard.

.

I selected ‘Items without prices’ for the product selection. 

The wizard found my new item and updated the Amount to the Fixed amount I specified in the Category price rules window.

 

Post the Price/discount agreement journal.

In Released Products>Sell tab>View trade agreements, you can see the trade agreement was created. 
I did not specify a "To date", so this trade agreement does not expire.

 

 

If you were to add the item to a Sales order, the unit price would calculate $10.00.  

In the Category price rules window, I will now change the Price rule to "Markup" and update the current price by 10 percent.

 

This time when I click “Generate trade agreements”, I want to select “All items”.

 

 

In the Trade agreement options, I can set the "To date" if I want the new trade agreement to expire on a certain date. 

I select “Expire previous trade agreements” because when I sell my Test item I do not want to use the original trade agreement price of $10 and want to use the new price of $11.

 

A Price summary window will show how many trade agreements will be created.

The Wizard will create a price/discount agreement journal for the new trade agreement that you can adjust as you would like before posting.  An infolog will also provide you with a message that a journal was created that will expire the previous trade agreement.

Note:  If you do not receive a Infolog with the message "Created a journal with lines to be expired", there was not an original trade agreement created with this specific Category price rule and a expire journal will not be created.  The current trade agreement must be set to expire manually.

 

You can post the journal for the new trade agreement that will change my Test item price to $11.00.

 

In the Category price rules window, click View journals

 

The first journal is the original trade agreement, the second journal is the trade agreement with the price increase and you can see that both journals are posted.

We also have an Expired journal created that is not posted yet.

Select the Expired journal and click the Lines button

The Price/discount agreement journal is created to expire the original trade agreement and the “To date” will be updated with the day before the “From date”.

If you go back to Released products for the item and look at the trade agreement, you can see that the “To date” has been changed and the original trade agreement is now expired.

 

Note:  If the Expired journal from the Category pricing rules was not posted, the original trade agreement will still be used on Sales orders. 

If the original trade agreement did not originate from the Category pricing rules, the Expired journal will not be created and the Sales orders will still use the original trade agreement.  The original trade agreement will need to manually change the "To date" so the original trade agreement is expired.

 

 

Processing Depreciation for Depreciation Tax Books in AX 2012

$
0
0

There are two types of Books in AX 2012 relative to recording depreciation for Fixed Assets:

Value Models = Value models track the financial value of a given asset over time for the purposes of financial accounting for depreciation within your General Ledger. An example of a Value Model would be CORP.

Depreciation Books = Depreciation books track the value of a given asset over time for the purposes of accounting for Tax-book depreciation solely in the Fixed Assets Subledger. Examples of Depreciation Books would be:  AMT; FED; STATE.

With the setup of Value Models and Depreciation Books, AX 2012 allows you to derive certain Transaction Types between Value Models and Depreciation Books. For example, if you have a Value Model called CORP and you have three Depreciation Books AMT/FED/STATE, you could set the 'Acquisition' to be a Derived Transaction Type between the CORP Value Model and AMT/FED/STATE Depreciation Books. By doing this, any time that you enter an Acquisition against an asset's CORP Value Model, the Acquisition will simultaneously record the Acquisition for the AMT/FED/STATE Depreciation Books.

When you setup your Value Models, AX 2012 also allows you to select the 'Depreciation' Transaction Type as being Derived between the Value Models and your Depreciation Books. We often see customers attempt to configure deriving the 'Depreciation' transaction type between the Value Models and their Depreciation Books, but the accumulated depreciation recorded on the Depreciation Books does not appear appropriate based on the posting of a standard Fixed Assets Journal. It is important to note that Depreciation processing is not designed to handle using 'Depreciation' as a Derived transaction type between your Value Model and Depreciation Books in AX 2012. Processing depreciation in AX 2012 for your Value Models is considered a separate process than the processing of depreciation in AX 2012 for your Depreciation Books. We do not recommend setting the 'Depreciation' and 'Depreciation adjustment' transaction types to be Derived between Value Models and Depreciation Books in AX 2012. Depreciation should be recorded appropriately as follows:

1.  Value Model Depreciation should always be initiated through the Fixed Assets Journal. (Fixed assets | Journals | Fixed assets)

2.  Depreciation Book (Tax Book) Depreciation should always be initiated through the Depreciation Book Journal. (Fixed Assets | Journals | Depreciation book journal)

Thanks, Ryan

 

Collect a series of traces automatically with Dynamics AX 2012

$
0
0

Introduction

The following steps are one way to collect a series of AX traces on a schedule with all versions of AX 2012 on the AOS server, using standard Windows tools: Perfmon combined with Task Scheduler. This example collects a 1 minute trace at 5 minute intervals.

This can be useful for example if you want to trace a long running process such as a job that runs for hours, to get snapshots of the end to end process before narrowing down into more granular analysis.

The trace files can then be renamed and imported into Trace Parser to analyse the code and queries.

Due to the potential number and size of files generated (dependent on the process being traced), it is recommended that this is done on a test environment and that disk usage is monitored.

Disclaimer: Microsoft provides examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose. These steps assume that you are familiar with the technologies that are being demonstrated and the tools that are used to create and debug procedures. 

Steps

1. Follow the blog post below to set up a data collector set in Perfmon and name it “AXTrace”.
http://blogs.msdn.com/b/axperf/archive/2011/11/18/collect-ax-2012-event-traces-with-windows-performance-monitor.aspx 


 


2. Add a stop condition in the properties of your data collector set, of 1 minute overall duration.

  

3. Start the task scheduler, e.g. by entering taskschd.msc in the run command.

4. You will create a task to run your data collector set every 5 minutes on demand. First choose ‘Create Basic Task…’.

 

5. Give your task a name, click Next.


 
6. Keep the default start date/time, click Next.

7. Choose ‘Start a program’.


 
8. In ‘Program/script’, enter ‘logman’. In ‘Add arguments’ enter ‘start “AXTrace”’.
 

  

  
9. Tick ‘Open the Properties dialog when I click Finish’. Click Finish.


 
10. In the properties, on the General tab, select ‘Run whether the user is logged on or not’, tick ‘Do not store password’ and ‘Run with highest privileges’.
 

 


11. On the triggers tab, click ‘Edit’.


 
12. Tick ‘Repeat task every:’ and choose ‘5 minutes’. Press OK, then OK again.
 


13. Back in the main Task Scheduler window, right click on your task, then click Disable (to leave it disabled until you want to trace the process in AX).
 

 
14. Click ‘Run’ when you’re ready to trace your process in AX.


 
15. The data collector set should be running (for 1 minute, every 5 minutes) as depicted by a green arrow (A) and there should be a folder created for each 1 minute trace (B), each containing a file named ‘DataCollector01.etl’ (C).
 

Default path is C:\PERFLOGS\[Username]\AXTrace (or you can find the path from the Output field in perfmon: see screenshot A above).

16. After running the process in AX, click ‘End’.
 

 

Troubleshooting that elusive “slowdown” in AX using Performance Analyzer 1.20 for Microsoft Dynamics

$
0
0

It’s 9.30am on Monday morning and you’ve just received reports of a “general slowdown” on Microsoft Dynamics AX. After probing further you find it was all over by 9:15am lasting around 15 minutes, but also happened once before and the users want action taken to prevent it happening again.

There are never any guarantees when doing a root cause analysis of historical issues and that should be explained to your users, but below are some things you can do using the Performance Analyser (aka DynamicsPerf, after the database name) both proactively and reactively to address that type of problem.

Proactive: it uses the DynamicsPerf database to store a history of SQL Server DMV data and other performance related data which can be transient. It also includes perfmon templates (which can be used to monitor for hardware bottlenecks), SQL profiler traces (which can help spot things like blocking and auto growth events), etc. 

Reactive: If the issue occurred recently enough, at the point they run, the SQL Server Agent jobs that come with this tool can capture (among other things):

  • Event logs from the past 2 weeks, which will include performance related events such as event ID 186 warnings (indicating orphaned SPIDs) and client disconnections (either forced closure of a session or a crash), e.g. event ID 110.
  • SQL Server DMVs (including query stats and query plans) since the last SQL Server restart.
  • Long query traces (copied from SysTraceTableSQL table into DynamicsPerf), which may allow you to correlate call stacks in the code with SQL queries (if you already had long query tracing turned on) in AX 2012 and previous versions.

Install and run it by following the instructions in the following two blogs in that order:

http://blogs.msdn.com/b/axinthefield/archive/2014/05/29/performance-analyzer-for-microsoft-dynamics-1-20-deployment-guide.aspx

http://blogs.msdn.com/b/axinthefield/archive/2014/05/29/performance-analyzer-for-microsoft-dynamics-1-20-deployment-guide-dynamics-ax-installation.aspx

What to check:

You can use the script below to pinpoint possible root causes of an issue at a point in time, having just installed the Performance Analyser. Some of it is generic so can apply to any application running on SQL Server (on a different server to your AX database of course!)

Finally, once the Performance Analyser is up and running, in case further issues occur and partly as a preventative measure, there is a series of checklists you can use to check general settings, profiler traces, etc., which starts here:

http://blogs.msdn.com/b/axsupport/archive/2014/09/05/ax-performance-troubleshooting-checklist-part-1a-introduction-and-sql-configuration.aspx

Dynamics AX Table Caching: Basic Rules

$
0
0

This post provides some basic general guidance to get you started on setting table caching for custom tables, bearing in mind there will be exceptions. This should generally be defined at design time to avoid costly round trips to the database. As explained by Bertrand Caillet from our PFE (Premier Field Engineering) team:

“This is one of the most fundamental feature of the product today. The three tiers architecture of Dynamics AX allows you to define caching on AOS and client. Not using caching properly is the first root cause for performance.”
http://blogs.msdn.com/b/axinthefield/archive/2014/02/18/top-10-issues-discovered-in-the-dynamics-ax-code-review.aspx

Essentially there are two types of table caching as explained on msdn:
Set based caching (AX 2012)
Single record caching (AX 2012)

In AX 2012, table caching is more advanced than in previous versions, including support for joins, unique indexes (as opposed to primary indexes only), cross company queries, etc. (under certain constraints as explained in the above links). So for AX 2009, please see the following links (which generally cover previous versions too):
Set Based Caching (AX 2009)
Single Record Caching (AX 2009)

Cache settings for a table can be found in the following location in the application:
AOT > Data Dictionary > Tables > [TableName] > Properties > CacheLookup

Changes like this should be made by a developer in accordance with best practice guidance.

You can use the script at the bottom of this post to check cache lookup settings for all tables using the “Performance Analyser 1.20 for Microsoft Dynamics” (DynamicsPerf) tool (partly based on the analysis scripts that come with this tool).

Set the appropriate table group depending on how the table is used; see the following article for further details for AX 2012 (for previous versions it is basically the same but with fewer table groups):

Table and table group reference [AX 2012]
http://technet.microsoft.com/en-us/library/gg731855.aspx

Following that, you can generally set table caching according to the table below, again bearing in mind there can be exceptions. Please refer back to the above links for an explanation of each cache lookup type.

Table GroupCache Lookup
Miscellaneous* See notes below
 Parameter EntireTable
 Group Found
 Main Found
 Transaction NotInTTS
 WorksheetHeader NotInTTS
 WorksheetLine NotInTTS
 Framework N/A
 Reference Found
 Worksheet NotInTTS
 TransactionHeader NotInTTS
 TransactionLine NotInTTS

 * All newly created tables default to a table group of Miscellaneous. Ideally don’t use this table group for custom tables.

Finally, bear in mind that in AX 2012, the cache limit is configurable for every table group in the server performance settings:

System Administration > Setup > System > Server Configuration > Performance optimisation tab

Entire table cache size determines in kilobytes how much data is cached in memory before spilling to disk. The defaults are 32KB for AX 2012 RTM and 96KB for AX 2012 R2/R3.

The record cache limits define (per table group) the number of records stored in the server side cache and the client record cache factor defines based on that the number records stored in client cache, e.g. server side cache of 2000 (default) and client record cache factor of 20 (default) means 100 records are stored in client cache. Each AOS server can have its own cache settings. The basic rule here it is to keep the defaults unless performance testing proves it addresses a specific issue.

The “Inside Microsoft Dynamics AX” book series provides more in depth information.

Map the Full Product name from Dynamics AX for the CRM Connector

$
0
0

This blog post comes from a question in the Microsoft Dynamics AX community board at https://community.dynamics.com/ax/f/33/t/120425.aspx. The question was how to map the full Product Name and not the NameAlias field that is in the InventTable table. The NameAlias field is a shorter field so it does not give you as good as description. I had originally suggested to use a custom function and provided a sample for it. This custom function would call a new AIF service in AX that would pull the product name. 

I have outlined another approach below that I would recommend over the custom function strategy. I prefer this one as it retrieves the full product name the first time it retrieves data about the Item in AX. 

Modify the AxdConnItem Query

In the AOT modify the AxdConnItem query by performing the following changes:

1. Add the EcoResProductTranslation table as a data source for the AxdConnItem query.

2. Only use the Name field since this is the only piece of data we are concerned about.

3. Add a Range where the LanguageId field is used. Pick the desired language for your own integration.      

4. The Relation is shown in the below screen shot as InventTable.Product == EcoResProductTranslation.Product. 

Data Source Properties:

  

Range Properties:

 

Update the ConnItemSvcService Service

The CRM Connector calls the AIF ConnItemSvcService Service to detect modified Items from Dynamics AX. So this service will need to be updated for the changes we made to the AxdConnItem query it uses. This will be done using the AIF Document Service wizard.

1. In the AOT go to Tools - Application Integration Framework - Update document service.

2. Select the ConnItemSvcService Service class name and select the bottom two boxes and click OK:

3. Next refresh the AIF services by going to the FormsAifService node in the AOT.  Right click the AifService form to open the form and click Refresh. This process will take several minutes as any changes to the AIF services are detected and deployed.

4. Deactivate and Activate the DynamicsConnectorDefaultServices inbound port by going to the Forms - AifInboundPort node in the AOT. Right click the AifInboundPort form to open the form. Select the DynamicsConnectorDefaultServices inbound port to Deactivate and Activate it.

 

CRM Connector Changes

1. In the CRM Connector client, go into the AX 2012 Configuration Utility and configure the services. This process will recreate the Dynamics AX Object provider configuration files for the CRM Connector. This step will allow you to then map the Name field from the EcoResProductTranslation table.

2. In the Item Service to Product map, use the built-in GetPropertyFromInstance function for the Product Name field like below:

=GetPropertyFromInstance(EcoRes Product Translation, 0, "Name")

 

The steps are now complete and when the map is activated, it should now start to integrate the full product name from Dynamics AX into Dynamics CRM. 

Account Structure Configuration using (is between and include VS is between)

$
0
0

In Microsoft Dynamics AX 2012 R3 account structure configurations has options to identify the accounts ranges as shown in the below screenshot. This helping out in identify set of dimensions control rules for rang of accounts. 

 

It is important to consider which operator you'll use, and this should be examined, and evaluated during the analysis, design, and deployment phases, In order to properly design the accounts and dimensions control rules. In this post will illustrate the configuration of "is between and include" and  "is between".

The first option will be gain with "is between and include" this option represent that the main account range is consist of the main accounts in the range beginning, and  including the main account mentioned in the range. The below image showing that the main account range which beginning with main account 100000 with all main accounts through main account 200125 and include the last account in the same rule. 

Assume that the business requirements requires that all accounts from 100000 to 200124 accept all dimensions values + blank for Business unit, and Department, regarding main account 200125 does not accept blank dimensions, only accept dimension values. In order to exclude main account 200125, it should be included in a new line of the account structure configuration.

In that case the option "is between" could be used as the following diagram shows, where exclude main account 200125 from the first line, and added to the second line. In that particular scenario it is the recommended setup.

  

Let us assume that we only have the first line in the account structure configuration, which represents "is between", with this particular setup AX will behave as the following when create a new a general ledger journal, and try to select main account 200125.

An info log will be throw with stating that the selected account is not included in the account structure. "The main account 200125 does not exist in the account structures set up for the ledger. Please check the account structures and update the criteria for MainAccount to include 200125"

Let us assume another scenario where main account 200125 will be assigned to general ledger journal offset account, during the journal creation the main account (200125) will not be populated to the line automatically, and an infolog will be thrown indicate that the journal is not balanced, and this is the same behavior if the main account 200125 "which excluded from the account structure" is assigned to posting profile. This is due to the balance control is triggered before account validity against account structure.

The conclusion is if the account structure configuration used "is between" the account which excluded from the structure must have it own account structure configuration to avoid the above two validations whether the account structure validation, and entry balance control.  

Credits

Olivier Renaud

 


How to select all the records from a grid

$
0
0

In Microsoft Dynamics AX 2012 not all the records are loaded when a form is opened.

If a user tries to select all the records using Control + A, going to File > Edit > Select all, or selecting the checkbox left to the grid header, they will actually select only the records that are already loaded.

A way to have all the records loaded and selected is to press simultaneously Control + Shift + End.

A message is displayed, informing the user that all records will be loaded and warning the user that it may take a long time:

I hope this is helpful!

Bertrand

 

With the help of Ankur Kumar.

How to use the Manual Billing Rule for Projects in Microsoft Dynamics AX 2012 R2 and AX2012 R3

$
0
0

This blog goes through the steps of setting up the Manual Billing Rule for Project.

Setup a Journal for Billing Rule Fee Journal - Project Management and Accounting | Setup | Project Management and Accounting Parameters

  1. Click the Journal link
  2. Select Billing Rule Fee Journal:

       3. Close the form

 Create a Project – Project Management and Accounting | Common | Projects | All Projects

  1. Click the Project button in the New group of the Project tab
  2. Select the Project Type:
  3. Enter the Project ID:
  4. Enter the Project Name:
  5. Select the Project Group:
  6. Click the New button next to the Project Contract ID
  7. Enter the Project Contract ID:
  8. Enter the Name
  9. Select the Funding Type:
  10. Select the Funding Source:
  11. Click Ok
  12. Click Ok
  13. Click the Project Stage button in the Maintain group of the Project tab select In Process
  14. Expand the General fast tab
  15. Click the Project Contract ID link
  16. Click the Billing Rule button in the Set up group of the Project Contract tab in AX 2012 R2 – *NOTE* - This was changed from a button to a fast tab in AX 2012 R3. Expand the Billing Rules fast tab.
  17. Click the New button – AX 2012 R2 In AX 2012 R3 click the Add button
  18. Select the Line Type: Progress
  19. Enter the Contract Value:
  20. Select the Project you created
  21. Select the Category
  22. Close the Billing Rules form
  23. Click the Manage Contract Status button in the Process group of the Maintain group of the Project Contracts form
  24. Click the Update Percentage button and enter the Total Billing Percent
  25. Click Ok
  26. Note no changes to the form
  27. Close the Contract Status form
  28. Click the Project Invoice Proposal button in the Bill group of the Maintain tab of the Project Contract form
  29. Click the Invoice Proposal From Billing Rule button in the New group of the Invoice Proposal tab
  30. Select the Project Contract
  31. Click the Search button
  32. Mark the Select checkbox
  33. Click Ok
  34. Click the Post button in the Functions group of the Invoice Proposal tab of the Invoice Proposals form
  35. Click Ok
  36. Click Ok if prompted
  37. Close the Invoice Proposal form
  38. Click the Manage Contract Status button in the Process group of the Maintain group in the Project Contract form

 Note the changes in the Contract Status form.

 

How to use the Automatic Billing Rule for Projects in Microsoft Dynamics AX 2012 R2 and AX2012 R3

$
0
0

This blog is for creating a Automatic Billing Rule in Project Accounting

Setup a Journal for Billing Rule Fee Journal - Project Management and Accounting | Setup | Project Management and Accounting Parameters

  1. Click the Journal link
  2. Select Billing Rule Fee Journal:
  3. Close the form

 

Create a new Project – Project Management and Accounting | Common | Projects | All Projects

  1. Click the Projects button in the New group of the Project tab
  2. Select the Project Type:
  3. Enter the Project Name
  4. Select the Project Group
  5. Click the New button next to the Project Contract ID
  6. Enter the Project Contract ID
  7. Enter the Name
  8. Select Funding Type: Customer
  9. Select the Funding Source
  10. Click Ok
  11. Click Ok
  12. Expand the Budget and Forecast fast tab
  13. Click the Edit button
  14. Mark the Use Budget Control checkbox
  15. Select Transaction Type Controlled: Cost Only
  16. Click the Edit button
  17. Click the Project Budget button in the Budget group of the Plan tab
  18. Expand the Costs fast tab
  19. Click the New button
  20. Select the Project
  21. Select Transaction Type: Hours
  22. Select Category
  23. Enter the Original Budget
  24. Push it through workflow
  25. Close the Project Budget form
  26. Click the Project Stage button in the Maintain group of the Project tab and select In Process
  27. Expand the General fast tab
  28. Click the Project Contract ID link
  29. Click the Billing Rule button in the Setup group of the Project Contract tab *NOTE* - In AX 2012 R3 this button was moved to a fast tab in the Project Contract form. – Expand the Billing Rules fast tab 
  30. Click the New button – AX2012 R2 in AX2012 R3
  31. Click the Add button
  32. Select the Line Type: Progress
  33. Enter the Contract Value: 200,000
  34. Select the Project
  35. Select the Category 
  36. Expand the Project fast tab
  37. Select the Project
  38. Click Add
  39. AX2012 R3 Screenshot
  40. AX2012 R2 screenshot
  41. Click the Chargeable Categories button
  42. Select the Category
  43. Click Add
  44. Close the form
  45. Close the Billing Rules form
  46. Close the Project Contract form
  47. Click the Hours button in the Journals group of the Project tab
  48. Click the New button
  49. Select the Journal from the Name dropdown 
  50. Click the Lines button
  51. Change the Category:
  52. Enter the Hours: 20 
  53. Click the General tab
  54. Verify there is a Cost Price and Sales Price 
  55. Click the Post button
  56. Click Ok
  57. Close the Infolog
  58. In the Project Contracts form click the Project Invoice Proposal button in the Bill group of the Maintain tab
  59. Click the Invoice Proposal  from Billing Rule button in the New group in the Invoice Proposal tab 
  60. Click Ok
  61. Click Post in the Functions group of the Invoice Proposal tab
  62. Click OK
  63. Click Ok if prompted
  64. Close the Invoice Proposals button
  65. In the Project Contracts form click the Manage Contract Status button in the Process group of the Maintain tab


 As you can see I was able to generate the invoice proposal and I can see the total percent complete updated.

AX ReportViewer web part fails with time out after running >90 seconds

$
0
0

I recently have an incident with the same timeout error mentioned in the blog in below that customer would like to run report exceeding 4 minutes in EP. The same steps are used to extend the AsyncPostBackTimeout attribute except that AxScriptManager is searched/modified instead of ScriptManager in the master page mentioned in the blog.

http://blogs.msdn.com/b/selvar/archive/2013/05/15/sharepoint-web-part-page-hosting-reportviewer-web-part-fails-with-sys-webforms-pagerequestmanagertimeoutexception-the-server-request-timed-out.aspx

We then encounter the “Code Block are not allowed in this file” error that following the blog in below does not resolve the error.

http://svengillis.blogspot.com/2008/03/code-block-are-not-allowed-in-this-file.html

If you encounter similar error, here is another approach to extend AsyncPostBackTimeout

1) Open the master page from \Web\Web Files\Static Files\defaultaxV4 in the AOT

2) Search for the OnLoad() method to replace in something in below.

protected override void OnLoad(EventArgs e)

{

base.OnLoad(e);

AxScriptManager scripts = AxScriptManager.GetCurrent(this.Page);

if (scripts != null)

{

scripts.AsyncPostBackTimeout = 600; // 600 seconds

}

//Call Header.DataBind to generate dynamics styles in header

Page.Header.DataBind();

}

3) Save and deploy the defaultaxV4 master page (Right click and select Deploy Element)

How to use automatic approval with Project Budgets and Workflow

$
0
0

Project Budgets require workflow to be able to create new budgets.  With some businesses, this is not necessary to have each budget reviewed before allowing them to be approved.  Especially if those with the responsibility to put in the Project Budget has the final say on the Budget regardless.  Since AX requires Workflow for Project Budgets, the best way to get around this is to setup the workflow on Project Budgets to be set to auto-approve with a simple approval workflow.

 

Steps on Auto Approval of Project Budgets:

1. Navigate to Project Management and Accounting -> Setup -> Project Management and Accounting Workflows.
2. Select the Project Budget Workflow and click Workflow -> Maintain -> Edit.


3. Select the Project Original Budget Approval node.

 


4. Click Workflow -> Show -> Properties.
5. Select Automatic Actions.
6. Checkmark Enable Automatic Actions.
7. Enter in the condition in which it will occur on.  (Note: This condition can be anything desired for what you would want to be auto-approved.  However, to get everything, using Project budget.Total cost budget for all transaction types being >= to 0.00 of the Legal Entities Currency)
8. Select Approve for Auto Complete Action.

Note: These same steps could have a setup for Project Budget Revisions and Project Timesheets as well.

 

Enjoy!

Don C.

Viewing all 840 articles
Browse latest View live


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