Unterschiedliches Kategorieverhalten in GUI vs. AppleScript

Ich sehe ein seltsames Kategorisierungsverhalten in Outlook 2016 auf El Capitan.

In der Kategorieliste der GUI gibt es eine Kategorie namens "Kategorie1" mit der Farbe Rot. Wenn ich die GUI verwende, wird diese Kategorie korrekt angewendet.

Aber wenn ich AppleScript verwende, um die Bezeichnung „Kategorie1“ anzuwenden, wird eine andere Farbe angewendet, und es gibt kein Häkchen neben „Kategorie1“ in der GUI. Es ist, als gäbe es zwei Kategorien mit demselben Namen, und AppleScript und die GUI zeigen auf unterschiedliche Kategorien.

Hat das noch jemand gesehen, oder hat eine Lösung?

Danke.

Aktualisiert: Hier ist ein Codeausschnitt, der zeigt, wie ich AppleScript verwende. Beachten Sie auch, dass viele meiner Kategorien aus einer Windows-PST-Datei importiert werden.

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
Ich habe dies in den Skripteditor abgelegt, kompiliert, eine Nachricht in Outlook v15 (Office 365) ausgewählt und es funktioniert. Es schaltet die Kategorie "Category1" (die ich hinzugefügt habe) für jeden Lauf ein und aus. Die Farbe ist korrekt und es zeigt ein Häkchen bei Category1 in der GUI. Ich verwende Outlook nur zum Testen, daher habe ich sehr einfache Kategorien. Ich vermute, Sie haben mehr als eine "Kategorie1" -Kategorie, aber das ist schwer zu sagen, da ich Ihren Fehler nicht duplizieren kann.

Antworten (1)

Ich hatte genau das gleiche Problem. Ich konnte es lösen, indem ich die genaue Kategorie-ID anwendete, die ich wollte:

set end of theList to category id 33

Anstatt zu mögen:

set end of theList to category "Category1"

So habe ich die Kategorie-IDs erhalten. Ich habe in Outlook eine Nachricht ausgewählt, die nur die gewünschte Kategorie hatte, und dann dieses Skript manuell im Skript-Editor ausgeführt:

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

Ich habe dann die zurückgegebene Kategorie-ID im folgenden Code verwendet, um Nachrichten in Zukunft dieser Kategorie zuzuweisen (ich habe dies im Laufe der Zeit aus vielen Quellen online zusammengeschustert, daher ist es für mich leider nicht einfach, den richtigen Leuten Anerkennung zu zollen):

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

Ich hoffe, das hilft jemand anderem, der nach einer Lösung zum Hinzufügen einer Kategorie zu ausgewählten Outlook-E-Mails mit AppleScript sucht.

Eine große Verbesserung wäre, den ersten manuellen Schritt zum Abrufen der gewünschten Kategorie-ID zu entfernen und stattdessen das Festlegen der Kategorie über den Textnamen der Kategorie zuzulassen, alle vorhandenen Kategorien in Outlook zu durchlaufen, bis Sie sie finden, und diese ID dann auf die ausgewählte anzuwenden E-Mails. Ich wäre dankbar, wenn jemand meine Version auf diese Weise verbessern und teilen würde.

Cool, danke! Ich stelle gerade alle meine Skripte um.