Download Profiles and UI viewer 

  • Allows viewing content of Domino databases profile documents.

  • Viewing UI Doc/Dialog Boxes in the current Notes database.

  • Search and replace values in Notes field or all fields.

  • Views all design documents in the current database.

  • Copy or move design element or document into other Notes database.

  • Lunch Remote Desktop Server commands.

  • Buffers all inserted commands. (use arrows to scroll).

  • Extract attachments from RT fields to the file system.

  • Load attachments from file system into the current RT field.

  • Create new fields in the current document - assign field type.

  • Dump the content of o document in a text file.

  • Mini explorer application. left mouse button shows file attributes, double click runs the selected file.

  • Creating Document collections by formula.

  • Changing field content of all collection documents in the database.

  • Replacing all accuracies of text in all collection Documents.

  • The main form is resizable regarding the font size.

  • Database Picker to select any accessible Domino-DB

Profiles and UI viewer is a Small but very effective tool to help Notes designers changing/deleting fields values or Profiles. (The changes are immediately in affect). 

Be aware, it is easy to delete a profiles or fields. One click and the content is gone!!!

Important: Unpack and install the program as administrator  into Notes Client program directory!

Add the Lotus program directory into the PATH variable.

Problems with user access rights? run the executable from an USB stick. (it will work partially too)

Works fine with all Notes versions since 5.02b and all Windows 32/64 versions. (win 7/8 Ultimate 64Bit too). The program is written in VB6 and based on on the Domino COM objects with a lot of Win API's.

Compiled with VB6 on win 7 64bit and VS2008 on win7 64 for the attached dll. (Using Domino COM objects and Domino C API 8.5.2 reference).

By developing Notes applications at a customer sites I feel helpless without using the tool. 

  1. Main program screen 

Start sequence:

The program tries to open the current database and UI doc first, if no UI opened and there is an available  database - the profiles of that db will be displayed. Otherwise, after an error message use the 'Database picker' button to select a Database of your own.

Viewing contents:

Open a document and press 'Get UI doc content', a sorted fields-list appears with the first element of fields content. To view the all content click on the field name. The content appears to the right.

Searching:

Insert a search text and click the 'Search' button several times to get the field names or the content - containing the looking word. Here you get very quickly the answer on the very frequent question: 'The field name containing the text I am looking for'.

Create new field:

Insert a unique field name, choose field type and put some content in the Content field below. Click the 'Add new field' and watch the results in the field list on the left hand side. For Some field types - creating fields with content is not implemented yet.

Search and replace

The action replaces all found fields with 'Search' content - by the text of the 'Replace' input field. By clicking the 'Search replace all fields' button - the results are shown immediately in the document. Insert your Search text and scroll fields by pressing the 'Search' button.

The button Replace changes only the Content box - not the document. To change only one field use the 'Overwrite doc' button.

Change field content

Click the desired field and add some text to the content. The new field values are shown by using the 'Overwrite doc' button. Reopen your UI doc without saving it in your client - than observe the changes.

Other way to view Notes documents

Ever got a server log message with 'corrupt document. bad attachment (Doc ID 31950) etc.' Just open any document in the specified database, Put the decimal id into HEX/DEC NoteID field and press view. Extract or load the correct attachment back into the document. After the document is repaired the Database can properly replicate without brakes. Alternatively insert the proper UID and press View to show the required document.

Lunch Server Console remote command.

After several commands use the up/down keys to scroll and repeat the previous ones. Be aware not to quit the server unintentionally. In this part I use a C++ DLL (cmdRemCon.dll) that should resident in the notes program directory. Some explanations and source code is written below. You may use freely the sample or adjust the DLL for your own needs.

 

VB6 sample Call to Notes API C DLL:

Public Declare Function W32_cmdRemCon Lib "cmdRemCon.dll" Alias "RemoteCommand" (ByVal rcmd_server As String, ByVal rcmd_command As String, ByVal response As String) As Integer

20 rcmd_server = Space(128)
30 rcmd_command = Space(128)
40 Result = Space(32767)
50 rcmd_server = Form1.lstServerList.Text + Chr(0)
60 rcmd_command = txtRemoteCommand.Text + Chr(0)

180 Flag = W32_cmdRemCon(rcmd_server, rcmd_command, Result)
190 If Flag > 0 Then txtFieldContent.Text = Result

Notes API C DLL sample:

#include <windows.h>
#include <malloc.h>
#include <global.h>
#include <nsfdb.h>
#include <osmem.h>
#include <dname.h>
#include <string.h>
#include <stdio.h>

int _stdcall RemoteCommand (char FAR *pServerName, char FAR *pConsoleCommand, char result[]);

#if !defined
(ND64)
#define
DHANDLE HANDLE
#endif

