• Skip to main content
  • Skip to primary sidebar
  • Home
  • About
  • Recommended Readings
    • 2022 Book Reading
    • 2023 Recommended Readings
    • Book Reading 2024
    • Book Reading 2025
  • Supply Chain Management Guide
  • PKM
  • Microsoft Excel

Ali Raza Zaidi

A practitioner’s musings on Dynamics 365 Finance and Operations

Dynamics Ax 2012 Forms

Trying:exec BudgetControlCheckBudgetProc :BudgetControlCheckBudgetProc: Dynamics Ax 2012 R3

July 10, 2018 by alirazazaidi

Hi all I faced this error on Production server.  Error occur when User Post Purchase Invoice.

[Microsoft][SQL Server Native Client 11.0][SQL Server]BudgetControlProcessProc ( in
SysRaiseErrorProc): Trying:exec BudgetControlCheckBudgetProc :BudgetControlCheckBudgetProc:
Trying:Initial insert #BSTDStage – BudgetSourceTrackingDetail:String or binary data would be
truncated.(8152) at line 369 at line 67

 

 

Solution: I found out of box length of Purchase Invoice number is 20. Some one extend the length and it is used notes like functionality. But extension of length did not reflect on BudgetControlCheckBudgetProc.

When we enter the Purchase Invoice number value as 20. Invoice is posted without error.

 

 

 

Team Explorer for Microsoft Visual Studio 2012 not found for Code merge Dynamics Ax 2012 R3 apply update

December 19, 2017 by alirazazaidi

I was apply patch on Dynamics AX 2012 R3. During update checklist process. I found, Code merge check box was disabled. Message described that we need Team Explorer for Microsoft Visual Studio 2012 to enable it.


Microsoft Official download link was not working.  I downloaded it from here, And it works for me.

https://download.freedownloadmanager.org/Windows-PC/Team-Explorer-for-Microsoft-Visual-Studio-2012/FREE-

 

Remember, the above link is unauthenticated and third party, download it on your own risk. But some how the other we need to download it.

Dynamics Ax 2012 Project Types and Time and Material Video

October 5, 2017 by alirazazaidi

Hi All I found very interesting video about Project Management and accounting module of Dynamics 2012 R3 by Santosh kumar Singh. Video is worth to share.

 

 

Run time workflow Type Change Customization in Dynamics Ax 2012.

January 2, 2017 by alirazazaidi

Recently I completed a customization.  Basic requirement is workflow type have to decide on Certain enum based value at run time.

For dumpy example, I have two customized type for Sales Order. External Sales and Internal Sales.

And Workflow based on same query or table will be different for external sales and internal sales.

For this you have to left empty Workflow in Design Property of form.

 

You have to over write. LoadWorkflowConfiguration

 

For more reference Kindly explore the ledgerjournaltable form.

Form Development from scratch Dynamics Ax 2012 R3 part 1

June 1, 2015 by alirazazaidi

Consider a scenario where we are going to build small Hospital Admission System in Dynamics Ax 2012.  This Add-on is based on small database design based on

 

http://dhdurso.org/articles/ms-access-database-ad.html

 

db

 

 

We divide this task into two posts

For this post, we are cover following points to develop this small add-on

  • Ax Project
  • Patient, Diagnostic and admission table.
  • Simple list page for diagnostic table.
  • Entry form for Patient table (Detail form).
  • Parent Master detail form based on Patient ,Diagnostic table and patient.
  • List page for Patient table.
  • Integrate Patient List page with Patient Detail form.

 

 

 

AX Project:

 

AX Project for collecting Ax artifacts in single location.

When we create any Ax object they have to create under certain node. For example tables, forms, Classes, menu all stored in their respected node.

In Dynamics Ax we can create a Project which is not more the logical grouping of all Ax artifacts.

In these project, we create object groups and then placed our required object either drag and drop from AOT or create them here.

Advantages of Projects are

  • Logical grouping, it’s easier to locate required artifacts one location.
  • When we export project as Xpo, All objects are exported as single XPO.
  • We can export whole project into model, all object in project moved from one model to other model in single steps.

 

 

Lets make a new project

 

From top menu Click on View=> tools=> Project

