Quantcast
Viewing all articles
Browse latest Browse all 51446

AX 2012 - How to retrieve meeting (appointment) status from Outlook

Microsoft Dynamics AX 2012 provides a very convenient way to synchronize outlook tasks, contacts and appointments back into AX. 

MSDN topics describe the integration in details.
https://technet.microsoft.com/en-us/library/aa498242.aspx
https://technet.microsoft.com/en-us/library/gg230659.aspx

Let's discuss the main motive of this post; How can you retrieve the meeting (appointment) status from outlook back to AX 2012.

Before I show you where and what code need to add or change, I will show the existing functionality how it works.

Go to Home > Periodic > Microsoft outlook synchronization > Synchronize
Image may be NSFW.
Clik here to view.


Here you can see, be default it tries to sync Contacts, Tasks and Appointments within provided date range. I will focus on Appointments for this post and sync Appointments only,

Image may be NSFW.
Clik here to view.


Let's assume I have following meeting (appointment) response in my outlook, remember it was a meeting invitation which I sent from AX and now I have their responses back into my outllook.

For below email the response is Accepted.

Image may be NSFW.
Clik here to view.


Upon Sync Appointments it creates Activities in AX and can be access from Home > Common > Activities > All activities.

Image may be NSFW.
Clik here to view.


The last (right most) column is showing the meeting response, AX default functionality (Sync process) does not bring this meeting response back into AX. Here is the code change which needs to plug in into existing class to achieve this function.

Class: SmmOutlookSync_Appointment
Method: synchronizeAppointmentsOutlookToAxapta()

Image may be NSFW.
Clik here to view.


This method is retreiving the meeting status;

// Faisal.F, read meeting response;
// Accepted = 3; Tentative = 2; Declined = 4 [based on macro smmMSOutlook2002ObjectModelConstants]
privatestrFCM_getMeetingResponse(COM  _outlookItem)
{
    COM     recip, recips;
    str     meetingStatus;

    if ( _outlookItem.Recipients() != null)
    {
        recips = outlookItem.Recipients();
        if (recips.Count() >= 1)
        {
            recip = recips.Item(1);

            switch(recip.MeetingResponseStatus())
            {
                case2:
                    meetingStatus = "Tentative";
                    break;

                case3:
                    meetingStatus = "Accepted";
                    break;

                case4:
                    meetingStatus = "Declined";
                    break;

                default:
                    meetingStatus = "None";
                    break;
            }
        }
    }
    return meetingStatus;   
}

Image may be NSFW.
Clik here to view.

Viewing all articles
Browse latest Browse all 51446

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>