Autor Thema: Help Application demo at Lotusphere  (Gelesen 163068 mal)

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #20 am: 28.12.05 - 08:34:45 »
Von meinem notes-net-rss feed Reader (http://atnotes.de/index.php?topic=27846.0) weiss ich, dass sich in den letzten Tagen ziemlich viele Hochkaräter im notes-net r6/7 Forum tummeln. Da kann ich das Problem mit der Rückgabe von Collections/Arrays mit custom Classes auch mal posten.  ;D
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #21 am: 28.12.05 - 12:23:58 »
Der Aufruf dieser Methode per Webservice:
Public Function getAllLands() As Variant
(2 postings weiter oben).
läßt meinen Domino 7.0 Server abstürzen.
Und zwar immer
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: Help Application demo at Lotusphere
« Antwort #22 am: 28.12.05 - 14:06:36 »
Ja, das hatte ich auch; liegt am Variant. Wenn du als Rückgabewert eine Klasse übergibst läuft das sauber
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #23 am: 28.12.05 - 14:29:51 »
Ach so.  ;D  ich muß eine Sammlung von Klassen in eine andere Klasse als Wrapper tun?
Ich glaub das ist der eigentliche Grund, warum Julian dieses Konstrukt gewählt hat.
Code
Class TicketCollection
    Public Tickets() As Ticket
    Public Count As Integer
End Class
Nicht als Schutz, damit der zurückgegebene Array nicht leer ist.
Das Domino Designer RedBook "ND 7" hat übrigens Beispiele für komplexere Webservices mit Java. Ich hab die DBs itso/product.nsf und itso/webservices.nsf auf meinen Server geladen. Mach jetzt den Client.

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #24 am: 28.12.05 - 15:17:38 »
Java kompiliert nicht (ohne Fehlermeldung. Bug in 7.0?)
Das mit dem Wrapper funktioniert auch nicht richtig.
Der Webservice liefert zumindest bei mir nicht die Elemente des Objekts zurück.

Es ist zwar richtig, dass er 2 Objekte zurücksendet, aber ich hab überhaupt keine Infos über die Properties der Objekte.

Hier die Rückgabe (2 Länder sind in der Datenbank).
Code
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ns1:GETALLLANDSResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DefaultNamespace">
         <GETALLLANDSReturn xsi:type="ns1:LANDCOLWRAPPER">
            <ALLLANDINST soapenc:arrayType="ns1:LANDINST[2]" xsi:type="soapenc:Array">
               <item xsi:type="ns1:LANDINST"/>
               <item xsi:type="ns1:LANDINST"/>
            </ALLLANDINST>
         </GETALLLANDSReturn>
      </ns1:GETALLLANDSResponse>
   </soapenv:Body>
</soapenv:Envelope>

Tipp: http://www.soapui.org/index.html (schneller als Eclipse).
Vielleicht mache ich irgendetwas falsch.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #25 am: 28.12.05 - 16:05:31 »
Ok. War mein Fehler. Hab im Webservices die Objekte zwar initialisiert, aber die Werte nicht gesetzt.

Code
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
 <soapenv:Body>
  <ns1:GETALLLANDSResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DefaultNamespace"><GETALLLANDSReturn xsi:type="ns1:LANDCOLWRAPPER"><ALLLANDINST xsi:type="soapenc:Array" soapenc:arrayType="ns1:LANDINST[2]"><item xsi:type="ns1:LANDINST"><ANAME xsi:type="xsd:string">Chile</ANAME><HAUPTSTADT xsi:type="xsd:string">Santiago</HAUPTSTADT></item><item xsi:type="ns1:LANDINST"><ANAME xsi:type="xsd:string">Deutschland</ANAME><HAUPTSTADT xsi:type="xsd:string">Berlin</HAUPTSTADT></item></ALLLANDINST></GETALLLANDSReturn></ns1:GETALLLANDSResponse>
 </soapenv:Body>
</soapenv:Envelope><soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <ns1:GETALLLANDSResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DefaultNamespace">
         <GETALLLANDSReturn xsi:type="ns1:LANDCOLWRAPPER">
            <ALLLANDINST soapenc:arrayType="ns1:LANDINST[2]" xsi:type="soapenc:Array">
               <item xsi:type="ns1:LANDINST">
                  <ANAME xsi:type="xsd:string">Chile</ANAME>
                  <HAUPTSTADT xsi:type="xsd:string">Santiago</HAUPTSTADT>
               </item>
               <item xsi:type="ns1:LANDINST">
                  <ANAME xsi:type="xsd:string">Deutschland</ANAME>
                  <HAUPTSTADT xsi:type="xsd:string">Berlin</HAUPTSTADT>
               </item>
            </ALLLANDINST>
         </GETALLLANDSReturn>
      </ns1:GETALLLANDSResponse>
   </soapenv:Body>
</soapenv:Envelope><?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
 <soapenv:Body>
  <ns1:GETALLLANDSResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:DefaultNamespace"><GETALLLANDSReturn xsi:type="ns1:LANDCOLWRAPPER"><ALLLANDINST xsi:type="soapenc:Array" soapenc:arrayType="ns1:LANDINST[2]"><item xsi:type="ns1:LANDINST"><ANAME xsi:type="xsd:string">Chile</ANAME><HAUPTSTADT xsi:type="xsd:string">Santiago</HAUPTSTADT></item><item xsi:type="ns1:LANDINST"><ANAME xsi:type="xsd:string">Deutschland</ANAME><HAUPTSTADT xsi:type="xsd:string">Berlin</HAUPTSTADT></item></ALLLANDINST></GETALLLANDSReturn></ns1:GETALLLANDSResponse>
 </soapenv:Body>
</soapenv:Envelope>

Ich werd den Land Webservices entsprechend übersichtlich updaten und an den Thread im 7er Forum hängen.

Ich denke, die können mit ihrem Tool etwas damit anfangen.
Kann aber z.B. für die !!!Help!!!-Webservices auch einen Swing Client schreiben.
Hab das auch durch Eclipse gejagt und mit den erzeugten Klassen kann man schon arbeiten.

Gruß Axel
« Letzte Änderung: 28.12.05 - 16:08:13 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: Help Application demo at Lotusphere
« Antwort #26 am: 28.12.05 - 16:29:08 »
Genau, so muss das aussehen. Ich werde das jetzt mal für HELP umsetzen. Wollte eigentlich schon früher damit anfangen, aber heute wollte ich "mal eben" ein Update unserer Firewalls machen ... na ja, "mal eben" halt ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: Help Application demo at Lotusphere
« Antwort #27 am: 28.12.05 - 18:33:25 »
Ich habe die Erkenntnisse jetzt einmal in HELP eingebaut:
Die Funktion GetAllTicketsBySupporter  sieht dann so aus


Class TicketCollection
   Public Tickets() As Ticket
   Public TicketCount As Integer
End Class

Class Ticket
   Public User As String
   Public TicketNumber As String
   Public Problem As String
End Class


%REM
#####################################################
 Public Function GetAllTicketsBySupporter ( ) As Variant
#####################################################
%END REM      
   Public Function GetAllTicketsBySupporter ( strSupporter As String, status As String ) As TicketCollection
      
      On Error Goto ERRHANDLE      
      ' open, progress, closed, on hold, empty string or all
      If status = "" Or Ucase(status) = "ALL" Then
         status = "ALL"
      End If
      
      Select Case Ucase(status) ' evaluate status
         
      Case "OPEN"
         SearchFormula =_
         |@UpperCase(Form) ="BUGREPORT" & @UpperCase(@Name([CN];supporter)) ="|_
         & Ucase(CommonNameString (strSupporter )) & |"|
         
      Case "CLOSED"
         SearchFormula =_
         |@UpperCase(Form) ="BUGREPORT" & @UpperCase(@Name([CN];supporter)) ="|_
         & Ucase(CommonNameString (strSupporter )) & |"|
         
      Case "PROGRESS"
         SearchFormula =_
         |@UpperCase(Form) ="BUGREPORT" & @UpperCase(@Name([CN];supporter)) ="|_
         & Ucase(CommonNameString (strSupporter )) & |"|
         
      Case "ON HOLD"
         SearchFormula =_
         |@UpperCase(Form) ="BUGREPORT" & @UpperCase(@Name([CN];supporter)) ="|_
         & Ucase(CommonNameString (strSupporter )) & |"|
         
      Case "ALL"          
         SearchFormula =_
         |@UpperCase(Form) ="BUGREPORT" & @UpperCase(@Name([CN];supporter)) ="|_
         & Ucase(CommonNameString (strSupporter )) & |"|
         
      Case Else
         
      End Select
      
      Dim dateTime As New NotesDateTime(_
      Cstr(Datenumber(2000, 5, 1)))
      
      Set col = db.Search( SearchFormula, dateTime,0)
      count = col.count
      Set GetAllTicketsBySupporter = New TicketCollection
      GetAllTicketsBySupporter.TicketCount = count
      
      If (count = 0) Then
         Redim GetAllTicketsBySupporter.Tickets(count)
      Else
         Redim GetAllTicketsBySupporter.Tickets(count - 1)
      End If
      
      If Trim(strSupporter) = "" Or count = 0 Then
         Exit Function ' nothing else to do, get outa here !
      Else      
         
         i = 0
         Set doc = col.GetFirstDocument
         Do Until (doc Is Nothing)
            
            Set TicketValues = New Ticket
            TicketValues.User = CommonNameString(getItemValue ("user"))
            TicketValues.TicketNumber = getItemValue ("ReqNumber")
            TicketValues.Problem = getItemValue ("problem")
            
            Set GetAllTicketsBySupporter.Tickets(i) = TicketValues
            i = i +1
            Set doc = col.GetNextDocument(doc)
         Loop
         
      End If    
      
EXITPOINT:
      Exit Function
ERRHANDLE:
      Resume EXITPOINT      
      
   End Function

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: Help Application demo at Lotusphere
« Antwort #28 am: 28.12.05 - 19:37:52 »
Ich habe den Code mal an die "Brombeeren" bei RIM geschickt; Testen in Eclipse oder der SoapGUI ist ja ganz nett, ich würde aber gerne auch wissen, ob die mit dem Zeugs was anfangen können.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: Help Application demo at Lotusphere
« Antwort #29 am: 28.12.05 - 20:06:05 »
Zitat
Kann aber z.B. für die !!!Help!!!-Webservices auch einen Swing Client schreiben.

Möglicherweise wäre das was für den OpenNTF booth.
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: Help Application demo at Lotusphere
« Antwort #30 am: 28.12.05 - 21:06:50 »
Übrigens funktioniert ein Konstrukt

for i = 0 to col.count
Set doc = col.GetNthDocument(i)
...
next

bei mir nicht.

Wenn ich aber für i einen festen Wert einsetze (Set doc = col.GetNthDocument(2) ) dann funzt das  ??? Wieder mal ein neuer Bug ??

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: Help Application demo at Lotusphere
« Antwort #31 am: 28.12.05 - 22:08:15 »
Interessant finde ich die Benamsung. Da wird von Klassen ( class) geredet, wenn man doch eigentlich einen Type meint ...Eine Klasse hat für mich immer mindestens eine Property oder methode.

Daß man einen Variant, eine NotesDocumentCollection oder ein RichText Feld nicht als Response verwenden kann ist aber klar; woher soll denn das System, das den Webservice aufruft wissen, was das sein soll. Also muß man sich auf allgemein verständliche Datentypen einigen ( String , short, long ... )

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #32 am: 28.12.05 - 22:10:56 »
Ich habe den Code mal an die "Brombeeren" bei RIM geschickt; Testen in Eclipse oder der SoapGUI ist ja ganz nett, ich würde aber gerne auch wissen, ob die mit dem Zeugs was anfangen können.

Weiss nicht. Vielleicht zu kompliziert. Hängt vom Tool ab. Zumindest für Java1.4 kann ich mit Eclipse für mein Beispiel eine Reihe von Klassen erzeugen, die als Subsystem definitiv funktionieren.
Der serverseitige Code interessiert mich dann gar nicht mehr.
Aus dem wsdl lasse ich Eclipse diese Klassen generieren.
Dann beinhaltet die xxxProxy-Klasse (hier LandProxy) alle Methoden die ich von Java aus brauche.
Das funktioniert definitiv.
Ich hatte das hier kurz beschrieben: 
http://atnotes.de/index.php?topic=26569.msg169621#msg169621
(zu 6.b ist noch zu Ergänzen, dass man die Klassen in JavaSource/DefaultNamespace findet).
Ich halte das für stabil.

Vielleicht ist es besser, du stellst eine HELP Beispiel DB mit Webservice und gibts denen die URL für das WSDL File. Wenn das Tool das die benutzen einigermassen was taugt, dann ist das eine für die einfachere Basis.

Ich würd übrigens die Methoden für die Tickets anders definieren.
Also nicht nach TicketStatus differenzieren.
Und Objekte mit unterschiedlichen Details runterschicken.
Code
Public Function GetAllTicketsBySupporterView ( strSupporter As String) As TicketViewCollection
Hier nur Daten runterschicken, die für eine Übersichtsdarstellung sinnvoll sind (wie eine NotesView)
TicketViewCollection enthält einen Array aus TicketViewEntry-Objekten:
Code
class TicketViewEntry
Public User As String
   Public TicketNumber As String
   Public Problem As String 
   Public lastChange As Date
end class

... und eine 2. Methode, die einen Eintrag detailiert zurückliefert:
Code
Public Function GetTicketBySupporterDetail ( TicketNumber As String) As Ticket
Hier alle Daten runterschicken, die für den User für die Bearbeitung des Tickets sinnvoll sind
Code
class Ticket
Public User As String
   Public TicketNumber As String
   Public Problem As String 
   Public lastChange As Date
   Public String content
   Public ticketHistoryCollection as TicketHistoryCollection ' oops neues Objekt
   etc. 
end class

Der Blackberry-User sieht dann erst eine Übersichtsdarstellung und das Klicken aus einem der Einträgen in der View startet einen neuen Webservice-Call der das detaillierte Ticket zurückliefert.
Aber ich kann das mal mit einem Swing Client nachvollziehen und mir vorher HELP installieren. Sieht nicht so schwierig aus.

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #33 am: 28.12.05 - 22:20:36 »
Interessant finde ich die Benamsung. Da wird von Klassen ( class) geredet, wenn man doch eigentlich einen Type meint ...Eine Klasse hat für mich immer mindestens eine Property oder methode.
SOAP ist heute offiziell kein Akronym mehr für "Simple Object Access Protocol" sondern ein Eigenname.
Zum Problem vom "O" in SOAP:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsoap/html/understandsoap.asp
(die erste Hälfte über dem Bild).
Der Grund war aber nicht wie es in dem Microsoft Artikel dargestellt wird (make accessible for broader audience), sondern weil sich Objekt-Bäume nicht so gut für die Verteilung eignen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #34 am: 29.12.05 - 01:17:34 »
Das zweite Problem von SOAP ist das S für Simple. Wenn man sich anschaut, was da über die Leitung geht, um ein simples Array zu übertragen, ist das schon extrem.
Find es ziemlich interessant, ein reales Produkt (HELP) für Webservices zu haben.
Ich bin mir nicht sicher, rechne aber das sich am Ende doc-Lit Style Webservices als effizienter herausstellen werden (vielleicht aus Gründen der Performance).
Werd erstmal mit dem Land-Webservice für den Swing-Client weiterarbeiten und sobald ich da klar bin auf HELP umsteigen. Paßt ganz gut, weil ich sowieso ein paar "modernere" Swing Sachen ausprobieren will. Im übrigen hilft das vielleicht auch den Blackberry-Leuten für die Übersicht. Bis zum 10.1. sollte das locker fertig sein.
Ein Swing Client für HELP könnte eventuell auch für die Praxis interessant sein. Leute könnten dann von zu Hause ausserhalb des Notes-Netzwerks arbeiten. Gibt für mich da noch einige offene Security Fragen, aber das werd ich dann sehen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Mark³

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
  • Nordisch by Nature
    • Das Leben aus der Sicht eines Menschen
Re: Help Application demo at Lotusphere
« Antwort #35 am: 29.12.05 - 08:37:42 »
wie wäre es mit einem Client basierend auf der Eclipse Rich Client Platform (RCP) anstelle von Swing Client?
Ist gleich eine gute Vorbereitung für Notes 8 ;-)

