<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">
	<title>XSnippets</title>
	<subtitle>OpenNTF XSnippets Feed</subtitle>
	<link href="http://openntf.org/xsnippets" />
	<link rel="self" href="http://openntf.org/xsnippets/feedRecentAll.xsp?format=atom&amp;count=40" />
	<id>http://openntf.org/xsnippets</id>
	<updated>2025-10-01T07:31:12-05:00</updated>
	<entry>
		<title>Check if a document is readonly for current user in LotusScript</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/check-if-a-document-is-readonly-for-current-user-in-lotusscript" />
		<id>http://openntf.org/s/check-if-a-document-is-readonly-for-current-user-in-lotusscript</id>
		<updated>2025-10-01T07:31:12-05:00</updated>
		<published>2025-10-01T07:31:12-05:00</published>
		<author>
			<name>Karsten Lehmann</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Check if a document is readonly for current user in LotusScript</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Karsten Lehmann</div><hr/>]]>
		</summary>
	</entry>

	<entry>
		<title>LotusScript agent to generate Person documents</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/lotusscript-agent-to-generate-person-documents" />
		<id>http://openntf.org/s/lotusscript-agent-to-generate-person-documents</id>
		<updated>2025-08-21T04:41:38-05:00</updated>
		<published>2025-08-21T04:41:38-05:00</published>
		<author>
			<name>Patrick Kwintensson</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">LotusScript agent to generate Person documents</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Patrick Kwintensson</div><hr/>]]>
		</summary>
	</entry>

	<entry>
		<title>Simple lambda wrapper for Domino JNX</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/simple-lambda-wrapper-for-domino-jnx" />
		<id>http://openntf.org/s/simple-lambda-wrapper-for-domino-jnx</id>
		<updated>2025-06-20T10:44:42-05:00</updated>
		<published>2025-06-20T10:44:42-05:00</published>
		<author>
			<name>Serdar Basegmez</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Simple lambda wrapper for Domino JNX</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Serdar Basegmez</div><hr/>This class is an easy way to run DominoJNX code. It provides DominoClient object for your code. You can use this code on standalone Java applications, as well as on XPages code if you installed  Domino JNX XPages plugin. Example:

DominoRunner.runWithDominoClient(client -> {
    System.out.println("Effective User Name: " + client.getEffectiveUserName());
});

If the parameter "useExistingNotesClientId" is true (default), the code will use the ID File accessible to the process (Notes user id or Domino server id). If set false, it will switch ID using environment parameters Notes_IDPath and Notes_IDPassword. 

You also need to 'Notes_ExecDirectory' as the environment variable.

Inspired by Jesse Gallagher and Nathan T. Freeman's code snippets.
]]>
		</summary>
	</entry>

	<entry>
		<title>applications.json for Verse customization</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/applications.json-for-verse-customization" />
		<id>http://openntf.org/s/applications.json-for-verse-customization</id>
		<updated>2025-05-27T08:58:48-05:00</updated>
		<published>2025-05-27T08:58:48-05:00</published>
		<author>
			<name>Roberto Boccadoro</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">applications.json for Verse customization</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Admin Scripts snippet. Created by Roberto Boccadoro</div><hr/>This is the application.json file used to customiza Verse as shown in my session at Engage 2005]]>
		</summary>
	</entry>

	<entry>
		<title>Check the type of a field</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/check-the-type-of-a-field" />
		<id>http://openntf.org/s/check-the-type-of-a-field</id>
		<updated>2025-04-02T04:30:52-05:00</updated>
		<published>2025-04-02T04:30:52-05:00</published>
		<author>
			<name>Patrick Kwintensson</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Check the type of a field</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Patrick Kwintensson</div><hr/>]]>
		</summary>
	</entry>

	<entry>
		<title>No-dojo Login Dialog</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/no-dojo-login-dialog" />
		<id>http://openntf.org/s/no-dojo-login-dialog</id>
		<updated>2025-01-02T05:16:58-06:00</updated>
		<published>2025-01-02T05:16:58-06:00</published>
		<author>
			<name>Sjef Bosman</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">No-dojo Login Dialog</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">XPages snippet. Created by Sjef Bosman</div><hr/>Session-based authentication is required!
Add styles and other spices to taste.
Based on Oliver Busse's Login Dialog: https://openntf.org/XSnippets.nsf/snippet.xsp?id=dojo-login-dialog-custom-control]]>
		</summary>
	</entry>

	<entry>
		<title>DXL for joker.com certstore.nsf configuration</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/dxl-for-joker.com-certstore.nsf-configuration" />
		<id>http://openntf.org/s/dxl-for-joker.com-certstore.nsf-configuration</id>
		<updated>2024-10-24T17:09:34-05:00</updated>
		<published>2024-10-24T17:09:34-05:00</published>
		<author>
			<name>Jesse Gallagher</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">DXL for joker.com certstore.nsf configuration</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">XML snippet. Created by Jesse Gallagher</div><hr/>This document can be imported into certstore.nsf to allow for joker.com as a DNS provider for dns-01 Let's Encrypt validation]]>
		</summary>
	</entry>

	<entry>
		<title>A function to convert an ISO 8601 date to a NotesDateTime</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/a-function-to-convert-an-iso-8601-date-to-a-notesdatetime" />
		<id>http://openntf.org/s/a-function-to-convert-an-iso-8601-date-to-a-notesdatetime</id>
		<updated>2024-10-11T10:14:52-05:00</updated>
		<published>2024-10-11T10:14:52-05:00</published>
		<author>
			<name>Carl Tyler</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">A function to convert an ISO 8601 date to a NotesDateTime</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Carl Tyler</div><hr/>The date is constructed using datenumber and timenumber so you know the correct month and day is being used, as this can be an issue in different countries when Domino tries to "guess" it.  ]]>
		</summary>
	</entry>

	<entry>
		<title>Get agents schedule information using DXL</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/get-agents-schedule-information-using-dxl" />
		<id>http://openntf.org/s/get-agents-schedule-information-using-dxl</id>
		<updated>2023-11-09T15:08:27-06:00</updated>
		<published>2023-11-09T15:08:27-06:00</published>
		<author>
			<name>Thomas Adrian</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Get agents schedule information using DXL</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Thomas Adrian</div><hr/>Java code if you programmatically need to get the schedule for agents. it uses DXL to export and XML class to parse the XML, You can also use this to easily parse other values from a database XML representation.
