TEST3
Archive for: ‘Oktober 2011’
Testthema 2
TEST2
IBM xWork Server 8.5.3 verfügbar
Der IBM xWork Server bietet einen Domino Anwendungs Server zum attraktiven Preis, genau wie beim Domino Utility Server sind hierbei persönliche Mailboxen ausgeschlossen.
Zielgruppe:
- IBM Businesspartner (ISVs) mit eigenen xPages Lösungen können Ihre Anwendungen mittels ASL-Lizenz mit den xWork Server bundlen und somit als ein Paket anbieten.
- Kleinen und mittelständigen Kunden bietet der xWork Server eine kostengünstigen Möglichkeit Domino Anwendungen intern oder extern geschützt anzubieten
Lizenzierung:
- Im Gegensatz zum Utiltiy Server wird der xWork Server als Fixed Term License angeboten, der Preis beträgt € 1.894 (Staffel BL) jährlich (CALs nicht notwendig).
- Der xWork Server ist auf 4 Domino Anwendungen und 4 Domino Datenbanken pro Anwendung begrenzt (Systemdatenbanken ausgeschlossen).
- Über eine weitere xWork Server Lizenz lässt sie die Anzahl der Anwendungen verdoppeln, Maximum sind aber acht Anwendungen.
- Replikation ist nur mit anderen xWork Server erlaubt, mit der Aussnahme des Domino Directories.
Positionierung:
Der xWork Server positioniert sich unterhalb von Domino Utility (Express) und richtet sich an kleine und mittelständische Unternehmen die preisgünstig moderne collaborative Anwendungen mittels Browser und Smartphone bereitstellen möchten.
Java not found
Tippfehler werden von Domino (8.5.2) hart bestraft! Java kann nicht mehr gefunden werden!
Die Hashmap muß natürlich “HashMap” heissen, und nicht “Hashmap”. Dann klappts auch…
<?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:scriptBlock id="scriptBlock1" value="#{javascript: var data:java.util.HashMap = new java.util.HashMap();}"> </xp:scriptBlock> </xp:view>
Traveler 8.5.2.4 und 8.5.3
Es gibt zwei neue Versionen von Lotus Notes Traveler.
8.5.2.4 enthält eine Reihe von Fehlerbehebungen und setzt weiterhin einen Domino 8.5.2 voraus.
8.5.3 ist das erste Release für das gerade erschienene Domino 8.5.3 und bringt eine auch Funktionsverbesserungen, insbesondere für Android-Endgeräte. Lotus Notes Traveler 853
XPages: Tippsammlung
Hallo,
hier mal eine kleine Ansammlung von Tipps welche meine Kollegen und ich uns im Laufe der Zeit notiert haben.
Attributbenennung im IE
Dojo scheint bei Attributselektoren (z.B. dojo.query()) im Internet Explorer Probleme zu haben, die richtigen Elemente zu finden, wenn ein Teilstring des Attributs ein reserviertes Wort (z.B. name oder id) enthält. Da Dojo wie jQuery als Selektor-Engine Sizzle einsetzt, kann dieses Phänomen auch bei jQuery auftreten!
Beispiel hierfür ist ein Input-Feld mit dem Namen „username“. Selektiert man dojo.query(‘input[id$="WFApprovalVFL"]‘) wird das username-Feld mitselektiert, obwohl es nicht auf WFApprovalVFL endet.
Selbiges gilt für Keynamen in JSON-Objekten.
Nich gerenderte Datasources werden dennoch computed
Wenn man in einem Custom Control eine Datasource verwendet, dann wird dessen Code IMMER ausgeführt, egal ob rendered=“false“ oder loaded=“false“. Der Code dazu wird immer ausgeführt. Dies kann zu schwer nachvollziehbaren Fehlern führen.
Des weiteren, wenn man mehrere Datasources in unterschiedlichen Custom Controls hat, welche auf das selbe Dokument zeigen, so werden alle diese Datasources gespeichert und ggf. mehrere Dokumente desselben Typs angelegt.
Um dieses Problem zu umgehen kann man in den Custom Controls entweder die Datasource auf der XPage direkt über den namen referenzieren, oder man übergibt die Datasource per Parameter an das Custom Control (compositeData). Da muss man allerdings manuell einen Typ auswählen, da Datasources nicht in der Liste auftauchen. Der Typ heißt: com.ibm.xsp.model.ModelDataSource
Prüfen ob ein Viewpanel kategorisiert ist
Gesetzt den Fall, das zu prüfende View Control auf der XPage heißt viewPanel1, liefert:
var model:com.ibm.xsp.model.domino.DominoViewDataModel = getComponent("viewPanel1").getDataModel(); return model.getCategoryIndentLevel();
den Wert 0, wenn die View kategorisiert ist, -1 wenn nicht.
Use case: Bei kategorisierten Views gehen die Inhalte der Kategoriespalte verloren, wenn die View umsortiert wird. Hiermit kann man prüfen, ob die View umsortiert ist und entsprechend die Anzeige wiederherstellen.
Umgehen des OnChange-Bugs im IE beim Klick auf eine CheckBoxGroup
Werden auf einer XPage oder Custom Control Radiobutton Groups oder Checkbox Groups verwendet, tritt im IE das Phänomen auf, dass beim Partial refresh die übergebenen Werte der Gruppe immer die Werte des vorangegangenen Requests sind. Dies tritt nur auf, wenn man auf das Label klickt, statt direkt auf die Box zu klicken. Grund hierfür ist, dass der IE den Partial refresh-Request abschickt, bevor auf der UI der neue Wert gesetzt wird.
rendered="#{javascript:context.getUserAgent().isIE()}"
Beispiel:
Es gibt eine Checkbox-Gruppe mit den Optionen A, B, C, D. Beim onchange-Event wird ein Partial refresh auf ein anderes Panel ausgelöst, das abhängig von den gewählten Optionen Elemente ein- oder ausblendet. Klickt man auf das Label für die Option A, kommt kein gewählter Wert an. Klickt man anschließend auf das Label für die Option B, kommt der Wert A an. Klickt man anschließend auf das Label der Option C, kommen A und B an, usw.
Workaround:
Im onclick-Eventhandler wird der Partial refresh beim oncomplete ein zweites Mal ausgeführt.
<xp:this.onComplete> <![CDATA[XSP.partialRefreshPost("#{id:refreshPanelID}");]]> </xp:this.onComplete>
Obiger Workaround 1 wirkt nicht, wenn auf dem Eventhandler zusätzlich noch Aktionen bzw. Server Side Javascript ausgeführt werden soll. Dieser Code wird dann nur beim ersten partial refresh ausgeführt. Um diesen Eventhandler wieder gängig zu machen, muss man den Click-Event des Labels von seiner Standard-Aktion abhängen und selbst durchführen. Dies macht man in einem clientseitigen Scriptblock. Da aber die Checkbox selbst auch innerhalb des Labels liegt, muss man diese wiederum aus der eigenen Verarbeitung rausnehmen:
<xp:scriptBlock id="scriptBlock1" rendered="#{javascript:context.getUserAgent().isIE()}"> <xp:this.value><![CDATA[dojo.addOnLoad(function(){ dojo.query("label",dojo.byId("#{id:checkBoxGroupID}")).forEach(function(el){ dojo.connect(el,"onclick",el,function(e){ if (e.target.type != "checkbox") { e.preventDefault(); dojo.query("input",this).forEach(function(el){ dojo.attr(el,"checked",!(dojo.attr(el,"checked"))); }); } }); }); });]]></xp:this.value> </xp:scriptBlock>
Ein weiterer Vorteil dieser Methode gegenüber Workaround 1 ist, dass kein zweiter Request nötig ist.
Validierung von zwei abhängigen Eingabefeldern
Bei der Validierung von zwei voneinander abhängigen Eingabefeldern muss der SubmittedValue des Feldes abgefragt werden, das validiert wird. Vergleicht man den Value des Feldes mit dem Value des zweiten Feldes, wird die Validierung nach dem ersten Fehlschlag nicht mehr ausgelöst und der Validierungsfehler bleibt bestehen.
Beispiel:
<xp:inputText id="recipientNotesID" value="#{test.recipientNotesID}" disableClientSideValidation="true" required="true"> <xp:this.validators> <xp:validateRequired message="Required value."></xp:validateRequired> </xp:this.validators> </xp:inputText> <xp:inputText id="recipientNotesPW" value="#{test.recipientNotesPW}" disableClientSideValidation="true" required="true"> <xp:this.validators> <xp:validateExpression> <xp:this.expression><![CDATA[#{javascript:((getComponent("recipientNotesPW").getSubmittedValue()||"")!=(getComponent("recipientNotesID").getValue()||""))}]]> </xp:this.expression> <xp:this.message><![CDATA[#{javascript:"Values must not be equal."}]]></xp:this.message> </xp:validateExpression> <xp:validateRequired message="Required value."></xp:validateRequired> </xp:this.validators> </xp:inputText>
Immer wieder XPages: DNUG Veranstaltungen in Bamberg ab 7. November 2011
Veranstaltungen im Welcome Kongress Hotel Bamberg: 7.-9. November 2011
7.11.2011, ab 13 Uhr:
Arbeitskreis Anwendungsentwicklung
Referent:
Ulrich Krause, is@web GmbH
8.11.2011, Produktvortrag ab 14:00 Uhr
"Transformer: So werden Domino-Anwendungen fit für die Zukunft"
Referent:
Thomas Rychlik, GROUP Business Software (Premium Sponsor Platin)
8.11.2011, Session 2.1, Projektbericht ab 14:45 Uhr
"Mobile Workforce Management mit XPages und SAP"
Referenten:
Guido Philipps, IBM
Dr. Tracy Dalton / Marc Oliver Schaake, GFI Informationsdesign GmbH
8.11.2011, Session 1.1, technische Präsentationen und HandsOn ab 15:45 Uhr
"Plugin Development for the XPages Extensibility Library"
"XPages Extensibility under the hood"
Referenten:
Mikkel Flindt Heisterberg, IntraVision
René Winkelmeyer, midpoints GmbH
9.11.2011, Session 2.2, technische Präsentation und Demo ab 13:30 Uhr
"XPages Social Enabler:
Social Apps for Enterprises. Die besten Ideen aus dem Consumer Web für Unternehmen"
Referenten:
Niklas Heidloff, IBM
Herbert Wagger, INTRANET Software & Consulting GmbH
Weitere Informationen und Anmeldemöglichkeit zur Anwenderkonferenz in Bamberg
IBM kündigt Lotus Sametime Unified Telephony 8.5.2 an
Die neue Version vereinfacht die Lizenzstruktur und bietet eine noch tiefere Integration in die vorhandene Kommunikationsinfrastruktur.
Mit Unified Telephony müssen sich Anrufer nie wieder darüber Gedanken machen, welches der optimale Weg ist, die gewünschte Person zu erreichen. Er ruft einfach die bekannte Nummer an und der Telephony-Server entscheidet selbst, wie der Angerufene zu erreichen ist. Mobil, Festnetztelefon im Büro oder Home-Office, Voice-Over-IP mit Lotus Sametime - all das macht für den Anrufer keinen Unterschied mehr. Der Angerufene wird immer auf seinem bevorzugten Kommunikationskanal erreicht. Beide sparen dabei ggf. Telefonkosten.
Eine starke Integration in die vorhandene Kommunikationsinfrastrukur ermöglicht auch Anrufe direkt aus einem Chat-Fenster oder einer E-Mail - tippen Sie nie wieder Nummern in Ihr Telefon.
Details finden Sie bei http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&appname=iSource&supplier=877&letternum=ENUSZP11-0502" title="IBM" target=_new>IBM.
JamCamp Tour Teil 2
Heute morgen ging es in Köln wieder los. Wir sitzen gerade bei der KRZN in Kamp-Lintfort und nehmen an dem dortigen Informationstag "E-Government" teil. Gleich folgt der Vortrag "Web 2.0 Aktivitäten im Verbandsgebiet" mit einer anschließenden Diskussion.
Den Nachmittag können wir leider nicht mehr vor Ort sein, da wir wieder gen Süden nach Wachenheim fahren: Social Media wird dort kontrovers bei einer Weinprobe diskutiert. Bis zum vierten oder fünften Schoppen. Danach wohlwollender Konsens oder .... Wir werden sehen und berichten.
Weiterhin alle aktuellen Infos sind auf Twitter zu finden: https://twitter.com/#!/search/jamcamp