Ax Project

Following Screen will open

Shared and Private Project

Right click on Shared folder and create a Project and renamed it to HospitalManagementSystem.

 

Hospital Management System Menu

 

New Project Managment

 

Click on Project and open it. Right click on it new => Group to create new groups

 

Details

For example we create Form group and set it Name and Project Group type to forms

Project name

 

Now Project is look like

Project Details

 

Similarly create other groups.

menu

 

 

Table structure design.

 

 

db

So our table structure look like

Diagnostic table

Column Extended data Type Primitive Data Type
DiagNo DiagnosticNumber Str10
Desc Description
Cost AmountCur Real

 

 

Patient table

Column Extended Data Type
PatNo PatientNumber Str 20
Fname Name
LName Name
BirthDate BirthDate
Address T_Address Str 20
City T_City Str20
State T_State Str20
Zip T_Zip Str20
Gender T_Gender

 

 

AdmissionsTable

 

Column Extended Data Type Primitive Data Type Foreign Key
AdmitNo AdmissionNumber Str20
PatNO Patient Number Patient table
Diag_code Diagnosticnumber

 

Diagnostic table

 

Adminationdate FromDate date
DischargeDate ToDate date
CoPay Notes Notes

 

First we create a extended data type required in three tables.

First one is DiagonisticNumber extended Data Type

Extended Data Type

Rename it and set its name as “DiagnosticNumber” and its string set its size to 10

ExtendedDataTypeSize

Similarly create all extended data type

List of Extended Data Type

Rest of we use out of the box extended Data Type

When you save any Extended Data Type, Ax ask for Synchronize database cancel it when all extended data Types created let it complete

DataBase Schyrni

 

 

 

 

 

In current example only gender is enum type, we create new base enum T_Gender instead of using out of box Gender enum.

 

Base enum menu

Create a new Enum and name it “T_Gender” t stands for training.

 

Right click on it and create a new element

Base Enum new Element

 

 

Set its name and label

 

SubType

Base Create one more element and it will look like

Base enum look like

 

 

Now create a click on tables group and right click and create a new table

 

 

Rename it to “DiagnosticTable”.

TableProperties

 

Now create a new field with Name “DiagNo” of string type and set its extended data type to “DiagnosticNumber”

 

FieldName

eeee

 

Similarly create all other fields in table

Diagnonstic

 

Now expand field Groups node in Table and Create a new Field group with Name “OverView”.

Overview

Drag all fields in it.

DiagnonsticDetial

 

Now want to make the Diagonistic and unique and make it primary key. For this right click and create unique index on it

DiagnonsticIndex

Rename it to DiagNoIx and set its AllowDuplicate Property to No and Alternate key to Yes

IndexDetails

Now drag DiagNo from fields node to DiagosticIdx.

Diagonisticss

 

 

Now right click on DiagnosticTable and set following Properties with newly created Index

 

DiagnonsticProperties

 

Perform same steps to create PaitentTable, create Index on “PatNo” similar way.

PatientTab

 

Create a new field group with overview and arrange field in a way that you want to see them in form

FieldsDetails

 

Create unique index on PatientNumber

PatientDetails

Similarly create AdmissionTable,

AdmissionTable

 

 

Now right click on Relation node in AdmissionTable and create a new relation and rename it to “PatientRelation” and sets its table property to “PatientTable”

PatientRelationDetails

Now Right click on relation click on new =>ForeignKey=>Single field AlternateKey based

AlterNativeField

 

 

A new field added against  relation, rename it to PatientNumber

PatientKey

 

Similarly create another key based DiagnosticTable

AdmissionTableWithRelation

 

 

Save and compile all table and synchronize each table.

 

Form development will be on next post

Enable and Disable an Action Pane Button on grid row change Dynamics Ax 2012

February 18, 2015 by alirazazaidi

This is very simple tip. That usually found that when we move record to record in list page, from top Action pane button enable or disable as result of this movement.  This functionality required one of my customization from.

For example, I have to enable and disable button on action pane “BtnGenerateLine”  based on status / enum field of table.

 

 

Step 1, right click on button and its set its auto declaration property to true.

Btn