For some reason DXL seem to be using internet security because you need to set "Maximum internet name and password" access to Manager or maybe Designer to access design objects through DXL,



Sample output for two agents in my database, One is schedule to run every 10 minutes, the other is triggered via action menu

FileImporter / trigger: byminutes / 0 hours / 10 minutes
Update / trigger: actionsmenu]]>
		</summary>
	</entry>

	<entry>
		<title>Log.nsf Viewer</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/log.nsf-viewer" />
		<id>http://openntf.org/s/log.nsf-viewer</id>
		<updated>2023-09-08T09:34:14-05:00</updated>
		<published>2023-09-08T09:34:14-05:00</published>
		<author>
			<name>Thomas Adrian</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Log.nsf Viewer</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Thomas Adrian</div><hr/>simple log.nsf viewer that output all rows from log.nsf containing the phrase "Start executing agent". 

- The webview show all rows categorized by agent.
- it allows you to see date and time each time any specific agent has run. 
- Can easily be modified to show other stuff from log.nsf

]]>
		</summary>
	</entry>

	<entry>
		<title>Pretty print JSON in LotusScript</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/pretty-print-json-in-lotusscript" />
		<id>http://openntf.org/s/pretty-print-json-in-lotusscript</id>
		<updated>2023-03-31T02:10:09-05:00</updated>
		<published>2023-03-31T02:10:09-05:00</published>
		<author>
			<name>Thomas Adrian</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Pretty print JSON in LotusScript</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Thomas Adrian</div><hr/>You can use this code to format a JSON string,  it does not add any colors, it only add indentation. 
in my case I do an api call and store the response in a notes field so that user easier can read the response

Tested on 12.0.2, if it is not working you may need to add gson to your scriptlibrary]]>
		</summary>
	</entry>

	<entry>
		<title> Sorts a NotesDocumentCollection by DateTime item in reversed order - latest at top</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/-sorts-a-notesdocumentcollection-by-datetime-item-in-reversed-order-latest-at-top" />
		<id>http://openntf.org/s/-sorts-a-notesdocumentcollection-by-datetime-item-in-reversed-order-latest-at-top</id>
		<updated>2023-01-26T16:17:22-06:00</updated>
		<published>2023-01-26T16:17:22-06:00</published>
		<author>
			<name>Thomas Adrian</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;"> Sorts a NotesDocumentCollection by DateTime item in reversed order - latest at top</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">JavaScript (Server) snippet. Created by Thomas Adrian</div><hr/>This is a modified version of Ulrich Krause snippet that can be found here
https://openntf.org/XSnippets.nsf/snippet.xsp?id=sort-notesdocumentcollection-by-itemname

as long as the datetime value contains unique values all entries are returned]]>
		</summary>
	</entry>

	<entry>
		<title>Fast view column reader</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/fast-view-column-reader" />
		<id>http://openntf.org/s/fast-view-column-reader</id>
		<updated>2022-10-27T16:49:33-05:00</updated>
		<published>2022-10-27T16:49:33-05:00</published>
		<author>
			<name>Sjef Bosman</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Fast view column reader</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Sjef Bosman</div><hr/>The code is part of a class. It reads view data into a cache. That cache can of course be used multiple times. Using a NotesViewEntryCollection proved to be a lot slower.
fillCacheR recursively fills the cache with column data. If the data fetched is over 32K, Evaluate won't return an Array, so the request is split in smaller requests, and so on.
setSearch is used to supply the key field or column and values for a series of @DbLookup calls.]]>
		</summary>
	</entry>

	<entry>
		<title>Create a Connection Document in the user's NAB</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/create-a-connection-document-in-the-users-nab" />
		<id>http://openntf.org/s/create-a-connection-document-in-the-users-nab</id>
		<updated>2022-10-20T09:47:12-05:00</updated>
		<published>2022-10-20T09:47:12-05:00</published>
		<author>
			<name>Marianna Tomasatti</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Create a Connection Document in the user's NAB</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Marianna Tomasatti</div><hr/>This is the code of the agent used in the Collabsphere Session INF107 - Useful Hacks for Domino Administrators.
