Friday, January 13, 2017

Dynamics 365 for Finance and Operations: Database synchronization succeeded but some indexes are not created

When doing a migration of our product from AX 2012 to Dynamics 365 for Operations, I encounter a strange result of the database synchronization.

It stated that Database synchronization succeeded but some indexes are not created in the SQL tables.

To resolve it, we have to force the Visual Studio to fallback to native sync by adding the FallBackToNativeSync configuration line to your Visual Studio configuration:


Monday, June 29, 2015

[AX 2012 - AIF] System.OperationCanceledException: AIF service group not activated. Service group: [already deleted]

At one of my clients I received this error whenever I try to do CIL compilation / activate / deactivate AIF port:
I think I have tried everything I found on Internet (full compile, SYSXPPASSEMBLY table, etc.) to get rid this irritating "error message" but nothing works.

The problem is that AX tries to activate a service group which no longer exist (already deleted)! And this already deleted service group refers to classes which also already deleted.

After "long" hours searching and trying I finally find the solution which is very simple (after I know how to solve it): recreate the deleted service group, add a random service, redeploy it, and delete it again.

Thursday, August 28, 2014

[AX 2012 - SSRS] DrillThroughCommonHelper.ToPurchTable does not work anymore

Normally you can use DrillThroughCommonHelper.ToPurchTable on your SSRS report to create a link to the PurchTable form:

[DataMethod(), PermissionSet(SecurityAction.Assert, Name = "FullTrust")]
public static String drillThroughActionPurchId(String reportContext, String purchId)
{
  return DrillThroughCommonHelper.ToPurchTable(reportContext, purchId);
}

If this function somehow does not work anymore (in my case my client upgraded from AX 2012 to AX 2012 R2 and since the upgrade all the hyperlink to the PurchTable form does not work anymore), a workaround is by creating directly the hyperlink on the expression window (without business logic as the code above):

="MenuItemDisplay://PurchTable/+345+[1:" & Fields!PurchId.Value & "]"

345 is the ID of the PurchTable and 1 is the ID of the PurchId field.

Is there another way to fix it / make it work?

Wednesday, January 15, 2014

[AX 2012] SEPA: 1000 records

I have just noticed that AX has a standard outbound ports setup value of Max. number of documents 1000.

The consequence is that a client can not create more than 1000 records of payment journal XML for a SEPA payment.

Therefore you must change the Limit number of documents to No.

Tuesday, October 1, 2013

[AX 2012] SSRS: Excel sheet name

If you save a SSRS report to an Excel and you want to control the sheet name, you will not be able to do it via Visual Studio. You have to do it via SQL Server Report Builder because the PageName property is not available at Visual Studio (and AX).

[AX 2012] Note to Self: Get Dimension Value of An Attribute

A sample code to get a value of an attribute dimension:

static void MyJob(Args _args)
{
  info(
    DimensionAttributeValueSetStorage::find(
      SalesLine::findRecId(1234567890).DefaultDimension)
        .getDisplayValueByDimensionAttribute(
          DimensionAttribute::findByName("AttributeName").RecId));
}

Sunday, April 7, 2013

[AX 2012] Personalization (form): add a field to a list page form and reposition the field

Have you ever tried to add a field to a list page form and reposition the field but if you re-open the list page form, the new field is not at the desired position?

For example: I add the address field from the Addresses table to the customer list page form and reposition the field as the third column on the list page grid.


If I re-open the customer list page form then I will see that my added address field position is not as my personalization (at the first column instead of at the third column).

I know one way to make it work: Change the AutoDeclaration property of ListPageGrid to Yes.



Is there another way to make it work?