Import in privates Telefonbuch

Gibt es eine Möglichkeit Kontakte in das private Telefonbuch zu importieren? Am besten auch automatisiert, wie es beim Firmenadressbuch möglich ist…
Grüsse
Jonas

Hallo Jonas,

das kann über ein Connector-Profil gelöst werden. Der Telefonbucheintrag (der Datenquelle) muss dazu den Benutzernamen enthalten, welcher nachher diesen Telefonbucheintrag im privaten Telefonbuch haben soll. Wenn der Import via CSV erfolgen soll, kann bei der CSV-Datei eine eigene Spalte z. B. “username” mit dem Benutzernamen hinzugefügt werden.
Im Connector-Profil muss unter Struktur dementsprechend zusätzlich die folgende Zeile hinzugefügt werden (innerhalb von “phonebook”):

"username" :   "{{{username}}}"  

Ebenso muss die Variable hinzugefügt werden. z. B. Variable “username” mit Quelle "return $row["username"];"

Besten Gruß
Sebastian

1 Like

Hallo Sebastian,

vielen Dank, funktioniert so perfekt. Ich hätte noch eine kleine Frage bezüglich des “displayname” Feldes bei den Variablen. Aktuell sieht die Quelle für “displayname” folgendermaßen bei uns aus:

return $row[‘givenname’] . " " . $row[‘surname’] . " - " . $row[‘organisation’] ;

Den Firmennamen setze ich mit einem “-” ab, damit dieser vom Vornamen/Nachnamen etwas abgerückt ist.
Allerdings sieht das etwas unschön aus wenn z.B. der Firmenname nicht vorhanden ist und der Bindestrich trotzdem hinten erscheint. Lässt sich das irgendwie lösen, damit dieser nur angezeigt wird wenn auch der Firmenname vorhanden ist?

Liebe Grüße
Jonas

Hallo @Illuvatar,

klar. Ist ja PHP-Code an dieser Stelle, der auch mehrzeilig sein darf.

$displayName =  $row["givenname"] . " " . $row["surname"];
if(!empty($row["organisation"])) {
    $displayName .= " - " . $row["organisation"];
}
return $displayName;

Falls du was probieren möchtest und lokal kein php hast, kannst du auch diesen Dienst verwenden…

Grüße,
Jan

2 Likes

Ich teste das gerade und stelle fest, dass bei Umlauten kein “displayname” erstellt wird. Wie kann man das fixen (ohne die Namen zu verschandeln)?

Viele Grüße
Thomas

ich krame den Beitrag nochmal aus. Ich möchte ebenfalls das Private Telefonbuch importieren.

Bei mir sieht die Struktur noch wie im Orginal aus:
{
“phonebook”: [{
“028pho_bez” : “{{{displayname}}}”,
“028pho_phone” : “{{{phone}}}”,
“028pho_firstname” : “{{{givenname}}}”,
“028pho_lastname” : “{{{surname}}}”,
“028pho_organisation” : “{{{organisation}}}”,
“028pho_email” : “{{{email}}}”,
“028pho_mobile” : “{{{mobile}}}”,
“028pho_homephone” : “{{{homephone}}}”,
“028pho_fax” : “{{{fax}}}”
}]
}

da steht als 028 davor. Was bedeutet das? Müsste ich dann:

"028username" :   "{{{username}}}"  

innerhalb von phonebook hinzufügen?

Dann muss ich also den Benutzername in jede Zeile (Datensatz) in einer neu hinzugefügten Spalte einfügen?
Dann kann ich diesen Prozess aber nicht automatisieren :frowning:

Hallo @pixel24,
da die Bezeichnung “username” hier nur zur Zuordnung dient und nicht Bestandteil des Telefonbucheintrags wird, reicht das wie folgt:

{
  "phonebook": [{
    "028pho_bez" : 			"{{{displayname}}}",
    "028pho_phone" : 		"{{{phone}}}",
    "028pho_firstname" : 	"{{{givenname}}}",
    "028pho_lastname" : 	"{{{surname}}}",
    "028pho_organisation" : "{{{organisation}}}",
    "028pho_email" : 		"{{{email}}}",
    "028pho_mobile" : 		"{{{mobile}}}",
    "028pho_homephone" : 	"{{{homephone}}}",
    "028pho_fax" : 			"{{{fax}}}",
    "username" :             "{{{username}}}"
  }]
} 

Der Benutzername kann auch leer sein und wird dann ins Firmentelefonbuch importiert. Wie bestimmst du denn, in welches private Telefonbuch der Kontakt kommen soll bzw. was verstehst du da unter “automatisieren”?

Besten Gruß
Sebastian

Ok, ich füge die Zeile hinzu. Ich habe aus der Groupware das gemeinsame Telefonbuch als CSV exportiert und als Firmentelefonbuch in Pascom eingelesen. Diesen Prozess kann ich ja automatisch 1 mal täglich laufen lassen.