Replace Domino Server Name from CN=SERVERDOMINO/O=TEST to your Domino Server Name
]]>
		</summary>
	</entry>

	<entry>
		<title>Create a Group based on a field (Company Name) in a Person Document</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/create-a-group-based-on-a-field-company-name-in-a-person-document" />
		<id>http://openntf.org/s/create-a-group-based-on-a-field-company-name-in-a-person-document</id>
		<updated>2022-04-07T04:46:28-05:00</updated>
		<published>2022-04-07T04:46:28-05:00</published>
		<author>
			<name>Keith Brooks</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Create a Group based on a field (Company Name) in a Person Document</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Keith Brooks</div><hr/>This script was started by me, messed up by me, and fixed by the great Bruce Lill.

My customer has internet registration and we wanted to automate much of the process.
Once someone is registered, then they need some groups created based on their Company name (Field name is CompanyName).

In the code substitute the Domino Server name where you see SERVER/ORG and the adminp will create the group within a minute or so once the user name is selected.

Instructions:
NOTE: Presumes you already have your Directory/NAB (Names.nsf) open
1) From the Notes top menu, click on Create, then click on Agent. In the window that opens, give the agent a name and description
2) Type is Lotusscript and click ok
3) Copy then paste in the code
4) Edit the SERVER/ORG  to your server name that this will run on
5) This customer wanted an X in front of the company name but you could remove it or change it as you need for your purpose
6) Save your agent
7) Test the agent by going back to your Directory and going to a test person in the list of users
8) Click on Action from the Notes menu and find your new Agent and click on it to run it
9) Open the Groups list and see if it is there, after a minute or 2]]>
		</summary>
	</entry>

	<entry>
		<title>Magic Button by Tim Tripcony</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/magic-button-by-tim-tripcony" />
		<id>http://openntf.org/s/magic-button-by-tim-tripcony</id>
		<updated>2022-02-21T08:40:17-06:00</updated>
		<published>2022-02-21T08:40:17-06:00</published>
		<author>
			<name>Serdar Basegmez</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Magic Button by Tim Tripcony</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Formula snippet. Created by Serdar Basegmez</div><hr/>Source: Tim Tripcony, 2008 - https://web.archive.org/web/20160121234622/http://avatar.red-pill.mobi/tim/blog.nsf/d6plinks/TTRY-7DZ4GX

Magic button is a formula to be added as a toolbar button in Notes which provides ability to change field value for any field on selected document. 

"For as long as I can remember (possibly 2001) I've always maintained some variation on a SmartIcon toolbar button that a former coworker called the "magic button": it allows new fields to be added to a document and existing fields to be overridden or deleted from the document, either while editing the document or while it's selected in a view. I've seen various approaches to this basic concept over the years, and each time I install Notes on another computer, I either consult the Google to find one I've used before or just reconstruct it from memory. It finally occurred to me that if I just posted the one I'm currently using here, not only would it be easier for me to find later, but some of you might find it useful as well. So here's the current incarnation of said magic button..."

#CodeForTim]]>
		</summary>
	</entry>

	<entry>
		<title>Simple (and limited) Xpages export to Excel with no external dependencies</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/simple-and-limited-xpages-export-to-excel-with-no-external-dependencies" />
		<id>http://openntf.org/s/simple-and-limited-xpages-export-to-excel-with-no-external-dependencies</id>
		<updated>2022-02-13T19:00:35-06:00</updated>
		<published>2022-02-13T19:00:35-06:00</published>
		<author>
			<name>Javier Sanchez</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Simple (and limited) Xpages export to Excel with no external dependencies</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Javier Sanchez</div><hr/>This snippet is useful when your excel export is as simple as just 1 sheet with data tha can be handle in an HTML table. 

The idea is to get an XAgent  "connected" to a session-scoped managed bean. There is no need to use external libraries.

Feel free to contact me if you have any question or improvement. 

@javdev84  - javiersanchezoliva.com
]]>
		</summary>
	</entry>

	<entry>
		<title>Log to Domino using JSON</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/log-to-domino-using-json" />
		<id>http://openntf.org/s/log-to-domino-using-json</id>
		<updated>2021-12-13T13:10:33-06:00</updated>
		<published>2021-12-13T13:10:33-06:00</published>
		<author>
			<name>Thomas Adrian</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Log to Domino using JSON</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">XPages snippet. Created by Thomas Adrian</div><hr/>This XPAGE read json from a POST request and create a log entry in the database. This is useful if you have code in other environments like a c# console application and want to use a Domino database as log storage. 

Paste this code into a new xpage and send the json using POST to /db.nsf/xpagename.xsp/logger
You need to create a form named "Log" in the database with the fields specified in the code.
If you try this using Postman you should get "Domino LogEvent registered" as result]]>
		</summary>
	</entry>

	<entry>
		<title>Script to fix a Mail File Location in a Person Document</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/script-to-fix-a-mail-file-location-in-a-person-document" />
		<id>http://openntf.org/s/script-to-fix-a-mail-file-location-in-a-person-document</id>
		<updated>2021-10-09T15:49:29-05:00</updated>
		<published>2021-10-09T15:49:29-05:00</published>
		<author>
			<name>Keith Brooks</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Script to fix a Mail File Location in a Person Document</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Admin Scripts snippet. Created by Keith Brooks</div><hr/>This is a simple thing, but one that is very valuable, especially when doing server folder or drive changes, email migrations or corporate mergers.
The important piece which people forget is what to do when the syntax is caps or lower case.
This script sets the syntax to lowercase.

