The message from Lotusphere 2010 for me was that I should build my XPages with Custom Controls. Till then I droped my Core Controls directly in My XPage. But I discovered that building XPages with Custom Controls was much more powerfull.
So back home I started to redo my design with Custom Controls like the picture below.
So far so good, I made a new XPage and dropped the Custom Control CC_Layout in it. The layout looks fine, but in the editable area of the custom control CC_Content (that contains a tabed table) doesn't show up. I can see the tabed table only when I make a new XPage with only the Custom Control CC_Content on it. So it seems to work only when CC_Content is at the first level of Custom Controls.
I Twittered about this problem and Paul Hannan suggested to install 851 SP1 but did didn't help. My question is: Is my conclusion right or do I miss something??? What are your experiences?
My friends of Clear IT Consulting will organize an XPage training thogether with Martin Schaefer. They asked XPage guru Matt White to do the training. It will take place in Amsterdam on 8 and 9 april and the cost are as low as posible. Two days training with lunch included will cost you 650 euro. If you are a Domino Developer and you want to improve your skills "it is the place to be". There is also the possibility to bring in you own subjects so they can change the subjects of the training. If you want to join this training contact them: Clear IT Consulting or Martin Schaefer. See you in Amsterdam!
This was a crazy Lotusphere. I was one of the participants of
Lotusphere Idol! 2010. What started as a joke ended in a fantastic
experiance I will never forget. The other speakers where very
good and I was the only one from ousite the US. It was my first
presentation in an other language and my first presentation for so many
people. In the jury there was Bob Balaban, Rocky Oliver, Gabriella Davis and Paul Moony. The host of this session was Ed Brill
him self. I was number three on stage and tried to be calm. My joke
with the blue screen of death landed very well and they got the message
of my presentation. After all the presentations where over,
Ed Brill took the microphone and anounced that I was the winner. I was
suprised and very proud. After the session a lot of people shaked hands
and congratulated me. I went to the bar and got a couple of beers
with my Colleages Ben en Co. While I was sitting there, people that were
passing by told me "Well done" and even when I was in the restroom the
person next to me told me that he liked my presentation. Now I
realized that I had a small problem. Because I didn't expect I had a
chance to win I didn't prepare for an one hour session. I went to bed
early, followed my sessions on wednesday and skipped the party at the
Disneys Hollywood Studios so I had time to prepare. Today I
did my own session at Lotusphere! I was introduced by Ed Brill, Rocky
Oliver was the host (he was very kind to me) and in the audiance there
was Matt White.
You must know that these people are a kind of superstars in the Lotus
Notes world to me and now they took the time to come and listen to me. It all went well, it could be better, but with so less preparation time it was ok. Then
I went to the session of Gurupalooza. All the speakers are together on
stage and people can ask questions. When I wanted to ask my question
Rocky told the audiance that I was the Lotus Idol and people applaused.
I asked a question about Xpages and relational databases. After my
question Rocky asked me to take a seat on the stage. That was a strange
feeling but it was also awesome. I do not have pictures of this and I
want them realy bad, so if you read my blog and you have pictures of
gurupalooza, please let me know. For the people who did't see my presentations here they are: 5 minutes version (pdf) | 5 minutes version (odp), will available later, I have to blur some privacy information first from the screenshots. 1 hour session (pdf) | 1 hour session (odp)
To my suprise I was selected as a contestant at Lotusphere Idol! 2010. This morning I checked my Inbox and there it was, an email of Paul Moony, Ed Brill and Bob Balaban. I could't believe it but it was true. Now I have to prepare. Lotusphere here I come!
I had to bind a checkbox on my XPage to a numberfield on my form. No problem so far but after I saved the Xpage it turned out dat the data in my document was text and not a number. What you can do is this:
I had a strange promblem: On a form I have a field that is a number field. On a XPage I have a combobox that I bind to the number field on my form. Then when I save my XPage it turns out that the field on my form changed into a text field when I look at the documentproperties. If I change the combobox on the data tab to display type is number, my Xpage doesn't save anymore, without errormessage. Then when I put a DisplayErrors control on my Xpage it is clear that there is a validationerror for the combobox. Hmmmm..... So ...The values 0,1,2,3 are always text.
Then I discovered that it is possible to put a number value to it with the: javax.faces.model.SelectedItem( value, label) class Use "Add formula Item" for this and add something like this.
Make sure that If the combobox on the data tab to display type is number. If I look on the documentproperties of the new created document I can see thet the field is now a numberfield. Problem solved!
After upgrading to 8.5.1. from my developmentserver I discoverd that it was no longer possible to set the Xpages in to editmode. I use doc.isEditable all over the place to set fields readonly or editable. It seems that this is broken for some reason. I made a workarround with sessionScope variables, but I hate that because I can not erease them when the user exit the page. The requestScope does't work for me because this is gone when I make a change. Suggestions???
Today I struggled to write a RichTextField back to a document from an Xpage without databinding. Finaly I managed it (with help from Marcus) to make it work. Here is the code from button that submits the data: var doc = configuratieformulieren.getDocumentByKey("ConfiguratieIVNL", true); if(doc == null){ return; }else{ var titel = getComponent("inputTextIBPTitelIVNL").getValue(); doc.replaceItemValue("IBPTitel",titel); var inhoud = getComponent("inputRichTextIBPInhoudIVNL").getValue(); if (inhoud != null){ var contentType = doc.getMIMEEntity("IBPInhoud").getContentType(); var encoding = doc.getMIMEEntity("IBPInhoud").getEncoding(); var str = session.createStream(); inhoud.toString(); str.writeText(inhoud.toString()); doc.getMIMEEntity("IBPInhoud").setContentFromText(str, contentType, encoding); } doc.save(true, true); } sessionScope.put("FormulierIVNLInfoBeschPG","Lezen"); I hope I can save someone's time with this post, it took me a while to figger out.
In the past I created an application that gets data from the schedule application from Saxion for Teachers and this application craetes calendarentries for lessons in the teachers agenda's. This whole process is scheduled with Lotus Enterprise Intergrator (LEI). Recently I discoverd a strange problem with LEI. I have a Direct Transfer Job that gets data from Oracle and puts it in Domino. One of the fields is a Date field in Oracle (without time) that I put in a Datefield (dateTime where time is 00:00:00 and timezone is CEDT) in Domino. Till here everything is normal. I discoverd that suddenly dates from 26-10-2009 are shown as 25-10-2009. When I looked at the fieldproperties of the date field it shows up as 26-10-2009 23:00:00 ZE2. I thought that this must be coused by a wrong setting of Daylight Saving Tine (DST) The first thing I did was checking the servers configurations. Oracle was taking the OS date time (Linux) and that was correct. Domino also takes the OS date time (on Windows 2003) and this was correct also. Hmmmmmm........... The only thing I could do was make a work arround and I created an agent that corrects the field if the timezone is ZE2. The code I use is: %REM Agent CorrigeerTijdzoneZE2 Created Sep 23, 2009 by Martin Meijer Description: Door onbekende oorzaakt wordt de tijdzone bij het overhalen van datums van Oracle naar Domino gewijzigd van CEDT naar ZE2. Hierdoor zien docenten verkeerde informatie (een dag te vroeg) in hun agenda. Deze agent corrigeerd dit fenomeen. %END REM Option Public Option Declare Sub Initialize() Dim session As New NotesSession Dim dbCurrent As NotesDatabase Set dbCurrent = session.currentdatabase Dim col As NotesDocumentCollection Dim formule As String formule = {Form = "Roosteritem" & EduflexRefDoc != "1"} Set col = dbCurrent.Search(formule, Nothing, 0) If col.Count > 0 Then Dim item As NotesItem Dim dt As NotesDateTime Dim tijdzone As integer Dim doc As NotesDocument Set doc = col.getfirstdocument Do While Not doc Is Nothing Set item = doc.GetFirstItem("DATUM" ) Set dt = item.DateTimeValue tijdzone = dt.Timezone If tijdzone = -2 Then dt.Adjusthour(1) doc.DATUM = dt.DateOnly Call doc.save(True, True) End If Set doc = col.getnextdocument(doc) Loop End If End Sub This solved my problem but still I can't understand what is going wrong. Anyone?
I was running in to a coding problem and I did't know what te problem was, the only thing that the errormessage said was that my database object was null. My Colleage Marcus gave me the tip to use the following debug code: var dbPersonen; try { dbPersonen = session.getDatabase(null,databasePathPersonen, true); } catch (e) { e.printStackTrace(); } Now there is a lot of more information that you can find in the dominoconsole. I discoverd that the ACL of the database that I tried to access was not correct. Pfffff. stupid, but problem solved.
I love XPages but the slow performance I experianced worried me. I increased the servermemory but the result didn't satisfy me. I found out that what I was looking for was the notes.ini setting JavaMaxHeapSize. This is default 64MB and in My Opinion it is to low. In my case I increased it to 128MB (on a testserver with 1024MB memory) and the performance was much better! So add the line JavaMaxHeapSize = 128MB (or the amount of MB you like) to the notes.ini and reboot your server. That's all!
Recently I posted my first idea on ideajam. I think that this concept is great. My idea was to give the Lotus adapts a resonate screensaver with the beautifull animation that was shown on lotusphere. Here the link so you can vote for this idea.
A tag is a keyword that is used to categorize an entry. To view the entries with a particular tag, click a tag name or enter a tag in the box. The tag cloud indicates the frequency of tag use. Popular tags appear darkest. The slider control adjusts how many tags are displayed in the tag cloud.