[gelöst]retrieve Syntax

11. November 2010 16:28

Hallo zusammen!

Ich habe folgendes Problem: Ich versuche über einen retrieveMultiple-Aufruf bestimmte Daten abzurufen. Diese sollen gefilltert sein zum einen nach einer UserID und zum anderen nach Datum. Problem dabei ist, dass die Daten, die im Datumsfeld drin stehen, auch Uhrzeitinformationen beinhalten. Daher kann ich, wenn ich überprüfen möchte, ob der Datensatz an einem bestimmten Tag erstellt wurde, nicht mit dem "Equal"-Operator arbeiten. Ich brauche also eine Möglichkeit zu überprüfen, ob der Wert in einem bestimmten Zeitfenster liegt.
Beispiel: Im Datumsfeld steht der 11.11.2010 - 12:15 Uhr. Die XML-Query würde dann folgendes zurückgeben: "2010-11-11T12:15:00"
Ich kann also nicht abfragen, ob dieser Wert gleich (Operator "Equal") "2010-11-11" ist. Der "Like"-Operator hilft mir leider auch nicht weiter, da ich in DateTime-Feldern anscheinend keine Wildcard setzen kann.
Ich brauche also wohl eine Abfrage in der Art: [Wert] ist größer/gleich "2010-11-11T00:00:00" und kleiner/gleich "2010-11-11T23:59:59".
Leider weiß ich nicht, wie hierfür die passenden Operatoren heißen und habe auch beim googlen nichts gefunden. Im folgenden findet ihr den betroffenen Ausschnitt aus meinem Skript. Ich habe dort momentan die Operatoren "After" und "Before" eingetragen, die es aber nicht gibt. Das Skript ist in der Form also nicht funktionsfähig.
Wäre super, wenn jemand mir die passenden Operatoren oder einen anderen Lösungsweg nennen könnte!
Viele Grüße,
Daniel

Code:
      "<soap:Body>"+
         "<RetrieveMultiple xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
            "<query xmlns:q1='http://schemas.microsoft.com/crm/2006/Query'"+
            " xsi:type='q1:QueryExpression'>"+
               "<q1:EntityName>new_zeiterfassung</q1:EntityName>"+
               "<q1:ColumnSet xsi:type='q1:ColumnSet'>"+
                  "<q1:Attributes>"+
                     "<q1:Attribute>new_stunden</q1:Attribute>"+
                  "</q1:Attributes>"+
               "</q1:ColumnSet>"+
               "<q1:Distinct>false</q1:Distinct>"+
               "<q1:Criteria>"+
                  "<q1:FilterOperator>And</q1:FilterOperator>"+
                  "<q1:Conditions>"+
                     "<q1:Condition>"+
                        "<q1:AttributeName>new_mitarbeiterid</q1:AttributeName>"+
                        "<q1:Operator>Equal</q1:Operator>"+
                        "<q1:Values>"+
                           "<q1:Value xsi:type='xsd:string'>"+mitarbeiter_id+"</q1:Value>"+
                        "</q1:Values>"+
                     "</q1:Condition>"+
                     "<q1:Condition>"+
                        "<q1:AttributeName>new_datum</q1:AttributeName>"+
                        "<q1:Operator>After</q1:Operator>"+
                        "<q1:Values>"+
                           "<q1:Value xsi:type='xsd:string'>"+actdate+"</q1:Value>"+
                        "</q1:Values>"+
                     "</q1:Condition>"+
                     "<q1:Condition>"+
                        "<q1:AttributeName>new_datum</q1:AttributeName>"+
                        "<q1:Operator>Before</q1:Operator>"+
                        "<q1:Values>"+
                           "<q1:Value xsi:type='xsd:string'>"+nextdate+"</q1:Value>"+
                        "</q1:Values>"+
                     "</q1:Condition>"+
                  "</q1:Conditions>"+
               "</q1:Criteria>"+
            "</query>"+
         "</RetrieveMultiple>"+
      "</soap:Body>"+
Zuletzt geändert von DanP am 12. November 2010 19:01, insgesamt 1-mal geändert.

Re: retrieve Syntax

12. November 2010 19:01

Hab's gelöst: Die richtige Syntax lautet:
Code:
GraterThan

bzw.
Code:
LessThan


Viele Grüße,
Daniel