Instructions:
NOTE: Presumes you already have your Directory/NAB (Names.nsf) open
1) From the Notes top menu, click on Create, then click on Agent. In the window that opens, give the agent a name and description
2) Select FORMULA
3) Copy then paste in the code
4) Edit the directory name (mail2 in this example) to whatever one you are trying to change that is in the person document.
5) Edit the directory name it should be changed (mail in this example)
6) Save your agent
7) Test the agent by going back to your Directory and go to a test person in the list of users
8) Click on Action from the Notes Menu and find your new Agent and click on it to run it
9) Open the person doc and see if all looks good, if not, check your syntax
]]>
		</summary>
	</entry>

	<entry>
		<title>An alternative way to include the newest version of CKEditor 4</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/an-alternative-way-to-include-the-newest-version-of-ckeditor-4" />
		<id>http://openntf.org/s/an-alternative-way-to-include-the-newest-version-of-ckeditor-4</id>
		<updated>2021-04-12T02:24:59-05:00</updated>
		<published>2021-04-12T02:24:59-05:00</published>
		<author>
			<name>René vd Weide</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">An alternative way to include the newest version of CKEditor 4</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">XPages snippet. Created by René vd Weide</div><hr/>CKeditor is developing rapidly, however the implementation in XPages is staying behind.

Pasting content from MS Word for example isn't working anymore like it supposed to do and loading large chunks of content from a Java bean into an inputRichText field is taking like forever.

I created an alternative way of implementing a new CKeditor.

Use the following steps:

0. Your application contains a Javabean "Name" which contains a field "field" and a getter en setter. However any name will do, just change the properties.

1. First download the latest version of CKeditor 4 from the site https://ckeditor.com/ckeditor-4/

2. Open the Navigator view in Domino Designer 

3. Paste the CKEditor into:  /WebContent/ckeditor4  

4. Create a Custom Control with the following name: ckEditor4RichText 

5. Paste the code and save the control

6. Add property defenitions to the CC:
  fieldName with type: String
  toolbar with type String
  beanvalue with type: object AND editor: Method Binding Editor

7. Create a XPage and insert the Custom Control:

<xc:ckEditor4RichText    id="myEditorArea" beanValue="#{MyBean.name}" fieldName="field"
            toolbar=" toolbarGroups: [ { name: 'mode' }, { name: 'basicstyles' } ]">
</xc:ckEditor4RichText>

The toolbar can implement any CKEditor toolbar. this example contains just a basic toolbar.

8. Now compile and watch the magic :)

Note: 
You can add any kind of plugin to the CKEditor. 
Some advanced knowledge of Domino Designer and Javascript could be handy.



]]>
		</summary>
	</entry>

	<entry>
		<title>Converting Regular Common Name Lists into Notes Hierarchical Names</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/converting-regular-common-name-lists-into-notes-hierarchical-names" />
		<id>http://openntf.org/s/converting-regular-common-name-lists-into-notes-hierarchical-names</id>
		<updated>2021-01-18T07:29:01-06:00</updated>
		<published>2021-01-18T07:29:01-06:00</published>
		<author>
			<name>Keith Brooks</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Converting Regular Common Name Lists into Notes Hierarchical Names</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Admin Scripts snippet. Created by Keith Brooks</div><hr/>I prefer to have people in Notes format in groups because no one knows the future, although the names will work in a simple one domain network, there is always something new down the road and the names should be in a proper format.
When given a new application to push out and an ACL with long lists of people, this will do the lookups for you in a few seconds, once you set this up for yourself.

This script works with your PNAB (Personal Name and Address Book) also called contacts list and is the local Notes client names.nsf file.

HOW TO USE THIS CODE: 
This will create a button in your Toolbar. 
1. Go to File->Preferences->Toolbar->Customize from your Notes client. 
2. From the top box, I customize the Universal toolbar so select it from the dropdown. 
3. Below the window box of icons, Click on New->Button. 
4. Give it a Caption text, I used: Get Notes Names. 
5. Popup Help text really is the name that shows when you hover over the icon, I would just repeat the name used in Step 4. 
6. Change the icon to something either meaningful to you or whatever will be unique for you to notice it, I use a yellow ball. 
7. Paste the code from the code box on this page into the Formula box of your Toolbar Icon window. 
8. Click Ok.
9. Click Save Toolbar. 
10. Click Ok. 

That concludes the code part of this snippet. 

HOW TO USE THE CODE: 
1. If you don't have the Universal Toolbar showing by default, turn it on by going to View->Toolbar and clicking on Universal.
2. Open your PNAB (Personal Address Book), also called Contacts of your Notes client, it is usually the names.nsf file. 
3. Click on Groups from the list of options in your Contacts. 
4. Click on New to create a new Group. 
5. You can name it anything, I keep a generic empty group for this purpose and call it Converts. 
6. In the main field, copy and paste the list of names to get Notes Names from your company NAB/Directory. 
7. Click Save and Close. 
8. Now with the group you created highlighted/selected, click on the Icon created in the toolbar we created earlier. 
9. You will receive a pop-up window one completed stating Found XX emails for XX Notes Names. This is important so you know if you got everyone or if you had any typing mistakes or people who may have left the company. 
10. Now if you open the group you will see the Notes Names for everyone in the Comments & Attachments section and can copy and paste those into the new ACL groups or whatever your need.

