2017-04-17 3 views
0

Donc, dans mon Outlook Add-In (Office.js), je définis certaines propriétés personnalisées à un événement de calendrier, en utilisant le code suivant:Office.js: Outlook pour Mac Add-In - propriétés personnalisées non enregistrées pour l'objet existant

 const item = Office.context.mailbox.item; 
     item.loadCustomPropertiesAsync((result) => { 
      const props = result.value; 
      props.set("my_prop", "some value"); 
      props.saveAsync((saveResult) => { 
       console.log("SAVE_CUSTOM_PROP", saveResult); 
      }); 
     }); 

et cela fonctionne très bien, sur un événement nouveau, après que je l'enregistrer et l'ouvrir à nouveau, je peux accéder à la valeur de propriété personnalisée en utilisant le code suivant:

 const item = Office.context.mailbox.item; 
     item.loadCustomPropertiesAsync((result) => { 
      const props = result.value; 
      const my_data = props.get("my_prop"); 
      console.log(my_data); 
     }); 

Cependant quand j'ouvre un événement existant , avec ou sans propriétés personnalisées étant définies, les propriétés personnalisées que je définis ne sont pas enregistrées après que l'utilisateur enregistre l'événement. Si j'ouvre à nouveau l'événement, il n'a pas les nouvelles propriétés personnalisées, il en a aucune (si aucune n'a été définie) ou les anciennes valeurs qui ont été définies lors de la création de l'événement (pas encore enregistré).

Cela fonctionne comme prévu dans Outlook pour PC et OWA.

Outlook pour Mac Bogue de prise en charge de complément? Je fais quelque chose de mal?

+0

Que voyez-vous dans le journal de la console lorsque saveAsync() sur un événement existant? Avez-vous OutlookSpy pour Outlook sur Windows? Si oui, pouvez-vous vérifier l'événement de calendrier a changé votre propriété personnalisée? –

+0

C'est Outlook ** pour Mac ** alors 'saveAsync' n'est pas supporté par un événement et pas OutlookSpy. Sous Windows, cela fonctionne comme prévu. Quand j'obtiens la propriété personnalisée après l'avoir définie, elle est là. Mais quand je sauve l'événement, et l'ouvre à nouveau, mon changement est parti. –

+0

CustomProperties.SaveAsync() disponible pour l'API de niveau 1.0 et vous dites qu'il n'est pas pris en charge sur le type d'événement des messages? Vous avez dit que vous êtes en mesure de les définir/enregistrer pour un nouvel événement, êtes-vous? Quand j'ai dit utiliser OutlookSpy, je mentionne pour Windows Desktop Outlook, en effet. Utilisez-le pour le même événement et vérifiez si votre propriété a été modifiée lorsque vous enregistrez l'événement sur Mac. –

Répondre

0

Enfin le problème résolu, aujourd'hui Outlook pour Mac 15.34 est sorti, et il résout ce problème.

Donc c'était un bug sur Outlook pour le support de Mac office.js.

1

En fait, je crois que j'ai une solution pour vous: Lorsque vous définissez vos propriétés personnalisées et les enregistrez, en même temps, obtenir un champ de message visible, par exemple "sujet"; modifiez-le avec l'API, par exemple, définissez-le sur le même sujet + espace blanc. Après enregistrer l'événement lui-même comme le ferait l'utilisateur. A ce moment, le message aura le statut "sale" et sera effectivement enregistré, avec vos propriétés personnalisées, j'espère. Faites-moi savoir si ce travail fonctionne.

+0

Approche intéressante, espérait que cela fonctionnera, mais malheureusement, mon complément modifie le champ de description après chaque sauvegarde d'une propriété personnalisée, en outre, j'ai essayé de modifier le sujet à la main, puis enregistrez - toujours rien. Les champs de description et de sujet modifiés sont enregistrés, mais la propriété personnalisée a toujours la même propriété :(Merci néanmoins d'avoir essayé de trouver une solution :) –

+0

Eh bien, laissez-moi réfléchir, je pourrais vous poser quelques questions plus tard. Pour le moment, dites-moi quand vous enregistrez un événement avec un sujet modifié et regardez ceci même dans OWA, voyez-vous le même changé? Je veux dire que le message était synchronisé avec Exchange? Malheureusement, je n'ai pas le mac pour essayer moi-même. –

+0

Oui, exactement, j'écris des données personnalisées dans ces propriétés, mais je les mets aussi dans la description de manière formatée. Lorsque je sauvegarde l'événement n'importe où (Outlook PC, OWA), tout est sauvegardé. Mais quand je l'enregistre sur Outlook pour Mac, la description est enregistrée, mais les propriétés personnalisées ne le sont pas. –

0

J'ai utilisé la dernière version de Mac Outlook et j'ai pu enregistrer la propriété personnalisée pour un rendez-vous que vous ne possédez pas (envoyé par quelqu'un d'autre) mais impossible de définir la propriété personnalisée si vous modifiez le rendez-vous que vous possédez. propriétaire de la réunion) - Voyez-vous le même comportement?

+0

Rendez-vous envoyé par quelqu'un d'autre est sur un formulaire en lecture seule, mon complément n'a pas de panneau pour un tel formulaire, seulement pour composer formulaire qui est utilisé pour modifier un rendez-vous que je possède. Donc pour la partie du rendez-vous possédé c'est le même comportement, à moins qu'il s'agisse d'un rendez-vous nouvellement créé - c'est comme si la fonction "créer" sauvegardait les propriétés personnalisées, mais pas "sauver existant". Dunno sur les rendez-vous que je ne possède pas cependant. –