Now right click on Data Source of form which bind to grid and overwrite SelectionChanged Method

 

Selection change

 

So Code snippet will be something like

public void selectionChanged()

{

super();

 

 

if (CustTabletmp.StatusProcessed == StatusProcessed::LineProcessed)

{

BtnGenerateLines.enabled(false);

}

else

{

BtnGenerateLines.enabled(true);

}

 

 

}

 

How to create a custom filter on list or inquiry form in Dynamics AX 2012

February 4, 2015 by alirazazaidi

During development we have to create custom inquiry forms. Or Form where we can  search and filter records on different criteria.

Consider a scenario, where we have to build custom inquiry form for all saleline. In this inquiry or custom list form, we can filter on records on date, customer and amount or discount.

Lets do this,

 

Create a form with name custom Sales


From expend its designs and right click on design to open its property window

 

Design property

 

From property window set its design style to simplelist

 


Simple list

 

Now add new data source on form, and sets create and edit property to no, Because we did not want to insert , update and delete operation  on this form.

 

Drop down

 

 

Now drag and drop following fields form  data source to grid.

 

ItemId,CustNumber,SalesQty,SalesPrice,

 

selected fields

 

Now right click on grid and set its datasource to salesline.

Datasource for grid

Now run the form its look like similar

 

Grid with data

Now above grid, add  group control and set its column property to 2, also set its visible property to true.

Add String Edit control, and button here.

Right click on String Edit control and set its auto delecaration to true, so we can access this control in x++. Set its name as “txtCustomerNum”. And set its lookup property to always.

 

 

ControlName

 

 

lookup always

 

Now we are going to create Unbound control with lookup,

Right lock on methods under stringEditcontrol and add lookup method.

Add following code to fill the lookup to customer and Name which belongs to current legal entity.

public void lookup()

{

Query query = new Query();

QueryBuildDataSource queryBuildDataSource, qbds, dsView;

QueryBuildRange queryBuildRange;

 

SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(CustTable), this);

 

sysTableLookup.addLookupField(fieldNum(CustTable, AccountNum));

sysTableLookup.addLookupField(fieldNum(CustTable, Party), false);

 

queryBuildDataSource = query.addDataSource(tableNum(CustTable));

 

qbds = queryBuildDataSource.addDataSource(tableNum(DirPartyTable));

qbds.joinMode(JoinMode::InnerJoin);

qbds.addLink(fieldNum(CustTable, Party), fieldNum(DirPartyTable, RecId));

 

dsView = qbds.addDataSource(tableNum(DirPartyPostalAddressView));

dsView.joinMode(JoinMode::InnerJoin);

dsView.addLink(fieldNum(DirPartyTable, RecId), fieldNum(DirPartyPostalAddressView, Party));

 

 

sysTableLookup.parmQuery(query);

 

sysTableLookup.performFormLookup();

 

 

}

 

Now run the form lets see the how behave the lookup control.

Lookupdisplay

Man its working. Now check that selected value from this textbox is accessible, then we move to filter the records

Add Click event/ method on button we just added with this string edit button.

 

And right following code.

void clicked()

{

super();

info(  txtCustomerNumber.text());

}

 

 

Now run the form, select customer and click on button.

dd

 

 

Now right click on Salesline datasource and over rights its execute Query method.

And add following lines to filter it.

public void executeQuery()

{

QueryBuildRange QcustomerFilter;

QcustomerFilter = SysQuery::findOrCreateRange(SalesLine_q.datasourceTable(tableNum(SalesLine)),fieldNum(SalesLine,CustAccount));

if (txtCustomerNumber.text()!=””)

{

QcustomerFilter.value(queryValue(txtCustomerNumber.text()));

 

}

else

{

QcustomerFilter.value(SysQuery::valueUnlimited());

}

super();

}

 

In button click even add this line code

void clicked()

{

super();

SalesLine_ds.executeQuery();

 

}

 

 

 

Now run the form, select the customer and click on button, you will find the filter records on form

Column

 

 

In next post will add more filters to this form.

 

How to control events or method on the list page Dynamics Ax 2012

January 28, 2015 by alirazazaidi

In dynamics if form is created by listpage template, it would not let you write any code on form level.

 

