Wednesday, February 27, 2013

Error while installing Microsoft Dynamics AX Reporting Extensions and Role Centers and Enterprise Portal


Issues:

Reporting extensions cannot be installed and display the below error message, Event Log & Setup Log:
Image
Error Message :
Role centers and Enterprise Portal cannot be installed. Setup cannot connect to the Application Object Server Instance (AOS) by using Business Connector.
Generated Event log:
Log Name: Application
Source: Microsoft.Dynamics.Framework.BusinessConnector
Event ID: 1000
Description: Session log on for Microsoft Dynamics failed Microsoft.Dynamics.Framework.BusinessConnector.Session.Exceptions.FatalSessionException
Dynamics Adapter Logon failed.
Setup Log:
Property RemoveComponents set to: ’0′
Property BypassWarnings set to: ’0′
Entering method GetBusinessConnectorProxyAccount
An error has occured while Setup was establishing a connection through Business Connector. Error: No .NET Business Connector session could be found.
Leaving method GetBusinessConnectorProxyAccount
An error has occured while Setup was establishing a connection through Business Connector. Error: No .NET Business Connector session could be found.
Microsoft.Dynamics.Framework.Deployment.Web.EPWebException
Solution:
1. Change the client configuration file to run on Business connector.
2. Check if the client configuration file is pointing to required Server Name & TCP/IP Port, if not modify and apply the settings.
3. Start the Microsoft Dynamics AX Setup wizard and install the selected components “Reporting extensions” and Click Next.
4. After the installation is complete, you must deploy the default reports that are included with Microsoft Dynamics AX.
-------
What i did ...
1. I have created the business connector configuration for AOS ( which m using for installation EP and Reporting Extension.
2. In the client configuration assign the AOS name to the local client.
-----------------------------------------------------------

Source : http://dynamicsaxsolutions.wordpress.com/

Wednesday, February 13, 2013

Workflow installation and configuration in AX 2009

Workflow prerequisites

Before we begin installing and setting up Workflow, you will need to have administrator privileges on the machines in which you are installing Workflow on. The following prerequisites are required:
  • Internet Information Services (IIS) 7
  • .NET Framework 2.0
  • Business Connector
The Workflow component for Dynamics AX utilizes the Business Connector to communicate directly to Dynamics AX from its web service. Although it depends on the number of users and computing resources available, it is best practice to implement the Workflow web service application on its own server.

Workflow accounts setup

The Workflow system in Dynamics AX utilizes two accounts to function properly. If these accounts are not specified, workflow will still function; however, it is best practice to have dedicated accounts. One account is the service account. This account is responsible for the communication between Dynamics AX and the Workflow web service. The other account is the execution account. This account is responsible for executing Workflow tasks and processes. Similar to the Business Connector proxy account, these two accounts must be created with the following criteria:
  • The password must never expire
  • It must not be interactive
  • It must not be associated to any Dynamics AX users
Once the Workflow accounts have been created, the next process is to ensure that the Dynamics AX Workflow system will use the accounts. To do this, perform the following steps:
  1. Log in to Dynamics AX 2009.
  2. Go to Administration | Setup | Security | System service accounts.
    Microsoft Dynamics AX 2009 Administration
  3. In the System service accounts form, specify the Workflow System Account and the Workflow Execution Account. To specify the accounts that were created in the Active Directory, mark the Alias field radio boxes. When complete, click on the OK button.
    Microsoft Dynamics AX 2009 Administration
Now that the Workflow accounts have been specified, the Dynamics AX Workflow system can utilize these accounts when communicating with the Workflow web service. It is also possible to create a user within Dynamics AX but not Active Directory, and use the Dynamics AX user accounts as the Workflow Service and Execution accounts. These accounts may appear as different users in Dynamics AX; however, these accounts will be impersonated by the AOS service account to the Workflow web service. This can make troubleshooting and connection auditing more difficult and therefore, it is not recommended.

Installing Workflow

Since Workflow consists of various parts that function together to create the Dynamics AX 2009 Workflow system, we will break down each part’s setup and complete each setup individually.

Creating a website for Workflow

Before we can install the Workflow extended server component, we must have a website available to install upon. It is possible to use the default website that is on port 80. However, it is not recommended; therefore, a new website must be created. For information regarding how to create a website in IIS 7, refer to http://technet.microsoft.com/en-us/library/cc772350(WS.10).aspx.

Installing the Workflow component

By now you should be accustomed to the process of installing the extended components for Dynamics AX. Installing Workflow is no different. The following steps will guide you through the process:
  1. Run the Microsoft Dynamics AX Setup wizard to add new components. In the Add or modify components screen of the wizard, mark the Workflow checkbox, as shown in the following screenshot and then click on the Next button:
    Microsoft Dynamics AX 2009 Administration
  2. In the following screen of the wizard, specify the password for the .NET Business Connector proxy account, and then click on the Next button:
    Microsoft Dynamics AX 2009 Administration
  3. The Domain\user name field will automatically be populated if the Business Connector proxy user is specified in the Administration | Setup | Security | System service accounts form in the Business Connector Proxy group.
  4. In the next section of the wizard, you will be prompted to tweak the Workflow service. In other words, you can select which website you want to install the Workflow service into. By default, the wizard will select the default website in IIS. However, it is recommended to install Workflow on its own dedicated site and port, you have the flexibility to do so. When you are satisfied with the settings on this page, click on the Next button.
    Microsoft Dynamics AX 2009 Administration
  5. In the following screen you will be prompted to specify the AOS account for the Workflow service to grant permissions to. If there is more than one AOS and each AOS service account is different, provide the accounts for each AOS so that they can access the Workflow service.
    Microsoft Dynamics AX 2009 Administration
  6. In the following step, you are prompted to complete the installation of the Workflow by clicking on the Finish button. You will want to restart IIS after the Workflow has been successfully installed. Therefore, leave the option checked at the bottom, as shown in the following screenshot:
    Microsoft Dynamics AX 2009 Administration
  7. Once installed, you will be prompted with the final screen. The final screen will display the result of the installation of the Dynamics AX 2009 Workflow system. If the installation is successful, you will see a green box next to the installed component. Otherwise, if the box is orange or red, you should open the log file after you close the wizard by marking the checkbox at the bottom.
    Microsoft Dynamics AX 2009 Administration

Enabling Workflow in Windows Server 2008 R2

In Windows Server 2008 R2, additional setup is required to enable the Workflow web service. The Workflow web service application pool must be enabled to run 32-bit applications. Otherwise, the Workflow service will fail. To set up the application pool to run 32-bit applications, perform the following steps:
  1. Go to the IIS console and access the web server that you installed the Workflow web service on.
  2. Under &ltYour web server&gt | Application Pools, select the Dynamics AX Workflow application pool.
    Microsoft Dynamics AX 2009 Administration
  3. Under Actions, go to Advanced Settings.... In the Advanced Settings window, set the Enable 32-Bit Applications property to True. When complete, click on the OK button to save the changes.
    Microsoft Dynamics AX 2009 Administration
After performing these steps, the Workflow web service can then be used by Dynamics AX to process Workflows. Next, we will set up Dynamics AX to use the Workflow web service.

Setting up Workflow

Now that the Workflow service for Dynamics AX has been successfully installed, we can begin to configure it for use. Dynamics AX will not utilize the Workflow service after it has been installed. Therefore, in order to properly configure the Workflow system, we must do so within Dynamics AX 2009.

Workflow configuration prerequisites

Before we begin configuring the Workflow system, we need to ensure that the following is set:
  • A dedicated Workflow batch group has been created
  • An AOS is set up as a batch server
Creating a dedicated batch group is not required but recommended since, there is no batch group dedicated for Workflow. Since Workflow uses batch jobs to generate notifications and run Workflow processes, a batch server is required.

Creating a dedicated Workflow batch group

The following steps cover the process of verifying whether an AOS is a batch server and how to create a Workflow batch group:
  1. To create a dedicated Workflow batch group, go to Administration | Setup | Batch groups.
    Microsoft Dynamics AX 2009 Administration
  2. Create two new records in the Batch group form—one group that will execute Workflow commands and another that will process Workflow due date notifications.
    Microsoft Dynamics AX 2009 Administration

Setting up the AOS as a batch server

Since Dynamics AX workflow uses a batch job to send workflow tasks to the web service in order to be processed in Dynamics AX, we need to ensure that there is at least one AOS that is designated as a batch server. Without the batch job, the Workflow web service would sit idle, waiting for a workflow request even though a user may have initiated a workflow task in Dynamics AX. In this section, we will cover the process of setting up an AOS as a batch server and ensuring that a Workflow’s batch group will be associated to a designated batch server.
  1. To view and modify the current batch server set up on an AOS or group of AOSs, go to Administration | Setup | Server Configuration.
    Microsoft Dynamics AX 2009 Administration
  2. An AOS can be set up as a batch server and service users. However, depending on the performance and resource requirements for an implementation, it is recommended to have an AOS as a dedicated batch server.
  3. Select the appropriate AOS that should run as the batch server and then click on the General tab and ensure that the Is Batch Server checkbox is marked.
    Microsoft Dynamics AX 2009 Administration
  4. Go to the Batch server groups tab, and add the Workflow batch groups that we created.
    Microsoft Dynamics AX 2009 Administration
  5. To specify the number of batch threads/processes that can run simultaneously and the time the batch processes can run, go to the Batch server schedule tab and provide the desired values. The following batch schedule is the default schedule and runs eight threads at any time of the day:
    Microsoft Dynamics AX 2009 Administration

Configuring Workflow

Now that we have an AOS that can run Workflows in a batch server, we must configure the batch processes. This section will guide you through the process of:
  • Configuring Dynamics AX to use the Workflow service
  • Specifying Workflow parameters for notifications and general use

Running the Workflow infrastructure configuration wizard

The Workflow infrastructure configuration wizard allows you to quickly specify the Workflow web service address, Workflow batch groups, and specify when the Workflow batch jobs should run. It also validates the Workflow web service and ensures that it is accessible by the AOS. In this section, we will cover the process of running the wizard.
  1. Go to the Administration module and in the Setup section, open the Workflow infrastructure configuration wizard. Once in the Workflow infrastructure configuration wizard form, click on the Next button, as shown in the following screenshot:
    Microsoft Dynamics AX 2009 Administration
  2. In the next section of the wizard, you may specify the URL of the Workflow web service, which you created as described in Creating a website for Workflow section of this article. By default, this field will already be populated if you installed the Workflow service correctly. However, if you want to modify this field, you certainly have the option to do so. Be sure to click on the Validate button to confirm that the URL is accessible by Dynamics AX, as shown in the following screenshot:
    Microsoft Dynamics AX 2009 Administration
  3. In the following section of the wizard, you will be able to see which batch group is designated to execute Workflow batch jobs. Verify that the appropriate batch group is assigned and then click on the Next button.
    Microsoft Dynamics AX 2009 Administration
  4. In this section of the wizard, you can specify how many times you want the batch server to repeat the Workflow batch process. The lowest value you can enter is 1. The wizard will allow you to enter in 0; however, the batch system only accepts 1 as the lowest value. Once you have specified the appropriate value, click on the Next button.
    Microsoft Dynamics AX 2009 Administration
  5. The next and final screen of the wizard displays a summary of all the settings that were specified. Click on the Finish button to apply these new settings and to make Dynamics AX start using the Workflow service.
    Microsoft Dynamics AX 2009 Administration

Specifying Workflow settings

The Workflow infrastructure configuration wizard assists in setting up common Workflow settings that are shared between companies. However, company specific settings for Workflow must also be specified such as Number sequences. Additional settings can be customized but are not required, such as specifying custom e-mail templates or another Workflow web service URL. In this section, we will cover the process of specifying company-specific workflow settings.
  1. Go to Basic | Setup | Settings for workflow. In the General tab, provide a custom template for Approval and task notifications. By default, no template is specified. In this case, a generic e-mail template will be used.
    Microsoft Dynamics AX 2009 Administration
  2. In the Administration tab, verify that the correct Workflow web service is listed and verify that the system can access the service by clicking on the Validate button.
    Microsoft Dynamics AX 2009 Administration
  3. In the Number sequences tab, ensure that Number sequences are mapped to the appropriate Reference.
    Microsoft Dynamics AX 2009 Administration
If number sequences are not mapped, it may be because the number sequence wizard never ran. To run the number sequence wizard, go to Basic | Setup | Number sequences to load the Number sequences form. In the Number sequences form, run the wizard by clicking on the Wizard button. Dynamics AX will automatically check which number sequences need to be set up and associate number sequences to their reference.

Tuesday, February 5, 2013

How to install Dynamics AX2012



How to Install and Configure Dynamics AX 2012 Components
http://daxdilip.blogspot.com/2011/08/step-by-step-guide-how-to-install.html

Install Dynamics AX2012 Enterprise Portal

http://daxdilip.blogspot.com/2011/08/how-to-install-dynamics-ax2012.html

Install Dynamics AX2012 SSRS And Analysis Extensions
http://daxdilip.blogspot.com/2011/09/step-by-step-installation-dynamics-ax.html

Inside Microsoft Dynamics AX 2012


Inside Microsoft Dynamics AX 2012

Thought to share these Youtube videos on Dynamics AX 2012:

Video1 - Developer Tools
- Stresses the importance of Models
- API's
- Interoperability with .Net
- 3 yrs spent by Microsoft for the new Development Tools
http://www.youtube.com/watch?v=cZc1Jya7tqM&feature=related

Video 2 - Services and AIF
- Heavy investment in Services
- Mobile applications can plug in to the service model
- 90 webservices
- Simplified and Powerful Integration
http://www.youtube.com/watch?v=sn9I6TaQY9o&feature=relmfu


Video 3 - Reporting
- Integration with Excel
http://www.youtube.com/watch?v=qx3_2oSrdpI&feature=relmfu

Video 4 - Office Integration
- Collabration across Office, AX and Visual Studio
- Demo (Budget)
http://www.youtube.com/watch?v=83Rm0Dbgb3g&feature=relmfu

Video 5 - Usability 
- End-User Simplicity
- Recruited people from the industry to test the usability scenarios
- Field Surveys
- Demo AR Customers/SO's (Fact boxes)
- Consolidate Commands into Flexible Activity based Ribbons (Similar Look and feel as Excel, Word)
- Fast tabs
- "Go to Main Table" replaced by hyperlink lookups (cool feature)
http://www.youtube.com/watch?v=CCyUcbTHuc4&feature=relmfu

Video 6 - Enterprise Portal
 - Rich UI
 - Travel Expense Demo
 - Microsoft internal adoption (aka DogFooding)
 - ISV's interested to build on new add'ons for EP
http://www.youtube.com/watch?v=Td2ROxxXzcE&feature=youtube_gdata


Video 7 - Performance
20 x times faster than 2009
- Managed X++
- Leverages Virtualization
- Leverages AppFabric
http://www.youtube.com/watch?v=YRJaMkElvqk


Video 8 - Programmability
-Improvements in X++ Language
-Improvements in Language Performance
-Visual IDE and MorphX IDE
-Attributes
-Marrying C# and X++
-X++ managed language
-AOT in VS.Net
http://www.youtube.com/watch?v=-jUtbBGTt-U


Video 9 - Security
-Improved Administration Experience for setting up Security
-Flexible Authentication (Leverages Claim Based Authentication from Sharepoint)
-Authorization
http://www.youtube.com/watch?v=EYQukrLQF7A&feature=channel_video_title


Video 10 - Simplicity
- Experiences for Developers, Administrators and End Users made simple
- For Developers - Goal to enrich .net and x++ developers experience
- Installation experience for Developer improved (Single Click Experience)
- Simplicity for System Administrators
- Good Feedback from Partner and Customer Channel
http://www.youtube.com/watch?v=-0C6t_vFyX0


Video 11 - Processes and Workflow
-Graphical workflow Editor for Business Users and Application Developers
-Leverages Wofklow Foundation of .Net 4.0
-Flexible Work Item Queues
-60 Workflow Types out of the box
-Sub-Workflows
http://www.youtube.com/watch?v=XQK1sZGkgvg


Video 12 - Organizational Model
-Model for External and Internal Reporting
-Policy Frameworks
-Reporting
http://www.youtube.com/watch?v=EteQAKqwnTU

Monday, January 14, 2013

Set not empty / not blank record in query (AX 2009)

Hi,

If we want to set not empty condition at query then following code can be used in value

SysQuery::valueNotEmptyString()

Example:

this.query().dataSourceTable(tablenum(LedgerTrans)).addRange(fieldId2Ext(fieldnum(LedgerTrans, Dimension),5)).value(SysQuery::valueNotEmptyString());

Thursday, January 10, 2013

Most commonly used Format and code while creating reports X++ report


Most commonly used  Format and code while creating reports.



public class ReportRun extends ObjectRun
{
    TransDate               fromDate;
    TransDate               toDate;
    DialogField             dialogFromDate, dialogToDate;
    DialogField             dialogLedgerAccount;
    DialogField             dialogPrintExcelReport;
    LedgerAccount           ledgerAccount;

    LedgerTrans             ledgerTrans1, ledgerTransOpenBal;
    str 50                  dimension;
    AmountMST               amount;
    AmountCur               creditAmt,debitAmt;
    AmountCur               openingBalAmt,closingBalAmt;

    #define.CurrentVersion(4)
    #localmacro.CurrentList
        FromDate,
        ToDate,
        ledgerAccount
    #endmacro
}

==================================================


public container pack()
{
    return [#CurrentVersion,#CurrentList];
}

==================================================


public boolean unpack(container _packedClass)
{
    boolean     ret;
    Version     version = RunBase::getVersion(_packedClass);
    ;

    switch (version)
    {
        case #CurrentVersion:
            [version, #CurrentList] = _packedClass;
            ret = true;
            break;

        default :
            ret = false;
    }
    return ret;
}





==================================================


public Object dialog(Object _dialog)
{
    DialogRunbase dialog = _dialog;
    ;

    dialog.addGroup("Date Range");
    dialogFromDate = dialog.addFieldValue(typeid(TransDate), fromDate,"From Date");
    dialogToDate = dialog.addFieldValue(typeid(TransDate), toDate,"To Date");
    dialogLedgerAccount = dialog.addFieldValue(typeid(AccCategory), ledgerAccount,"Ledger Account");

    return dialog;
}


==================================================


public boolean getFromDialog()
{
    ;
    fromDate = dialogFromDate.value();
    toDate   = dialogToDate.value();
    ledgerAccount = dialogLedgerAccount.value();

    return true;
}



==================================================
Fetch method --------

queryRun = new QueryRun(this);
    this.query().dataSourceTable(tablenum(LedgerTrans)).addRange(fieldnum(LedgerTrans,TransDate)).value(queryrange(fromdate,todate));

this.query().dataSourceTable(tablenum(LedgerTrans)).addRange(fieldnum(LedgerTrans,AccountNum)).value(ledgerAccount);
    this.query().dataSourceTable(tablenum(LedgerTrans)).addOrderByField(fieldId2Ext(fieldnum(LedgerTrans, Dimension),5));

//this.query().dataSourceTable(tablenum(LedgerTrans)).orderMode(OrderMode::GroupBy);
    //this.query().dataSourceTable(tablenum(LedgerTrans)).addGroupByField(fieldId2Ext(fieldnum(LedgerTrans, Dimension),5));

//this.query().dataSourceTable(tablenum(LedgerTrans)).fields().addField(fieldnum(LedgerTrans, AmountCur), SelectionField::Sum);

//query.dataSourceNo(1).fields().addField(fieldnum(CustSettlement, SettleAmountMST), SelectionField::Sum);
    //this.query().dataSourceTable(tablenum(LedgerTrans)).addRange(fieldnum(LedgerTrans,Dimension[5])).value(dimension);

//this.query().dataSourceTable(tablenum(LedgerTrans)).addRange(fieldId2Ext(fieldnum(LedgerTrans, Dimension),5)).value("Anil P Talla");

//query.dataSourceNo(2).addGroupByField(fieldId2Ext(fieldnum(CustTrans, Dimension),1));



while (queryRun.next())
    {

        ledgerTrans = queryRun.get(tablenum(LedgerTrans));
        // Add code here
    }