PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OSX-Adressbuch und iTunes/iPhone


saeco
20.10.2010, 08:43
Kann es sein, dass ich "Intelligene Gruppen" im OSX-eigenen Adressbuch nicht mit iTunes auf das iPhone bekommen kann?

Habe ja immer noch das Problem mit dem manuellen Syncen des Adressbuchs via WebDAV und da spiele ich gerade ein wenig rum. iTunes lässt anscheinend nur lokale Gruppen zur Synchronisation zu, da wollte ich mit den Intelligenten Gruppen ein wenig tricksen...

MfG
Matze

Colin
20.10.2010, 08:56
Leider ja, etwas das endlich mal kommen sollte....beim Fotoalbum klappt es ja auch.

saeco
20.10.2010, 09:45
Schade. Geht das irgendwie mit Scripts?

Mir würde reichen, wenn das Script den Inhalt der intelligenten Gruppe "test" in die lokale Gruppe "Lokal" kopiert, am liebsten synchronisiert.

Leider kann ich mit AppleScript nicht viel anfangen (nach Basic war Schluß).

MfG
Matze

Colin
20.10.2010, 10:35
Hier (http://hints.macworld.com/article.php?story=20091008150146513) gibt es zumindest etwas für den Anfang....Dort geht es darum nur Kontakte die eine Telefonnummer haben in eine Gruppe zu kopieren....vielleicht ein anderer Ansatz, anhand von was erkennst Du die Kontakte und in welche Gruppe müssen diese jeweils?

saeco
20.10.2010, 11:33
Hier (http://hints.macworld.com/article.php?story=20091008150146513) gibt es zumindest etwas für den Anfang....Dort geht es darum nur Kontakte die eine Telefonnummer haben in eine Gruppe zu kopieren....vielleicht ein anderer Ansatz, anhand von was erkennst Du die Kontakte und in welche Gruppe müssen diese jeweils?

Das Script probiere ich mal.

Grundsätzlich ist es bei uns so: Alle Daten (EMails, Adressen, Termine) liegen auf einem Windows 2003 Server in einer Groupware (SmarterMail). Unter Windows ist das alles gar kein Problem, auch nicht auf dem MBP.

Problem ist jetzt nur noch iTunes bzw. das iPhone, da ich in iTunes nur lokale Adressgruppen synchronisieren kann.

Nun kam mir die Idee, den WebDAV-Ordner im Adressbuch über eine intelligente Gruppe abzugleichen. Doch leider will das iTunes dann trotzdem nicht.

Einzige Hilfe scheint zu sein, den Inhalt der Intelligenten Gruppe in eine lokale Gruppe zu synchronisieren, die dann wiederum über iTunes auf das iPhone synchronisiert wird.

Natürlich könnte ich auch einfach den Inhalt der Intelligenten Gruppe (ist zu 100% mit der WebDAV-Gruppe identisch) auch manuell in einen lokalen Ordner kopieren und dann über iTunes mit dem iPhone synchronisieren, doch leider werden die Daten auf dem Server angelegt bzw. durch andere PCs dann mit dem Server synchronisiert. Ich müsste beim manuellen Kopieren immer nachsehen, welche Kontakte haben sich geändert oder sind neu hinzugekommen - das ist nicht durchführbar.

Das Script sollte den Inhalt der WebDAV-Gruppe (alternativ der identischen lokalen Intelligenten Gruppe) des Adressbuchs mit einer lokalen Gruppe synchronisieren können, damit ich wiederum damit über iTunes mein iPhone abgleichen kann.

Wie die Gruppen heissen ist mir egal, soweit werde ich wohl mit dem Script zurechtkommen, um die Gruppen entsprechend umzubenennen.

MfG
Matze

saeco
20.10.2010, 11:37
Hier (http://hints.macworld.com/article.php?story=20091008150146513) gibt es zumindest etwas für den Anfang....

Das Script funktioniert nicht.

MfG
Matze

Colin
20.10.2010, 11:52
Ich weiss was Du machen wilst, das hatte ich schon verstanden....ich kann es hier leider schlecht überprüfen, mal sehen ob ich nach der Keynote noch dazu komme....;)

saeco
22.10.2010, 09:41
Hallo Collin,

hattest du zwischenzeitlich etwas Zeit?

MfG
Matze

Colin
22.10.2010, 09:59
Gut erinnerst Du mich....;) Eben getestet und geht....

property thePhoneGroup : "normal"
property theNotPhoneGroup : "intelligent"

on createGroup(str)
tell application "Address Book"
try
get group str
on error
make new group with properties {name:str}
save
end try
end tell
end createGroup

tell application "Address Book"
delete group thePhoneGroup
my createGroup(thePhoneGroup)

set allContacts to every person of the group theNotPhoneGroup

repeat with p in allContacts

add p to group thePhoneGroup

end repeat
save
end tell

Habe es kurz ganz billig angepasst. Wird dieses Script ausgeführt kopiert es alle Kontakte in der intelligenten Liste "intelligent" in eine fixe Gruppe die "normal" heisst. Wenn das Script erneut ausgeführt wird löscht es die Gruppe normal und erstellt diese neu.

saeco
22.10.2010, 16:03
Hallo Colin,

erstmal Danke. Ich habe das Script nach AppleScript kopiert, im Adressbuch die Intelligente Gruppe nach "intelligent" umbenannt und eine neue lokale Gruppe "normal" erstellt.

Dein Script bricht mit dem Ergebnis "missing value" ab und die lokale Gruppe "normal" ist immer noch leer.

MfG
Matze

Colin
22.10.2010, 16:36
Ganz am Anfang kannst Du die Gruppen umbenennen....muss einfach korrekt sein, sprich Gross/Kleinschreibung usw.

Die Gruppe normal wird auch erstellt wenn noch nicht vorhanden.

Es muss min. 1 Kontakt in der intelligent Gruppe sein.

saeco
22.10.2010, 17:03
Testweise habe ich die Gruppen so benannt wie in deinem Script steht. Kopiert das Script alle Einträge, oder nur dort wo ein Namen drinsteht. Vielfach haben wir hier auch Einträge, wo anstatt Vorname/Name nur ein Firmenname steht.

MfG
Matze

saeco
22.10.2010, 17:08
Wenn ich die Farben richtig deute, bleibt er an der Zeile

make new group with properties {name:str}

bei der geschweiften Klammer mit "missing value" hängen.

MfG
Matze

Colin
22.10.2010, 17:16
Ohh sorry, die Gruppe normal muss doch da stehen weil ich die lösche....;)

