1 votes

Comportement différent des catégories dans l'interface graphique et dans AppleScript

Je constate un comportement bizarre en matière de catégorisation dans Outlook 2016 sous El Capitan.

Dans la liste des catégories de l'interface graphique, il y a une catégorie appelée, disons, "Catégorie 1", avec la couleur rouge. Lorsque j'utilise l'interface graphique, cette catégorie est appliquée correctement.

Mais lorsque j'utilise AppleScript pour appliquer l'étiquette "Category1", une couleur différente est appliquée, et il n'y a pas de coche à côté de "Category1" dans l'interface graphique. C'est comme s'il y avait deux catégories avec le même nom, mais qu'AppleScript et l'interface graphique pointaient vers des catégories différentes.

Quelqu'un d'autre a-t-il vu cela, ou a-t-il une solution ?

Merci.

Mise à jour : Voici un extrait de code montrant comment j'utilise AppleScript. Notez également que beaucoup de mes catégories sont importées d'un fichier PST de Windows.

tell application "Microsoft Outlook"

-- get the currently selected message or messages
    set selectedMessages to current messages

    -- if there are no messages selected, warn the user and then quit
    if selectedMessages is {} then
        display dialog "Please select a message first and then run this script." with icon 1
        return
    end if

    repeat with theMessage in selectedMessages
        set categoryList to get categories of theMessage
        set cleanCategoryList to {}
        set wasCategoryRemoved to 0
        repeat with theCategory in categoryList
            if name of theCategory is "Category1" then
                set wasCategoryRemoved to 1
            else
                set end of cleanCategoryList to theCategory
            end if
        end repeat
        if wasCategoryRemoved is 0 then
            set end of cleanCategoryList to category "Category1"
        end if
        set categories of theMessage to cleanCategoryList
    end repeat

end tell

1voto

Stephen Points 26

J'ai eu exactement le même problème. J'ai pu le résoudre en appliquant l'identifiant exact de la catégorie que je voulais :

set end of theList to category id 33

Plutôt que comme :

set end of theList to category "Category1"

Voici comment j'ai obtenu les identifiants des catégories. J'ai sélectionné un message dans Outlook qui avait uniquement la catégorie que je voulais, puis j'ai exécuté ce script manuellement à partir de l'éditeur script :

tell application "Microsoft Outlook"

    set msgSet to current messages
    if msgSet = {} then
        error "No messages selected. Select at least one message."
        error -128
    end if

    repeat with aMessage in msgSet
        set theList to categories of aMessage
        return theList
    end repeat

end tell

J'ai ensuite utilisé l'identifiant de catégorie renvoyé dans le code ci-dessous pour définir les messages de cette catégorie à l'avenir (j'ai bricolé cela à partir de nombreuses sources en ligne au fil du temps, il n'est donc malheureusement pas facile pour moi de donner du crédit aux bonnes personnes) :

tell application "Microsoft Outlook"

    -- Workaround for Outlook 2016 Reminders window bug, part 1
    set windowClosed to false
    if "Reminder" is in (name of the front window) then
        set windowClosed to true
        close front window
    end if

    set msgSet to current messages
    if msgSet = {} then
        error "No messages selected. Select at least one message."
        error -128
    end if

    repeat with aMessage in msgSet          
        set theList to categories of aMessage
        set end of theList to category id 33 -- CHANGE THIS TO THE CATEGORY ID RETURNED IN THE PREVIOUS SCRIPT
        set categories of aMessage to theList
    end repeat

    -- Workaround for Outlook 2016 Reminders window bug, part 2
    if windowClosed is true then
        tell application "System Events" to keystroke "9" using command down
    end if

end tell

J'espère que cela aidera quelqu'un d'autre qui cherche une solution pour ajouter une catégorie à des e-mails Outlook sélectionnés avec AppleScript.

Une grande amélioration serait de supprimer la première étape manuelle consistant à obtenir l'identifiant de la catégorie souhaitée, et de permettre à la place de définir la catégorie via le nom textuel de la catégorie, en parcourant en boucle toutes les catégories existantes dans Outlook jusqu'à ce que vous la trouviez, et puis en appliquant que id aux courriels sélectionnés. Je serais reconnaissant si quelqu'un améliorait ma version de cette façon et la partageait.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X