09 December 2014

Install Enterprise Portal on SharePoint 2013 on AX 2012 R2 CU7

If you install Enterprise Portal on a SharePoint 2013 environment always follow the installation instructions on technet: http://technet.microsoft.com/de-de/library/dn169057.aspx

Install SharePoint 2013 and do not start the configuration. After that install the update for Microsoft SharePoint Foundation 2013 (KB2768000) When the update is installed start the configuration.

In the real world it often occurs that SharePoint is already installed and maybe also updated. There you should check if you need to install the update KB2768000.
If it is installed you can directly jump to the AX installation and select EP. If not run the KB Setup.

When the prerequisite check fails with the error "update SharePoint 2013" close the AX installation and run the SharePoint Products Configuration Wizard (Start -> All Programs -> Microsoft SharePoint 2013 Products -> SharePoint 2013 Products Configuration Wizard)
The Wizard will tell you that it processes an upgrade.

After that the prerequisite check should run through.

20 November 2014

SSRS: Report labels only IDs

The report labels do not display, or the report shows label IDs, like Labels!@SYS24426 instead of the label values:



Searching for this issue you will find the following technet solution:
http://technet.microsoft.com/en-us/library/gg731894.aspx

The SSRS Service Account password could be invalid.
  1. From the Start menu, point to All Programs, click the SQL Server folder, click the Configuration Tools folder, and then click Reporting Services Configuration Manager.
  2. In Reporting Services Configuration Manager click Connect and then click Service Account.
  3. Set the password and then click Apply. The account and password should be the same as the Microsoft Dynamics AX proxy account. For more information, see Before you install the Reporting Services extensions.
  4. Click the ServerName/MSSQLSERVER and then click Stop. Then click Start to restart the server. Always check with the SQL administrator and make sure no other users are connected to the server before you restart the server.
In my case this was not the issue. Instead it was a misconfiguration of the SSRS instance. In the RSReportServer.config there was a line missing in the <Service> element:
<service>
  ....
  <isrdceenabled>True</isrdceenabled>
</service>

After adding this part everything works fine again.

So keep in mind to also check the configuration of the SSRS installation. A missconfiguration could also lead to these label issues.

19 November 2014

Delete Transactional Data in a company

There is a class in AX that helps deleting transactional data. You'll find it in the AOT (Ctrl + D) in the classes node: SysDatabaseTransDelete.
Run this class by opening the main method and press (F5). It will prompt you to delete transactions in the current company.

 It will delete all tables with tablegroup:
  • Transaction
  • WorksheetHeader
  • WorksheetLine 
  • Except (CustCollectionLetterLine, InventDim, DocuRef, DirPartyRelationship). 
It will skip all global tables expect (SpecTrans and GeneralJournalEntry).
In addition to the transactional tables it will delete:
  • SalesTable 
  • PurchTable 
  • WMSPallet 
  • CustInterestJour 
  • CustCollectionLetterJour 
  • ProjControlPeriodTable 
  • ProjInvoiceJour 
  • ProjJournalTable 
  • PdsRebateTable 
  • PdsBatchAttributes 
 The execution takes a while depending on the amount of transactional data in the current company.

14 November 2014

DIXF: Unable to update records

I recently experienced an issue where I was not able to update records through the data Import export framework. While running the "copy data to terget" step I got a stacktrace in the DMFEntityWriter.write() method in

line 224: if (foundRecord && qRun.changedNo(currentNode.QuerySequenceNo))

After some comparissons with other environments I found out that the target entity was missing a table in the target entity hierarchie.
To solve this issue open the target entity form and click on change target mapping. In that form click details and regenerate the mapping. That also updates the hierarchie and the update is working fine again.

13 November 2014

Security development tool bug in setup class

When installing the Dynamics AX Security Development Tool it is required to run the main method of the class SysSecEntryPointManager to add the Menu Items to the Menu and the ContextMenu. But there is a bug in this method :(

You must run the setup class in english due to the fact that the developer of the main method has forgotten to use the labels :)

If you don't want to switch the language replace the following lines:

Line 39: menuNode = systemAdministrationNode.AOTfindChild('@SYS333869'); //SETUP
Line 42: menuNode = menuNode.AOTfindChild('@SYS334421'); //Security
Line 72: menuNode = sysContextMenuNode.AOTfindChild('@SYS310448');//Security tools

12 November 2014

