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 | |
---|---|
notes | IBM Notes client details; <notes> … </notes> in config.xml |
os | Operating system details; <os> ... </os> in config.xml |
MarvelClient specific config sections
Namespace | |
---|---|
mc | MarvelClient "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 |
user | This 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". |
appstate | various information about the client, like whether the user is authenticated or the run time (e.g. beforelogin) |
licensing | Information 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 For a full list of possible values see https://help.hcltechsw.com/nomad/1.0/configure_app_restrictions.html |
ini | References a notes.ini entry; available variable names and values depend on the respective target user's notes.ini or Notes preferences file |
notes_string | Provides 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 | |
---|---|
env | References 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) |
filesystem | Performs 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. 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_alias | Allows 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. |
mounts | Windows only, shows a list of all mounted drives, e.g. <drive_C>\Device\HarddiskVolume3</drive_C> |
network | information 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: 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. A few examples: |
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
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