Best practices says that you have to wrote code in extended interaction classes. But what if we have to write simple method at form levels, For such cases  you can write events or method like modified or clicked on controls.

You can write method or event of button or control by changing “DisplayTarget” property to “Client”.

 

1-28-2015 8-44-39 PM

Dynamics Ax 2012 Enterprise portal Architecture

November 18, 2014 by alirazazaidi

logo

 

Following is architecture diagram I  took from white paper.

 

archititure

 

 

You can download white paper from following link.

http://www.microsoft.com/en-us/download/details.aspx?id=30171

 

 

Enterprise portal is based on Standard flexible ASP.net controls used in web parts and Share point portal. Dynamics Ax 2012 serve  as data source. These data sources are written in X++  exposed to web controls through proxy classes or meta data API.

 

Enterprise portal is based on Web part framework of SharePoint. These web parts are easily customizable and personalized. Microsoft AX web part are used to expose the Dynamic Ax functionality.

These web parts can contains both Dynamics ax web controls like AXGridView and standard asp.net web controls like textbox.

Custom fields shows as un retrievable on Dynamics Ax 2012 Forms.

November 6, 2014 by alirazazaidi

Today I was facing the same Issued, I added a few custom fields in AX table. After update data source and dropped custom field at required Place on form. When I run the form, I found that field showed as un-editable and unretrievable written there.

 

I found that it is cache problem. It solved by click on Refresh element cache. You can found the menu From Tool Menu, Caches and sub menu element Cache,

 

Cache refresh

 

If problem not solved by this way then restart the Dynamics Ax 2012 service from services.

Next Page »

Primary Sidebar

About

I am Dynamics AX/365 Finance and Operations consultant with years of implementation experience. I has helped several businesses implement and succeed with Dynamics AX/365 Finance and Operations. The goal of this website is to share insights, tips, and tricks to help end users and IT professionals.

Legal

Content published on this website are opinions, insights, tips, and tricks we have gained from years of Dynamics consulting and may not represent the opinions or views of any current or past employer. Any changes to an ERP system should be thoroughly tested before implementation.

Categories

  • Accounts Payable (2)
  • Advance Warehouse (2)
  • Asset Management (3)
  • Azure Functions (1)
  • Books (6)
  • Certification Guide (3)
  • Customization Tips for D365 for Finance and Operations (62)
  • D365OF (59)
  • Data Management (1)
  • database restore (1)
  • Dynamics 365 (58)
  • Dynamics 365 for finance and operations (135)
  • Dynamics 365 for Operations (165)
  • Dynamics AX (AX 7) (134)
  • Dynamics AX 2012 (274)
  • Dynamics Ax 2012 Forms (13)
  • Dynamics Ax 2012 functional side (16)
  • Dynamics Ax 2012 Reporting SSRS Reports. (31)
  • Dynamics Ax 2012 Technical Side (52)
  • Dynamics Ax 7 (65)
  • Exam MB-330: Microsoft Dynamics 365 Supply Chain Management (7)
  • Excel Addin (1)
  • Favorites (12)
  • Financial Modules (6)
  • Functional (8)
  • Implementations (1)
  • Lifecycle Services (1)
  • Logseq (4)
  • Management Reporter (1)
  • Microsoft Excel (4)
  • MS Dynamics Ax 7 (64)
  • MVP summit (1)
  • MVP summit 2016 (1)
  • New Dynamics Ax (19)
  • Non Defined (9)
  • Note taking Apps (2)
  • Obsidian (3)
  • Personal Knowledge Management (2)
  • PKM (13)
  • Power Platform (6)
  • Procurement (5)
  • procurement and sourcing (5)
  • Product Information Management (4)
  • Product Management (6)
  • Production Control D365 for Finance and Operations (10)
  • Sale Order Process (10)
  • Sale Order Processing (9)
  • Sales and Distribution (5)
  • Soft Skill (1)
  • Supply Chain Management D365 F&O (3)
  • Tips and tricks (278)
  • Uncategorized (165)
  • Upgrade (1)
  • Web Cast (7)
  • White papers (4)
  • X++ (7)

Copyright © 2025 · Magazine Pro On Genesis Framework · WordPress · Log in