0 votos

AppleScript - Actualizar la aplicación Contactos por referencia a su ID

He estado usando AppleScript para crear nuevas personas en la aplicación Agenda/Contactos en mi Mac con MacOS Monterey 12.6. He estado almacenando sus IDs (por ejemplo. 778C4D8D-0A22-4918-A5B6-73361FFF8779 ) y ahora necesito crear una versión del AppleScript que realice una actualización del registro de la aplicación Contactos utilizando su ID de la aplicación Contactos como identificador de la persona a actualizar.

Este es mi AppleScript para crear una nueva persona:

tell application "Contacts"

set thePerson to make new person with properties ¬
    {first name:"Dee", last name:"Velhopa", organization:"Paws On Error"} ¬

make new email at end of emails of thePerson with properties ¬
    {label:"Work", value:"dee@pawson.error"}
make new phone at end of phones of thePerson with properties ¬
    {label:"Work", value:"+44 0161 715 7028"}
make new url at end of urls of thePerson with properties ¬
    {label:"Work", value:"http://www.pauseonerror.com/"}
make new address at end of addresses of thePerson with properties ¬
    {label:"Work", street:"MellowBank", city:"Bored End", state:"Bucks", zip:"SL8 5AJ", country:"U.K."} ¬

save

fin del relato

No he sido capaz de averiguar cómo modificar esto para que si tengo su ID simplemente hacer una actualización con los mismos datos, pero no crear una nueva persona.

0voto

Adrian Sarli Puntos 867

Conseguí encontrar una solución a base de ensayo y error. Aquí está la sintaxis que funcionó para mí:

tell application "Contacts"

    set thePerson to first person whose id = "C5FF98CE-4B8A-4437-AA38-630BA60AA3A4:ABPerson"

    set first name of thePerson to "Joe"
    set last name of thePerson to "Citizen"

    try
        set (label of first email) of thePerson to "Home"
        set (value of first email) of thePerson to "Joe@shmoe.com"
    on error
        tell thePerson
            make new email at end of emails with properties {label:"Home", value:"Joe@shmoe.com"}
        end tell
    end try

    try
        set (label of first phone) of thePerson to "Mobile"
        set (value of first phone) of thePerson to "(415) 123-2121"
    on error
        tell thePerson
            make new phone at end of phones with properties {label:"Mobile", value:"(415) 123-3174"}
        end tell
    end try

    try
        set (street of first address) of thePerson to "123 New Street"
        set (city of first address) of thePerson to "San Francisco"
        set (state of first address) of thePerson to "CA"
        set (zip of first address) of thePerson to "94111"
    on error
        tell thePerson
            make new address at end of addresses with properties {label:"Home", street:"321 California St.", city:"San Francisco", state:"CA", zip:"94111"}
        end tell
    end try

    save

end tell

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