RIM entwickelt übrigens ebenfalls mit RCP:
http://eclipse.techforge.com/index.php/articles/189
« Letzte Änderung: 29.12.05 - 08:56:35 von mt69clp »
sagt Mark.



slowfood.de

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.710
  • Geschlecht: Männlich
Re: Help Application demo at Lotusphere
« Antwort #36 am: 29.12.05 - 08:42:32 »
zum Testen habe ich noch ein kleines Tool gefunden. ( OK, klein ist relativ, immerhin braucht es .NET )

Sitze gerade in der Firma und mülle meinen heimischen Server via web services mit Tickets zu. geht prima  ;D

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #37 am: 29.12.05 - 10:37:51 »
wie wäre es mit einem Client basierend auf der Eclipse Rich Client Platform (RCP) anstelle von Swing Client?
Kannst du machen.  ;)

Von den reinen Webservices ist es nicht so schwierig. Schon Eclipse mit WTP 0.7 erzeugt solide die Klassen für die Verbindung mit dem Webservice, einfach indem man ihm die URL des WSDL füttert. Netbeans 5.0 beta 2 meckert übrigens fehlende WS-I-Profile (spelling?) an. Und dann fehlt dann ein Feature, das in der Doku angegeben ist.

Erzeugt aber die Klassen zur Verbindung mit den Webservices. Ich versteh die aber weniger als die, die Eclipse erzeugt und ich geh zurück auf Eclipse.
In Eclipse kann man einfach die xxxProxy-Klasse als Facade gegen dieses Wirrwarr aus Klassen nehmen.
Unten Screenshots für Eingabefenster sowie die daraus generierten Klassen, wenn man finish klickt. In Eclipse mit WTP sieht es ähnlich aus.




