Gelöst: Exchange EWS und PHP SOAP

jetzt brauch ich verstärkte Betreuung :confused:

Na, Hallo. Lies den Wert deiner Class mal. Da fehlt das php

Deine Class heisst class_ex_juerg.ips

Änder das im Script. Häng das php noch dran.

Tschuldigung. Hab ich übersehen.

nun kommt diese Meldung:

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\35828.ips.php on line 50

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\35828.ips.php on line 50

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\35828.ips.php on line 50

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\35828.ips.php on line 50

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\35828.ips.php on line 50

bei dieser Zeile:

$calendaritems = $result->ResponseMessages->FindItemResponseMessage->RootFolder->Items->CalendarItem;

Setze vor alle $calendaritems ein @

also

@$calendaritems

sollten so 5 oder 6 Stück sein

nun läuft’s durch, zeigt aber keine Termine an.

Hallo,

hat schon mal jemand über diese SOAP-Schnittstelle erfolgreich Kontakte ausgelesen / gesucht?

Ich würde da gerne so eine Art ISDN-Monitor bauen und steh da etwas auf dem Schlauch…

Gruß,
kpiep

kann mir denn niemand sagen, warum ich als Ausgabe nur „Null“ erhalte bei

Setze vor alle $calendaritems ein @

und Fehlermeldung bei „calendaritems“

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\35828.ips.php on line 50
. Für mich wäre dieses Script eine markante Erleichterung im Alltag.

Du hast wahrscheinlich auf IPS 2.5 geupdatet.
Damit läuft das EWS-Script bei mir nicht mehr.

Bin gerade dabei, es wieder zum laufen zu bringen.

Mein Stand ist:

in der include Class muss die __doRequest wie folgt ergänzt werden:

Alt:

function __doRequest($request, $location, $action, $version)

Neu:

function __doRequest($request, $location, $action, $version, $one_way = 0)

Desweiteren müssen die Objekte jetzt vor Benutzung definiert werden.

Ein

$CreateItem->SendMeetingInvitations = "SendToNone";

funktioniert jetzt scheinbar nicht mehr.
Es muss jetzt vorher das Objekt definiert werden:

$CreateItem = new stdClass();

…und zwar jedes Objekt.

Weiter bin ich noch nicht.

Auf den PHP.Org Seiten wird leider immer wieder von 5.4 als Beta geschrieben.
Was sie natürlich auch ist.
Aber die Anfragen zu Fehlermeldungen werden dann oft lapidar mit:" frag nochmal, wenn die 5.4 offiziell ist" abgetan.

Es wäre schön, wenn sich ein paar PHP-Cracks damit mal auseinandersetzen könnten.

Du hast wahrscheinlich auf IPS 2.5 geupdatet.

Bin immer noch auf der 2.4

Da hat es bei mir noch mit den o.a. Scripten funktioniert.

Kannst Du auf die xsd-Files deines Servers über Browser zugreifen?
Z.B.

https://DeinServerName/EWS/messages.xsd

Frage, weil Du in einem frühreren Post geschrieben hattes, das Du die xsd’s nur durch Suche auf deinem Server gefunden hast.
Sollte der Link nicht funktionieren, stimmt evtl. etwas mit deinem Exchange 2007/2010 System nicht.

weil Du in einem frühreren Post geschrieben hattes, das Du die xsd’s nur durch Suche auf deinem Server gefunden hast

das war noch mit dem alten Server (2003)

nun hab ich SBS2011/Exchange2010

Und Du hast alle 3 Dateien in deinem Skriptverzeichnis von IPS liegen?

Bei mir funktioniert es mit der 2.5 ohne irgendwelche Änderungen, bis natürlich auf den @ bei den 5 Zeilen.:confused:

ja, die sind alle dort. Hatte noch den virenscanner in Verdacht. Also, diesen deinstalliert, probiert, auch nichts.

erhalte nun die Anzeige wie in der Anlage.

folgende Fehlermeldungen hab ich noch:

Notice: Trying to get property of non-object in C:\IP-Symcon\scripts\35828.ips.php on line 58

 $jahr    = substr ( $item->Start, 0, 4 );

