My 2p about ERP Solutions, Information Worker Solutions and other software products (mainly Microsoft Dynamics AX and Microsoft SharePoint).

03 September 2009

Integration MOSS 2007 – Dynamics AX with BDC through a custom field type (part 3)

by Patrik Luca 1 comments



In this series of post, I’ll show how you can integrate Microsoft Office SharePoint Server 2007 with another line of business system, more specifically Dynamics AX.

The purpose is to create a custom field type, which can be added as a column to a SharePoint list. This SharePoint column renders a dropdown box with values from a Microsoft SQL Server table’s column. As such, in stead of duplicating the possible values on your SharePoint box each time new values are added in your line of business system, the available values for this SharePoint column are always in synch with your line of business system.

This first post describes how to create your connection between Microsoft Office SharePoint Server 2007 and Dynamics AX.

The second post describes how to create the custom field type.

Currently however, the DAX project activities we are receiving in our dropdown list are based on a specific project.

In this post, I’ll describe how to receive those project activities for a project depending on the site the issue list is part of.


Suppose you have created a Subsite for all your projects (called Projects) under the top level Web Site. For each project, you’ve created a specific Subsite under the Projects Subsite.

What we’ll need first, is that we can link this Subsite to a Dynamics AX ProjId. To achieve this, set the URL name of eacht Project Subsite to <ProjId>_<dataAreaId>. So the url should look like http://<webapplication>/projects/<ProjId>_<dataAreaId>.

Adapt the Field Rendering Control

In the Field Rendering Control DAXProjActivityTxtFieldControl.cs we’ve created a method PopulateDAXProjActivityTxts. In this method, we used two arguments, being the ProjId and the dataAreaId, which we gave a hardcoded value. We are going to make this values depending on our url.

  1. First of all we need to add an additional using statement to be able to use the SPWeb Class.:
    using Microsoft.SharePoint;

  2. In the method PopulateDAXProjActivityTxts, look for the lines where we set a value for the arguments passed to our SQL query (args[0] = …). Replace those lines with the following code:

    //return the Web site of the current request
    SPWeb web = SPContext.Current.Web;
    // url of the Web site
    string path = web.Url;
    Uri uri = new Uri(path);
    // get part of url where ProjId and dataAreaId are stored
    string proj = uri.Segments.GetValue(2).ToString();
    char[] splitter = { '_' };
    string[] splittedproj = proj.Split(splitter);
    // ProjId
    args[0] = splittedproj[0];
    // dataAreaId
    args[1] = splittedproj[1];

  3. Build your Visual Studio project: the post-build events added previously will install everything needed to your SharePoint environment.


When you create or edit an item in the list, your drop down column will be loaded with values from your Microsoft Dynamics AX source: but now those values will be variable: they’ll depend upon the part of your url where you created the link with your ProjId and dataAreaId.

Comments 1 comments
Prologic Corporation said...

This is a good article & good site.Thank you for sharing this article. It is help us following categorize:
healthcare, e commerce, programming, multi platform,inventory management, cloud-based solutions, it consulting, retail, manufacturing, CRM, technology means, digital supply chain management, Delivering high-quality service for your business applications,
Solutions for all Industries,
Getting your applications talking is the key to better business processes,
Rapid web services solutions for real business problems,
Web-based Corporate Document Management System,
Outsourcing Solution,
Financial and Operations Business Intelligence Solution,

Our address:
2002 Timberloch Place, Suite 200
The Woodlands, TX 77380


Patrik Luca, Ieper, BELGIUM
Feel free to use or spread all of the content on my blog. In return, linking back to my blog would be greatly appreciated. All my posts and articles are provided "AS IS" with no warranties.

Subscribe feeds via e-mail
Subscribe in your preferred RSS reader

Subscribe feeds rss Most Read Entries

Subscribe feeds rss Recent Entries


Recommended Books

Subscribe feeds rss Recent Comments

This Blog is part of the U Comment I Follow movement in blogosphere. Means the comment field of this blog is made DOFOLLOW. Spam wont be tolerated.

Blog Archive

My Blog List