BOOL WINAPI DllEntryPoint ( HINSTANCE hDLL, DWORD dwREASON, LPVOID Reserved )
{
switch
(dwREASON)
{
case DLL_PROCESS_ATTACH: {
break;
}

case DLL_PROCESS_DETACH: {
break;
}
}
return TRUE;
}

int _stdcall RemoteCommand(char FAR *pServerName, /* server name */
char FAR *pConsoleCommand, /* remote console command */
char result[])
{
STATUS nError;
char szCanonServerName[MAXUSERNAME];
DHANDLE hServerResponse = NULLHANDLE;
char *pServerResponse = '\0';
char *pBuffer = '\0';
WORD *wResponseLen = 0;
WORD i;
WORD wBufferSize;

/* Canonicalize the Servername */
nError = DNCanonicalize( 0L, NULL, pServerName, (char FAR *)szCanonServerName,
MAXUSERNAME, NULL);

if (nError != NOERROR)
return(0);

/* and execute the remote console command to the specified server */
nError = NSFRemoteConsole( szCanonServerName, pConsoleCommand,
&hServerResponse);

/* if no error, then package the returned response buffer */
if (nError == NOERROR)
{
pBuffer = OSLock( char, hServerResponse);
wBufferSize = strlen( pBuffer);

for (i = 0; i < wBufferSize; i++ )
{
/* Fillin the caller's buffer with the response */
if( i < wBufferSize)
{
/* If we've reached a NULL in the buffer returned by the server,
* then we're done
*/

if (pBuffer[i] == '\0')
break;
else
result[i] = pBuffer[i];
}
else
break;
}
pBuffer[i] = '\0';
result[i] = '\0';
OSUnlock( hServerResponse);
return (wBufferSize);
}

if (hServerResponse != NULLHANDLE)
OSMemFree( hServerResponse);

return(0);
}

//******************************************************************************

Viewing domino profiles

Ever wanted quickly to see how many profiles resides in the Database and their contents? Just press the 'Search for profiles' button. A list of all profiles appears in the 'Documents by NoteID' list. By double clicking you open the desired document.

Many Domino databases are carrying a lot of old garbage profiles during the application lifecycle - no wonder that a Database is slowly loaded.

Here is an example of the calendarprofile of my Mail DB. The Filed '$Cal' enables manipulating the color appearance of the calendar view. I used it to show appointments of a certain group of users in a different color. Be aware! it easy to delete Profiles by pressing the red button.

Viewing design documents

Double clicking on one of the design elements provides a list of all designed docs of the chosen type. The content and the fields act like a normal regular Notes document. Below in the screenshot an Agent is selected and the $AssistAction field shows the its script (doesn't work for formulas) . $AssistInfo field displays some more information about the Agent attributes.

Creating collection of documents and adjusting there content.

Select Views from design list and press for example the 'Calendar' view. The 'Select' formula is automatic viewed. Adjust the formula to suit your needs and press the 'Collection by formula'. The documents will appear in the Collection List-Box. Here you can apply the 'Coll' buttons to work on all document at once. To filter some design documents out of the list use the 'R' button - the selected row is removed from the list.

Field attributes

The 4 field attributes listed under the 'field type' can change the characteristics of the fields after overwriting the document.

Observing many fields content

The 'file down' button allows scrolling through previous fields content. The 'X' button erases only the Content box.

Copy/Move design elements

After changing or upgrading a design you can copy it easily to a different database of the same kind. Some customers are not using the Domino designer task at all, so here is a way to populate some design elements quickly from one place to another. Pressing the Copy/Move button starts a form - enabling selecting a target database on the same or a different Server. For some design elements you should check the Notes designer whether the element appears twice or not. (restart the designer to observe the results).

Mini Explorer

For the case of loading attachments I needed a small quick file system explorer - so I implemented one, allowing remove files. As an option you may lunch the application behind the file (dblClick) or view the file attributes (right mouse click).

Dump fields

Just a simple way to list the fields in text file (rarely used).

Copy / Move / Remove / Replace fields content in Domino Documents

The button 'CMRR Coll.' provides a new tool for working with an existing views. Most buttons are with tooltip text assigned. In the example below The $Inbox will be copied or moved to the target database. During the operation all marked fields will be replace by the 'Replace by' text. By selecting 'with replacing fields content' and Doubl-Clicking the source view - a list of 250 first documents with available fields - appears below. Select the fields you want to change or select all by button.

 


Various searching options

Some more search extras are available through the buttons in the first section:

Insert '($ALL)' in the Search input field then select the databases. The results appear below telling the number of documents in each database containing the view.

The check attachments will extract all attachment from the specified view into the path specified on the left. Corrupted documents are listed for further inspection.

Not all options and buttons are described. Try everything on your own and reply in case of an error or strange behavior.

Lotus Client toolbar adjustment

Customize your universal toolbar und start the program from your Notes client as I use to do.

_______________________________________

For any comments or bugs please response the author.

Zurück / back
ZoocK Directory