Comportamiento de categorías diferentes en GUI vs. AppleScript

1

Estoy viendo algunos comportamientos de categorización extraños en Outlook 2016 en El Capitán.

En la lista de categorías de la GUI, hay una categoría llamada, por ejemplo, "Categoría 1", con el color rojo. Cuando uso la GUI, esa categoría se aplica correctamente.

Pero cuando uso AppleScript para aplicar la etiqueta "Categoría 1", se aplica un color diferente, y no hay una marca de verificación junto a "Categoría1" en la GUI. Es como que hay dos categorías con el mismo nombre, y AppleScript y la GUI apuntan a diferentes.

¿Alguien más ha visto esto o tiene una solución?

Gracias.

Actualizado: Aquí hay un fragmento de código que muestra cómo estoy usando AppleScript. Además, tenga en cuenta que muchas de mis categorías se importan desde un archivo 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
    
pregunta jjkparker 28.08.2017 - 17:54

1 respuesta

1

Tuve exactamente el mismo problema. Pude resolverlo aplicando el ID de categoría exacto que quería, como:

set end of theList to category id 33

Más que como:

set end of theList to category "Category1"

Aquí es cómo obtuve los identificadores de categoría. Seleccioné un mensaje en Outlook que tenía solo la categoría que quería y luego ejecuté este script manualmente desde el Editor de secuencias de comandos:

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

Luego, utilicé la identificación de categoría devuelta en el código a continuación para configurar los mensajes a esta categoría en el futuro (lo hice de muchas fuentes en línea a lo largo del tiempo, así que desafortunadamente no es fácil para mí dar crédito a la gente correcta) :

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

Espero que esto ayude a alguien más que busque una solución para agregar una categoría a los correos electrónicos de Outlook seleccionados con AppleScript.

Una gran mejora sería eliminar el primer paso manual para obtener la identificación de la categoría deseada y, en cambio, permitir configurar la categoría a través del nombre textual de la categoría, repasando todas las categorías existentes en Outlook hasta que la encuentre, y luego aplicando la identificación que a los correos electrónicos seleccionados. Agradecería que alguien mejorara mi versión de esta manera y la compartiera.

    
respondido por el Stephen 19.01.2018 - 04:29

Lea otras preguntas en las etiquetas