Я думаю, что могут быть некоторые ошибки/особенности в реализации ПР словаря в отношении категорий - Я думаю, что ваш поиск заявление должен работу, но я согласен, что не.
Обходным путем для этого является поиск прожектора вместо этого. Это может быть даже предпочтительнее, потому что это, вероятно, быстрее, чем использование словаря OL. Короче говоря, заменить set theContacts to ...
строки со следующим:
set currentIdentityFolder to quoted form of POSIX path of (current identity folder as string)
set theContactIDs to words of (do shell script "mdfind -onlyin " & currentIdentityFolder & " 'kMDItemContentType == com.microsoft.outlook14.contact && com_microsoft_outlook_categories == " & id of theCategory & "' | xargs -I % mdls -name com_microsoft_outlook_recordID '%' | cut -d'=' -f2 | sort -u | paste -s -")
set theContacts to {}
repeat with thisContactID in theContactIDs
set end of theContacts to contact id thisContactID
end repeat
-- For example display the first name of the first contact
display dialog first name of (item 1 of theContacts) as string
Это сделает поиск фару (mdfind
команды) для контактов, которые требуют:
- Он будет смотреть только в текущей папке идентичности
- Он будет смотреть только для контактов
- Она возвращает только те контакты, которые отмечены с идентификатором категории «рекрутер»
Результат команды mdfind - это список файлов, соответствующих этому запросу. Таким образом, этот вывод передается по каналу на mdls
, в котором будут перечислены все поля, доступные для поиска, включая категорию. Простой список идентификаторов контактов должен быть возвращен в applescript.
Список идентификаторов контактов затем может быть преобразован в список контактов с простым циклом повтора.
+1 - Чтобы заставить ваш скрипт работать, мне пришлось использовать 'set theCategory для элемента 1 (каждая категория, имя =« Рекрутер »)' для получения объекта категории; есть ли ярлык? Связанный вопрос, запрос возвращает «Список» объектов 'ctxt'. Есть ли способ отбросить их на «контакт»? – craig
Чтобы ответить на первый вопрос, я думаю, что это неизбежно, поскольку его предложения всегда будут возвращать список. В этом случае мы гарантируем, что существует только одна категория, имя которой = «Рекрутер», поэтому нам просто нужно взглянуть на пункт 1 этого списка. Также возможно, что этот список пуст (если нет категории, имя которой = «Рекрутер»), поэтому надежный код также должен защищать обороты вокруг этой возможности. –
Чтобы ответить на второй вопрос, я отредактировал свой ответ. Список идентификаторов контактов можно просто перебрать, чтобы получить список контактов. –