Comportamento di categorie diverse nella GUI rispetto a AppleScript

1

Sto vedendo alcuni strani comportamenti di categorizzazione su Outlook 2016 su El Capitan.

Nell'elenco Categoria della GUI, c'è una categoria chiamata, diciamo, "Categoria1", con il colore rosso. Quando uso la GUI, quella categoria viene applicata correttamente.

Ma quando uso AppleScript per applicare l'etichetta "Categoria1", viene applicato un colore diverso e non c'è alcun segno di spunta accanto a "Categoria1" nella GUI. È come se ci fossero due categorie con lo stesso nome e AppleScript e la GUI ne indicano di differenti.

Qualcun altro ha visto questo o ha una correzione?

Grazie.

Aggiornato: qui c'è uno snippet di codice che mostra come sto usando AppleScript. Inoltre, tieni presente che molte delle mie categorie vengono importate da un file PST di 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
    
posta jjkparker 28.08.2017 - 17:54
fonte

1 risposta

1

Ho avuto lo stesso identico problema. Sono stato in grado di risolvere applicando l'ID esatto della categoria che volevo:

set end of theList to category id 33

Piuttosto che come:

set end of theList to category "Category1"

Ecco come ho ottenuto gli ID di categoria. Ho selezionato un messaggio in Outlook che aveva solo la categoria che volevo e poi ha eseguito questo script manualmente da Script Editor:

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

Poi ho usato l'id della categoria restituita nel codice qui sotto per impostare i messaggi in questa categoria in futuro (l'ho messo insieme da molte fonti online nel tempo, quindi purtroppo non è facile per me dare credito alla gente giusta) :

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

Spero che aiuti qualcun altro a cercare una soluzione per aggiungere una categoria alle e-mail Outlook selezionate con AppleScript.

Un grande miglioramento sarebbe la rimozione del primo passaggio manuale per ottenere l'id della categoria desiderata, e invece di consentire l'impostazione della categoria tramite il nome testuale della categoria, il looping di tutte le categorie esistenti in Outlook finché non lo trovi e quindi applicare quell'ID alle e-mail selezionate. Sarei grato se qualcuno migliorasse la mia versione in questo modo e la condividessi.

    
risposta data 19.01.2018 - 04:29
fonte

Leggi altre domande sui tag