Dann sollte es aber problemlos klappen. Ansonsten im Script Editor unter Events und Antworten anklicken und diesen Inhalt hierher kopieren.

saeco
22.10.2010, 17:21
Ohh sorry, die Gruppe normal muss doch da stehen weil ich die lösche....;)

Nur verständnishalber: in die geschweifte Klammer gehört "normal" rein?

MfG
Matze

Colin
22.10.2010, 17:34
Nöö, bei dem geposteten Script darfst Du nur die Werte auf den ersten zwei Zeilen welche sich in den "" befinden anpassen, alles andere muss absolut gleich bleiben!

saeco
22.10.2010, 17:38
Hier das Ergebnis unter Antworten:

---cut---
tell application "Address Book"
delete group "normal"
get group "normal"
--> error number -1728 from «class azf5» "normal"
make new group with properties {name:"normal"}
--> group id "258CEA10-BF44-4E34-9E14-6BDDBA491FA6:ABGroup"
save current application
--> missing value
get every person of group "intelligent"
--> {}
save current application
--> missing value
end tell
Ergebnis:
missing value
---cut---

MfG
Matze

Colin
22.10.2010, 17:44
Komisch, bei mir sieht es so aus...

tell application "Address Book"
delete group "normal"
get group "normal"
make new group with properties {name:"normal"}
save current application
get every person of group "intelligent"
add person id "7723F290-43C3-4572-9E41-D3309B5FB77A:ABPerson" to group "normal"
save current application
end tell