If you used this and it helped you great! Please rate it and let me know you used the code. I am @Lotusevangelist on Twitter
This was put together with the help of fellow IBM Champions and HCL Ambassadors a long time ago and Jesse Gallagher when I edited this for verification about some questions I had at the time.

]]>
		</summary>
	</entry>

	<entry>
		<title>Looking up and Converting a List of Notes Names into their Email Address</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/looking-up-and-converting-a-list-of-notes-names-into-their-email-address" />
		<id>http://openntf.org/s/looking-up-and-converting-a-list-of-notes-names-into-their-email-address</id>
		<updated>2021-01-17T07:57:11-06:00</updated>
		<published>2021-01-17T07:57:11-06:00</published>
		<author>
			<name>Keith Brooks</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Looking up and Converting a List of Notes Names into their Email Address</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Admin Scripts snippet. Created by Keith Brooks</div><hr/>When asked to pull the email names for a list of Notes names so marketing could export them to an outside mailing list, I figured there had to be a better way than looking them up individually. Luckily, there is.
This version owes a hat tip and thanks to the inspiration code from the amazing Stephan Wissel and this post of his: https://www.wissel.net/blog/2011/10/converting-notes-names-into-internet-addresses.html
I had to adjust the code over time a little bit but I also want to give credit where it is deserved.

HOW TO USE THIS CODE:
This will create a button in your Toolbar.
1. Go to File->Preferences->Toolbar->Customize from your Notes client.
2. From the top box, I Customize the Universal toolbar so select it from the dropdown.
3. Below the window box of icons, Click on New->Button.
4. Give it a Caption text, I used: Get Email Addresses.
5. Popup Help text really is the name that shows when you hover over the icon, I would just repeat the name used in Step 4.
6. Change the icon to something either meaningful (toolbar_ccmail.gif icon perhaps?) or whatever will be unique for you to notice it.
7. Paste the code from the code box on this page into the Formula box of your Toolbar Icon window.
8. Click Ok.
9. Click Save Toolbar.
10. Click Ok.

That concludes the code part of this snippet.

HOW TO USE THE CODE:
1. If you don't have the Universal Toolbar showing by default, turn it on by going to View->Toolbar and clicking on Universal
2. Open your PNAB (Personal Address Book), also called Contacts of your Notes client, it is usually the names.nsf file.
3. Click on Groups from the list of options in your Contacts.
4. Click on New to create a new Group.
5. You can name it anything, I keep a generic empty group for this purpose and call it Converts.
6. In the main field, copy and paste the names to get emails from your company NAB/Directory.
7. Click Save and Close.
8. Now with the group you created highlighted/selected, click on the Icon created in the toolbar we created earlier.
9. You will receive a pop-up window one completed stating Found XX emails for XX Notes Names. This is important so you know if you got everyone or if you had any typing mistakes or people who may have left the company.
10. Now if you open the group you will see the emails for everyone in the Comments & Attachments section.

Cool, right? I taught AA's how to use this and they love it and never bother me anymore.

If you used this and it helped you great! Please rate it and let me and Stephen know you used the code.
I am @Lotusevangelist and Stephan is @notessensei on Twitter ]]>
		</summary>
	</entry>

	<entry>
		<title>Create a Forwarding Address in a Person Doc based on Email Address</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/create-a-forwarding-address-in-a-person-doc-based-on-email-address" />
		<id>http://openntf.org/s/create-a-forwarding-address-in-a-person-doc-based-on-email-address</id>
		<updated>2020-12-15T13:11:23-06:00</updated>
		<published>2020-12-15T13:11:23-06:00</published>
		<author>
			<name>Keith Brooks</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Create a Forwarding Address in a Person Doc based on Email Address</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Admin Scripts snippet. Created by Keith Brooks</div><hr/>This is a simple thing, but one that is very valuable, especially when doing domain changes, email migrations or corporate mergers.
The important piece which people forget is what to do when the syntax is caps or lower case.
This script solves that problem by setting the existing email to lowercase.

Instructions:
NOTE: Presumes you already have your Directory/NAB (Names.nsf) open
1) From the Notes top menu, click on Create, then click on Agent. In the window that opens, give the agent a name and description
2) Select FORMULA
3) Copy then paste in the code
4) Edit the existigname.com to your domain (ex: lotusrocks.com)
5) Edit the newname.com to the new domain (ex: hclrocks.com)
6) Save your agent
7) Test the agent by going back to your Directory and go to a test person in the list of users
8) Click on Action from the Notes Menu and find your new Agent and click on it to run it
9) Open the person doc and see if all looks good, if not, check your syntax]]>
		</summary>
	</entry>

	<entry>
		<title>Volt Audit Trail</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/volt-audit-trail" />
		<id>http://openntf.org/s/volt-audit-trail</id>
		<updated>2020-07-12T10:57:21-05:00</updated>
		<published>2020-07-12T10:57:21-05:00</published>
		<author>
			<name>Paul S Withers</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Volt Audit Trail</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">JavaScript (Volt) snippet. Created by Paul S Withers</div><hr/>This can be used to add an audit to a Multi-line entry field, as HTML. To do so:
