[PHP] Exchange Webservice FindItem met Restrictions

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik ben al even zoet met het volgende:
In de FindItem functie kan je restricties leggen op het resultaat wat je terug wilt krijgen. Dit wil ik gebruiken om de contacts te halen die X dagen geleden gewijzigd zijn.

Het volgende is wat ik heb:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    // FindItem declaratie hierboven

    $fieldType = new PathToUnindexedFieldType();
    $fieldType->FieldURI = "item:LastModifiedTime";
    
    $constantValue = new ConstantValueType();
    $constantValue->Value = date("c", strtotime("-10 days"));
    
    $constantType = new FieldURIOrConstantType();
    $constantType->Constant = $constantValue;
    
    $greaterThanType = new IsGreaterThanType();
    $greaterThanType->FieldURIOrConstant = $constantType;
    $greaterThanType->Item = $fieldType; // property Item staat niet in de MS Reference...

    $findItem->Restriction = $greaterThanType;
    $result = $client->FindItem($findItem);


Zonder de restriction werkt de FindItem wel, met dus niet. Dan krijg ik de volgende melding:
The request failed schema validation: The element 'http://schemas.microsoft.com/exchange/services/2006/types:SearchExpression' is abstract or its type is abstract.

Als deze melding weg is weet ik niet of het direct werkt... mogelijk moet ik nog naar het FieldUri gedeelte kijken.

Heeft iemand toevallig ervaring hiermee in PHP? Ik zie het even niet meer. Heb diverse variaties geprobeerd en kan geen voorbeelden hiervan vinden in PHP.

Alvast bedankt!

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Als ik een voorbeeld erbij pak (http://blogs.msdn.com/vik...-restriction-getitem.aspx, gevonden door te googlen op "Exchange Webservice FindItem restriction") wordt er een restrictontype aan $findItem->Restriction toegekend en geen IsGreaterThanType. Werkt dat bij jou niet?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Creepy schreef op donderdag 12 maart 2009 @ 13:05:
Als ik een voorbeeld erbij pak (http://blogs.msdn.com/vik...-restriction-getitem.aspx, gevonden door te googlen op "Exchange Webservice FindItem restriction") wordt er een restrictontype aan $findItem->Restriction toegekend en geen IsGreaterThanType. Werkt dat bij jou niet?
Heb ik ook geprobeerd... Het volgende dus, ipv direct de IsGreaterThanType
PHP:
1
2
3
4
    $restriction = new RestrictionType();
    $restriction->Item = $greaterThanType;

    $findItem->Restriction = $restriction;
Zelfde foutmelding.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Zijn er nog meer zaken die je hebt geprobeerd toevallig? Dat scheelt ons weer info geven waar je niet zoveel aan hebt ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Creepy schreef op donderdag 12 maart 2009 @ 13:18:
Zijn er nog meer zaken die je hebt geprobeerd toevallig? Dat scheelt ons weer info geven waar je niet zoveel aan hebt ;)
Ja, heb het geprobeerd met iets ander stuk code: (ook ergens gevonden en omgezet naar PHP)
PHP:
1
2
3
4
5
6
7
8
9
10
    $pteft = new PathToUnindexedFieldType();
    $pteft->FieldURI = "item:LastModifiedTime";
    $fieldURIORConstant = new FieldURIOrConstantType();
    $fieldURIORConstant->Item = new ConstantValueType();
    $fieldURIORConstant->Item->Value = date("c", strtotime("-10 days"));
        
    $isEqualTo = new IsEqualToType();
    $isEqualTo->Item = $pteft;
    $isEqualTo->FieldURIOrConstant = $fieldURIORConstant;
    $restriction->Item = $isEqualTo;
Deze afgrijzelijke variabele namen zijn dus niet van mij :P
Daarnaast heb ik het geprobeerd om direct aan Restriction toe te kennen

Dus in de zin van dit:
PHP:
1
2
3
    $findItem->Restriction = ""; // ... has incomplete content. List of possible elements expected: 'SearchExpression'
    $findItem->Restriction->SearchExpression = ""; // ... :SearchExpression' is abstract or its type is abstract.
    $findItem->Restriction->IsGreaterThan = ""; // SOAP-ERROR: Encoding: object hasn't 'SearchExpression' property


Er is amper iets te vinden over dit probleem in PHP... Ga ik mooi op m'n site plaatsen als alles werkt :D

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Niemand? :(

Het is niet de bedoeling dat je je topic binnen 24 uur kickt. Lees dit even door topickick binnen 24 uur

[ Voor 89% gewijzigd door Woy op 13-03-2009 09:25 ]


Acties:
  • 0 Henk 'm!

Verwijderd

The request failed schema validation: The element 'http://schemas.microsoft.com/exchange/services/2006/types:SearchExpression' is abstract or its type is abstract.
Let dan vooral op "is abstract or its type is abstract".
Met andere woorden je probeert een abstract element te gebruiken, namelijk SearchExpression, hiervoor moet dus een eigen element worden geschreven die gebruik maakt van de SearchExpression abstractie.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm... heb het wel werkend in C# :)

Weet ik in elk geval hoe het wél moet daar... Ik denk dat er een fout zit in m'n types.php. Daarin staat gegenereerde code aan de hand van de XSD.

Ga ik daar lekker in snuffelen :D

Thanks voor het meedenken .
Pagina: 1