Mit dvAPI und PHP auf David Kalender zugreifen

  • Hallo,


    ich möchte mit der dvAPI und PHP auf den David Kalender zugreifen.


    Ich habe im Forum schon Code gefunden um auf das Globale Adressbuch zuzugreifen:


    PHP
    $dvApi = new COM("DVOBJAPILib.DvISEApi") or die("Cannot create DVApi object");
    $Acc = $dvApi->Logon('','','','','','AUTH') or die("kein Logon");
    $Archive = $Acc->GlobalAddressbook();
    usw...



    Allerdings weis ich nicht, wie ich jetzt auf den Kalender zugreife. Ich müsste ja statt

    Code
    GlobalAddressbook()

    etwas anderes nehmen. Ich habe schon

    Code
    GlobalCalender()

    probiert, aber ohne Erfolg.


    Um herauszufinden welche Methoden die dvAPI besitzt, wollte ich folgenden Code benutzen:

    PHP
    $class_methods = get_class_methods(new COM("DVOBJAPILib.DvISEApi"));
    foreach ($class_methods as $method_name) { 
       echo $method_name."<br>";
    }



    Dieser Code erzeugt aber keine Ausgabe.


    Hat jemand eine Liste mit allen PHP-Befehlen für die dvAPI - oder besser noch, ein Codebeispiel für den Zugriff auf den Kalender?


    Vielen Dank! :)
    Maximilian

  • Hallo Zusammen,


    in der DvAPI Doku sind alle Methoden beschrieben.


    Hier ein Kalenderbeispiel daraus für C#:



    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Hallo Jens,


    vielen Dank für deine Antwort und sorry für meine verzögerte Antwort, aber ich war im Urlaub!


    Habe versucht deinen Code in PHP zu übertragen, jetzt sieht mein Code so aus, er funktioniert aber nicht. Warum?


  • Hallo Maximillian


    an welcher Stelle steigt Dein Code denn aus?
    Ich denke da sind einige Fehler drin. Was genau soll z.B. "new COM("oMessageItems")" bewirken?
    Dann hast Du mehrfach den Punkt für den Memberzugriff verwendet, bei PHP ist das aber immer "->".
    Teilweise fehlt auch das $-Zeichen für die Variablen.


    Hier mal ein angepasster Code, ist aber ungetestet.



    Wie gesagt, ich habe das nicht getestet, nur mal so runter geschrieben, debuggen musst Du selbst. ;)
    Bei der Geschichte mit dem Type bin ich mir auch nicht sicher ob das klappt, im Zweifelsfall einfach mal die Zeilen 6 und 7 (und die schließende Klammer) weg lassen.


    Debuggen kannst Du ganz simpel durch echo Ausgaben. Dann siehst Du bis wohin es läuft und wann es aussteigt.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Hallo Jens, vielen Dank für deine Hilfe!


    Ich habe das Skript mal getestet. Es läuft auf einen Fehler, aber wenn ich, wie du schon beschrieben hast, Zeile 6+7 entferne funktioniert es -> Es zeigt einen weißen Bildschirm ohne Ausgabe.


    Was bedeutet Zeile 3, bzw. wie muss ich Sie anpassen, um auf meinen Kalender zuzugreifen

    PHP
    $oArchive = $Acc->GetSpecialArchive("107");


    Es würde hier ja nur eine Ausgabe stattfinden, wenn heute Pfingstmontag wäre?
    Wie müsste ich den Code anpassen, sodass einfach alle Einträge ausgegeben werden?
    Könntest du bitte noch ein Paar Kommentare einbauen, sodass ich auch verstehe, was jede Zeile macht?


    Vielen Dank und Gruß :thumbup:
    Max

  • Hallo Max


    hast Du die Doku nicht vorliegen? Da findest Du eigentlich alles beschrieben.


    107 ist der Integer Wert für DvPersonalCalendar, ist also schon der persönliche Kalender.
    Alternativ kannst Du mit GetArchiveFromID("\\unc\pfad") arbeiten.


    Mit "AllItems" werden ja schon alle Einträge geholt und dann mit der foreach durchlaufen.
    Die Einschränkung kommt erst durch die If Abfrage.


    Der Code an sich ist doch simpel, bis auf die paar API spezifischen Dinge.


    Eine Ausgabe passiert da sowieso nicht, da wird lediglich ein Label (müsste im Client die Markierung sein) neu gesetzt und dann gespeichert. Das aber nur beim Termin mit dem Titel / Betreff Pfingstmontag.
    Vorher wird einmal lesend auf den Bodytext zugegriffen...das ist ne "Eigenheit" der DvAPI - ohne das klappt es nicht.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

Jetzt mitmachen!

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