1 votos

Diferente comportamiento de las categorías en la GUI y en AppleScript

Estoy viendo un comportamiento extraño de categorización en Outlook 2016 en El Capitán.

En la lista de categorías de la interfaz gráfica de usuario, hay una categoría llamada, digamos, "Categoría1", con el color rojo. Cuando uso la GUI, esa categoría se aplica correctamente.

Pero cuando uso AppleScript para aplicar la etiqueta "Categoría1", se aplica un color diferente, y no hay ninguna marca de verificación junto a "Categoría1" en la GUI. Es como si hubiera dos categorías con el mismo nombre, y AppleScript y la GUI estuvieran apuntando a otras 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

1voto

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"

Así es como obtuve los identificadores de categoría. Seleccioné un mensaje en Outlook que tenía sólo la categoría que quería y luego ejecuté este script manualmente desde el 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

A continuación, utilicé el identificador de categoría devuelto en el código siguiente para establecer los mensajes en esta categoría en el futuro (he improvisado esto a partir de muchas fuentes en línea a lo largo del tiempo, por lo que lamentablemente no es fácil para mí dar crédito a la gente adecuada):

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 añadir una categoría a los correos electrónicos seleccionados de Outlook con AppleScript.

Una gran mejora sería eliminar el primer paso manual de obtener el id de la categoría deseada, y en su lugar permitir establecer la categoría a través del nombre textual de la misma, recorriendo todas las categorías existentes en Outlook hasta encontrarla, y entonces aplicando que id a los correos electrónicos seleccionados. Estaría agradecido si alguien mejorara mi versión de esta manera y la compartiera.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X