ClearDynaLinks Method

Here is something regarding the form datasource. I have two tables, BikeCustTable and BikeInvoice. The relationship for that two table is link through AccountNum. Assume there are some data in that two tables, please see the following screen.
There are two forms (Form A and Form B), both of the forms require BikeCustTable as datasource. However, in Form B, it require extra datasource, which is BikeInvoice. In Form A, it consists of a grid and a menu item button. The grid datasource is Table A and consists of fields from Table A. Meanwhile, there is a menu item button, calling Form B. For this menu item button, we have to pass the current datasource to form B.
In Form B, there only consist of one grid, and a two datasource (BikeCustTable and BikeInvoice). The BikeCustTable datasource is inner join with BikeInvoice datasource. The grid in Form B consists of fields from two table.
The scenario is like following. When user open the Form A, it display on the screen. It works well and fine. When user click the menu item button, the Form B will be display. However, you will notice the only AccountNum 100 will be display only. Where is AccountNum 101? Why it never appear in Grid?
Imagine I have two forms, Form A and Form B. Both of the forms require BikeCustTable as a datasource. In form B, I have

Here is something regarding the ClearDynaLinks method. Mostly you read many blogs, sites and so on that theoritically explain this method. Moreover, no further explaination or example is being provided. It is hard for new comer to catch up the idea.

Before I explain how that method work, we have to know our “ingredient”. I have two tables, BikeCustTable and BikeInvoice. The relationship for that two table is link through AccountNum. Assume there are some data in that two tables, please see the following screen.

Tables
Tables

After review our “ingredient”, is time for us to prepare our meal. First, we need two forms, Form A and Form B, both of the forms require BikeCustTable as datasource. However, in Form B, it require extra datasource, which is BikeInvoice. Take a glimpse on the screen below.

Datasource for Form A and B.
Datasource for Form A and B.

In Form A, it consists of a grid and a menu item button. The grid datasource is Table A and consists of fields from Table A. Meanwhile, there is a menu item button, calling Form B. For this menu item button, we have to pass the current datasource to form B. See the screen below.

Form A Design

Form A Design

In Form B, there only consist of one grid, and a two datasource (BikeCustTable and BikeInvoice). The BikeCustTable datasource is inner join with BikeInvoice datasource. The grid in Form B consists of fields from two table.

Form B Design

Form B Design

The scenario is like following. When user open the Form A, it display on the screen. It works well and fine. When user click the menu item button, the Form B will be display. However, you will notice the only AccountNum 100 will be display only. Where is AccountNum 101? Why it never appear in Grid?

Running 1

Running 1

Notice when I select AccountNum 101 in Form A, it will cause changes on Form B. In Form B, only records that have the AccountNum 101 will be displayed. Other records will not be displayed.

Running 2

Running 2

Why happen to the program? Why AccountNum 101 not being displayed in Running 1, and why AccountNum 100 not being displayed at Running 2? Notice when I select the record in Form A, it will reflect the changes in Form B. Why this happen? The answer is if same datasource exists in both forms, AX will try to link it together by default. This is the fact.

For disable the link, ClearDynaLinks method can be apply if you don’t want the linking to be carry forward to next form. Please look at the screen below to see the additional code that add under the datasource init method.

Solution

Solution

By add in this.query().dataSourceTable(tablenum(BikeInvoice)).clearDynalinks(); into the BikeInvoice data source init method to disable the linking. Doing so will broke the link and there will be two separate datasource in two forms. Hope after you go through this post, it will help you understand the the ClearDynaLinks method.

About these ads

About ckmun

A person who desperate for ERP software implementation with multiples skills sets, which include Project Management, Software Design, System
This entry was posted in Dynamics AX, Technical Stuffs. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s