Calling Lotusscript from Javascript for OpenLogBy Kevin Pettitt, Lotus Guru (2006-06-09)Much has been said recently regarding Julian Robichaux's excellent error and event logging tool Openlog. I gave a brief overview of it at last night's DC Lotus User Group meeting, showing just how easy it is to implement. It was even featured on a recent Taking Notes podcast by Julian and Buce Elgort.
Using XSLT on DXL documentsBy Mikkel Heisterberg, lekkimworld (2006-06-08)Using XSLT on XML is a great way to filter the data before parsing the result document. With DXL this is even more true to the VERY verbose nature of DXL. An advantage of using XSLT to filter the DXL document before parsing is that it is much easier to filter based on XPath queries rather than walk the DOM tree or using SAX parsing and writing and handling all the events that would arise from parsing a DXL document.
Use Java To Get URL Files, Access The ClipboardBy Julian Robichaux, nsftools (2006-06-08)This week's Show 'n Tell Thursday bit is actually inspired by a couple of SnTT posts by other people from last week.
InViewEdit on webBy William Beh, Lotus Notes on Web 2.0 (2006-06-07)In my recent application, there are a few views that only have only a few columns (2-4 columns). In Lotus Notes client, you will have the InViewEdit feature. Since the most of the data are being be edited is in the view directly, I mimic the InViewEdit function for web views.
LSI_Info: obscure but useful information in LotusScriptBy Mick Moignard , DominoPower Magazine (2006-06-07)One of the key pieces of most LotusScript error handling routines is delivering a message that explains what the error is, and also exactly where it happened. The project I have been working on for the last two or more years has developed an error handling process that uses the NotesLog OpenNotesLog approach to log all errors to an agent log database. This has worked very well for us, except the odd occasion where a too hasty cut/paste has meant that the error message doesn't actually point to where the error occurred.
Memory allocation request exceeded 65,000 bytes in agentBy Anonymous, Notes Ninjas (2006-06-07)This error came in "Memory allocation request exceeded 65,000 bytes". I thought it was a dodgy lotuscript evaluate(|@dblookup...|) that had got too big, but it seems it was something easier to solve.
Notesdatetime.setnow vs new Notesdatetime(now)By Anonymous, Notes Ninjas (2006-06-07)There should be no difference but Notesdatetime.setnow seems to be more accurate in a timezone sort of way than new notesdatetime(now).
Rebuilding views using a scheduled Lotus Domino agentBy Huzefa Amar Haider, SearchDomino (2006-06-06)This code will show how to rebuild views using a scheduled Lotus Domino agent. This is helpful when we use @TextToNumber(today) in a view's column formula when the view requires a rebuild every day , and refreshing the view will not serve the purpose or reflect the correct value.
Using Ajax to manipulate Lotus Notes documentsBy Joachim Dagerot , developerWorks (2006-06-06)Giving users instant feedback instead of the time-consuming page reloads they’re used to is simple when you use Ajax. Discover how a view and an agent can help you build Ajax-driven applications and learn how to define an API for getting the client and the Domino server to collaborate.
Remove Element From ArrayBy Anonymous, Breaking Par Consulting Inc (2006-06-06)This tip is a pretty quick one. In LotusScript, you can remove an element from an array pretty quickly. Let's say you have an array of Greek letters and you want to remove in the list. You can do it in just one statement.
Web based spell checkerBy Landa Rodgers, Code Bin (2006-06-06)Simple script uses MS word's spellcheck to spell check web based forms. Validates text fields only.
Form Validation 3 Almost ReadyBy Jake Howlett, codestore (2006-06-05)More than five years after first creating my Form Validator database I've given it a much-needed revamp and it's nearing being ready for release.
Working with Response Documents in LotusScriptBy Anonymous, The Learning Continuum Company, Ltd. (2006-06-05)The NotesDocument class offers several properties and methods to work with child documents (responses.) This tip covers the Responses property which is used to return all responses to a document, the IsResponse property which is used to determine if a document is a child of another, and the MakeResponse method to create a new response document. This tip includes an attached sample code database.
Class Mail 2.0By Master Oguruma, Code Bin (2006-06-04)Create anonymous or not anonymous mail with all options, add attachment, embedded text, doc link, mail create in mail.box to be anonymous, from field and principal are set on to be anonymous
ND6-ND7 IconView ToolBy Stan L Uptagrafft, Code Bin (2006-06-03)For years I have used IconViewer from Workflow Systems, Inc - however it hasn't been updated to reflect the new icons now available... so I've created one for ND6/ND7 icons. This little app was made from flash.
Accordion style views in Lotus Notes clientBy Ben Langhinrichs, Genii Software (2006-06-02)In his Lotus Notes on Web 2.0 blog, William Beh has an interesting post on Lotus Notes Categorized View using Rico Accordion. Of course, the technique was for web browers, but it led me to think of an interesting technique where you could use a similar approach with a Notes client. Of course, this technique only makes sense for a view with a relatively small number of categories known in advance, but that is not all that uncommon a situation. The technique uses a caption table. For those who didn't notice, IBM added caption tables in Notes 6 as an alternative to tabbed tables. Caption tables work in much the same way that the Rico Accordion style works, with a click on the caption collapsing the other categories and opening that section (it is really a row, but it looks like a section). You can create a caption table using the standard Create - Table menu action.
Cascading Navigation in NotesBy Chris Blatnick, Interfacematters (2006-06-01)Hi again. I'm often asked by fellow developers how a particular UI technique can be applied in Notes. I really enjoy the challenge of rethinking how certain design elements can be used. A few days ago, a former colleague of mine asked about creating a horizontal cascading menu for her application that mimics a lot of web applications (like the example below).
@Formula using AjaxBy William Beh, Lotus Notes on Web 2.0 (2006-06-01)There have been quite a lot of articles written on how to call @Formula using Ajax. Below are two sample from searchdomino.
Template Build ClassBy Chad Schelfhout, Chadsmiley (2006-06-01)Chris suggested that a web service be made available for projects to check for updates at openNTF. Vince implemented this rather quickly so I started to testing it on my projects. Everything worked great, but what I noticed was that I now have to maintain this information in both the 'Check for Updates' agent and the $TemplateBuild shared field so that it shows in the database properties.
Using getElementsByClassName and CSS to create location-sensitive navigationBy Chris Toohey, Domino-Guru (2006-06-01)So with me currently looking for contracts, I've had the opportunity to work on some back-burner projects and exercises that I've been holding off on for the past several months. One of these projects was the re-development of my DHTML Menu Builder (a v2.0 if you will). One of the goals of this version is to greatly clean up the web-based user interface for the application and (quite frankly) make it look like more of an application than an exercise that happens to produce a usable DHTML menu.
Prevent copying/printing of emailsBy Rocky Oliver, Lotus Geek (2006-06-01)Last week I told you about my biggest pet peeve with emails - Return Receipts. I gave you some nice code that can be used to identify and remove return receipts at your leisure. This week I'll cover another email pet peeve of mine - emails that have been tagged to prevent copy/print/forward/etc. This is almost always done by someone who thinks you'll forward the email around - and it usually contains something incriminating. It is a pet peeve of mine that someone doesn't trust me enough to be discreet.
Determine if a Date/Time Range overlaps another Date/Time RangeBy Jon Hart, Code Bin (2006-06-01)I was working on a project that required me to have the ability in LS to check for Date/Time Range overlaps & I could not find anything out there quickly enough so I wrote this to take care of it.
Enabling Log on the Lotus Notes documents by capturing it's "PostModeChange" and "Terminate" events.By Ali Ahmad, Code Bin (2006-06-01)Log database will be used in synched with the the database at which security log is to be enabled in which Log Profile document would be created for target database.
Someone else modified this document at the same timeBy Michael Sobczak, Lord Lotus (2006-05-31)A new feature with V6 is Soft Locking. Soft Locking is a server setting that prevents a user from editing a document someone else is currently editing on the same server. Until today, I didn't know that you can't copy a document that has a soft lock using LotusScript. I wrote an agent that copies documents from one database to another.
Checking various types of datefields in a Lotus Notes documentBy Stale Dybsjord, SearchDomino (2006-05-30)This function is great for checking all kinds of datefields in a Lotus Notes document. Some of the things you'll be able to check are: How a field's date is compared to another, If one datefield is larger than another, How it is smaller than today, How it is different from today, or in 20 days, etc.
Converting XML files into Lotus Notes documentsBy Genesio Zomparelli, SearchDomino (2006-05-30)This LotusScript agent uses the NotesDOMParser class to parse XML into a standard DOM (Document Object Model) tree. Additional NotesDOM classes are used to work with the DOM trees. The NotesDOMParser class is used instead of the NotesSAXParser class because the XML files we receive from Rhapsody are relatively small and consist of simple data structures. The SAX parser is designed to process large, complex XML files.
Creating dynamic SVG graph using agentBy William Beh, Lotus Notes on Web 2.0 (2006-05-29)A friend asked about generating dynamic graph for a domino web application. I've been using Scalable Vector Graphic (SVG) to generate graph for some of my application so I recommended him that.
Formula EvaluatorBy Vitezslav VLCEK , Code Bin (2006-05-29)It is formula evaluator with history. You should put this code in a smart icon. You can use it like a simple formula debugger.
Date Range ManagerBy Master Oguruma, Code Bin (2006-05-28)Date Range Management is able to manage all type of dates as NotesDateTime, Field DateTime, String date and numeric date.
Generates a graph in MS Excel from a categorized viewBy Jeff Blackadar, Code Bin (2006-05-26)The database has a script library that has a function that will generate a graph in Excel from a categorized view if the second column has totals. The idea is you can insert the script library and an action button and generate graphs from categorized views quickly.
Simple OO JavaScript Form ValidationBy Jake Howlett, codestore (2006-05-25)Turns out Object Orientated JavaScript is a doddle. So easy even I can do it! In fact I've been doing it for a while now, without even realising it.
Is Valid Time (with Time Zones)By Anonymous, Breaking Par Consulting Inc (2006-05-24)I am currently updating an application that used to be Notes only and is now going to be Notes and web. One feature of this application is date and time fields. The application was set up that the person creating the record would enter in a date and time in their own time zone. The record could be read by anyone in any number of time zones. So the field has the property to always show the time zone.
Web Site Checker - E-mails you if web site is downBy Jeff Blackadar , Code Bin (2006-05-24)This small application verifies that web servers are up and serving content using scheduled agents. If the site is down, the app e-mails support personnel.
Process multiple field edits at one timeBy Dave Fairchild, SearchDomino (2006-05-23)If your users find it annoying to receive multiple field-error warnings when trying to save a Lotus Notes document, this LotusScript code will allow you to show all the problems or missing fields in a single pop-up.
An easier way to view multiple columns on the WebBy Jay How, SearchDomino (2006-05-23)When you have multiple values for a column displayed on the Web, it can appear crowded and difficult to read -- especially if there is a large amount of values, with all the values only separated by commas. One solution is to display them as list items. Using a formula in a view column, the code is as follows.
Exporting email from Lotus Notes to .EML messagesBy Arthur Turner, SearchDomino (2006-05-21)Have you ever wanted to store your email in a file system, but still be able to keep the whole context of the email together? This tip will enable you to extract individual mail items and store them in a file system. The file created can be read directly from Microsoft Outlook and keeps all the internal integrity. Attachments are stored inside the message as MIME encoded attachments. The only problem I have had is with email sent from MAC, which I assume is due to the encoding used.
Auto Responder for R6By Marilyn Laudadio, Code Bin (2006-05-20)This is an "add on" to the Notes Mail template that adds a capacity to autorespond to emails that correspond to your filter rules. It integrates with the mail "common" script library, adds an autoresponder view similar to the mail rules, a form to configure your white list and the message that should be sent when responding.
Displaying associated file attachment images using computed text on a html formBy Jon Hart, Code Bin (2006-05-18)This is a little piece of code I came up with while developing a possible future OpenNTF project...More to come on the project as it proceeds...
A Splash of ColorBy Chris Blatnick, Interfacematters (2006-05-17)When designing a user interface, never underestimate the power of color. Color can do so much in an application...convey the state of a document, guide the user's path through a form, delineate one section from another and so on. Good use of color can turn a drab and boring interface into one that is interesting and fun to use. With all good things, it's also easy to over do it, so here are a couple of quick rules to keep in mind before we get to some examples.
Invoking Web services via LotusScriptBy Giles Hinton, SearchDomino (2006-05-16)If you don't want to use the IBM SOAP Connect examples, this class uses the Microsoft XMLHTTP parser to invoke and return values from a Web service. This was developed for and used with C# Web services.
Trendy Navigation BarsBy Jake Howlett, codestore (2006-05-16)Better late than never - here's an NSF download to accompany the styled lists I was talking about last week. It looks like this.
How to launch a form when opening a database in the browserBy Anonymous, Notes Ninjas (2006-05-15)This tip from my old mate Rufus, which I thought I already had in here.
forwarding from one web page to anotherBy Anonymous, Notes Ninjas (2006-05-15)Need some code to forward a user using an old link to the new link?
MAC solution for file existing with DIR function issueBy Jim Romaine, Code Bin (2006-05-15)There was an issue discovered when attempting to locate files on a MAC using the DIR funciton in Lotusscript. The error returned was "Path not found" even when the file existed. Additional investigations indicated to verify read/write security which was also verified ( by manually saving the file to various tested locations). My approach to solve this issue is to try to open the file for input and if it fails the assumption is that it would be due to the file not existing ( on MAC specifically as other OS will fail on file locking).
Java in Notes/Domino Explained: Visibility modifiersBy Mikkel Heisterberg, lekkimworld (2006-05-14)The Java programming language has 4 access modifiers. Below I'll tell you a little about each of the modifiers.
Displaying E-mail Header InformationBy Chris Whisonant, cwhisonan (2006-05-11)We all know about opening the email message and choosing View > Show > Page Source, right? On an email list someone asked how to display the header information today. I figured I would reply with a routine I have found and also use the chance to get another SnTT post out! So, here was my reply.
Sub-Categories in ViewsBy Don McNally, dmcnally (2006-05-11)Kind of by accident a while back, I discovered how to add a second level of categorization in a view without adding a second categorized column. You *can* add a second column, but that will cause a second category to appear under all top-levels; I only wanted sub-categories under one of my top-level categories.
File does not exist error w/@DbLookupBy Michael Sobczak, Lord Lotus (2006-05-11)One thing (among several) I've never understood in regards to Notes development is how the Domino Designer never gives you a compiler error when you mis-code the @DBLookup function. For example, in the statement below, I've mistakenly used a semi-colon instead of a colon between "Notes" and "NoCache".
A couple of quick Date suggestionsBy Rocky Oliver, Lotus Geek (2006-05-11)No, you lonely geeks, not dates as in "someone to go out with me", but dates as in date/time stuff in Notes/Domino. I have been working a great deal lately with the calendaring and scheduling system in Notes mail, and along the way I came up with some nice ways of accompishing simple tasks for date/time manipulation - and I thought I'd share.
NotesDateTime on servers that are MM/DD when you use DD/MM clientsBy Anonymous, Notes Ninjas (2006-05-10)If you run an agent on a server that is set to MMDDYYYY instead of DDMMYYYY as the client was, the lotusscript date functions day and month will not work.
A customized JavaScript error handlerBy Hemang Kapadia, SearchDomino (2006-05-09)With this JavaScript code, you'll be able to create a customized JavaScript error handler that will show a pop-up of the error details. This will replace the default error message at the bottom left of the Web browser.
Prompting a Lotus Notes user for input using LotusScriptBy Cregg Hardwick, SearchDomino (2006-05-09)There are a number of options for prompting user input using LotusScript. In increasing order of complexity and usefulness.
Building PHP-based UIs for IBM Lotus DominoBy Andrei Kouvchinnikov, developerWorks (2006-05-09)Discover how you can interact with Lotus Domino databases from Web applications created in the PHP programming language. Learn how to access Domino applications from PHP pages using a COM object, the Lotus Notes API, and XML.
Making Sure Users ReplicateBy Anonymous, Breaking Par Consulting Inc (2006-05-08)With a distributed application like Notes, one of the problems is that someone can have a local replica and not replicate for a while. This can cause problems like previously deleted documents reappearing, or replication conflicts. This tip describes one way of reminding users to replicate at least somewhat frequently. If the user hasn't replicated in a week or more, they are reminded to replicate so they'll have the latest information.
Create Better Looking Tables for Web Browsers and Internet MailBy Anonymous, The Learning Continuum Company, Ltd. (2006-05-08)Domino converts tables to the Table HTML tag. Some of the properties for a table and the table's cells are converted to the equivalent tags for web browsers. However, many of the table settings are not converted. This can result in a table that looks great in the Notes client but looks very different on the web. This affects not only Domino applications used with a web browser but also internet mail sent by a Notes client to other mail systems like Outlook or Yahoo that use MIME formatting.
How do you create a database that contains encrypted web-submitted documents?By Ken Yee, lotus Notes FAQ (2006-05-04)You can do this two ways, depending on whether you can encrypt this for a specific list of users or if you need to allow a changing group of users to do it.
Save and Create New Using the Same FormBy Paul F Morris, Code Bin (2006-05-04)This code can be used in a Shared Action when you want to save the current document, close the window, and compose a new document using the same form. I've seen many variations on this code but all other examples have the form name hard coded. By pulling the form name into a variable the code becomes generic and can then be Shared by all forms. An icon gif is provided as well.
Creating a marquee effect in a Lotus Notes clientBy sunilkumar vishwakarma, SearchDomino (2006-05-02)The marquee effects tag on Internet Explorer and Mozilla can also be done in Lotus Notes client welcome forms. This site offers a fantastic solution for the same using a programmatic table.
Fancy up Lotus Notes e-mail with this enhanced SendMail functionBy Mohammed Misbahuddin, SearchDomino (2006-05-02)This is an enhanced SendMail function for sending Notes/Domino document links with some extra features. In some instances, you might want to change the font or alignment of the body text; or if you want to make a Lotus Notes e-mail a bit fancier, this SendMail function will do it for you. It uses the bookmark form instead of the memo form. It's provided in the mailbox, specifically for workflow.
Dynamic view filtering in NotesBy Mick Moignard, DominoPower Magazine (2006-04-30)There's been one question that has been asked over and over again by Notes developers: "How can I parameterise a Notes view selection?" The answer was always "You can't" because it is the server that maintains the view, and at the time the server does the view, there's no opportunity to customise a view for one particular user.
Mode edition et mode lecture en webBy Julien Bottemanne, Domlike (2006-04-29)Par mis les diverses applications web que je découvre chez mes clients j'ai remarqué une "malfaçon" récurrente. En effet, ces applications utilisent souvent des sous masque spécifiques pour le mode édition et pour le mode lecture. Lorsque je creuse un peu pour en découvrir les raisons voici les réponses que l'on me donne.
Finding Duplicates Part 2By Bruce Perry, The Jagular (2006-04-27)Rob McDonagh's comment last week led me to try an experiment. This week's version of the duplicate spotter runs through a NotesViewEntryCollection instead of just getting documents from the view. This requires you to have a view that shows the field you want to check. That's not much of a drawback, and this version is much faster. This one actually does run in somewhere between 2 and 3 minutes. When I re-tested last week's version, I found that it took around 15 minutes. I don't know how I got a time of 2 minutes last week. Perhaps I was distracted by a shiny object of some sort on the Internet.
Good Looking and Useable Form ValidationBy Chris Blatnick, Interfacematters (2006-04-27)Ah...Form validation. A subject that could probably fill several tomes and has been source of debate since the web browser was first introduced. There are probably as many ways to implement validation on your web forms as there are opinions about the best way to do it. Even though there is a ton of information out there about the hows and whys of form validation, I still see many sub-par implementations of the concept in Domino-based web sites. This certainly has nothing to do with the technology itself. I think most of us know by now that you can do just about anything in Domino...
Move folders from one Notes database to another using a LotusScript agentBy Marko Bonaci, SearchDomino (2006-04-27)When you run the LotusScript code below, it will ask you which folders you want to move from a current Notes/Domino database and to which database you want them moved.
Making db link hotspots from your bookmarksBy Ben Langhinrichs, Genii Software (2006-04-27)After working with Notes at IBM for over a decade, I have several hundred DB icons on my Workspace. I'd say I only use a dozen or so on a daily basis.
Round to 0 or .5By Anonymous, Breaking Par Consulting Inc (2006-04-26)In a recent project I had a need to round a number to the nearest half decimal (so the number would end in a .0 or a .5) using JavaScript. So, if the value was 100.1 or 100.2, it would return 100. If the value was 100.3 or 100.4, it would return 100.5, and so on. There's rounding functions built in to JavaScript, but this took a little different thinking to implement.
LotusScript Required Field Validation without painBy Ian Irving, False Positives (2006-04-26)I’m missed the last couple of weeks but I’m back for another Show-n-Tell+Thursday, and doing a followup on my first post Building a better “Save & Exit” action button in Lotus Notes formula language, and the disscsion that in generated and doing required field Validation without pain. What I wanted some some good, but quick way to validate that the required field have been filled.
Making your lookups more readable and maintainableBy Erik Rydberg, SearchDomino (2006-04-25)@DBLookups are powerful and, usually, a fast way to find data within an application. When I first started developing Notes/Domino applications I used lookups everywhere, even if I was getting data from the same document. This is bad for performance.
Creating PDF documents from Lotus NotesBy Michael Marcavage, SearchDomino (2006-04-25)I had to convert purchase order invoices to PDF documents from a Lotus Notes database. However, my company did not want to buy a third-party product to do this.
Domino: Code Optimization with R7By Jerry Carter, DataTribe (2006-04-25)Domino 7 has a new agent profiling feature that produces stats on calls to methods in base classes. I used it to test out what I thought would be a big improvement on an agent's run time. There were some surprising results.
GMail labels for Lotus Notes mailBy Klaus Terman, Code Bin (2006-04-24)I created 3 actions and 1 view to mimic the label functionality of GMail (Google Mail) in my Lotus Notes R 6 mail. I havn't tested in any other releases.
Finding DuplicatesBy Bruce Perry, The Jagular (2006-04-22)I came up with this code two weeks back when it became clear there were more than a few duplicate documents in some databases I work on. It's a common enough situation that I thought the code was worth sharing.
Who Deleted That Document?By Chris Whisonant, cwhisonant.blogspot.com (2006-04-20)Ever have a problem with someone deleting data that should not have been deleted? Of course you should lock down the ACL, but what if you just want to track deletions in a database? Or possibly you want to prompt someone for a reason they deleted the document? While there is no native Domino log to display this, you can utilize the Database Script to get a handle on deletions.
Programmatic tables for hiding other complex tablesBy Rocky Oliver, Lotus Geek (2006-04-20)Today's tip may be another one of those "duh" posts, but that's ok - this will hopefully help some of our newer Domino developers out there at a minimum, so in that light it should prove useful.
View Color ColumnsBy Anonymous, Breaking Par Consulting Inc (2006-04-14)I'm sure many of you have used color columns that were introduced with Notes/Domino 6. This tip covers them a little bit and could go into the "things you didn't know" category about them.
Java in Notes/Domino Explained: Casting 101By Mikkel Heisterberg, lekkimworld (2006-04-13)To discuss and understand casting you must know that when you instantiate an object in Java you create an object on the heap and a reference to the object on the stack. In your Java agents you only have direct access to what's on the stack which means that what you manipulate in your code are the references. Since you do not work with the objects on the heap directly the reference on the stack must tell the JVM which type of object is at the memory location pointed to on the heap.
Spreadsheet integration with Lotuscript the easy wayBy Alan Bell, Dominux (2006-04-13)I have often been asked to produce reports from databases in spreadsheet format, and these days customers with an eye to the future require support for OpenOffice.org as well as Microsoft Excel. The API for Excel is not too hard to understand, but is quite irritating in places, the spreadsheet grid is a 1 based grid rather than a zero based grid, which is less convenient even if it does mean that the column lables match the column numbers. The other major irritation is that it gets x and y the wrong way round, the x axis of the grid goes downwards, rather than across. On the other hand the OpenOffice.org calc API is much bigger and more comprehensive, so even if it gets the basics right it is a very big API and a lot to learn if all you want to do is plug values into a grid.
Faster tests for empty stringsBy Rocky Oliver, Lotus Geek (2006-04-13)I was fumbling around for an entry for Show-n-Tell Thursday today, and decided that I could enter a small one today since I did a big one last week. I wasn't sure what I would put out for today, and then Bob "LotusScript Daddy" Balaban gave me a great one during the course of our Codefest today - and it was one I never knew.
Java in Notes/Domino Explained: The difference between a class, an abstract class and an interfaceBy Mikkel Heisterberg, lekkimworld (2006-04-12)Normal, or concrete, classes in Java can be instantiated using the new keyword. Concrete classes both define the functionality, that is what the class does, and the interface, that is what methods are available for you to call. Most of the classes you write will be concrete classes like the one below.
How to add an audit trail to Lotus Notes documents using FormulaBy Mohammed Misbahuddin, SearchDomino (2006-04-11)In many Notes/Domino applications, you need to track critical field values any time a document is modified and saved. Fortunately, you can add these audit trails with a relatively small amount of Formula code.
A LotusScript agent that works around the Ajax cross-domain limitationBy Sean Burgess, SearchDomino (2006-04-11)Ajax is a great tool for building slick applications, but it has one limitation that has made me dismiss using it in the past. After speaking to Chris Toohey, and getting inspiration for (i.e., stealing) some code from him, I've come up with a simple LotusScript agent that allows me to retrieve Ajax data from other domains.
CNotes - LotusScript extension Script Library using Notes C API callsBy Mika Heinonen, Code Bin (2006-04-10)CNotes is an extension to LotusScript, using only C API calls.
Domino Databases and Google SearchesBy Anonymous, The Learning Continuum Company, Ltd. (2006-04-10)Many companies use Domino as the web engine for their public web site. Google is the premier search engine for web searches. There are several books on how to change a web site to improve the ranking a web page has in Google's indexes. This tip will show you how to do one improvement to make sure the Google search engine indexes all the pages in your Domino database by using Google SiteMaps.
Data integrity: the most overlooked aspect of the Lotus Notes environmentBy Ian Smith, SearchDomino (2006-04-08)Just how important is the integrity of your data to the integrity of your business. Teamstudio's Ian Smith has years of expertise in this area and in this DominoPower Exclusive, he shares his insights. His cautions and suggestions are important. This is must-read article.
Bubble Sorting a Document CollectionBy Mike Golding, notestips (2006-04-06)I often need to search a database and get back a set of documents in a particular order. I used to use ft search for everything many years ago, then my preference shifted towards views and view entries. The problem is that when using views it becomes painful when the document counts get high, things quickly begin to slow down. Currently I am dealing with a few largish databases with over 30,000 documents in them, most of which are updated daily from external SQ sources. Whenever I can avoid touching views I am more than pleased to do so, which means a return to deb.ft search. The problem, getting the results in the order you require.
K-way tree structure for representing hierarchy of docs in a viewBy Marko Bonaci, Code Bin (2006-04-06)Script Library containing a n-ary tree implementation, which is used to represent a hierarchy of NotesDocuments on the hierarchical view.
Find Added To File (Part 2)By Anonymous, Breaking Par Consulting Inc (2006-04-05)Last week I started talking about how to find the "added to file" value for documents in a database. This week I will finish the tip. You should read last week's tip first before starting with this one.
View Color ColumnsBy Anonymous, Breaking Par Consulting Inc (2006-04-05)I'm sure many of you have used color columns that were introduced with Notes/Domino 6. This tip covers them a little bit and could go into the "things you didn't know" category about them.
Archive email attachments without deleting the original emailBy Rebecca McGowan, Code Bin (2006-04-05)This is a modified version of the Archive\Selected Documents agent in the OpenNTF Mail Experience. Our users send and receive huge attachments and their mail files quickly fill up past the quota. They hate having to archive email for projects they are still working on and need to locate quickly. So, this agent creates a copy of the email in the archive file, but leaves the original email in place. The attachment in the original is replaced with a doc link to the archived copy and a listing of the filenames that were archived. When the user no longer needs the email in question, they can delete it from their mailbox entirely, since a full copy is already in the archive. It can be used at the users discretion and doesn't require changes to their archive settings.
Sort ClassBy Heiko Fischer, Code Bin (2006-04-03)Ok, so sortation is by no means a new topic, but nevertheless I'd like to share a handy class I created a long time ago which serves just this purpose. The class supports five different sort algorithms and the same amount of sort methods, and is quite easy to use. See the "About" document for a description, and the "Sort.Class" script library for the implementation details.
Décodage des URL avec Domino : oui mais nonBy YoGi, darkBlog (2006-03-30)Quel est le problème cette fois-ci, me demanderiez-vous ? Et bien observez l'extrait de code publié dans ce billet, rapprochez le de cet autre récent billet évoquant la limite de taille des chaînes de caractères dans une formule, et je vous laisse deviner la suite : un texte à décoder trop volumineux amène à un lamentable croûtage de l'Evaluate(). Voilà qui est bien fâcheux. Alors, comment gérer ce type de situation, sachant qu'il n'existe pas de méthode native en LS pour décoder des URLs et que l'utilisation des formules est à proscrire ?
Modifying document item valuesBy Blessan V Philip, SearchDomino (2006-03-28)This Formula Language code can be incorporated into a toolbar button for Lotus Notes client 6.5. When a database document is selected and the button is clicked, all item values will be displayed in a pop-up.
Sign a Notes/Domino database with three lines of LotusScriptBy Hemang Kapadia, SearchDomino (2006-03-28)With this LotusScript code, you can sign a Notes/Domino database without using Lotus Notes Administrator. Just create an agent with the LotusScript code snippet below and then run it. Right click on Run in your client, or SignAgent?openagent through your Web browser to sign the Notes/Domino database.
Domino: Object ArchitectureBy Jerry Carter, DataTribe (2006-03-28)I had floated the idea a while back of talking about data architecture, and with one Yes vote from the gallery you'd think I would have done something about it earlier. Truth is, I wanted to do it as a Lotus Script article to help illustrate the ideas and concepts to LS programmers who are building up their skills. It wasn't until this week that I actually had the practical experience of trying to do object architecture in LS that I knew I could take you there. So, finally it is here, Object Architecture for the LotusScript Programmer, Part I.
Find Added To File (Part 1)By Anonymous, Breaking Par Consulting Inc (2006-03-27)Have you ever dealt with someone having a local replica of a database and not replicating it on a regular basis? Then you have probably seen a lot of previously deleted documents "reappear" on the server. When it does happen, you can look at the "added in this file" document property (figure 1) to see when the actual document was created on the server. Unfortunately, this property is not available to LotusScript. But it is listed when you look at the XML of the document. This tip is the first in a two-part series showing how to get this value programmatically.
Improving Data LookupsBy Anonymous, The Learning Continuum Company, Ltd. (2006-03-27)This tip looks at a way to improve the performance of data lookups using @DBLookup. Multiple @DBLookups on a form can be a big performance hit. A better way is to lookup all the data in one @DBLookup and then parse out the data to the different fields. This can drastically improve performance.
Quick-n-Dirty way to build a LS Web Services clientBy Rocky Oliver, Lotus Geek (2006-03-26)Web Services offers a great way to integrate heterogeneous systems in a predictable, straightforward, and loosely-coupled format. However many Domino developers are intimidated by both the complexity of the XML formats used for Web Services (WSDL and SOAP), and also because the talk is mainly of consuming Web Services in Java, which has a nice set of tools for doing so. But I'm here to tell you that Web Services (and XML in general) is not Java only, and it can be used by the average Domino developer to build robust, integrated systems in LotusScript - you just need some help, and this article intends to give you a bit of that help.
LotusScript: ThrowableBy Jerry Carter, DataTribe (2006-03-24)One of the handy things you can do with classes is centralize repeat code so you can make changes in just one place.
Validating XML when parsing with NotesSAXParserBy Mikkel Heisterberg, lekkimworld (2006-03-23)When using and parsing XML for any purpose other than purely educational you really want to be using a DTD (Document Type Definition) to make sure the document is "valid" in the eyes of the application. This is possible both when using the DOM and the SAX parser, though there are differences as to when you might discover a violation of the DTD.
Web dynamique avec Domino : pareil, mais en mieuxBy YoGi, darkBlog (2006-03-23)Vous vous souvenez de la méthode de développement web dynamique que j'ai présenté fin 2004 ? L'idée de base était d'utiliser des sous-masques comme support de cache, en regénérant des bouts de code HTML (typiquement des "portlets") sur action de l'utilisateur ou sur exécution d'une tâche planifiée, en les stockant dans des sous-masques (donc directement dans le design de la base) puis en les restituant aux visiteurs en incluant lesdits sous-masques. Ce qui permet, par exemple, de monter une architecture type portail sans frame ni javascript, et surtout sans la moindre consommation de ressource serveur (pas d'agent WQO, pas de @DbLookup, etc), ce qui est loin d'être négligeable quand la performance est un point critique. Inconvénient toutefois, de par la nature du mécanisme (un cache), la gestion de profils est rendue difficile.
Categorizing lists using @formula languageBy Jens Polster, DomBlog (2006-03-23)I think that Show-n-Tell Thursday is a great institution. Although I don't get to blog stuff every week I wanted to share a piece of code I which again shows how powerful the @formula language is. What I like very much about @forumla language is its ability to very efficiently process lists. You could do amazing things with the functions in R5 but @Transform and @Sort have been great additions in Release 6.
Stopping Copy and Paste, in Lotus NotesBy Ian Irving, False positive (2006-03-23)It is very useful for many kinds of Lotus Notes applications (like work flows), to stop users from being able to copy and paste a document into a database application. In R5 a new kind of Agent was introduced, trigger on the Run option ” “If Documents Have Been Pasted”.
Writing better hide-when formulasBy Ben Langhinrichs, Genii Software (2006-03-23)It has always surprised me how many questions are raised in the various Notes/Domino forums about hide-when formulas. No, I don't mean the (many) about hide-when formula bugs. I mean the basic process of creating a hide-when formula that does what the user wants. I think that part of the problem is that many non-developers have the need to create a hide-when formula on occasion, and that another part is that people think in terms of "Show When", not "Hide When". In any case, I thought I would write a short primer about hide-when formulas to link to when people are confused.
The Principal FieldBy Jake Howlett, codestore (2006-03-21)We all know that you can spoof the email address of an email sent by LotusScript. You just set the Principal field. Right? Well, what if it doesn't work as expected?
Agent to explain your read/edit access to a documentBy Andre Guirard, Code Bin (2006-03-21)There seems to be a lot of misunderstanding surrounding readers and authors fields. I posted a FAQ on the subject but it's still not easy to scan all the fields in a document to figure out why you should, or should not, have access to read or edit the document.
Improve performance of Domino Web formsBy Kapil Daddikar, SearchDomino (2006-03-20)This tip explains how to load Domino Web forms faster and even reduce the amount of time it takes to save. The technique outlined here is particularly beneficial to developers who have a habit of generating HTML for all fields on a form.
Invoking Web Services using LotusScriptBy Giles Hinton, Lotus Notes & C# Developer (2006-03-17) An application I'm currently building needed to call a C# web service, and seeing that there still doesn't seem to any support for it in Notes 7 (that and we're still using 6.5), I decided to see if there was anything out there that would fit the bill.
Days Between DatesBy Aonymous, Breaking Par Consulting Inc (2006-03-17)For a recent project, I needed the ability to compute the number of days between two dates. In Notes formula language, this is pretty easy to do. But I needed it done on the web. After a little searching, I found a piece of code on http://javascript.internet.com that I was able to modify to fit my needs. I modified the code to be a generic function, and thought I'd share it.
Secure RSS Feeds With DominoBy Jake Howlett, codestore (2006-03-17)My tips have dried up I'm afraid. Instead, today, I've got a lesson I learnt recently, which is worth passing on. It's of use to anybody who might encounter the following in a project - SSL, RSS and session-based authentication.
Database Properties at a glance to copy Title / Server / FilenameBy Jim Romaine, Code Bin (2006-03-17)If I recently had a local replica open in design and also had the server version open in the recent database list, I find myself using the above code to be certain of which version I have open. The tool tips built into designer don't seem to work well for me ( after toggling between designer and client and having several different apps open the current open window doesn't show the full path and sometimes led to confusion).
Pivot tables from Domino dataBy Vince Schuurman, VinceSchuurman.com (2006-03-16)There are numerous options to create graphs from Domino data, today I'll show you how to create predifined Excel graphs with minimal efforts.
Tab Highlighting in CSSBy Jake Howlett, codestore (2006-03-16)One of the tips I had jotted down was a bit of a joke really. Along the lines of "don't eat yellow snow". This was a lesson I learnt the hard way some time ago — If your only access to a server console is via webadmin and you need to restart the web server, make sure you use "tell http restart" and not "tell http q". There's no way to follow this up with "tell http load" when http ain't there!
First Attachment RevisitedBy Rocky Oliver, Lotus Geek (2006-03-16)Last year I wrote an entry about some code I wrote that replaced the Notes feature known as "launch first attachment". I explained the technique I used to Bob Balaban the other day, and he thought it was another "righteous hack", and he suggested I use it for a Show-n-Tell Thursday entry. I remembered I had written it up before, but since that original writeup I have enhanced it a bit, and I have also created an example database to demonstrate it; therefore I think it is time to cover it again.
How to print a form in landscape format automaticallyBy Michael Marcavage, SearchDomino (2006-03-14)Have you ever wanted to change the page orientation of a form or page to landscape for printing, without the user needing to go into Print Setup? Here's how to do it: Put this somewhere on the top page and make it pass through the HTML or HTML Head Content section of the form or page.
Trimming Names in LotusScriptBy Jake Howlett, codestore (2006-03-14)If you thought yesterday's tip was simple, check this out.Have you ever written code of questionable quality like this?
Avoiding Hard Coding of Group Names.By Ian Irving, False positive (2006-03-14)Why? Because Group names change; over time, between your Development, UAT (User Acceptance Testing) and Production enviroments, between diffenet customers.
Report as Spam (forward MIME, like View | Source)By Ryan Benech, Code Bin (2006-03-14)I've created a LotusScript agent and view action button that reports spam to an email address similarly to how you would do it manually (View | Source... and Forward... ) You may use this however you want (GPL) but please share your changes. Some improvements can be made (see todo in comment header), but it works well enough with 3rd party spam filters I've used.
Lotus Domino 7 Application DevelopmentBy Philip Monson, Redpaper abstract (2006-03-14)With Version 7, IBM Lotus Domino Designer software builds on its reputation for being a premier collaborative application development tool for Lotus Domino software-based applications.
devWorks Posting With No RepliesBy Chris Whisonant, Chris Whisonant (2006-03-13)The other day I posted the following at devWorks. I haven't had any replies so I thought I would post it here too. I am in the process of setting up mail archives. I want to send a button to users that will create a Bookmark Bar Icon directly to the DB (by the way, does anyone know how to do this without restarting Notes to make the icon display?).
JavaScript Trim() FunctionBy Jake Howlett, codestore (2006-03-13)I'm going to be too busy this week to blog anything insightful, so I'll do another tips week. Starting today with a little extension to the JavaScript String object.
"Entry not found in index" when opening designer clientBy Anonymous, Notes Ninjas (2006-03-13)"Entry not found in index" when opening designer client. This error can be caused by dragging a bookmark from the client to the designer. There are other reasons.
Database Properties API Demo -By Jerry Carter, Code Bin (2006-03-13)I used http://www.freetranslation.com, my knowledge of Lotus notes and my very basic understanding of Spanish. Some of it reads a litlle funny to the English reader, but should make some sense. Most of the labels and message prompts have been translated, most readably. Only a few notes and prompts were a bit too cryptic for me.
OLE constantsBy Anonymous, Notes Log (2006-03-11)Microsoft Office products like Word, Excel and Project can be accessed by LotusScript code running on a Windows machine through the OLE interface made available by the CreateObject function:
Repeat StringBy Anonymous, Breaking Par Consulting Inc (2006-03-10)I recently had a need to repeat a string using JavaScript. I'm sure there are other ways to do this, but at the time I couldn't find anything good on the internet to do it (maybe I wasn't searching for the right stuff). This function will take a string and repeats it "x" times, up to a maximum length.
Formula AverageBy Chad Schelfhout, Chadsmiley (2006-03-10) A co-worker was looking to take the average of some numbers. Surprisingly there is not @Function to do this. His code something like this: ( Field1 + Field2 + Field3 + Field4 + Field5 ) / 5 ;
sorting documents via InViewEditBy John Vaughan, jonvon.net (2006-03-09)i do lots of development in the Notes client. i needed an easy way to sort docs on the fly, and decided to try the InViewEdit event available as of Notes 6.
Design: Ajax Powered LoginBy Jerry Carter, DataTribe (2006-03-08)Getting tired of ugly Domino login forms or faceless browser pop up dialogs? Once again showing a flair for melding various techniques, Mark Barton brings us an elegant, cutting edge modal login interface utilizing DHTML, Ajax, and JSON JavaScript notation.
Change Notes Design Template Name With LotusscriptBy Kevin Pettitt, Lotus Guru (2006-03-08) I had a need to offer my client an easy way to change the design template for batches of user mail files, and went first to the Notes 6/7 Forum where I found this thread. As you can see from that I managed to take a great little piece of code posted by "Rufus A" last year and make it suit my purposes. Pretty cool - hey, I should blog about that! But before I got too high on myself I figured I should do a wider search to see how "original" this really was. Lo and behold, the OpenNTF Code Bin revealed this not so little gem posted by Davide Varotto and built on Damien Katz's DBDesign class that appears to offer much more comprehensive functionality. While I haven't tested Davide's code, it certainly looks promising.
LotusScript: Thinking ClassBy Jerry Carter, DataTribe (2006-03-07)If you're a long time or new Lotus developer, this applies to you. It's time to start thinking in terms of classes if you haven't been already. On Thursday, Mark and I will show you some fun stuff using JSON, amongst other cool technologies. JSON is worth getting to know in itself. It's an object oriented way of programming that is largely language independent to a degree. It can't be directly applied to Lotus Script, but it's really about using objects instead of lengthy procedures, and that's what I want you to start thinking about now. Why? Like it or not, Lotus Script and @Formula languages are not long for this world, and you need to start preparing yourself for whatever you do next, which has a high probability of being OO in nature and likely sans @Commands. Come on, up and at'em!
basehref Shared Field: Logic TipBy Chris Toohey, Domino-Guru (2006-03-04)Quick tip here... dealing with , and Internet Site Substitution Rules.
Multi-Column Display FieldBy Anonymous, Breaking Par Consulting Inc (2006-03-03)Recently I was working on an application and had a need to show information in multiple columns to save screen space. The source field was going to contain somewhere around 30 items, but the exact number was unknown. And the values to display we're short, either. Although I'm not at liberty to say exactly what the values were, a good example would be capitals for each of the United States of America. The user would pick somewhere around 30 state capitals and the values would be shown. This tip shows you how to display this information, coming from one field, into multiple columns.
Adding Ajax to Domino ViewsBy Jake Howlett, codestore (2006-03-03)After seeing the Ajax on Rails demo yesterday I bet I know what you thought - can we do that in a Domino View? Me too.
MakeSureDirectoryPathExists and GetShortPathNameBy Rocky Oliver, Lotus Geek (2006-03-03)Here are two tips for LotusScript developers. Both are very useful when working with files and directories, and both will lead you, gentle developer, into the wild and wooly world of C API calls from LotusScript.
CSV Files in LotusScriptBy Julian Robichaux, nsftools (2006-03-02)This week's Show and Tell Thursday installment deals with reading CSV (comma-delimited) files in LotusScript.
Checks Agent Restriction level to aid migration to R6 and aboveBy Seshagiri Sriram, Code Bin (2006-03-02)This database contains code to identify scheduled agents and check if they perform any restricted operations. This wil aid organizations in migrating apps to R6 and above. Note that it does not identify external C/C++ code or if LS code is not available.
Show and Tell Thursday: Dynamic Rich Text web content using WebQueryOpenBy Thomas Duff, Duffbert's random musings (2006-03-01)Having not done a lot of web development in Domino until the last couple of years, I have to 'fess up... I've never used WebQueryOpen/WebQuerySave agents, nor have I ever had to figure out the DocumentContext property. That all changed today...
How to transfer values between Lotus Notes and Internet ExplorerBy Janardan Pagadala, SearchDomino (2006-02-28)This tip explains step-by-step how to use LotusScript to open an Internet Explorer browser as dialog box to transfer values between a Lotus Notes client and a Web-based application.
Drag-n-Drop Sorting of DocumentsBy Jake Howlett, codestore (2006-02-27)Imagine the following situation - say you've got a set of documents which are all children of one container document. From within this parent container document you want to be able to quickly change the order in which the child documents appear. Sound familiar? It's a scenario I've come across a couple of times before and only now have I found a solution I'm happy with enough to share.
Changing View Actions Based on the DocumentBy Anonymous, The Learning Continuum Company, Ltd. (2006-02-27)A little known setting in a View's properties box will allow actions to be hidden or shown depending on which documents are highlighted in the view. This allows the action to be hidden if it is not appropriate for that document. For example, an action to mark a document as "active" could be hidden if the document is already "active."
Computing WebDbName on the ServerBy Anonymous, Breaking Par Consulting Inc (2006-02-24)The other day I was writing an agent that was running on a schedule. It needed to update a document in another database. One of the things it needed to update was the path to the other database. Luckily, the Evaluate macro helped me out.
Show and Tell Thursday - Tree Convertor Takes RootBy Jerome E. Carter, DataTribe (2006-02-24)Tree navigators come in many sizes. Few of them fit with the way Domino delivers data. Here's one that not only fits, it can grow to any size.
Updating ini files (other than notes.ini) - one method...By Rocky Oliver, Lotus Geek (2006-02-24)I was recently contacted by Katherine Emling (used to be Katherine Spanbauer, the security czarina at IBM/Lotus) about possibly writing a little file to help users more easily apply the recommended workaround in Technote 1229918, which deals with a security issue with the Lotus Notes File Viewers.
Show-N-Tell-EntryBy Susan Bulloch, Notes Goddess (2006-02-23)Alright, I'll join the fray on Thursday - but I have to state this up front - I am not, never will be a developer. I stink at it. If I wrote this code, it would not work - no way, no how. However, I hate return receipts, so I got a friendly developer to write some code for me to allow me to delete the annoying little buggers if I want to.
Architecture: The "Report Profile"By Chris Toohey, Domino-Guru (2006-02-23)While I feel it's important to provide real-time information to your application users, large databases that handle several thousand transactions per day, and more accurately, the reporting of or data interaction with said transactions can make even the most streamlined application slow with embarrassingly sluggish response times. In these cases, for those applications that exceed the "logical" document count for a Domino database (I'd say 200,000+ documents for a single database) I typically recommend the implementation of transaction profiles - the utilization of an architecture which I'll attempt to explain in the following article.
agent to render notes view for the webBy Mike VandeVelde, Code Bin (2006-02-23)I built this agent to spit out existing notes views to the web looking as much as possible as they do in the notes client. Simply copy the agent into any database that is available on the web (, sign it,) and try it with one of your views. The attached database includes this 1 agent. Works on categorized or hierarchical views. I'd love to hear some feedback on it.
LotusScript version of @DbColumnBy Marko Bonaci, SearchDomino (2006-02-22)The function works the same as @DbColumn formula. If you don't understand the function arguments, locate DbColumn in Designer's Help.
Invalid Formula: Unknown Function/OperatorBy Anonymous, Notes Ninjas (2006-02-22)"Invalid Formula: Unknown Function/Operator" is an error message to do with Notes Versions problems.
Acquire Image From Scanner in Windows XPBy Daniele Grillo, Code Bin (2006-02-22)In Windows XP you can use WIA for comunicate with WebCam or Scanner Device and transfert file to a Rich-Text.
Javascript hasRole() functionBy Bob Obringer, bob-obringer.com (2006-02-21)I've pretty much exclusively been doing web client design for the past 5 years or so. 5 years of trying to grab just a handful of the things we took for granted in the Notes client. Recently, I've been doing a lot more work where my pages are mostly built using javascript. When that's your day, you quickly start looking for javascript calls to get what a simple @formula would normally get us.
Audit your server's databases with this tool. Manage your ACLs and more.By Stan L Uptagrafft, Code Bin (2006-02-21)This is a Notes database. Although I used ver7 to create it, the code should work just fine with R5 and above. This will collect information on the fly of all the databases that match your search criteria or use asterisk to collect information about every database (nsf) on your server, or local. This will remember each time you execute, so you can monitor changes ea. week/month and show differences across servers. Find out if you have scheduled agents set to run on incorrect servers! Find out if one ACL is different from another replica's ACL. See which are full text indexed or scroll through a view of all databases and see the maximum internet access settings.
Testing for JavaScript Support in WQS AgentsBy Jake Howlett, codestore (2006-02-18)By now you are probably all familiar with using rich text editors with Domino. It's almost 2 years since I first talked about it, so I'm guessing you've all seen them used with Notes Rich Text fields by now and are aware of the methods involved. It's a technique I've used more than a few times on projects since I discovered these handy little editor plugins. I almost take them for granted. Until recently that is.
View of Todays DocumentsBy Anonymous, Breaking Par Consulting Inc (2006-02-17)For a recent project, there was a need to show (on the web) documents created "today". There are a number of ways to do this, including using time sensitive formulas (either @Today or @Now) in a view. This is a new way of doing it that doesn't involve time sensitive formulas in views or scheduled agents.
Add/Replace an Image Resource to a DB using DXLBy Lou Capozzoli, Code Bin (2006-02-17)This is LotusScript from an agent that uses DXL to add or replace image resources in a Notes DB using DXL. It is only tested in R6.5, but R7 & possibly R6 support should be coming soon.
NotesDateTime help sheetBy Anonymous, Notes Ninjas (2006-02-16)Here are some helpful hints on using NotesDateTime, calendar views, converting between date fields and notesdatetime values, durations etc
Show and Tell: Accessing SQL Server From NotesBy Julian Robichaux, nsftools (2006-02-16)Since there has been some recent discussion over what Lotus Notes "coexistence" means, I thought I would use my first Show and Tell Thursday installment to discuss a way that I often have to "coexist" my Notes applications.
Sending specific agent errors to a mailbox instead of debuggingBy Yonit David, SearchDomino (2006-02-14)In order to get a better handle on errors coming from applications for which I'm responsible, I built a script library with a function that sends an e-mail to a specific mail database with the error information that I can categorize by database. I have the mail sent to a different mail database in production and development, so that it doesn't have to cross servers in development , so as to not bog down the production mail server if something is seriously wrong with an agent in development).
Lotus Notes/Domino 7 application performance: Part 2: Optimizing database viewsBy Raphael Savir, developerWorks (2006-02-14)In part two of this article series, we explain how you can build views that are optimized for performance in your Notes/Domino applications.
Automatic Refresh of Web Reservations PageBy Anonymous, Notes Ninjas (2006-02-14)A customer has a web page that shows the room reservations on a LCD screen near the meeting room suite. The page refreshes every 5 minutes using the META Refresh tag, to show who is in which room, and which rooms are free. Nice. Problem: If the page fails to load, due to the server being down for backup or the network is down for service in the weekend or evening the page will not load and will never load.
PCDATA converter suitable for xml and rss textBy Anonymous, Notes Ninjas (2006-02-14)XML and RSS are a bit fussy over characters in item or title values. Here is a lotusscript function to convert a string to entity-reference characters.
Using Macromedia Flash with IBM Lotus DominoBy chris Brandlehner, chris.brandlehner.at (2006-02-13)I was looking for a way to display a random photo in a BlogSsphere Block. Instead of writing a LotusScript or Java web agent I decided to to something new (to BlogSphere) also to proof the point that you can use IBM Lotus Domino for almost everything. So I wrote a very small Macromedia Flash file which loads the list of all available photos in a xml format to randomly choose one to display.
Delete From ListBy Anonymous, Breaking Par Consulting Inc (2006-02-10)When dealing with lists (arrays) in formula language, every once in a while you want to remove an entry from the list. There are slick ways of doing this with @Replace or other ways, but those have their drawbacks. For example, with @Replace, if there are duplicate entries in the list both will be removed (that may or may not be desired). This code, although a little longer than those "slick" ways, is pretty easy to follow and removes one and only one element from a list in formula language.
DBLookup and Categorised ViewsBy Jake Howlett, codestore (2006-02-08)Ok, I've got another problem for you. This time I think it's really simple. Not only am I risking this becoming my own forum but now I am about to risk looking really stupid too.
List Of YearsBy Jake Howlett, codestore (2006-02-07)One strength of Notes development is the way it gives us so many approaches to achieving the same goal. Lots of different languages and methods to choose from. The formula language for one is great. It gives us simple ways of achieving seemingly complicated ends.
Customize Domino MailrulesBy chris Brandlehner, chris.brandlehner.at (2006-02-06)I am using customized mailrules for some time, motivated by Chris Linfoot and dominopower. These customizations add several conditions to the template.
Java and VB classes based on the original DCO (Domino Collaborative Objects)By Vince Schuurman, Code Bin (2006-02-06)This database contains 2 design elements that you should copy to the design of any Notes database in which you need the ability to select one or more documents and change/add multiple fields.
Appending two NotesDocumentCollectionsBy Michael Adams, SearchDomino (2006-02-05)Here is some simple LotusScript to append two NotesDocumentCollections together.
Calling a Domino 7 Web Service from .NET with security and identityBy Gary Devendorf, Advisor blog (2006-02-02)One thing I learned at Lotusphere was Web Services security. So I created a demo with a secure web service and a client windows form. you can down load the demo from www.msdomino.net.
Demos of XML and DXL APIs in Notes/DominoBy Anonymous, Sandbox (2006-02-01)A Domino database containing several agents in LotusScript and Java that do XML and DXL processing using DOM, SAX, XSLT, DXL Export, and DXL Import. All additional files needed, including a C API example of XSLT, are attached in the database.
Purge Deletion Stubs ProgrammaticallyBy Anonymous, Breaking Par Consulting Inc (2006-02-01)Many of you have heard about the "trick" to purge deletion stubs from a database. The trick is to move the replication cutoff date (under Replication Settings, Other, Only replicate incoming documents saved or modified after) to a date two days in the future. When a database gathers many deletion stubs because of frequent creating and deleting of documents, the database performance can go downhill quickly. A customer of ours was seeing this performance degradation in one application, and it was specifically because of deletion stubs. We wrote this script library where a database can have that specific replication setting updated programmatically.
Domino Outline 2 AJAX Menu TransformerBy Bruce Elgort, bruceelgort.com (2006-02-01)Back in December 2005 Jon Hart created the Domino Outline 2 AJAX Menu Transformer project on OpenNTF. This application allows you to design a menuing system for your web applications using Domino Designer Outlines.
One Week SolutionsBy Jake Howlett, codestore (2006-02-01)First let me thank you all for the responses to yesterday's conundrum. Lots of great ideas, one of which I've now switched to using. The solution I originally came up with seems kind of stupid now. Let me describe that first.
Domino Spring TemplateBy Anonymous, java.net (2006-01-31)The project provides Spring integration for domino including a spring like template for domino. The client application using this template will be able to access domino backend objects via diiop connections using domino session pooling and will not have to care about domino session creating, db opens, view opens, lookups and/or recycling on any domino object. Just map the domino document to your model plain java object and you are ready.
Converting a date to a week number and vice versaBy Klavs Thor Olesen, SearchDomino (2006-01-31)This tip shows you how to convert a date to a week number and vice versa using Formula Language. It was written at R4, and I can no longer remember why it works -- but it does.
Importing data from filesBy Amy Weston, SearchDomino (2006-01-31)When processing files from other sources, sometimes you have fixed length files and sometimes you have delimited files. The routines SetVariableValueByLen and SetVariableValue are two generic subroutines that facilitate the process nicely and unclutters your code.
The DigestSearch method for Lotus Domino databasesBy Andrei Kouvchinnikov, developerWorks (2006-01-31)This article introduces DigestSearch, an alternative solution for working with IBM Lotus Notes Profile documents and for performing simple, high-speed searches. For searching server-based databases from a Notes client, DigestSearch is twice as fast as any other search method available, outperforming both full-text search and the GetDocumentByKey method.
Lotus Notes/Domino 7 application performance: Part 1: Database properties and document collectionsBy Raphael Savir, developerWorks (2006-01-31)No Lotus Notes/Domino developer wants to hear the following comment: "Beautiful application, too bad it's so slow!" In this two-part article series, we explain how you can avoid this embarrassment by building Notes/Domino applications optimized for performance.
Flagging and Marking Messages in Notes 7By Anonymous, The Learning Continuum Company, Ltd. (2006-01-30)This tip describes how to use two of the new Mail features in the Notes 7 client. Message flagging allows a message to be flagged for follow-up and Message Marking displays a special icon in the Inbox folder when your name is specifically in the to or cc fields.
Domino Facelift: How the javascript calls get attached to the formBy Lance Spellman, dflBlog (2006-01-29)This is the 3rd article in the introduction to the Domino Facelift. The first article's here if you need to start from the beginning.
Co-editing in DominoBy Alan Bell, Dominux (2006-01-28)In the Innovations lab at Lotusphere I saw some pretty inspirational stuff, and got a somewhat disturbing insight into the internal communication and cross-pollination of ideas within IBM. Firstly the cool stuff, there are a couple of groups within IBM looking at advanced real-time collaboration where you have several people in different locations working together on the same task, this could be a word-processing task where you might have a single document but several people each have their own cursor position and can make changes that the other editors see in realtime. In another demo the co-editing task was working with a Java based tree object, clicking, scrolling or dragging in one window would update the other. This demo was done by intercepting all the onchange events of the objects and when anything changed it would pick up the value property of the object and throw that across to the other window.
Mail Web Service SampleBy Anonymous, Sandbox (2006-01-26)This sample database contains a web wervice that provides Mail functionality from the Lotus Domino server. This database uses the new Lotus Notes/Domino Web Service design feature and provides functions for reading and writing mail from a user's mail file.
Domino Facelift: the concept explainedBy Lance Spellman, dflBlog (2006-01-26)Now that Lotusphere is complete, it's time for some detailed explanations of the Domino Facelift. While Dwight and I were thrilled that a number of people "got it" and validated the concept, we're also disappointed in ourselves as there were many who didn't get it or failed to see the value in it. Here's the start on a series of articles and screencams to really go through it point by point.
Domino Facelift: Forms ExplainedBy Lance Spellman, dflBlog (2006-01-26)This is the 2nd article in the introduction to the Domino Facelift. The first article's here (updated link) if you need to start from the beginning.
Helpdesk Web Service and Sample ApplicationBy Anonymous, Sandbox (2006-01-23)Sample database with Web Service design elements that expose "Helpdesk" functionality from the Lotus Domino server. This database uses the new Lotus Notes/Domino Web Service design feature.
ChangeFieldValue utility updatedBy Joe Litton, joelitton.net (2006-01-20)I've posted a slightly updated version of the ChangeFieldValue utility (I'd posted about the initial useable version in Aug 2005). This is just a little minor clean-up, and I've added the ability for one to add fields to the selected documents, in addition to modifying existing fields.
Demos of XML and DXL APIs in Notes/DominoBy Anonymous, Sandbox (2006-01-20)A Domino database containing several agents in LotusScript and Java that do XML and DXL processing using DOM, SAX, XSLT, DXL Export, and DXL Import. All additional files needed, including a C API example of XSLT, are attached in the database.
Form Validation on the Web Using AJAXBy Prabagarane Govindan, Code Bin (2006-01-20)This simple example demonstrates the usage of AJAX for field validation on the web. For demo purpose, the form checks the duplication for 'AlbumID'.
Form Validation on the Web Using AJAXBy Prabagarane Govindan, OpenNTF (2006-01-20)This simple example demonstrates the usage of AJAX for field validation on the web. For demo purpose, the form checks the duplication for 'AlbumID'.
Conditional Agent LoggingBy Anonymous, Breaking Par Consulting Inc (2006-01-18)Agent logging is a great feature that's been around in Notes ever since LotusScript has been around (starting in Notes R4). But it's something not everyone takes advantage of. One of the reasons (IMHO) for this is because way too much information is logged every time the agent runs, causing an overload of information to be written to your agent log, that you don't look at anyway. Logging is one of those things that you wish you had in there, but only when you need it. This tip talks about implementing what I call "conditional logging" for your scheduled agents.
Lotus Domino Access for Microsoft Outlook and Lotus Notes interoperability: I want my doclinks!By Felicia Sienkiewicz, developerWorks (2006-01-17)What could be more useful than Lotus Notes doclinks? This tip explains how you can extend Notes doclink functionality to Microsoft Outlook.
Manipulating data in Domino Web AccessBy Vinod Seraphin, developerWorks (2006-01-17)Read this article to learn how you can customize Lotus Domino Web Access to adapt to the specific requirements of your Notes/Domino data. We describe how Domino Web Access determines the appropriate scene to play for a form type, how data is reflected within the scene, and how updated data is validated.
NotesSystem and DocumentExtendedBy Chad Schelfhout, Chadsmiley (2006-01-17)Things are building. Simulating an abstract class in LotusScript started some discussion with Tim Triponcy, who combined the abstract classes with Julian's singleton concept. The result was a System class that would not have to be initialized but could be used by anything that included the script library. I like Tim's concept so much that I had to take it and run, with some minor changes and improvements (at lest from my perspective). I also wanted to take this same NotesSystem (new name) and port it to Java, since I have been doing most of my development in Java for Domino, using Domiclipse (awesome tool). Because Java can access the backend of Domino some of the UI methods have been commented out. There is one other class that I created called NotesDocumentExtended (DocumentExtended in Java) to make my life easier and so I can be more lazy.
Use Split/Join To Remove Entry From A ListBy Anonymous, Breaking Par Consulting Inc (2006-01-13)Recently I was working with arrays in LotusScript. Each element of the list was a text string. I had a need to remove an element from the list. There are lots of different ways to do this, and here is one more.
Unzipping files from LotusScriptBy Dwight Wilbanks, dwightwilbanks.org (2006-01-13)Last week, I was building a server autoloader for FCKEdit, that is, an agent that runs in unrestricted mode on the sever and unzips an attachment to the domino\html directory. That way, fckedit can be stored at http://server/fckeditor or http://server/fckeditor22 if you prefer to keep versions separate for caching reasons.
Creating Connection documents using LotusScriptBy Anonymous, Lotus Support Services (2006-01-13)You want to mail a hotspot button to users that will create or update a Connection document in their local address books. How can this be done using LotusScript?
RFC882 Date format function for Lotus Notes XML and RSSBy Anonymous, Notes Ninjas (2006-01-13)Converting from notes date items to RFC-882. Here's the code.
PCDATA converter suitable for xml and rss textBy Anonymous, Notes Ninjas (2006-01-12)XML and RSS are a bit fussy over characters in item or title values. Here is a lotusscript function to convert a string to entity-reference characters.
Manually serializing NotesDOMNodesBy Johan Kanngard, dev.Kanngard.net (2006-01-11)In my earlier post today, I described a problem I have, where I wanted to get the XML string of a DOM tree. I’ve started writing my own routine, this is what I have right now. It’s far from complete, since it can not handle namespaces, CDATA etc.
Serialize a DOM tree in LotusScript?By Johan Kanngard, dev.Kanngard.net (2006-01-11)I have a problem, that nor I nor any of my colleagues can’t solve easily. I have several classes that are passing objects/variables between them. On of them is handling Web Service request, and parsing the responses to a NotesDOMDocumentNode via the NotesDOMParser. The NotesDOMDocumentNode is passed returned, and are used in several places to extract information. But, I need to cache the response, so concurrent request with the same parameters are sped up.
Browsing the web with LotusScriptBy Peter von Stöckel, Bananas (2006-01-11)Lately, I have made several agents that read web pages and analyze the contents, and I know that I'm not the only one doing this. However, most people seem to use either Java or the MS COM object WinHttp.WinHttpRequest.5.1. I don't. I haven't yet learned how to use Java, and I found limitations in using the MS COM object. Instead, I use the built-in functionality of the Notes/Domino Web Navigator with LotusScript.
Simulating abstract classesBy Chad Schelfhout, Chadsmiley (2006-01-11)Java allows the creation of abstract classes but currently LotusScript does not, but I have a way of simulating. There is no way of enforcing it but here is a way of implementing it.
Redirect Bounces to go to another email addressBy Anonymous, Notes Ninjas (2006-01-11)Using the principal field you can make emails look like they came from someone else. If you use "on behalf of" (needs higher than restricted agent permissions) a Notes 6 feature this works even better, as bounced emails (no such user, user has left, mailbox full) will go back to that user. If you want to redirect bounces using the normal restricted agent code, you need to add another field.
Customize ToolbarBy Alan Lepofsky, IBM Lotus Notes/Domino Hints and Tips (2006-01-09)I would like to share with you something I've been using for awhile now. It's nothing new, but I really like it and it saves me some time. It has to do with creating a button in the Notes toolbar. I schedule meetings every once in awhile and I use my conference call in number for the audio. Instead of always finding my notebook and copying the phone number and passcode, I created a button that writes the numbers in the meeting for me. Let me show you how I set it up.
DIY Skype IntegrationBy Chris Toohey, Domino-Guru (2006-01-09)It's amazing the products that are coming to the marketplace for Skype lately. From D-Link's USB rig to the Sony mouse-phone. And while product adoption is rampant in the development community, I honestly haven't seen it's adoption in the Lotus Notes Development Communities. Clearframe is integrating Skype-functionality into their Lotus Notes client-based CRM solution, and after talking with Derik, I thought I'd share with the gang just how it's done and how easy it can be incorporated into your current Lotus Notes-based applications.
Use Catalog.nsf to parse database ACLs instead of server agentBy Jess Stratton, Code Bin (2006-01-08)The Domain Catalog (catalog.nsf) contains all sorts of useful information on databases, including properties, replica IDs, full-text index properties, Access Control Lists, etc.
Profiling LotusScript Agents in Lotus Notes/Domino 7By Jim Anderton, With a T (2006-01-06)I haven't read much in the forums or blogs about the new agent and web service profiling feature in Domino 7. Since I had a perfect opportunity to use it recently, I thought I'd share my experience. This entry is rather long, but hopefully it shows the value of this new feature and encourages you to give it a try.
Connect to remote server via HTTPS in Domino Java agentBy Bob Obringer, bob-obringer.com (2006-01-06)Yes, I know this article is OLD. This got moved to the top as part of some work I'm doing on the site. In fact, for those using R7 servers, none of this is needed as JDK 1.4 includes https support directly. If you haven't seen this previously, or are using R6... take a look and see if this might be useful for you.
Copy Documents To DatabaseBy Chad Schelfhout, Chadsmiley (2006-01-05)Here is another class that I created to make my life a little easier. Johan Känngård has a much more robust LotusScript list, so does Julian. Everyone has to start somewhere!!!
Exploiting IBM DB2 in your Lotus Domino 7 applicationBy Debbie Branco, developerWorks (2006-01-04)In this article, we discuss how you can work with the new IBM DB2 integration features offered in Lotus Domino 7.
New features in Lotus Notes 7 mailBy Goppinath Nagarajan,, developerWorks (2006-01-04)People use Notes/Domino in all sorts of different ways, and one of the most popular is email and messaging. With that in mind, Notes/Domino 7 offers significantly enhanced mail functionality, including expanded calendar and scheduling. This article reviews some of the more important and useful of these new features.
Is Database EncryptedBy Anonymous, Breaking Par Consulting Inc (2006-01-04)A customer of ours has an application that involves attaching Notes databases and templates to documents for various purposes. Well, it finally happened. Someone had locally encrypted the database and attached it to the document. So nobody (except that one person) could use the attachment. So we were asked to check to see if the database/template was encrypted before the attachment was allowed to happen. This can be done through the Notes API, and this tip shows you how to check if a Notes database or template is encrypted.
Connect to remote server via HTTPS in Domino Java agentBy Bob Obringer, bob-obringer.com (2006-01-03)Yes, I know this article is OLD. This got moved to the top as part of some work I'm doing on the site. In fact, for those using R7 servers, none of this is needed as JDK 1.4 includes https support directly. If you haven't seen this previously, or are using R6... take a look and see if this might be useful for you.
Monitoring scheduled agents by e-mailBy Andrew Broxholme, SearchDomino (2006-01-03)In one of our larger applications, there are a number of critical scheduled agents that update data in the application from a back-end relational database. If the connection is lost, or the Lotus Notes database is down, the agents don't run to completion. Agent logs report all activity, but you have to open the logs to check for problems.
Named element formulas - how to use themBy Michael Sobczak, Lord Lotus (2006-01-03)One feature added in V6 that I wasn't able to get to work, until recently, is "named element formula". For more information on how I got this to work, click the "Read More..."
Create RSS feed for your Lotus Notes web site or databaseBy Anonymous, Notes Ninjas (2006-01-03)RSS is seems to be becoming more and more popular, I thought I would find out about it and add a feed from my Lotus Notes website. Here is the simple code and some hints and tips.
Changes to Design Lists in Domino Designer 7By Anonymous, The Learning Continuum Company, Ltd. (2006-01-03)This tip highlights some of the new features in Domino 7 Designer for Design Lists. A number of enhancements have been made to Design Lists to allow developers to more easily manage design elements.