1. Add a Multi-Line Entry field, and hide on all occasions (e.g. add a rule to "Show" if "Window height in pixels" "Has no value"). Call it "F_AuditText".
2. Add an HTML field below, calling it "F_HTMLAudit".
3. In the page's onShow event, use: page.F_HTMLAudit.setContent(BO.F_AuditText.getValue(). This takes the HTML values stored in "F_AuditText" and renders the HTML on the page, obviously read-only.
4. In your submit buttons or wherever else you want to add to the audit, call:
BO.F_AuditText.setValue(app.getSharedData().addAudit('Submitted') + BO.F_AuditText.getValue()
This gets an audit message "Submitted" and prepends it to the existing audit messages. The audit messages appear most recent first.]]>
		</summary>
	</entry>

	<entry>
		<title>Get list of groups user belongs to</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/get-list-of-groups-user-belongs-to" />
		<id>http://openntf.org/s/get-list-of-groups-user-belongs-to</id>
		<updated>2020-05-13T07:11:35-05:00</updated>
		<published>2020-05-13T07:11:35-05:00</published>
		<author>
			<name>Patrick Kwintensson</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Get list of groups user belongs to</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Patrick Kwintensson</div><hr/>Utils.getSession().getUserGroupNameList() will return the groups the user in context belongs to. I use the code above to get a list of groups for a user who is not in the context.]]>
		</summary>
	</entry>

	<entry>
		<title>Change OSGI_HTTP_DYNAMIC_BUNDLES in Notes.ini from LotusScript</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/change-osgi_http_dynamic_bundles-in-notes.ini-from-lotusscript" />
		<id>http://openntf.org/s/change-osgi_http_dynamic_bundles-in-notes.ini-from-lotusscript</id>
		<updated>2020-01-23T09:50:19-06:00</updated>
		<published>2020-01-23T09:50:19-06:00</published>
		<author>
			<name>Karsten Lehmann</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Change OSGI_HTTP_DYNAMIC_BUNDLES in Notes.ini from LotusScript</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Karsten Lehmann</div><hr/>Call this agent with Agent.RunOnServer to change the value of OSGI_HTTP_DYNAMIC_BUNDLES on a Domino server without using a server configuration document and a server reboot.
OSSetEnvironmentVariableExt with isSoft=true lets the method only a check an internal hard list for forbidden variables, allowing OSGI_HTTP_DYNAMIC_BUNDLES to be changed.]]>
		</summary>
	</entry>

	<entry>
		<title>Set/reset LogStatusBar environment variable when needed</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/setreset-logstatusbar-environment-variable-when-needed" />
		<id>http://openntf.org/s/setreset-logstatusbar-environment-variable-when-needed</id>
		<updated>2019-04-25T11:38:27-05:00</updated>
		<published>2019-04-25T11:38:27-05:00</published>
		<author>
			<name>Sjef Bosman</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Set/reset LogStatusBar environment variable when needed</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Sjef Bosman</div><hr/>When you want to start logging to log.nsf, just put
    Dim h As New LogHelper
and delete the object when you want to stop logging.]]>
		</summary>
	</entry>

	<entry>
		<title>Convert NotesJSONElement.Type value to String</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/convert-notesjsonelement.type-value-to-string" />
		<id>http://openntf.org/s/convert-notesjsonelement.type-value-to-string</id>
		<updated>2019-04-01T06:03:26-05:00</updated>
		<published>2019-04-01T06:03:26-05:00</published>
		<author>
			<name>Paul S Withers</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Convert NotesJSONElement.Type value to String</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Paul S Withers</div><hr/>NotesJSONElement.Type returns an integer. This converts it to meaningful text]]>
		</summary>
	</entry>

	<entry>
		<title>Changing Input to Select in Profiles</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/changing-input-to-select-in-profiles" />
		<id>http://openntf.org/s/changing-input-to-select-in-profiles</id>
		<updated>2019-03-29T05:13:43-05:00</updated>
		<published>2019-03-29T05:13:43-05:00</published>
		<author>
			<name>Paul S Withers</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Changing Input to Select in Profiles</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">JavaScript (Connections Customizer) snippet. Created by Paul S Withers</div><hr/>This changes the "Building" label and field to be for "Department", giving a comboBox of selections. This still saves the value to the "bldgId" field, and marks as selected the value that's stored.
It requires the values to exist in the list, or the first is selected as the default. If you need to change existing field values, use the Connections APIs or Node-RED nodes to do so.]]>
		</summary>
	</entry>

	<entry>
		<title>Client-side radio-button validation</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/client-side-radio-button-validation" />
		<id>http://openntf.org/s/client-side-radio-button-validation</id>
		<updated>2019-03-15T10:04:43-05:00</updated>
		<published>2019-03-15T10:04:43-05:00</published>
		<author>
			<name>Sjef Bosman</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Client-side radio-button validation</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">JavaScript (Client) snippet. Created by Sjef Bosman</div><hr/>Could also be done by hijacking XSP.getFieldValue and checking the type 'fieldset' before calling the original getFieldValue.
IMHO this code (or better) should be incorporated in the XSP files.]]>
		</summary>
	</entry>

	<entry>
		<title>Base Href for XPages Applications</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/base-href-for-xpages-applications" />
		<id>http://openntf.org/s/base-href-for-xpages-applications</id>
		<updated>2019-02-25T16:56:49-06:00</updated>
		<published>2019-02-25T16:56:49-06:00</published>
		<author>
			<name>Paul S Withers</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Base Href for XPages Applications</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">XPages snippet. Created by Paul S Withers</div><hr/>Thanks to Jesse Gallagher for pointing me in the direction of this one.

