Locating Primary Contact Information for a Specific Warehouse using Dynamics AX

By Bill Thompson | May 31, 2016

This week I am going to talk about how to find the primary contact person and their phone number for a specific warehouse. This information in Dynamics AX is defined in Warehouse management >> Setup >> Warehouse setup >> Warehouses. You locate the warehouse in question and go to the Address fast tab. I had to click the Edit button as the demo data does not have this defined for the address I was wanting. On the New address form, you can enter in the contact information in the Contact information fast tab.

Warehouse management

Once this is done, the following job will find the contact information for the warehouse tied to a specific shipment.

Warehouse management

static void testContactLogic(Args _args)
{
    WHSShipmentTable        		shipmentTable = WHSShipmentTable::find('USMF-000002');

    InventLocation                  	inventLocation;
    LogisticsEntityPostalAddressView    	postalAddressView;
    LogisticsElectronicAddress          	electronicAddress;
    LogisticsLocation                   	contactLocation;

    inventLocation = inventLocation::find(ShipmentTable.InventLocationId);
    if (inventLocation)
    {
        select firstonly postalAddressView
            where   postalAddressView.Entity     == inventLocation.RecId
            &&      postalAddressView.EntityType == LogisticsLocationEntityType::Warehouse
            &&      postalAddressView.isPrimary  == NoYes::Yes;

        if (postalAddressView)
        {
            select firstOnly electronicAddress where electronicAddress.Type == LogisticsElectronicAddressMethodType::Phone
            join contactLocation where contactLocation.ParentLocation  == postalAddressView.Location
                && contactLocation.RecId == electronicAddress.Location;

            info(strFmt("Primary contact name: %1  Primary contact phone: %2",electronicAddress.Description, electronicAddress.Locator));
        }
    }
}

Please note this code could be optimized with more joins. I intentionally created the job above in this manner to more clearly demonstrate the relations needed, AND make it easier to step through via the debugger if so desired.

Oh, of course, I should show the output of this job as well:

Primary contact information for warehouse management

The above code could easily the modified for email, all contacts, etc.  This just demonstrates retrieving specific desired information for a specific warehouse based on shipment information.

Happy coding.

Bill Thompson
Our Verified Expert
Bill Thompson

Bill Thompson is a seasoned developer for MIcrosoft Dynamics 365 Finance & Supply Chain and Microsoft Dynamics AX, specializing in X++ development and report customizations. Having spent 11 years at Microsoft, supporting partner and ISV development teams, Bill is known for his ability to break down complex technical concepts and foster knowledge growth across user communities.
Recent engagements include working as a Principal Developer for clients implementating D365 Finance and Supply Chain or upgrading from Dynamics AX, delivering advanced customizations, mentoring internal developer teams, and leading training sessions at industry events. Bill's passion for learning and teaching foster a collaborative, solutions-oriented environment.

Read More from Bill Thompson

Related Posts


Under the terms of this license, you are authorized to share and redistribute the content across various mediums, subject to adherence to the specified conditions: you must provide proper attribution to Stoneridge as the original creator in a manner that does not imply their endorsement of your use, the material is to be utilized solely for non-commercial purposes, and alterations, modifications, or derivative works based on the original material are strictly prohibited.

Responsibility rests with the licensee to ensure that their use of the material does not violate any other rights.

Start the Conversation

It’s our mission to help clients win. We’d love to talk to you about the right business solutions to help you achieve your goals.

Subscribe To Our Blog

Sign up to get periodic updates on the latest posts.

Thank you for subscribing!