on line 62

 if(date('d.m.Y, H:i', $unix-(($item->ReminderMinutesBeforeStart)*60)) == date('d.m.Y, H:i', time())) {

on line 77

 $ausgabe[$x] = date ( 'd.m.Y, H:i', $unix) . " Uhr - " . utf8_decode($item->Subject);

Hat dies was mit Datumsformat oder so zu tun?
kann mir da einer der Profis weiterhelfen?

Habe einen Testtermin eingetragen am 30.11.99. Der wird jedoch nicht angezeigt.

Du hast entweder einen oder keinen Termin im Abfragezeitraum.

Da die foreach-Schleife ein Array abfrägt und die SOAP bei einem oder keinem Termin kein Array liefert kommt der Fehler.

Hatte ich auch erst die Tage.

Lege Dir mal 2 Termine im Abfragezeitraum an.

Eine Fehlermeldung bei „ReminderMinutesBeforeStart“ deutet darauf hin das der Termin keine Erinnerungszeit hat. Sollte aber eigentlich kein Problem darstellen.

hab dies schon vorher gemacht mit den Termineneinträgen. Jetzt noch mit Erinnerung. Das Resultat bleibt gleich.

Wenn Du mein Script benutzt dann schalte mal das $debug auf true. Somit solltest Du die Werte $s_start, $s_ende und den Inhalt des Array $calenderitems im Meldungsfenster des Skripteditors sehen.

Sollte darin etwas Terminähnliches stehen bist Du auf dem richtigen Weg, wenn nicht dann klappt die Anbindung an deinen Server immer noch nicht.

da mein Name wie im Exchange-Konto ausgelesen wird, gehe ich mal davon aus, das die Verbindung stimmt.

Könnte " [Culture] => de-DE" einen Einfluss haben?

stdClass Object
(
    [ItemId] => stdClass Object
        (
            [Id] => AAAbAGouYnVlcmtsaUBwb3Mtc3lzdGVtaGF1cy5jaABGAAAAAAAB2SE7xw4dQ6ZDsE4X/d8SBwB+ThmMd1K+R7rOV/KMV/hVAAAAPQG/AAB+ThmMd1K+R7rOV/KMV/hVAAAAU7hnAAA=
            [ChangeKey] => DwAAABYAAAB+ThmMd1K+R7rOV/KMV/hVAAAAU+MR
        )

    [ParentFolderId] => stdClass Object
        (
            [Id] => AQAbAGouYnVlcmtsaUBwb3Mtc3lzdGVtaGF1cy5jaAAuAAADAdkhO8cOHUOmQ7BOF/3fEgEAfk4ZjHdSvke6zlfyjFf4VQAAAT0BvwAAAA==
            [ChangeKey] => AQAAAA==
        )

    [ItemClass] => IPM.Appointment
    [Subject] => Tt
    [Sensitivity] => Normal
    [DateTimeReceived] => 2012-01-20T07:33:48Z
    [Size] => 1834
    [Importance] => Normal
    [IsSubmitted] => 
    [IsDraft] => 
    [IsFromMe] => 
    [IsResend] => 
    [IsUnmodified] => 
    [DateTimeSent] => 2012-01-20T07:33:48Z
    [DateTimeCreated] => 2012-01-20T07:33:48Z
    [ReminderDueBy] => 2012-01-23T07:30:00Z
    [ReminderIsSet] => 
    [ReminderMinutesBeforeStart] => 15
    [DisplayCc] => 
    [DisplayTo] => 
    [HasAttachments] => 
    [Culture] => de-DE
    [Start] => 2012-01-23T07:30:00Z
    [End] => 2012-01-23T07:45:00Z
    [IsAllDayEvent] => 
    [LegacyFreeBusyStatus] => Busy
    [IsMeeting] => 
    [IsCancelled] => 
    [IsRecurring] => 
    [MeetingRequestWasSent] => 
    [IsResponseRequested] => 1
    [CalendarItemType] => Single
    [MyResponseType] => Organizer
    [Organizer] => stdClass Object
        (
            [Mailbox] => stdClass Object
                (
                    [Name] => Juerg
                )

        )

    [Duration] => PT15M
    [TimeZone] => UTC
    [AppointmentSequenceNumber] => 0
    [AppointmentState] => 0
)

Notice:  Undefined property: stdClass::$Start in C:\IP-Symcon\scripts\35828.ips.php on line 53

Notice:  Undefined property: stdClass::$Start in C:\IP-Symcon\scripts\35828.ips.php on line 54

Notice:  Undefined property: stdClass::$Start in C:\IP-Symcon\scripts\35828.ips.php on line 55

Notice:  Undefined property: stdClass::$Start in C:\IP-Symcon\scripts\35828.ips.php on line 56

Notice:  Undefined property: stdClass::$Start in C:\IP-Symcon\scripts\35828.ips.php on line 57

Notice:  Undefined property: stdClass::$Start in C:\IP-Symcon\scripts\35828.ips.php on line 58

Notice:  Undefined property: stdClass::$ReminderMinutesBeforeStart in C:\IP-Symcon\scripts\35828.ips.php on line 62

Notice:  Undefined property: stdClass::$Subject in C:\IP-Symcon\scripts\35828.ips.php on line 68
30.11.1999, 01:00, 
Notice:  Undefined property: stdClass::$Location in C:\IP-Symcon\scripts\35828.ips.php on line 69
943920000-

Also doch nur 1 Termin :rolleyes:

Stell 2 Termine für heute ein und berichte.

Zeig mir noch die Variable $s_start und $s_ende damit wir ein Problem mit den Spracheinstellung auf deinem Exchange ausschliessen können.

Also doch nur 1 Termin

hab nur den Rest der Ausgabe abgeschnitten, weil er sich von da an wiederholt.

$s_start „2012-01-21T00:00:01Z“
$s_ende"2012-01-28T23:59:59Z"