php Address Import

  • OK. Hier mal ein kleines Script, welches man auf einem externen Host ausführen muss, das die Starface PBX kein PHP kann (ich aber dafür :)).


    Systemanforderungen (empfohlen):
    - PHP 5.2.* mit PG-Support
    - Betriebssystem ist egal, zur Not tut es auch ein XAMPP
    - offene Firewallports und freier Zugang zur Postgres DB auf der PBX


    zu letzterem würde ich gern ohessel zitieren wollen:


    GANZ WICHTIG:
    Momentan läuft das Script nur mit Excel-CSV-Dateien (Stichwort Codepage). Wir wandeln momentan noch keine Formate um. Somit könnte es Probleme mit Sonderzeichen und deutschen Umlauten geben!
    Wenn jemand das Script ausprobiert, dann bitte erst mit 2-3 Einträgen. Die lassen sich schneller wieder löschen. ;)


    Sollte die Resonanz darauf allzu groß werden, kann ich gern noch daran feilen...



    INSTALLATION
    Einfach angehängte Datei in einem Webordner ausführen und den Anweisungen folgen. In diesem Ordner sollte noch ein temporärer Ordner angelegt werden, in den der Webserver schreiben kann.


    Nach dem Start, eine CSV-Datei auswählen, den Separator einstellen (bei Excel ist es meistens ein Semikolon ";" und im zweiten Schritt noch die Felder zuordnen, die importiert werden sollen.

  • Hi rok°!,


    danke für das Script. Ich habe den Thread mal sticky gemacht, damit es nicht gleich untergeht.


    grüße


    Jochen

    Zitat

    Im Leben eines jeden Büromenschen gibt es drei einschneidende Ereignisse: Erstens einen Wechsel des Vorgesetzten, zweitens den Tod der Topfpflanze und drittens eine neue Telefonanlage.

  • Hi rok°!,


    danke für das PHP-Script, habe gerade über 5000 Adressdatensätze importiert :cool:


    Das einzige, was nicht auf Anhieb geklappt hat war die Verbindung über pgsql bzw. iptables hat mir da wohl einen strich durch die Rechnung gemacht. Ich könnte natürlich die Regel so eintragen wie oben erwähnt, aber für einen einmaligen import reicht auch einfach ein /etc/init.d/iptables stop/start


    Danke vielmals :)



    Mit freundlichen Grüßen


    Michael Huber
    Technik Baden Syscomp


    m.huber (at) baden-syscomp (dot) de


    +49 (0) 781 289935 43

  • Beim Importieren von Adressen sollte darauf geachtet werden, dass die Nummern im richtigen Format vorliegen, da diese sonst bei eingehenden Anrufen nicht aufgelöst werden können:
    z.B.
    0049 (721) 123456
    +49 (721) 123456
    0049 721 123456
    +49 721 123456
    0 721 123456


    Nicht erlaubt sind Zeichen wie / oder -
    Leerzeichen sind optional, es dürfen aber nicht 2 oder mehr aufeinander folgen.


    Falls falsche Adressen importiert wurden kann das (komplette!) Adressbuch mit folgendem SQL Statement gelöscht werden:


    Code
    delete from person where accountid = 0 and id != 0;

    Einmal editiert, zuletzt von Steffen ()

  • Hallo Rok,


    jetzt habe ich es schon bald... Aber nach einrichten eines Webservers und der korrekten Installation bekomme ich nach dem Druck auf "Senden" immer die Meldung oben in der Browser Adressleiste:
    http://192.168.0.174/%3C?=$_SERVER['PHP_SELF'];?%3E
    Und dann im Browser:
    Not Found
    The requested URL /< was not found on this server.


    Wenn ich das PHP Script bei den Statements (2 mal) von:
    <?=$_SERVER['PHP_SELF'];?>
    auf:
    <?php echo $_SERVER['PHP_SELF'];?>
    ändere, kommt zwar keine Fehlermeldung mer, aber dafür passiert folgendes, der Browser setzt sich zurück und lehrt das Auswahlfeld für die Datei und es ensteht eine Datei im temp Verzeichniss. Nur kann ich nichts einstellen und ich komme auch nicht weiter. Idee?


    Udo

  • Sieht so aus, als würde kein PHP ausgeführt werden.
    Leg mal eine Datei an und schreibe nur folgendes hinein und führe sie aus:

    PHP
    <?php phpinfo(); ?>


    Wenn jetzt einige Tabellen mit Inhalt kommen, läuft zumindest schon mal der PHP-Interpreter.

  • hallo,


    ja das funktioniert wunderbar, hier kommt eine endlose Litanei. Auch Postgres SQL ist als Addon mit dabei.
    Das habe ich gestern auf einem Netbook unter OS X installiert.


    "PHP Version 5.3.0


    http://www.entropy.ch Release 3


    Universal Binary i386/x86_64/ppc7400/ppc64 - this machine runs: i386



    System Darwin udos-e1210.local 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386
    Build Date Jul 13 2009 19:05:27"



    udo

    Einmal editiert, zuletzt von udo ()

  • Wenn ich das richtig verstanden habe, änderst du folgende Zeile:

    Code
    <form method="post" action="<?=$_SERVER['PHP_SELF'];?>">


    in diese:

    PHP
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">


    Richtig?


    Was steht dann im Quellcode der generierten HTML-Seite?
    Regulär müsste dann sowas drin stehen:

    HTML
    <form method="post" action="/starfaceimport.php">
  • Dann weiß ich nicht weiter. Fakt ist, dass wohl die REQUEST Variablen nicht ausgewertet werden. Wieso das so ist, kann ich aber nicht beantworten. Auf lokalen Systemen liegt der Fehler zu 90% an einer Softwarefirewall oder ähnlichem.

  • Hi Steffen,



    Falls falsche Adressen importiert wurden kann das (komplette!) Adressbuch mit folgendem SQL Statement gelöscht werden:


    Code
    delete from person where accountid = 0 and id != 0;


    ich mache das jetzt so, dass ich in das comment-Feld einen Hint schreibe. Ich lösche dann nur die Einträge, die auf den Hint passen. Das brauche ich, weil ich einen regelmäßigen Datenabgleich mit unserem CRM haben möchte.
    Hier die Query, die man sicher noch eleganter schreiben könnte...:


    SQL
    DELETE FROM person WHERE id IN(SELECT person.id FROM person LEFT JOIN persondata ON person.id = persondata.personid AND datadefaultid=15 WHERE person.accountid=0 AND persondata.value LIKE 'CRM-HINT:%');
  • Hatte ebenfalls das von Udo beschriebene Problem. Folgende Lösung hat dann zum Erfolg geführt:
    1) Wie oben bereits beschrieben müssen alle Stellen im Code "<?" mit "<?php" ersetzt werden
    2) Alle Stellen im Code die dann "<?php=" lauten müssen mit "<?php echo " ersetzt werden


    Danach funktioniert das Skript.

  • Vielen dank für das Script...


    Konnte dadurch unsere MSSQL-Datenbank mit dem Starface Telefonbuch Synchronisieren ;)


    werde es bei Gelegenheit aufarbeiten und hier posten.

  • Vielen dank für das Script...


    Konnte dadurch unsere MSSQL-Datenbank mit dem Starface Telefonbuch Synchronisieren ;)


    werde es bei Gelegenheit aufarbeiten und hier posten.


    Och?! Das olle Ding? Kein Aprilscherz?
    Wieder einen glücklich gemacht heute... :cool:

  • Och?! Das olle Ding? Kein Aprilscherz?
    Wieder einen glücklich gemacht heute... :cool:


    ne nich wirklich kein Aprilscherz... hätte ich das auch irgendwie anders machen können? API oder so?


    TAPI is keine Option, wenn du das meinst... und die LDAP Anbindung wäre in dem fall auch knaup


    is aber auch wurst.. funktioniert wunder bar :)

    Einmal editiert, zuletzt von roman007 ()

  • Aus MSSQL kannst du doch auch eine CSV Datei ziehen und die über die mittlerweile integrierte Importfunktion importieren.


    im ernst?


    Wenn ich mal nichts besseres mehr zu tun habe mache ich das :P


    bei uns im Unternehmen werden fast stündlich 10 Adressen neu angelegt... ^^ und dann gibts noch staendig updates von den 14000 eintraegen...

  • Hallo Roman


    Wenn du den Export in ein CSV (Spaltenreihenfolge Egal, solange Semicolongetrennt) Automatisieren könntest, könntest du den Import mithilfe unseres Adressbuch Import Moduls, welches derzeit in der Beta ist lösen.
    Dort gibt es eine Automatisierte Import Funktion für CSV's via SMB/FTP zugriff mit eigenem Template für die Spaltenzuweisung von deinem CSV zu den Feldern in der SF. (Starface Version 6.1 oder höher benötigt)


    Bei Interesse schreib mir doch kurz eine PN.


    MfG


    Fabian


  • Hallo Fabian,


    ich habe doch schon alles fertig, außerdem ist ein CSV export via SMB/FTP viel zu fehleranfällig... und meiner Ansicht nach auch keine saubere loesung.


    Mfg
    Roman

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!