If you use Bootstrap themes, links tend to be basicLeafNodes with client-side URLs set via the href property to avoid unnecessary requests to the server to perform a partial refresh. After all, we want to change the URL, so why not just do so directly from the browser. But if you set href to e.g. "/newSnippet.xsp" and set the launch properties of the database to launch a specific page, e.g. "home.xsp", the starting URL in the browser may be ".nsf", it may be ".nsf/" or it may be ".nsf/home.xsp". This means "/newSnippet.xsp" means different things. 

This Snippet sets the base URL so that "/newSnippet.xsp" in the basicLeafNode will always work.]]>
		</summary>
	</entry>

	<entry>
		<title>Add branding to application layout control with Bootstrap theme</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/add-branding-to-application-layout-control-with-bootstrap-theme" />
		<id>http://openntf.org/s/add-branding-to-application-layout-control-with-bootstrap-theme</id>
		<updated>2019-02-12T08:30:55-06:00</updated>
		<published>2019-02-12T08:30:55-06:00</published>
		<author>
			<name>Patrick Kwintensson</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Add branding to application layout control with Bootstrap theme</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">JavaScript (Client) snippet. Created by Patrick Kwintensson</div><hr/>an item with the navbar-brand class is not part of the control. here is a way to add it onload via jQuery (ref https://getbootstrap.com/docs/3.3/components/#navbar)]]>
		</summary>
	</entry>

	<entry>
		<title>Type Ahead search from Active Directory</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/type-ahead-search-from-active-directory" />
		<id>http://openntf.org/s/type-ahead-search-from-active-directory</id>
		<updated>2019-02-11T03:48:43-06:00</updated>
		<published>2019-02-11T03:48:43-06:00</published>
		<author>
			<name>Thomas Adrian</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Type Ahead search from Active Directory</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Thomas Adrian</div><hr/>Simple typeahead in XPages that looks up people from Active directory as you type. you need to customize the java class so that search path match where you want to search in AD and what fields in AD you want to return.
Use ADExplorer (windows app) to find your path.  ]]>
		</summary>
	</entry>

	<entry>
		<title>Simple client side validation using jQuery</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/simple-client-side-validation-using-jquery" />
		<id>http://openntf.org/s/simple-client-side-validation-using-jquery</id>
		<updated>2019-01-28T08:02:20-06:00</updated>
		<published>2019-01-28T08:02:20-06:00</published>
		<author>
			<name>Thomas Adrian</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Simple client side validation using jQuery</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">JavaScript (Client) snippet. Created by Thomas Adrian</div><hr/>use this snippet as a starting point for a simple validation using jQuery,  customize it using your own field names. 
if the validation fails we highlight the field and cancel any server side code]]>
		</summary>
	</entry>

	<entry>
		<title>Programmatic access to IDVAULT ( incl. new V10 methods )</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/programmatic-access-to-idvault-incl.-new-v10-methods-" />
		<id>http://openntf.org/s/programmatic-access-to-idvault-incl.-new-v10-methods-</id>
		<updated>2018-09-07T01:10:08-05:00</updated>
		<published>2018-09-07T01:10:08-05:00</published>
		<author>
			<name>Ulrich Krause</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Programmatic access to IDVAULT ( incl. new V10 methods )</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">LotusScript snippet. Created by Ulrich Krause</div><hr/>The code allows programmatic access to the IDVAULT.  It uses the NotesIdVault class ( new with 901 FP9 ) and also extends the class to extract an ID from the vault without knowing its password.
The code also includes new features that come with V10 to archive, revert archived Ids and to delete Ids that have been archived to reinforce sync.


SAMPLE USAGE:

This sample shows how to extract an ID from the vault document. It will apply a new password to the ID but leaves the ID in the document untouched. 

Option Declare
Use "IDVault"

Sub Initialize
	Dim idv_db As NotesIdVaultDb
	Dim bck_db As NotesIdVaultDb
	Dim vaultServer As String
	Dim vaultDb As String
	Dim vaultDb_backup As String
	
	vaultServer = "develop1/gotham"
	vaultDb = "IBM_ID_VAULT\batcave.nsf"
	vaultDb_backup =  "IBM_ID_VAULT\batcave_bck.nsf"
	
	Dim idv_doc As NotesIdVaultDocument

	Set idv_db = New NotesIdVaultDb(vaultServer, vaultDb)
	
	If ( idv_db.IsConnected() ) then
		Set idv_doc = New NotesIdVaultDocument(idv_db.db,nothing)
		Set bck_db = New NotesIdVaultDb(vaultServer, vaultDb_backup)
		
		If ( bck_db.IsConnected() ) Then
			Set idv_doc = New NotesIdVaultDocument(idv_db.db, bck_db.db)
		Else
			Set idv_doc = New NotesIdVaultDocument(idv_db.db, Nothing)
		End If
		
		idv_doc.ServerName = vaultServer
		idv_doc.UserName = "cn=Harvey Dent/o=gotham"
		idv_doc.Password = "hdent003"
		idv_doc.IdFilePathName = "C:\Notes\Data\ids\people\backup\hdent_with_new_pwd.id"
		'Call idv_doc.ResetPassword()
		'Call idv_doc.archiveIDFile()
		'Call idv_doc.revertArchivedIDFile()
		'Call idv_doc.deleteArchivedIDFile()
		'Call idv_doc.IdFileGet()
		'Call idv_doc.IdFileSync()
		'Call idv_doc.IdFilePut()
		
		Call idv_doc.IdFileExtract()
		'Call idv_doc.markInactive()
		'Call idv_doc.markActive()
		MsgBox idv_doc.LastErrorString

	End if
	
