Domino 9 und frühere Versionen > ND7: Entwicklung
Webservices: Neue spezielle Soap Datentypen in LotusScript
flaite:
Hi,
wenn man in der Notes7 Designer- Hilfe nach XSD_Datetime sucht, stösst man auf ein interessantes Dokument.
Es gibt spezielle Soap Datentypen, die das Mapping zwischen Datentypen in v.a. Java aber vermutlich auch andere Sprachen über Webservices sehr ehrleichtert.
Mein aktueller Favorit ist:
SOAP-> xsd:dateTime
Java-> java.util.Calendar
LotusScript-> XSD_DATETIME
Man kann jetzt XSD_DATETIME als Funktionsparameter nehmen.
Z.B:
--- Code: ---Public Function GetAllTicketsBySupporter ( strSupporter As String, cutOffDate As XSD_DateTime ) As TicketCollection
.. und dann:
Dim nCutOffDate as NotesDatetime
nCutOffDate = cutOffDate.GetValueAsNotesDateTime() 'wobei dies eine spezielle Methode von XSD_DateTime ist.
--- Ende Code ---
... und NotesDateTime kann man prima in dem in Help extrem beliebten db.search benutzen...
Es gibt noch eine Menge mehr dieser speziellen Notes-SOAP-Datentypen.
Auf der LotusSphere wurde bekanngegeben, dass man in Zukunft nicht mehr wie jetzt auf soap/enc dann auf doc/lit als favorisierten Message-Encoding Mechanismus setzen will.
Mir ist nicht ganz klar, inwieweit diese Bonus-Features für doc/lit benutzt werden können. Vielleicht aber schon.
Ich habs bisher noch nicht vom Client aus ausprobiert, bin aber relativ zuversichtlich. Auf dem Server kompiliert es aber. Vielleicht schaffe ich es morgen, dass auch auf dem Client ausprobieren.
Gruß Axel
flaite:
funktioniert.
Wenn ein Webservice eine größere Collection an Daten angefordert werden, können so nur die jeweils seit dem letzten Request geänderten Daten runtergeladen werden.
Größere Collection haben mir einige Performance-Sorgen gemacht.
Natürlich muss im Client wesentlich mehr programmiert werden, um das funktionsfähig zu machen.
Serverseitig ist das einfach nur:
--- Code: ---Public Function GetAllTicketsByUser ( strUser As String, cutOffDate As XSD_DateTime) As TicketCollection
[...]
Set dc = GetDocumentsWithCutOffDate ( SearchFormula, cutOffDate.GetValueAsNotesDateTime() )
[...]
end function
Private Function getDocumentsWithCutOffDate ( strSearchstring As String, cutOffDate As NotesDatetime ) As NotesDocumentCollection
Set getDocumentsWithCutOffDate = db.Search( strSearchstring, cutOffDate,0)
End Function
--- Ende Code ---
Ist aber ein gutes Feature, mit den speziellen Datentypen für SOAP in LotusScript.
Gruß Axel
flaite:
... und es scheint ein bug drin zu sein.
Das Java Calendar-Objekt, dass ich hochschicke gibt Zeit an, nach der Übertragung mit Webservices und LotusScript Konvertierung ist es 3 Stunden später...
Besser als nix. Aber ich weiss nicht, was es ist. Poste auf notes.net.
Sonst ist alles i.O.
In java: 2006-01-31T23:16.187
Webservice Log: <CUTOFFDATE xsi:type="xsd:dateTime">2006-01-31T22:16:21.187Z</CUTOFFDATE>
In Notes:
31/01/2006 02:06:01 CET
Der Parameter wurde in Java generiert und über SOAP an Notes gesendet. Schönes Chaos.
Man könnte SOAP zugute halten, dass es eventuell Greenwich Meantime anzeigt ???
Aber Notes ist echt deutlich neben der Spur.
Gruß Axel
eknori (retired):
--- Zitat ---Serverseitig ist das einfach nur:
Code:
Public Function GetAllTicketsByUser ( strUser As String, cutOffDate As XSD_DateTime) As TicketCollection
[...]
Set dc = GetDocumentsWithCutOffDate ( SearchFormula, cutOffDate.GetValueAsNotesDateTime() )
[...]
end function
Private Function getDocumentsWithCutOffDate ( strSearchstring As String, cutOffDate As NotesDatetime ) As NotesDocumentCollection
Set getDocumentsWithCutOffDate = db.Search( strSearchstring, cutOffDate,0)
End Function
--- Ende Zitat ---
Hört sich gut an. Ab nächster Woche habe ich höchstwahrscheinlich wieder ein bisschen mehr Luft. Dann werde ich mich auch wieder den Web Services widmen ...
flaite:
Ich schick dir meine neuen Sachen am WE.
Ärgerlich sind diese "Zeitverschiebungen von den Datum-Zeit-Objekten.
Hier habe ich das schliesslich am besten beschrieben:
http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/cfbec9ff3469a6b085257107007d0474?OpenDocument
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln