I've created a custom property through a calendar Outlook add-in (JS add-in). I'm unable to get this custom property using the EWS API.
I've followed the various examples on how to retrieve add-in custom properties with no luck. I know that the custom property is properly saved because I'm able to retrieve the custom property using the add-in after initially saving and I'm able to use the MS Graph Explorer to query the specific item and confirm that the custom property is saved somewhere.
val addinProp = new ExtendedPropertyDefinition(
UUID.fromString("00020329-0000-0000c000-000000000046"),
"cecp-xxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxx",
MapiPropertyType.String
)
val propertiesToLoad = new PropertySet(BasePropertySet.FirstClassProperties, addinProp)
val appointmentWitNewProp = Appointment.bind(service, itemEvent.getItemId, propertiesToLoad)
I expect the bind call to retrieve the specific item and the provided property set. All other properties are successfully returned except for the custom property.
Related
We have an add in that works with user properties set as Outlook.OlUserPropertyType.olInteger
I have been asked to integrate that with MSGraph.
According to this post if user properties are created in a VSTO add in this can be accessed through MS Graph but how can I go the other way? I need to use Outlook extended properties but I am not sure how
So far I am not sure how to add extended properties and how to pick them up in a VSTO add in
You need to use the GUID for dealing with user properties. See How do I retrieve Extended Properties from a Calendar Event using MS Graph? for more information. For example:
https://graph.microsoft.com/v1.0/me/events('AAMkADU4MzkxN2RmLTdiZDAtNDIwYS04NjQzLTUzNzMyMjM0Y2VkNQBGAAAAAABGjw0ByCaySL6aUxJmew3qBwDwiT27qO5xT6RMWiWBhwRzAAAADIqqAAAYpSJ8f1CATrNsRrtUbquzAAEOAONsAAA=')?$expand=singleValueExtendedProperties($filter=id%20eq%20'String%20{00020329-0000-0000-C000-000000000046}%20Name%20MyCustomData')
User properties are twofold: their definition is stored in a special blob (you can see its definition in MFCMAPI or OutlookSpy (I am its author) - click IMessage button) and their value is stored as a regular named MAPI property (see the OutlookSpy screenshot in Eugene's answer). The blob format is documented, but parsing or (even worse) creating it is a major pain. If you don't need the property to be present in the MailItem.UserProperties collection, you can read or set its value using MailItem.PropertyAccessor.GetProperty/SetProperty by the property DSL name (also shown by OutlookSpy). To read or set the value using Graph, you can use the link in your question.
I've created an Outlook extended property for contacts with the REST API described here. This is the relevant JSON payload.
{
"singleValueExtendedProperties": [
{
"id":"String {b06defca-5b03-4ee3-ba80-c5c9f49bea8d} Name MyProp",
"value":"true"
}
]
}
This prop is successfully saved and returned if I request instance of contacts with this extension via REST API.
contacts?$filter=singleValueExtendedProperties/Any(ep: ep/id eq 'String {b06defca-5b03-4ee3-ba80-c5c9f49bea8d} Name MyProp' and ep/value eq 'true')
So far, so good.
But how can I show this extension within the Outlook application, e.g. in Outlook for Mac v16.15 ? I assume, that I can add such an extension as additional column in the list view of all contacts. There are always columns named 'Benutzerdefiniert 1' .. 'Benutzerdefiniert 8' (in english 'User defined'). But nothing. Also nowhere within the huge (and BTW very good) Microsoft Graph docs I found any hint linking from the MS Graph REST API into the Outlook app.
What is necessary to have visible custom Outlook properties managed by the MS Graph REST API ?
Kind regards
Dominik
have you tried using Outlook web addin?
You can create an outlook web addins in order to show the extension properties in outlook like this image below.
I am very new to MS Dynamics. I am using dynamics CRM 2016 and I need to remove, in the activities page, the views about entities that I am not using such as Campaign Response, Campaign Activity, etc.
I do not see them in the list of views of the Activity entity in my solution, so I cannot remove them from there, am I missing something? Is there a way to remove those views?
Its possible. I found the way to do it finally after just 3 days of research.
Open your CRM web in XRM Tool kit (download if not having it)
XRM toolkit access your org using url and login. Assuming you have privilege access.
Load all web resources and scroll down to find "activitypointer_ribbon_home.js"
Add below lines of code into the file,
finally Save and publish to make it available for all users. Whoa.. it works like charm !!!
hideactivitiesview() // call under onload of xrm page; comes in default script of this file
function hideactivitiesview()
{
var viewSelector = $('#crmGrid_SavedNewQuerySelector')[0];
if(viewSelector)
{
$(viewSelector).click(function(){
var _activity = $('#ViewSelector_activity')[0]; //get this id from DOM using F12
if(_activity)
$(_activity).hide();
});
}
}
Unfortunately you cannot hide/remove those.
Reason: They are not usual views, they are part of System tailored Activity entity family (Activity, Activity Pointer, Activity Party, Custom Activity types, etc).
If you see any Activity entity properties, the checkbox 'Display in Activity Menus' is checked & disabled. This settings is being used for navigation, views, filters, etc.
Even while creating custom activity, this option is enabled & if you forget to check it, that particular Custom Activity type will be hidden from everywhere wherever you are using its siblings (Email, Fax, etc)
If its unchecked, Even Associated view will not be showing this activity under it's regarding Parent record, which is failing the main reason why we are using CRM & activity relationship.
In a nutshell, this setting once enabled, cannot be undone. The activity cannot be distinguished/disabled using security role, because all are of same bucket.
Maybe you can try some unsupported customizations using DOM explorer in javascript & hide it, which I don't recommend. PowerObjects blog talk about renaming it to something to avoid users using it & other options.
inside a Outlook COM Add-in (C#) I was able to retrieve all selected mails inside Outlook like this
var selection = Globals.ThisAddIn.Application.ActiveExplorer().Selection;
List<Outlook.MailItem> outlookMailList = new List<Outlook.MailItem>();
foreach (object mail in selection)
outlookMailList.Add((Outlook.MailItem)mail);
to store the selected mails with some meta data inside a DMS.
Now I would like to do the same with the Javascript API for Office (office.js).
What is the correct entry point here? Because when I select more than one mail inside Outlook the OutlookTab-buttons inside the default ribbon get deactivated.
see also http://bettersolutions.com/javascript-api/hosts/extensionpoint.htm
For retrieving the mail information I have found
selectedMail = Office.context.mailbox.item;
How can I get now the data for all marked mails in Outlook. I expected to have something like
selectedMails = Office.context.mailbox.items;
// OR
selectedMails = Office.context.mailbox.selectedItems;
Does someone know how to retrieve the information which mails were selected to the TaskPane or maybe a CustomPane? Respectively if it is even possible?
Thanks a lot.
Unfortunately Office JS API built for handling a single item. Handling multiple items is not possible.
If this is a new feature you want to include in the future, you may submit a feedback.
https://officespdev.uservoice.com/
Best regards
Problem : I am not able to find a solution to add a custom form field in outlook new mail window. I am using NetOffice and so far I have implemented to use user accounts from outlook.
Required guidance as how to add a custom drop-down button with custom text right under the send mail button.
Thanks in advance.
Cheers!
Farhan
I believe that in net office you need to declare a variable to the MAPI folder relevant to the form you want to start altering, and then go through the folder's View collection. A good start that was done in VBA can be found here:
http://www.vbforums.com/showthread.php?492714-RESOLVED-Outlook-Programmatically-add-user-defined-field
This link detailed the making of a custom field, and then adding it to the appropriate folder view default form. You can easily adapt the VBA code in the above link to NetOffice, since it uses the same methods step-through, such as
dim _outlookapplication as Outlook.Application
dim olNamespace as Outlook._Namespace = _outlookapplication.GetNameSpace("MAPI")
dim olFolder as Outlook.Folder = olNamespace.GetDefaultFolder(olDefaultFolders.olFolderContacts)
dim olView as Outlook.View
Good luck!