End Sub]]>
		</summary>
	</entry>

	<entry>
		<title>Serialized partial refresh calls V1.0.1</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/serialized-partial-refresh-calls-v1.0.1" />
		<id>http://openntf.org/s/serialized-partial-refresh-calls-v1.0.1</id>
		<updated>2018-02-07T11:59:21-06:00</updated>
		<published>2018-02-07T11:59:21-06:00</published>
		<author>
			<name>Sjef Bosman</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Serialized partial refresh calls V1.0.1</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">JavaScript (Client) snippet. Created by Sjef Bosman</div><hr/>This is an attempt to serialize all partial refresh calls. The advantages are: code that's easier to read, smooth execution, easier debugging sometimes, and one can add a partial refresh when one needs it, without worrying about refresh calls that are already active.

I didn't find any problems yet, but I cannot guarantee that there aren't any. Your comments are welcome!

The "standard" way is still possible, i.e. using cascading calls through onComplete.

Based on and making use of: http://dontpanic82.blogspot.fr/2010/01/xpages-hijackingpublishing-partial.html

Release History
V1.0.1: solved a rare condition when Process() is called with an empty queue.]]>
		</summary>
	</entry>

	<entry>
		<title>Persistence Service Utility Class</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/persistence-service-utility-class" />
		<id>http://openntf.org/s/persistence-service-utility-class</id>
		<updated>2017-09-12T07:44:05-05:00</updated>
		<published>2017-09-12T07:44:05-05:00</published>
		<author>
			<name>Cameron Gregor</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Persistence Service Utility Class</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Cameron Gregor</div><hr/>This class is a collection of methods that can be useful when trying to work with the XPages Persistence Service.
For more information check out my blog post camerongregor.com 'Generating and Downloading Files Using XPages Persistence Service']]>
		</summary>
	</entry>

	<entry>
		<title>Revamp Java Web Service code after WSDL creation</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/revamp-java-web-service-code-after-wsdl-creation" />
		<id>http://openntf.org/s/revamp-java-web-service-code-after-wsdl-creation</id>
		<updated>2017-08-16T21:09:19-05:00</updated>
		<published>2017-08-16T21:09:19-05:00</published>
		<author>
			<name>Köll S Cherizard</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Revamp Java Web Service code after WSDL creation</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by Köll S Cherizard</div><hr/>Use this information to troubleshoot instances where your Web Services, similarly to the following: https://openntf.org/XSnippets.nsf/snippet.xsp?id=java-webservice-providerconsumer, return null when called from your JavaAgent-  

It looks like when a Provider Web Service is created the code that it is created with (depending on the Environment) gets modified and does behave differently-  In this is the case for you, code sample #1 needs to be modified as code sample #2, see above-  Rest assured, you will be able to go back and revamp the code, and your actual Service WSDL will not be affected-  

Side Note: Caution, you want to get properties data worked out for this Provider first prior to entering WSDL to modify the URL (localhost or ServerName of choice), which you will need to do to append Service name-  Added info about this can be found in the URL posted in this XSnippet-  If you update the WSDL then try to do properties work, you may be unable to save your work, which means you will need to start from scratch-  I have yet to figure out how to bypass this issue without creating a new file to restart the process-

See Web Service Consumer and Provider Apps upload soon, after the Pokémon Project, currently onGoing to be released in the coming weeks-  Stay Tuned!]]>
		</summary>
	</entry>

	<entry>
		<title>rendererInfo</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/rendererinfo" />
		<id>http://openntf.org/s/rendererinfo</id>
		<updated>2017-06-01T09:44:56-05:00</updated>
		<published>2017-06-01T09:44:56-05:00</published>
		<author>
			<name>Jesse Gallagher</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">rendererInfo</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">XML snippet. Created by Jesse Gallagher</div><hr/>Displays pertinent information about a given control's active renderer/theme settings.]]>
		</summary>
	</entry>

	<entry>
		<title>Send Embedded Object as File attachment to 3rd party Web Service</title>
		<link rel="alternate" type="text/html" href="http://openntf.org/s/send-embedded-object-as-file-attachment-to-3rd-party-web-service" />
		<id>http://openntf.org/s/send-embedded-object-as-file-attachment-to-3rd-party-web-service</id>
		<updated>2017-05-31T05:42:30-05:00</updated>
		<published>2017-05-31T05:42:30-05:00</published>
		<author>
			<name>John V Jardin</name>
		</author>
		<summary type="html">
			<![CDATA[<div style="font-size:1.3em; font-weight:bold;">Send Embedded Object as File attachment to 3rd party Web Service</div><div style="font-size:0.8em; font-style:italic; color:gray;margin-bottom:10px;">Java snippet. Created by John V Jardin</div><hr/>This Snippet allows you to easily send an attached file in a NotesDocument to a 3rd party Web Service/Web API. Parts of this code will need to be modified based on what 3rd party service you are connecting to, but the majority of the logic remains unchanged.

In this Snippet, I'm sending a file to an Integration Service Portal I developed called Agilit-e (www.agilit-e.com), which has a microservice that can accept and store any kind of file you send it.]]>
		</summary>
	</entry>

</feed>