Nun habe ich aus der Groupware mein persönliches Telefonbuch auch als CSV-File exportiert. Dies soll natürlich in Pascom in mein privates und nicht ins Firmen-Telefonbuch.

Ich verstehe gerade nicht wie das durch das einfügen dieser Zeile passieren soll. Woher soll er denn wissen für welchen User der Import ist?

Je nachdem wie praktikabel das bei dir ist, kannst du entweder die verschiedenen CSVs in eine große Datei zusammenführen (Es wird nur ein Connector-Profil benötigt, aber du brauchst wohl eine geskriptete Lösung zum Anpassen der CSV-Datei) oder pro CSV (also auch pro privatem Telefonbuch) ein extra Connector-Profil hinzufügen.

Eine große CSV-Datei:
In dem Fall musst du eine zusätzliche “username” Spalte in die CSV-Datei basteln, in der der Benutzername steht, in dessen privates Telefonbuch der Kontakt kommen soll. Ist nichts hinterlegt, kommt der Kontakt ins Firmentelefonbuch. Es muss wie oben beschrieben bei “Variablen” und “Struktur” auch dementsprechend ein “username” hinzugefügt werden.

Import über mehrere Connector-Profile:
Du brauchst nur die Struktur anpassen und so etwas wie "username" : "meinbenutzer" hinzufügen. Anpassungen an der CSV-Datei oder bei den Variablen werden nicht benötigt.

Besten Gruß
Sebastian

Ja, genau das brauche ich. Wir sprechen von zwei Benutzern also erstelle ich zwei Profile. Werde ich gleich testen.

So scheint es nicht richtig zu sein:

{
  "phonebook": [{
    "028pho_bez" : 			"{{{displayname}}}",
    "028pho_phone" : 		"{{{phone}}}",
    "028pho_firstname" : 	"{{{givenname}}}",
    "028pho_lastname" : 	"{{{surname}}}",
    "028pho_organisation" : "{{{organisation}}}",
    "028pho_email" : 		"{{{email}}}",
    "028pho_mobile" : 		"{{{mobile}}}",
    "028pho_homephone" : 	"{{{homephone}}}",
    "028pho_fax" : 			"{{{fax}}}"
    "username" :            "{{{s.gehr}}}"
  }]
}

Das produziert Fehler. Die Simulation sieht zunächst gut aus aber dann gibt es Syntaxfehler:

Syntaxfehler, JSON ist ungültig
2020-10-08 16:10:24	Could not import entry {
	"phonebook": [{
	"028pho_bez" : "Tina Bérubé",
	"028pho_phone" : "",
	"028pho_firstname" : "Tina",
	"028pho_lastname" : "Bérubé",
	"028pho_organisation" : "",
	"028pho_email" : "berubetina@hotmail.com",
	"028pho_mobile" : "+49 (176) 12345678",
	"028pho_homephone" : "",
	"028pho_fax" : ""
	"username" : ""
	}]
	} with {"displayname":"Tina\u00a0B\u00e9rub\u00e9","phone":"","givenname":"Tina","surname":"B\u00e9rub\u00e9","organisation":"","email":"berubetina@hotmail.com","mobile":"+49\u00a0(176)\u00a012345678","homephone":"","fax":""}

… Daten hab ich verändert

ok, so klappt es:

{
  "phonebook": [{
    "028pho_bez" : 			"{{{displayname}}}",
    "028pho_phone" : 		"{{{phone}}}",
    "028pho_firstname" : 	"{{{givenname}}}",
    "028pho_lastname" : 	"{{{surname}}}",
    "028pho_organisation" : "{{{organisation}}}",
    "028pho_email" : 		"{{{email}}}",
    "028pho_mobile" : 		"{{{mobile}}}",
    "028pho_homephone" : 	"{{{homephone}}}",
    "028pho_fax" : 			"{{{fax}}}",
    "username" :            "s.gehr"
  }]
}

Vielen Dank!!

Hallo @Sebastian_F,

dass wäre es doch wert mit in die Dokumentation aufgenommen zu werden?!
Ich habe diese Option schon länger gesucht und nur durch Zufall, durch die neuen Kommentare, nun einen einfachen Weg für den Import der Benutzerkontakte gefunden.

Gruß Reinhard

Ich schliesse mich dem Feature Request an, die Dokumentation (in allen Bereichen) wirklich vollständig zu machen wäre eine gute Sache :slight_smile: Besonders betroffen sind die Bereiche mit denen ich mich im Moment befasse: Connector, REST, Grafan - hier kann man oft nur raten und per try&error arbeiten. Zum Thema Scripting gibt es gar nichts.

Hallo @rinal13,
danke für den Hinweis. Ich habe dazu ein Ticket bei uns aufgenommen und wir werden das besprechen.

Besten Gruß
Sebastian