« Letzte Änderung: 29.12.05 - 10:39:53 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #38 am: 29.12.05 - 13:44:19 »
Sowieso ist die GUI ja nur ein relativ dünner - aber leider ziemlich komplexer - Layer.
Ein paar Ideen für Caching.
Webservices sind ja relativ langsam.
Es sieht ja so aus, dass auf dem Webservices Consumer und dem Webservice Producer eine Sammlung der Tickets gehalten werden.
Um die Menge der übertragenen Tickets gering zu halten, kann man bei der Abfrage der Tickets ein letztesÄnderungsDatum mitgeben. Es werden dann vom Webservice Producer nur die Tickets runtergesendet, die sich seit dem letzten letzteÄnderungsDatum geändert haben.
Ich bau das jetzt für den Land-Webservice in den Swing Client ein. Relativ generisch.
Man kann auch die geänderten neuen Daten in der GUI extra kennzeichnen.
Die entsprechende Logik liegt natürlich in einem völlig GUI unabhängigen Business Layer. Marc kann das also für den Eclipse RichClient wiederverwenden.

Ich bin relativ optimistisch, dass ich bei langsamer Arbeitsgeschwindigkeit irgendwann heute Abend für den Land-Webservice den Client fertig habe.
Dann kann ich auf HELP umsteigen. Ich hab auch Anfang der nächsten Woche frei.

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Help Application demo at Lotusphere
« Antwort #39 am: 29.12.05 - 17:18:11 »
Für den Land-Webservice ist die Swing-GUI für ca. 20% der angekündigten Features fertig.
Ich lös jetzt noch 80% der Zusatzfeatures wie Refresh-Button, smartes cachen, neue Länder farblich hervorgehoben.
Dann kann ich etwas ähnliches für HELP hochziehen.
Eigentlich ist das ziemlich einfach. Ich mach aber einfach swing nicht so oft.

So ähnlich könnte man das auch für Help machen, oder?
Auf der linken Seite eine Art Navigator für die Tickets und rechts dann die Tickets selbst?
Man kann im Navigator verschiedene Ansichten anbieten (nach Datum, nach Status der Tickets, etc.).

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz