For most of the available namespaces and variables you can use a config.xml file as a starting point (you can find this file in the MarvelClient Working Directory) – typically it is sufficient to look at the config.xml of one or two machines to get a hang of which Namespaces and Variable names can be used. There are usually only differences between major MarvelClient/Notes releases and platforms (Windows/Mac/iOS/Android).


Above screenshot shows using a reference to generically configure the target directory field of a backup action to point to each user’s “<notes:client_directory>” (not a good idea, by the way ;-)).
Looking at a sample MarvelClient config.xml shows that this would be resolved to “C:\Lotus\Notes\Client” on the client from which the config.xml was opened:


MarvelClient provides over 150 different IBM Notes Client and operating system details in the notes: and os: namespaces, all of which can be referenced. This allows for flexible rule sets to be compiled without any programming.

NOTE that namespaces and variables are NOT write-protected. You must not change important system variables (e.g. notes:client_directory, mc:working_directory or similar).

About the config.xml

The config.xml can be found in the MarvelClient Working Directory

  • the file is a snapshot of the internal state of the config values
  • it is written/updated before and after login, at shutdown and right before a backup action runs
  • it is recreated upon every client start, any therein stored variables are NOT read back ever

Config sections notes and os

These sections contain information that MarvelClient collects and makes available for use in references and conditions. They are also used in the MarvelClient Analyze-Db to provide an overview of your entire client infrastructure.


Namespace


notesIBM Notes client details; <notes> … </notes> in config.xml
osOperating system details; <os> ... </os> in config.xml

MarvelClient specific config sections

Namespace


mcMarvelClient "System variables"; <mc> … </mc> in config.xml
mz"System variables" for MarvelClient Zip/Unzip and Attachment blocking (formerly called MarvelZip); <mz> … </mz> in config.xml
userThis Namespace is meant for your own variables, allowing you to freely write your own variables into this namespace:

Example:
using a "*.ini & Variables" Action to set "user:replica_type" to "stub".
appstatevarious information about the client, like whether the user is authenticated or the run time (e.g. beforelogin)
licensingInformation about licensed modules

Config sections for accessing Notes information

Namespace


userdefaults

Only available on mobile platforms/Nomad. Can be managed by the action Nomad/N1.1. Application Restrictions
E.g. <userdefaults:maxReplicaAttachmentSize> would return 10 (mb) unless changed by admins

For a full list of possible values see https://help.hcltechsw.com/nomad/1.0/configure_app_restrictions.html

iniReferences a notes.ini entry; available variable names and values depend on the respective target user's notes.ini or Notes preferences file
notes_stringProvides access to the localized strings from a Notes API STATUS error code. E.g. <notes_string:1028> will return "Entry not found in index".

Config sections for accessing OS information

Namespace


envReferences an operating system environment variable; available variables names and values depend on the respective target user's operating system environment.
(on Windows, think launching cmd.exe and entering the "set" command)
filesystemPerforms a real-time query for disk, directory or file properties (e.g. size, number of files, and similar)
registry

Windows only - read only access to the registry. Use the Objects/A5.3 Registry Management action for making changes to the registry.
The following predefined key are available: HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIG, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS

Numbers (REG_DWORD, REG_QWORD) are converted to a string, binary data (REG_BINARY) to a hex string. Lists of strings (REG_MULTI_SZ) will be merged using a , (comma) as separator

E.g. <registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\ProductStatus>

Special config sections

Namespace


Action_aliasAllows to reference results and variables of MarvelClient Actions; for example “<alias:replica_type>” allows to reference a Desktop Icon & Replica Action in order to query for whether a local replica exists for a given application.
mountsWindows only, shows a list of all mounted drives, e.g. <drive_C>\Device\HarddiskVolume3</drive_C>
networkinformation about all network interfaces. It can not be directly references, use an IP Adapter condition instead
random

<random:m-n>, where n must be > (greater than) m; e.g. <random:1-20> allows for respective random values that are newly calculated with EVERY respective referencing action.

As one out of many possible examples, this can be used to not create a local replica for ALL respective users targeted by an Application/Mailfile action, but spreading local replica creation over time through randomization (by using a numeric condition and e.g. comparing <random:1-10> with <= (smaller than or equal) 3 - leading to more or less 30% of all targeted users creating a local replica over time.

<random:run> This is a random number between 1 and 1000 generated at every client startup and remaining unchanged until end of client shutdown

time

Allows to access time-related information using references. Supported variables:
<time:current-date>, <time:current-time>, <time:current-datetime>

Each can be extended by _local or _utc, like so: <time:current-time_utc> or <time:current-datetime_local>. Without it, all results are in UTC.
All results are in ISO-format.

A few examples:
<time:current-time> - 195513Z
<time:current-time_local> - 215513
<time:current-time_utc> - 195513Z
<time:current-date> - 20150418
<time:current-date_utc> - 20150418
<time:current-datetime> - 20150418T195513Z
<time:current-datetime_local> - 20150418T215513

Accessing the config via agents/LotusScript

When MarvelClient is installed customers can use LotusScript to access most config sections. E.g. in an agent that is executed via the A1.1 Run Agent action.

This can be achieved via the NotesSession.GetEnvironmentString/Var and NotesSession.SetEnvironmentVar calls.

This functionality is not supported on mobile platforms (iOS, Android)

Syntax:

MC->Section:Name
Config access for LotusScript
Dim session As New NotesSession

'read access
Dim UserDocumentDir As String
UserDocumentDir = session.GetEnvironmentString( "MC->os:user_public_documents_directory" )

Dim LogonServer As String
LogonServer = session.GetEnvironmentString( "MC->env:LOGONSERVER" )

'write access
Call session.SetEnvironmentVar( "MC->user:custom_data_for_analyze_db", "info" )


Topics