Kannst Du mal eine intelligente Liste mit dem intelligent anlegen in welcher Lokale Adressen vorhanden sind, vielleicht liegt hier der Hund begraben?!?

saeco
22.10.2010, 18:08
Ja, so funktioniert es.

Scheint wohl an der Definition der intelligenten Gruppe zu liegen, da läuft dann wohl was im Kreis.

Leider kann ich die WebDAV-Gruppe nicht geziehlt auswählen in den Bedingungen und hatte vorher "Alle Kontakte" ein- und dann die einzige lokale Gruppe ausgeschlossen. Die intelligente Gruppe funktionierte richtig, allerdings läuft dann dein Script im Kreis.

Dann werde ich wohl oder übel alles von Hand aus der WebDAV-Gruppe in eine lokale Gruppe kopieren müssen...

Oder hat jemand ein Script, dass das automatisch erledigt? Die WebDAV-Gruppe heisst "WebDAV", der komplette Inhalt soll in die lokale Gruppe "normal" rein.

MfG
Matze

Colin
22.10.2010, 19:35
Verstehe ich nicht so recht. wenn Du lokale Kontakte in eine intelligente Liste fügst mit einem beliebigen Parameter und das Script laufen lässt müsstest Du nachher genau diese Kontakte 1:1 in einer neuen festen Gruppe haben. Die Kontakte sind aber dann doch nicht doppelt. Was scheinbar so nicht funktioniert ist die "entfernten" Kontakte in lokale umzukopieren....ich habe leider keine WebDAV Kontakte und kann es daher nicht testen....

saeco
22.10.2010, 20:03
Das Problem ist wahrscheinlich folgendes: Ich habe eine lokale Gruppe, die ist leer. Innerhalb dieser lokalen Gruppe habe ich eine Untergruppe, da sind ein paar Kontakte drin. Zusätzlich (zu Alle Kontakte und der lokalen Gruppe) habe ich die WebDAV-Gruppe.

Wenn ich nun eine Intelligente Gruppe basteln will, so habe ich keine Chance, die WebDAV-Gruppe auszuwählen. Also habe ich die intelligente Gruppe so definiert, dass sie den Inhalt aus allen Kontakten nehmen soll abzüglich der paar Kontakte der lokalen Untergruppe. Somit ist die intelligente Gruppe wieder mit der WebDAV-Gruppe identisch, wenn auch ein wenig kompliziert, aber eben nicht anders machbar.

Dein Script kopiert nun die Kontakte aus der intelligenten Gruppe in die lokale Untergruppe "normal". Da aber die intelligente Gruppe ein Extrakt aus allen Kontakten minus der einen Untergruppe ist, läuft das Script wahrscheinlich im Kreis und weiß dann nicht mehr was es machen soll.

Momentan habe ich mal alle WebDAV-Kontakte manuell in die lokale Gruppe "normal" kopiert, anschließend kann endlich iTunes was damit anfangen und schiebt die brav auf das iPhone. Schön wäre es jetzt nur noch, wenn ich nicht jedes Mal die Kontakte in der normal-Untergruppe löschen, alle WebDAV-Kontakte markieren und manuell nach normal rüberkopieren müsste und das ein Script erledigen könnte.

Was natürlich in dieser Konstellation nicht geht ist, wenn ich auf dem iPhone einen Kontakt neu anlege, dieser würde dann zwar zurück auf den MBP in den normal-Ordner wandern, von dort aber leider nie zurück via WebDAV ins Netz. Aber damit kann ich leben.

Der riesen Vorteil für mich: Ich stecke das iPhone ins Dock und die Kontakte und Kalender werden "synchronisiert". Bisher musste ich immer WLAN einschalten und manuell den Kalender und das Adressbuch öffnen, damit das Teil synchronisiert und zudem auch noch ins Dock für die restlichen Sachen. So ist es jetzt bequemer, wobei das sicherlich noch eleganter geht.

MfG
Matze