6

tl; drSet CustomProperties auf Termin für alle Teilnehmer

Wenn CustomProperties zu einem Termin Einstellung, die Teilnehmer hat nur den Termin für die Veranstalter der CustomProperties bekommt. Die Eigenschaften werden nicht an die Termine der anderen Teilnehmer weitergegeben.


Längere Version

Wenn wir einen Termin mit mehreren Teilnehmern erstellen und dann als jeden Teilnehmer anmelden, bemerken wir, dass jeder ItemId unterscheidet. So scheint es, dass jeder Teilnehmer in einer Besprechung seine eigene Kopie eines Termins erhält. (Würde wirklich gerne jemanden bestätigen, das ist wahr).

Wenn Sie jedoch eine benutzerdefinierte Eigenschaft aus unserem Add-In (mithilfe der Outlook-JavaScript-API) festlegen, ruft nur der Termin des Organisators die benutzerdefinierte Eigenschaft ab, da wir die benutzerdefinierte Eigenschaft nicht sehen können, wenn wir uns als eine der anderen anmelden Teilnehmer.

Snippets aus unserem Code, der relevant ist:

Office.initialize = function (reason) { 
    $(document).ready(function() { 
     Office.context.mailbox.item.loadCustomPropertiesAsync (onCustomPropertiesLoaded); 
    }); 
}; 

function onCustomPropertiesLoaded(asyncResults) { 
    _customProps = asyncResults.value; 
} 

//Set custom properties 
_customProps.set("myProp", "true"); 
_customProps.saveAsync(customPropertiesOnSaved); 

Gibt es eine Möglichkeit jede Kopie des Termins hat die benutzerdefinierte Eigenschaft hat?

Antwort

3

Wenn wir einen Termin und haben mehrere Teilnehmer erstellen und dann als jeden Teilnehmer anmelden, bemerken wir, dass jeder ItemId unterscheidet. So scheint es, dass jeder Teilnehmer in einer Besprechung seine eigene Kopie eines Termins erhält. (Würde wirklich gerne jemanden bestätigen, dass das wahr ist).

Ja, das ist richtig ein Teilnehmer des Termins kopieren ist ein separater neuer Artikel in dieser Mailbox. Auf dem Backend-Exchange-Server befindet sich ein separates Postfachspeicherelement, das in keiner Weise verknüpft ist (außer Eigenschaften, die zur Korrelation verwendet werden können), und der Server aktualisiert keine Termine in Teilnehmerpostfächern, sodass sie immer von einem Client aktualisiert werden müssen Prozess (im Fall von Room-Mailbox tut der Mailbox-Assistent dies, aber dies ist immer noch ein Client-Prozess, der auf dem Server läuft).

Wenn jedoch eine benutzerdefinierte Eigenschaft unserer Add-In-Einstellung nur die Ernennung des Veranstalters wird die benutzerdefinierte Eigenschaft, da wir nicht in der Lage sind, die benutzerdefinierte Eigenschaft, um zu sehen, wenn wir als einen der anderen Teilnehmer anmelden.

, die höchstwahrscheinlich, weil Sie zuerst auf dem Termin die benutzerdefinierte Eigenschaft benötigen geschieht speichern, bevor Sie Teilnehmer hinzufügen und Besprechungseinladungen senden. Es ist wichtig, zuerst den Termin mit der Eigenschaft (oder den Anlagen) zu speichern, bevor Sie Teilnehmer hinzufügen. Wenn der Server die Einladungen erstellt, sollten diese Einladungen die benutzerdefinierte Eigenschaft enthalten (Sie können überprüfen, ob dies geschieht, indem Sie einen Mapi-Editor verwenden und die Einladung ansehen) wird im Ordner "Gesendete Objekte" des Organizers erstellt). Es ist wichtig daran zu erinnern, da die Termine nicht auf dem Server verknüpft sind. Die Aktualisierung der Eigenschaft auf dem Organisator wird nicht in der Teilnehmerkopie berücksichtigt, es sei denn, Sie senden ein Besprechungsupdate und das Besprechungsupdate wird von den Teilnehmern akzeptiert Kalender.

+0

Wir arbeiten im Kontext eines Add-Ins, sodass wir nicht kontrollieren können, wann Teilnehmer der Einladung hinzugefügt werden.Wenn der Benutzer auf eine Schaltfläche in unserem Add-In klickt, legen wir die benutzerdefinierte Eigenschaft 'customProps.set (" myCustomProp ", true) fest;' und speichern dann die Eigenschaft für den Termin 'customProps.saveAsync (callback)'. Ich bin mir nicht sicher, auf was wir sonst Zugriff haben würden, um die benutzerdefinierten Eigenschaften in jede Einladung einzutragen. –

+0

Ja, aber Sie müssen verstehen, dass das, was Sie tun, immer nur den Store-Artikel des Benutzers aktualisieren wird, auf den Sie zugreifen. Möglicherweise müssen Sie Ihr Design überdenken, z. B. welche Informationen fügen Sie der benutzerdefinierten Eigenschaft hinzu? und wie nutzen Sie das bei den Teilnehmern? . Eine Alternative zu einer benutzerdefinierten Eigenschaft ist, wenn Sie die UniquieId für die Besprechung abrufen, die für alle Instanzen freigegeben ist, einen externen Restdienst erstellen, der die gewünschten Informationen speichert, und dann Ihren Addin den externen Dienst mit der uniqueId als Schlüssel usw. abfragt. –