DIXF: not compatible with SQL 2012 SP2

If you try to import data with the data import export framework and you recieve the following error message:

System.ServiceModel.CommunicationException: Fehler beim Empfangen der HTTP-Antwort für http://AXSQLSERVER:7000/DMFService/DMFServiceHelper.svc. Die Ursache kann sein, dass die Dienstendpunktbindung kein HTTP-Protokoll verwendet. Eine andere mögliche Ursache ist, dass der HTTP-Anforderungskontext vom Server abgebrochen wird (vermutlich auf das Herunterfahren des Diensts zurückzuführen). Weitere Informationen finden Sie in den Serverprotokollen. ---> System.Net.WebException: Die zugrunde liegende Verbindung wurde geschlossen: Unbekannter Fehler beim Empfangen.. ---> System.IO.IOException: Von der Übertragungsverbindung können keine Daten gelesen werden: Eine vorhandene Verbindung wurde vom Remotehost geschlossen. ---> System.Net.Sockets.SocketException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
   bei System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   bei System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
   bei System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Net.HttpWebRequest.GetResponse()
   bei System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   --- Ende der internen Ausnahmestapelüberwachung ---

Server stack trace:
   bei System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
   bei System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   bei System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   bei System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   bei System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   bei System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
   bei System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   bei System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   bei Microsoft.Dynamics.AX.DMF.ServiceProxy.DMFServiceReference.ServiceContract.ShowPreview(DMFEntity entity)
   bei Microsoft.Dynamics.AX.DMF.ServiceProxy.DmfEntityProxy.DoWork[T](Func`1 work)



You will notice that the DIXF service has crashed, Check the Version of the SQL Server. If you are running SQL Server 2012 with SP2 (11.0.5058.0) or even SP2 CU1 (11.0.5532.0) you need to update to CU2 (11.0.5548.0) -

11 November 2014

DIXF: File or Assambly not found

Client Error:

If you get the following message in the infolog. Check if the client components of the data import export framework are installed for the current client.

Die Datei oder Assembly "Microsoft.Dynamics.AX.DMF.PreviewGrid, Version=6.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Therefor navigate to the Dynamics AX client\bin folder and search for Microsoft.Dynamics.AX.DMF.*. There should be at least four dll files. If not reinstall the client components or copy the files from another client Folder.

Server Error:

If there is no Service URL in the Data Import Export Parameter form and the infolog is showing the following error:

Auf die Assembly, die Typ Microsoft.Dynamics.AX.DMF.ServiceProxy.DmfEntityProxy enthält, wird nicht verwiesen. Objekt 'CLRObject' konnte nicht erstellt werden.

If you get this error check if the DIXF (DMF) components for the AOS are installed:

  • For AX2012 R2 till CU6 use the DIXF package 
  • For AX2012 R2 CU7 install DIXF from the CU7 update package 
  • For Ax2012 R3 use the DIXF component that are provided by the R3 installation 
After the installation of the DIXF Components for the AOS Server restart the AOS!!!

DIXF: Parameters Service URL - Dienstverbindungs-URL

If you have problems with a wrong service url in the data import export framework Parameters there are 2 ways to change it:


You should navigate to the AX "Server/bin" folder and edit the Microsoft.Dynamics.AX.DMF.ServiceProxy.dll.config file. In this file you will see the xml tag for the endpoint address. There you can enter the correct address. That's it :) I restarted the AOS afterwards, but I'm not quite sure if this is necessary.



Another option is to unistall the DIXF AOS Component and reinstall it. During the installation you will be asked to enter the server name.

05 November 2014

Contoso demo environment license rearm

If the licence of your contoso demo environment is expiring you are able to rearm the license up to three times.

Therefor just open a command prompt with admin privileges and type the following command:

slmgr -rearm

09 October 2014

Compiling AX 2012 with axbuild

Since AX 2012 R2 CU7 we are able to compile AX a bit faster. Therefor you need to follow these 3 steps:

  1. Open a command prompt (cmd) as an administrator
  2. navigate to the AOS Bin Folder where AxBuild.exe is located:
    cd C:\Program Files\Microsoft Dynamics AX\60\Server\NameOfTheAOS\bin
  3. Run AxBuild with this command:
    AxBuild.exe xppcompileall /aos=01 /altbin="C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin" /log=C:\AxBuildLog
/aos Needs the number of the AOS which is part of the name of the service.
/altbin is the client folder.
/log defines the folder where the log is stored.
/workers defines the number of parallel processes.

08 October 2014

Error during installation of AX Reporting Service Extensions for SSRS

If you get the following error during the installation of the Reporting Srevice Extensions:
The AOS server name or instance name is not correctly configured
The AOS server name or instance name is not correctly configured
    Fehler beim Setup von 'Reporting Services-Erweiterungen'.
    Ursache: The AOS server name or instance name is not correctly configured
    System.ArgumentException: The AOS server name or instance name is not correctly configured
       bei Microsoft.Dynamics.AX.Framework.Client.ConfigurationModel.ClientConfigurationModel.ParseAosList(String aosList, String wsdlPortList)
       bei Microsoft.Dynamics.AX.Framework.Services.Client.Configuration.ClientConfigurationInternal.GetClientConfiguration()
       bei Microsoft.Dynamics.AX.Framework.Services.Client.Configuration.ClientConfigurationInternal.get_ConfigurationInUse()
       bei Microsoft.Dynamics.AX.Framework.Services.Client.Configuration.ClientConfigurationInternal.CreateXppChannelFactory[T](String relativeUri)
       bei Microsoft.Dynamics.AX.Framework.Services.Client.XppServiceClient`1.CreateChannelFactory()
       bei Microsoft.Dynamics.AX.Framework.Services.Client.ServiceClientBase`1.get_ChannelFactory()
       bei Microsoft.Dynamics.AX.Framework.Services.Client.ServiceClientHelper.InvokeChannelOperation[TResult,TChannel](IServiceClient`1 client, Func`2 operationInvoker, Func`2 exceptionWrapper)
       bei Microsoft.Dynamics.AX.Framework.Reporting.Shared.SRSFrameworkServiceProxy.Microsoft.Dynamics.AX.Framework.Reporting.Shared.IXppSRSFrameworkService.getReportServerConfigurations(SRSFrameworkServiceGetReportServerConfigurationsRequest request)
       bei Microsoft.Dynamics.AX.Framework.Reporting.Shared.SRSFrameworkServiceClient.Microsoft.Dynamics.AX.Framework.Reporting.Shared.ISRSFrameworkService.GetReportServerConfigurations(IEnumerable`1 configurationId)
       bei Microsoft.Dynamics.Setup.ReportsServerInstaller.GetReportServerConfiguration(String configId)
       bei Microsoft.Dynamics.Setup.ReportsServerInstaller.GetOrCreateServerConfiguration(String instanceName, String sharePointServiceApplicationSite, Boolean& createdConfiguration)
       bei Microsoft.Dynamics.Setup.Components.ReportingServicesExtensions.InstallConfigurationFiles(String instanceName, String sharePointServiceApplicationSite, Boolean& createdConfiguration)
       bei Microsoft.Dynamics.Setup.Components.ReportingServicesExtensions.RunReportingSetupManagerDeploy()
Or if you get an error when starting the command: Install-AXReportInstanceExtensions

Install-AXReportInstanceExtensions : The AOS server name or instance name is
not correctly configured
In Zeile:1 Zeichen:1
+ Install-AXReportInstanceExtensions -ReportServerInstanceName AX_TEST
-Creden ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException
 You need to check you have an AX Client installed on that machine. Open the Client Configuration and make sure it is pointing to the correct AOS. Try again :)

30 September 2014

AX Installation fails because of Windows Update Service


If you get an error during AX EnterprisePortal (EP) installation that looks like the following you should check if the Windows Update Service is up and running. On the Machine where I tried it lately the service was set to disabled :(




2014-09-30 19:19:22Z ******************************************************************************************************
2014-09-30 19:19:22Z Der angegebene Dienst kann nicht gestartet werden. Er ist deaktiviert oder nicht mit aktivierten Geräten verbunden. (Ausnahme von HRESULT: 0x80070422)
2014-09-30 19:19:22Z ******************************************************************************************************
2014-09-30 19:19:22Z ******************************************************************************************************

2014-09-30 19:19:22Z System.Runtime.InteropServices.COMException (0x80070422): Der angegebene Dienst kann nicht gestartet werden. Er ist deaktiviert oder nicht mit aktivierten Geräten verbunden. (Ausnahme von HRESULT: 0x80070422)
2014-09-30 19:19:22Z    bei WUApiLib.UpdateServiceManagerClass.QueryServiceRegistration(String ServiceID)
2014-09-30 19:19:22Z    bei Microsoft.Dynamics.Setup.MuApiWrapper.IsMachineAlredyOptedIntoMU()
2014-09-30 19:19:22Z    bei Microsoft.Dynamics.Setup.Support.SetupQueue.MsiInstallationClass.SearchDownloadInstallMicrosoftUpdates(String executionName)
2014-09-30 19:19:22Z    bei Microsoft.Dynamics.Setup.Support.SetupQueue.ComponentsInstaller.PerformWork()
2014-09-30 19:19:22Z    bei Microsoft.Dynamics.Setup.Support.SetupQueue.InstallationClass.DoWork(Object sender, DoWorkEventArgs e)
2014-09-30 19:19:22Z    bei System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2014-09-30 19:19:22Z ******************************************************************************************************
2014-09-30 19:19:23Z S260FinishedInfo

23 September 2014

Microsoft Dynamics AX 2012 R3 Update Experience





Microsoft Dynamics AX 2012 R3 Update Installer provides contextual and metadata driven update experience powered by the cloud. It simplifies discovery of updates and strives to reduce the maintenance cost by providing the ability to stay current with AX updates. This video demonstrates the features and capabilities of the new Microsoft Dynamics AX 2012 R3 Update Installer.

18 September 2014

Intelligent Data Management Framework - you do not have administrative rights

After the installation of IDMF I was frustrated because of the following error message:


You do not have administrative rights to access the Data Management Framework. But what does it mean?
Actually this message is reuslting from a request that is send via business connector to AX to validate if the user that starts IDMF is having the required role within AX. And guess what Microsoft lives in an english world. There is a macro defined in the method DMTValidateAdminUser.validateUser() that searches for the security role "System Administrator".
 
If your environment is not English you need to replace this with the rolename in your language. In my case for a german environment it is "Systemadministrator"

Installing - Intelligent Data Management Framework - MSDTC

Before you can install the Intelligent Data Management Framework (IDMF) you need to configure the Microsoft Distributed Transaction Co-Ordinator (MSDTC) which is part of the server OS.


 
 
  1. run the component Services (run: dcomcnfg) or go to ControlPanel -> AdministrativeTools -> Component Services
  2. Navigate to the Distributed TRansaction Coordinator and right click on the Local DTC select Properties
  3. Navigate to security and check the following checkmarks:

    Network DTC Access Enabled
    Client and Administration  
    Allow Remote Clients Enabled
    Allow Remote Administration Enabled
    Transaction Manager Communication  
    Allow Inbound Enabled
    Allow Outbound Enabled
    No Authentication Required Enabled
  4. Click Okay and yes to let the MS DTC do a restart. After that try to install IDMF again

15 September 2014

Prerequisite check: WSDL URI not accessible (port missing)

When installing the Helpserver on I got the error message from prerequisite check 'Application Object Server (AOS) Services WSDL URI accessible'. - Check failed."Resolution: Attempt to access the WSDL port manually by entering the URI http://[NameOfTheServer]:8101/DynamicsAx/Services/MetadataService. ..."

The problem in my Case was that the AOS 1 was uninstalled and obviously the port (8101) is not accessible. But there is a quick workaround. Just let the check talk to another WSDL port by forwarding the port 8101 to another WSDL port. In my Case 8101 --> 8103.

Therefor just open a command prompt an d enter the following command:

netsh interface portproxy add v4tov4 listenport=8101 listenaddress=[NameOfTheServer] connectport=8103 connectaddress=[NameOfTheServer]

German message:

URI der AOS-Dienste-WSDL zugreifbar

Von dem Computer auf dem Setup ausgeführt wird muss auf den URI der AOS-Dienste-WSDL (Web Services Definition Language) zugegriffen werden können. Beim Setup werden Webdienste zum Kommunizieren mit Microsoft Dynamics AX verwendet, um einen Teil der Konfiguration abzuschließen.

Versuchen Sie, manuell auf den WSDL-Port zuzugreifen, indem Sie den URI http://DEWUE-VS-PLDEV2:8101/DynamicsAx/Services/MetadataService eingeben. Wenn Sie nicht auf den URI zugreifen können und die Firewall aktiviert ist, versuchen Sie gemeinsam mit dem Netzwerkadministrator zu ermitteln, warum der URI auf dem Anwendungsobjektserver (AOS) nicht erreicht werden kann.

Informationen zur Überprüfung der Voraussetzung erhalten Sie durch Klicken auf den Link 'Protokolldatei anzeigen'. Detaillierte Problembehandlungsschritte finden Sie im Problembehandlungsabschnitt des Installationshandbuchs unter http://go.microsoft.com/fwlink/?LinkId=211990.

11 September 2014

SSRS Report Error: Parameter FormLetterRecordId does not exist on this Report

When you see this error "Parameter FormLetterRecordId does not exist on this Report" when trying to open an SSRS Report then you should check the corresponding TMP Tables for the Report. These DataProvider tables are normally temp tables and should not contain data. In my case in the VendInvoiceDocumentTMP where still two records left which created this message. Deleting these records solved the Problem for me ;)

29 August 2014

Dataimport/-export Framework DMF / DIXF - broken target entity

The Dataimport/-export Framework is a great tool to get a lot of data into AX. But like most of the nice tools the Feedback is sometimes not as detailed as it could be.

While working on some imports with standard entities I was unable to move data from staging to target.

The infolog showed the well known message that 0 records had been inserted into target. So I started some research. Best hint was the message from the Validation of the target entity which was:

Target XML tags are not generated and hierarchy cannot be found

Die Ziel-XML-Markierungen wurden nicht generiert, und die Hierarchie kann nicht gefunden werden.

So I checked the structure of the entity which was empty. I still don't know how this could happen, but there is an easy way to recreate this structure. The following lines of code will help:


DMFEntity   dmfEntity;

select dmfEntity where dmfEntity.EntityName == "BrokenEntityName";

if (dmfEntity.EntityType == DMFEntityTypes::Entity)
{
    DMFTargetXML::buildQueryDS(dmfEntity);
    DMFTargetXMLToEntityMap::generateMapping(dmfEntity);
}

28 August 2014

Test Data Transfer Tool - TDTT is unable to transfer memo fields

we recently had problems transfering test data from a test to a dev environment using the test data transfer tool. After some research we figured out that the problem occurs when transfering tables that contain memo fields.

the error log is always showing the following BCP Error: "Warning: BCP Import with a format file will convert empty strings in delimited columns to NULL"

Error = [Microsoft][SQL Server Native Client 11.0] Warnung: Beim BCP-Import mit einer Formatdatei werden leere Zeichenfolgen in durch Trennzeichen getrennten Spalten in NULL konvertiert.
After some discussions with Microsoft the actual Statement is that TDTT is still beta and right now it is not supported to transfer tables with Memo fields containing NULL Values.

So we transfered These tables manually with some SQL commands and requested MS to add this functionality in the final Version of the Test Data Transfer Tool.

Please vote for this request on the connect platform:  https://connect.microsoft.com/dynamicssuggestions/feedbackdetail/view/957734

11 August 2014

LCS Diagnostic Tools - Failed to Invoke Diagnostik External Services

I just installed LCS System Diagnotic to get an overview of the functionality provided within the life cycle services. After the Installation process I started Diagnostics Services and got the following error message:
"Failed to Invoke Diagnostic External Services:  Keyset does not exist" or in german:
"Failed to Invoke Diagnostic External Services:  Der Schlüsselsatz ist nicht vorhanden"


After some research I found out that this is due to the fact that my service is running with an account which is not within the administrators group.

So I followed these steps to allow the service account to access the certificate;

  1. Start the Microsoft Management Console from the start menu (typing mmc and hitting enter is enough).
  2. Click on File > Add or remove Snap-In
  3. Select Certificates
  4. Click on Add and select “Computer account”
  5. Select “Local Computer”
  6. Click finish
  7. Under Certificates > Personal > Certificates look for the one you created
  8. Right click on the certificate and select All Tasks > Manage Private Keys…
  9. On the Security tab add the service account for the Diagnostics Service and grant full control to it.
  10. Click on accept.
  11. Restart the Diagnostics service.
That's it - Thank you Microsoft!

05 June 2014

SSRS Report Pro-upgrade remaining accruals is empty

When opening the SSRS report Accounts Payable \ Reports \ Purchase Orders \ Pro-upgrade remaining accruals (in German: Restabgrenzung von vor der Aktualisierung) I was wondering why there is no data shown on that Report.
So I tried to find out what the use of this report is. It is only populated with data if you do a data upgrade from AX 4.0 to AX 2012 with open purchase orders that are not yet invoiced. These will be schown within that report. Once all the purchase orders that were received not yet invoice in AX 4.0 get finally invoiced in AX 2012 the report is obsolete. 

20 May 2014

TDTT - Test Data Transfer Tool - Part 2

To just exprot some tables from AX 2012 navigate to the [lists] folder of the test data transfer tool and open one of the exclude files. Add the following regular expression

.*(?<!^InventTable)

This will exclude all tables except the one defined wthin the brackets. If you want to add more tables just add them in the following way

.*(?<!^InventTable)(?<!^VendTable)(?<!^CustTable)

or use regular expresseions within the brackets

.*(?<!^SysVersion.*)

16 May 2014

TDTT - Test Data Transfer Tool - Part1

The test data transfer tool is a good way to move test data from one environment to another. Always keep in mind that it transfers data from all companies. Always backup the target environment cause the import deletes all the records in tables that are part of the import.

The generall process is done in two steps. Export data from source environment and import data into target environment.

Export data from source environment

The procedure for exporting data consists of these general steps:

  1. Generate a Metadata.xml file. (This can be done on every machine running an AX 2012 R2 Client)
    1. Import the MetadataXMLGenerator.xpo into the environment where you want to export data from.
    2. After the import is done open the aot and run the job. This will take some time. After two cups of coffee you'll get an infolog with the path where the Manifext.xml is stored.
    3. Copy the generated Manifest.xml into the [Lists] folder of the test data transfer tool C:\Program Files(x86)\Microsoft Dynamics AX 2012 Test Data Transfer Tool (Beta)\[Lists]
  2. Determine which data to export (This must be done on the SQL Server)
    Check the Exclude….txt files to define what tables will be exported.
  3.  Run the tool (This must be done on the SQL Server)
    1. Open a command prompt.   
    2. Change directory
      cd "c:\Program Files (x86)\Microsoft Dynamics AX 2012 Test Data Transfer Tool (Beta)
    3. DP.exe Export E:\Temp\TDTT20140102 AX2012R2CU7_TEST
      DP.exe Export "folder" "db"
      This will also take 10 to 15 minutes depending on the performance of the SQL Server.
Import data into target Environment
  1. Run the tool (This must be done on the SQL Server)
    1. Open a command prompt.   
    2. Change directory
      cd "c:\Program Files (x86)\Microsoft Dynamics AX 2012 Test Data Transfer Tool (Beta)
    3. DP.exe Import E:\Temp\TDTT20140102 AX2012R2CU7_DEV
      DP.exe Import "folder" "db"

08 May 2014

Data Import Export Framework escape text qualifier

If you want to import text with the DIXF (DMF) that is delimited with a text qualifier you Need to take care that the text qualifier does not accure within the text.

1;"example "test" text";123

This will lead to an error. Actually Microsoft suggests to use a unique text qualifier. One possible Option is to use more than one character:

1;@@example "test" text@@;123

Another way to deal with this is to escape the occuring character within the text. Due to the fact that you cannot specifiy the escape string in AX I tried several ways to do the escape. \" is not working. Instead you have to double the character:

1;"example ""test"" text";123

This will Import the text example "test" text into the database.

 

16 April 2014

Starting AX2012 with a specific configuration file

I was just providing access to an ax environment through Citrix. The goal was to provide an .axc configuration file that directs the Client to a specific AOS. So i was looking for a startup command that could help. And tried to use ax32.exe -regConfig. But it's even easier, you just need to place the config file behind the ax32.exe. Thats it :)

“C:\Program Files (x86)\Microsoft Dynamics Ax\60\Client\Bin\Ax32.exe” “X:\DynamicsAXConfigurations\AX2012R2_TEST.axc”

02 April 2014

RapidStart Connector log folder

If you are not able to start the RapidStart service for Dynamics AX you should always check the RapidStart log which is located within the AppData folder:

C:\Users\userXYZ\AppData\Local\Temp\Microsoft.Dynamics.Framework.RapidStart.Connector\8.2.327.0

The userXYZ is the RapidStart service account. In that folder you will find a file named RapidStartConnector.log

which will display messages like [8.2.327.0][2014-04-02 13:07:09][Information] Unable to configure shared folder Unable to log on to Microsoft Dynamics AX.

This messages are not available in the eventLog.

27 February 2014

CU7 AXBUILD

AXBuild.exe needs to be executed with hot-swap disabled!!! So always check your Server configuration and change it if necessary.

I also recognised issues when running axbuild with a user that has insuficient rights. So kkep in mind to run it in a command prompt as an administrator.

cd "c:\Program Files\Microsoft Dynamics AX\60\Server\AX2012R2\bin"

Axbuild.exe xppcompileall /aos=01 /log="E:\log" /altbin="C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin" /compiler="C:\Program Files\Microsoft Dynamics AX\60\Server\AX2012R2\bin\ax32serv.exe"

Import AX model into baseline db

i was wondering if there is a way to import a model into the baseline database instead of moving AOD files into the baseline database. I was looking for an axutil Parameter but there is non. It's even easier, you just need to define the baseline as the target database. Thats it!

cd "C:\Program Files\Microsoft Dynamics AX\60\Server\AX2012R2\bin"
axutil import /file:e:\my.axmodel /db:AX2012R2Baseline /s:MYSQLSERVER /createparents

25 February 2014

Error 351 when generating full CIL

Lately I had Problems with a newly installed AX 2012 R2 CU7 after compiling with AXBuild I tried to do a full CIL Generation.
This allways results in the following error code 351:

System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index at
System.Collections.Generic.List'1.get_Item(Int32 index) at Microsoft.Dynamics.Ax.Xpp.ILGenerator.loadFieldsIL(TypeBuilder typeBuilder) at Microsoft.Dynamics.Ax.Xpp.ILGenerator.declareFields() at Microsoft.Dynamics.Ax.Xpp.ILGenerator.GenerateXppModule()

Knowing that when the AOT compiles CIL should also work I tried at first these steps:

  1. stop the AOS
  2. navigate to C:\Program Files\Microsoft Dynamics AX\60\Server\AX2012R2CU7\bin\
  3. rename XppIL Folder to something else
  4. restart AOS
The restart will create XppIL folder again. If that doesn't happen grant the AOS Service user read and write access to the server restart again.

In my case I still got the error. So instead of compiling with axbuild I started a compilation of all tables and classes from the aot. After that I was able to generate full CIL.

So instead of compiling the System with axbuild we should still do a compilation from the AOT when we have a newly installed environment.

13 February 2014

Microsoft.Dynamics.AX.DMF.ServiceProxy.dll.config

If you recieve the following error message when opening DIXF forms after updating to CU7 there is an easy Workaround to fix this issue



System.InvalidOperationException: Die Konfigurationsdatei C:\Program Files\Microsoft Dynamics AX\60\Server\AX2012R2CU7\Bin\Microsoft.Dynamics.AX.DMF.ServiceProxy.dll.config der Anwendung wurde nicht gefunden. Stellen Sie sicher, dass für die Assembly, die den spezifischen Dienstclienttyp enthält, eine Quelldatei für die Anwendungskonfiguration vorhanden ist. Die folgenden Pfade wurden geprüft:
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.Dynamics.AX.DMF.ServiceProxy\v4.0_6.2.0.0__31bf3856ad364e35\Microsoft.Dynamics.AX.DMF.ServiceProxy.dll.config
...

Navigate to the Server Folder of your AX Installation and check if the following files are located in the common Directory (C:\Program Files\Microsoft Dynamics AX\60\Server\Common)
  • DMFConfig.xml
  • DMFClientConfig.xml
  • Microsoft.Dynamics.AX.DMF.ServiceProxy.dll.config
if yes just copy them into the Server bin Directory of the instance (C:\Program Files\Microsoft Dynamics AX\60\Server\AX2012R2CU7\Bin\)

If these files are not stored there they could also be in the data Import Export Folder (C:\Program Files\Microsoft Dynamics AX 2012 Data Import Export Framework Server Component)



27 January 2014

SSRS Could not load file or assembly wrong version

I just got problems with an SRSS Installation on a SQL Server where I had installed AX 2012 Reporting Server Extensions. When browsing to the ReportServer URL http://localhost/ReportServer I got the following error message:

Parser Error Message: Could not load file or assembly 'Microsoft.Dynamics.Framework.ReportsExtensions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. (C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\web.config line XY)


Looking at the Version in the web.config of the SSRS Server I was wondering why it says 6.0.0.0 even though I have AX2012 R2 up and running.

So I changed the version from 6.0.0.0 C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\web.config
to 6.2.0.0. Saved tha changes and restarded the SSRS Service.

After that everything is fine again.