Version: 2025.1.1

Jobs

Configuration

inPoint.Archive.Jobs can be defined per tenant or globally. Only an administrator would see the global jobs in a separate tree node.

For writing custom jobs see the developer documentation.

It depends on the type of the job if it runs globally or per tenant. The inPoint.Admin.LoaderJob which is created be the setup is a global job.

Jobs Lists

img

The Column Job-Type is read from the specified Job. If this information cannot be loaded (Job-Class or App-Path is wrong) just the Job-Class is shown here. Also the log of inPoint.Admin.Server shows some messages that and why the job could not be loaded.

The inPoint AD Sync job is a tenant specific job. It is created by the Pam.Loader when a new tenant is created. For working AD-synchronization in the User and Group-Management at least one AD-Sync job for this tenant must exist and must be active.

NOTE: Editing the jobs with the (old) inPoint.Config utility you can identify the global jobs by the empty tenant id.

img

Jobs Editor

Selecting one job and clicking Edit opens the Editor for this job. On the bottom left of the editor window you get a help link. This help link is only available when the help system is enabled. (See setting 'help.template' in Configuration)

img

When modifying jobs the settings required by the job have to be specified in the settings tab. You can edit the XML-snippet directly in the Setting/Text tab or just upload/download the settings in the Settings/Binary tab. For some special job types, like the AD-Sync job an editor is provided Settings/AD-Sync. The editor are available when you select a Type different to the generic types and save/reopen the jobs editor. Also when you select the type you get the correct values for Job-Type, Job-Class, App-Path and App-Config pre filled.

Take care that you provide the correct App-Path and App-Config. The paths are evaluated on the server which is running the Pam.Archive service.

You can start jobs from a schedule or manually.

General definition (Tab Description)

Tenant ID the used tenant id, just for information. When you create a job from the Repository Configuration / Jobs zero is used (global job). Using the Jobs Note of any tenant, a job for this tenant is created.

Id Identifier automatically created when the job is created and cannot be changed.

Name Any string up to 300 characters.

Type Select one of the generic types and enter Job-Type, Job-Class, App-Path and App-Config manually or select any of the well-known jobs types to get the values pre-filled.

Job-Class Full class specification for assembly and class name of the job including the assembly version.

App-Path The path where the Job-Class is located.

App-Config The app.config needed by the Job-Class.

Product You can select PAM-Storage, PAM for Notes or Automatic. Usually use PAM-Storage but this field is just for information.

Active can be only set from the Jobs-List. If true the scheduler runs this job after restarting the server.

Finished Marker when the job was finished.

Processed Number of runs for this job.

Schedules When this job should be started.

Errors Error counter.

Max Errors After how many errors the job should be stopped.

Settings (Tab Settings)

Setting specific to the job class. They can be edited as text (usually XML) or binary up/downloaded. For some well known jobs (currently only AD-sync) also a specific editor is provided.

Progress (Tab Progress)

Progress for the job when currently running. For now, only the AD-Sync jobs provided inhormation here.

Logs

Every job is writing it's private logs, use the Show Logs button to open the log view.

img

You can filter by date range and log types. Selecting a log entry shows the message in the details view below. Job logs are loaded only on demand when you scrolling. This logs can also be manually deleted here. When you delete a job, the logs are also deleted.

The logs will be automatically deleted if older than 7 days.

The number of errors which is shown in the jobs list is a counter which is managed by the job itself. The count is normaly resetted when a job is edited (because the errors occured in the old configuration) or when the administrator uses the "Clear Logs" button in the logs view. While the job is running it may overwrite this value at any time.

Detailed Logging

Each job may additionally uses log4net or serilog for detailed logging. Check the value of the property App-Config how it is configured. Most jobs use log4net for logging and web.config of the inPoint.Server as App-Config, see the config file there where the log files are stored.

Available Jobs

Version

The full name of the class includes the assembly version of the dll. This is the major version, which correspond to the year of the release (e.g. Version=2022.0.0.0). During the update process these values are automatically updated.

inPoint.Admin Loader Job

Tenant specific: No
Installation: inPoint.Admin.Server

This job executes the inPoint.Loader requests and is currently needed when inPoint.Admin creates tenants and creates or deletes Global Site Repositories.

It operates on the tables IPA_LOADER_JOB*, runs the Pam.Loader.Console.exe and uses the same settings like the inPoint.Admin Service.

Job Class*

Default: inPoint.Admin.LoaderJob.LoaderJob, inPoint.Admin.LoaderJob, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Admin\Server
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Admin\Server\inPoint.Admin.LoaderJob.exe.config
The configuration file which is used by the job.

inPoint Fulltext Queue Job

This job is required for fulltext indexing, it flattens out the index requests from the table IP_FULLTEXT into the table IP_FULLTEXT_QUEUE. It is created by the inPoint Server Setup and started automatically.

Tenant specific: No
Installation: inPoint.Server
Default name: Fulltext QueueJob

Job Class*

Default: inPoint.Fulltext.QueueJob.FulltextQueueJob, inPoint.Fulltext.QueueJob, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Indexer
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Settings

packageSize

Default: 100
The number of rows processed in a single command.
NOTE: The higher the number the more efficient is he job, but the table remains locked for a longer time while processing it.

packageSizeDoc

Default: 100
The number of documents grouped into single request when a folder is indexed.

commandTimeout

Default: 300
The timeout in seconds for executing statements on the database.

TenantIds

Default: <not set>
An optional list of tenants given by id which will be processed (leave empty to process all existing tenants).
Example:

<TenantIds>
<!-- process only 1 and 2, skip all others -->
<int>1</int>
<int>2</int>
</TenantIds>

filterItemUri

Default: <not set>
An optional filter (using like) on the itemUri in the table IP_FULLTEXT (leave empty to process all existing items).\

filterExclude

Default: false
Determines if the filterItemUri is an include (false) or exclude (true) filter.

scriptPath

Default: <not set>
Allows to specify a script which is executed to process the fulltext queue. (This should be used only for testing/debugging purposes!)

Examples

Setup Default

This is how the inPoint.Wizard creates the job. The list of explicit tenants is commented out.

<?xml version="1.0"?>
<FulltextQueueJobSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
packageSize="100"
packageSizeDoc="100"
commandTimeout="300">
<!-- Optional List of tenants -->
<!--<TenantIds>
<int>1</int>
<int>2</int>
</TenantIds>-->
</FulltextQueueJobSettings>

inPoint AutoUnlock Job

This job can automatically unlock documents locked (or checked out) by user for editing. The job is installed by the setup but is disabled as default.

NOTE

  • If a document is automatically unlocked by the system the user will loose their unsaved changes!
  • Keep in mind how the scheduling of the 'AutoUnlock' will be configured. You might want to unlock all documents locked for more than an hour, but only run the job on Sunday. If you need different settings per schedule, you need to create multiple jobs!

Tenant specific: No
Installation: inPoint.Server
Default name: inPoint.AutoUnlockJob

Job Class*

Default: inPoint.Jobs.AutoUnlockJob, inPoint.Jobs, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Settings

The settings contain a list of 'ArchiveUnit' settings, which contain additional information.

ArchiveId*

Default: -1
The id of the archive to be processed, use -1 to process all.
NOTE: It is possible to use -1 to match all archives and a specific number which will match only one archive.

UnitId*

Default: -1
The id of the archive unit to be processed, use -1 to process all.
NOTE: It is possible to use -1 to match all archive units and a specific number which will match only one unit.

TimeOut*

Default: 1.0:00:00 (one day)
The time after a locked document will be unlocked by the system. A timeout of zero or an empty field will switch the timeout off.

Possible formats are:

  • Day.Hours:Minutes:Seconds → e.g. 1:12:00:00 for one and a half day (36 hours)
  • Day.Hours:Minutes
  • Day.Hours
  • Hours:Minutes:Seconds
  • Hours:Minutes → e.g. 12:00 for half a day (12 hours)

Examples

Setup Default

This is how the inPoint.Wizard creates the job. In this setting it will process all archives and automatically unlocks all documents locked for more than 24 hours.

<?xml version="1.0"?>
<AutoUnlockJobSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ArchiveUnits>
<!-- a list of all archives and units to process -->
<!-- an Id of -1 matches all, to be used as default -->
<!-- TimeOut is in days.hour:minutes:seconds -->
<!-- empty means off -->
<!-- also valid: days.hour OR days.hour:minutes -->
<!-- also valid: hour:minutes -->
<ArchiveUnit ArchiveId="-1" UnitId="-1" TimeOut="1.0:00:00" />
</ArchiveUnits>
</AutoUnlockJobSettings>

Multiple Timeouts

All archives will have the documents unlocked after one day. Except all units with an id of '1', which will never be unlocked by the system and except all in the archive with the id '5' which will be unlocked after half a day.

<?xml version="1.0"?>
<AutoUnlockJobSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ArchiveUnits>
<ArchiveUnit ArchiveId="-1" UnitId="-1" TimeOut="1.0:00:00" />
<ArchiveUnit ArchiveId="-1" UnitId="1" TimeOut="" />
<ArchiveUnit ArchiveId="5" UnitId="-1" TimeOut="12:00" />
</ArchiveUnits>
</AutoUnlockJobSettings>

inPoint CleanUp Job

This job cleans up the database from expired objects like shares, reminders, fulltext-queue, executed jobs and also cleans the recycle bin. The job is installed by the setup but is disabled as default.

NOTE:
If a document is protected by a retention time it can be moved into the recycle-bin but it will not be deleted from there!

Tenant specific: No
Installation: inPoint.Server
Default name: inPoint.CleanUpJob

Job Class*

Default: inPoint.Jobs.CleanUpJob, inPoint.Jobs, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Settings

DeleteAgeDays

Default: 30
The number of days a document is kept in the recycle-bin.

DeleteAgeDaysReminder

Default: 0
The number of days an expired reminder is kept.

DeleteAgeDaysShare

Default: 0
The number of days an expired share is kept.

DeleteAgeDaysJobs

Default: 30
The number of days a job in the jobs-queue will be kept. This can be overwritten for each job. Use -1 for forever.

inPoint.Jobs

A list of settings for each job. Each has a defined number of days to keep (DeleteAgeDays) and a filter to include (Include) or exclude (Exclude) the job using regular expressions.
e.g.

<!-- keep jobs which contain 'CustomJobs' for 30 days, except for the name 'CustomJob_Special' which is never deleted!  -->
<inPoint.Jobs DeleteAgeDays="30">
<Include>.*CustomJob.*</Include>
<Exclude>.*CustomJob_Special.*</Exclude>
</inPoint.Jobs>
<inPoint.Jobs DeleteAgeDays="-1">
<Include>.*CustomJob_Special.*</Include>
</inPoint.Jobs>

DeleteAgeDaysFulltext

Default: 30
The number of days an entry is kept in the fulltext queue tables after it was processed.

FulltextStatesTable

Default: NotSet A list of indexing states to be cleaned from the fulltext table (IP_FULLTEXT), values are separated by semi-colon. Because there are no special success states in this table the only used value is NotSet.

FulltextStatesQueue

Default: Full;KnownIgnoreErrors;FolderNotFound;ShareNotFound A list of indexing states to be cleaned from the fulltext table (IP_FULLTEXT_QUEUE), values are separated by semi-colon. Only known success states are removed!

Known Index States

The values can be entered in numerical form as well, but only numbers higher than 2000 are allowed! (some states can be combined with comma)

NameValueMeaning
NotSet2000only used in FulltextStatesQueue (for success)
Body2001Body was indexed or there was no body at all (e.g. for folders)
Metadata2002Metdata was indexed.
Plugins2004Plugins were executed or there were no plugins. (reserved for future use)
Metadata,Plugins2006Only Metadata and Plugins where successfull
Full2007All successfull (combination of 'Body', 'Metadata', 'Plugins')
KnownIgnoreErrors2100Starting value for known error, which can be ignored.
FolderNotFound2101A folder was not found (e.g. deleted before it was indexed)
ShareNotFound2102A share was not found (e.g. deleted before it was indexed)

SkipRecycleBin

Default: false
If this is set to true the recycle bin will not be cleaned.

SkipReminder

Default: false
If this is set to true the reminder will not be cleaned.

SkipShare

Default: false
If this is set to true the shares will not be cleaned.

SkipJobs

Default: false
If this is set to true the jobs and the jobs-queue will not be cleaned.

SkipFulltext

Default: false
If this is set to true fulltext queue tables will not be cleaned.

Examples

Setup Default

This is how the inPoint.Wizard creates the job (if entries are missing the default still applies). This will clean expired reminders and shares as fast as possible, while keeping documents in the recycle-bin for 30 days. The processed items in the fulltext queue tables are also removed 30 days after processing. The result of RelocationJobs will never be deleted, the job for creating folders by a template will be cleaned after one week. All other one time jobs and their results will be cleaned after 30 days.

<?xml version="1.0"?>
<CleanUpJobSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DeleteAgeDays>30</DeleteAgeDays>
<DeleteAgeDaysReminder>0</DeleteAgeDaysReminder>
<DeleteAgeDaysShare>0</DeleteAgeDaysShare>
<DeleteAgeDaysJobs>30</DeleteAgeDaysJobs>
<DeleteAgeDaysFulltext>30</DeleteAgeDaysFulltext>
<FulltextStatesTable></FulltextStatesTable>
<FulltextStatesQueue></FulltextStatesQueue>

<SkipShare>false</SkipShare>
<SkipReminder>false</SkipReminder>
<SkipRecycleBin>false</SkipRecycleBin>
<SkipJobs>false</SkipJobs>
<SkipFulltext>false</SkipFulltext>

<inPoint.Jobs DeleteAgeDays="-1">
<Include>.*RelocationJob.*</Include>
</inPoint.Jobs>
<inPoint.Jobs DeleteAgeDays="7">
<Include>.*CreateFromTemplate.*</Include>
</inPoint.Jobs>
</CleanUpJobSettings>

inPoint Relocation Job

The job executes requests in the inPoint-Jobs-Queue (in the table PAM_JOBSQUEUE) queued for background processing.

  • RelocationJob: Move all documents included in a folder structure to a different storage location. This implements the server part of the "JobQueue" plugin from the client (for immediate processing see inPoint Jobs Queue Handler Job.

This job has no settings which can be configured!

Tenant specific: No
Installation: inPoint.Server
Default name: inPoint.JobsQueueHandlerJob

Job Class*

Default: inPoint.Jobs.RelocationJobWorker, inPoint.Jobs, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

inPointAccess Mailbox Synchronization Job

This job synchronizes the Mailbox and “Public folder” permissions for mails archived by the MailWCF interface used by inPoint CSE. It is created by the inPoint Server Setup, but not started automatically. The Mailbox synchronization requests are stored in the PROVPERMISSIONS table and the “Public folder” synchronization requests in the IP_FOLDERPERMISSIONS table. See Mail WCF/Security section to check the MailWCF interface methods.

Tenant specific: No
Installation: inPoint.Server
Default name: Mailbox synchronization

Job Class*

Default: InPointAccess.SynchronizationJob, InPointAccess, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Configuration File ("App Config")

This setting is read from the "App Config" (default is C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config) in the section of <pamSettings>. During installing the user can set this value using the inPoint.Wizard.

InpointMailViewerUser

Default: <not set>
Defines the user allowed to access mails archived by the MailWCF interface in all Mailboxes and “Public folders” with read right only.

Example

  <pamSettings>    
<add key="InpointMailViewerUser" value="testUser@Domain" />
</pamSettings>

inPoint AD-Synchronisation Job

This job imports and synchronizes Active Directory groups and users (including name, membership, account pictures, e-mail...). It's possible to configure the job to read deleted users from Active Directory. In this process the job is accessing the Deleted Objects container, which requires specific permissions. By default, only the System account and members of the Administrators group can view the contents of the Deleted Objects container. If the user specified in the LDAPAuthenticationUser key is not a System or Administrator account, it's necessary to modify the permissions. For configuration details, please read the Reading the Active Directory Deleted Objects container section.

Tenant specific: Yes (usually, but can also run globally)
Installation: inPoint.Server
Default name: Default tenant: AD Sync

NOTE
After a group or a user is imported the subsequent sync will always be done with the GUID (read from the property ObjectGUID from Active Directory). The GUID will not change if a user/group is moved in another organizational unit (OU) or if the user is renamed. Be aware that deleting and re-creating a user or group will create a new object with a different GUID.

Job Class*

Default: workplace.server.usermodule.ADSynchronisation.AdSyncJob, UserModule, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Configuration File ("App Config")

Those settings are read from the "App Config" (default is C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config) in the section of <pamSettings>.

Example:

<pamSettings>
<add key="LDAPAuthenticationDomain" value="inpoint.local;inpointDev.local"/>
<add key="LDAPAuthenticationUser" value="AdSyncUser@inpoint.local"/>
<add key="LDAPAuthenticationPassword" value="aHR0cDovaHMtc29mdC5jb20="/>
</pamSettings>
LDAPAuthenticationDomain

A list of full qualified domains (separated by semicolon). For a detailed description please see the LDAP/LDAPS & authentication settings section.

LDAPAuthenticationUser

Can be empty or contain the user account required for connecting to Active Directory. If provided, the user name must be in fully qualified domain name (FQDN) format. For a detailed description please see the LDAP/LDAPS & authentication settings section.

LDAPAuthenticationPassword

Can be empty or contain the encrypted and encoded user password required for connecting to Active Directory. For a detailed description please see the LDAP/LDAPS & authentication settings section.

Settings UI

inPoint.Admin supports a UI for the settings of the AD-Sync job. So it should not be needed to edit the settings-XML manually anymore.

img

When synchronizing only some groups the existing AD-Sync job gets cloned and you get a dialog where you can edit some settings before running the job:

img

Name

Since the job was copied from an existing AD-Sync job the original name is taken and a suffix was appended like : Manual .... You can change this suffix before creating and running the job.

Settings

From the SyncSettings only the Recursive flag can be edited.

Keep Job

You can select to keep the temporary job when finished only when there where some errors (default) or always or never. This setting takes only effect if you wait in the UI until the job has been finished. If you close the window before you should delete the temporary job manually.

Settings

The settings can still changed by editing the XML:

SyncSetting

Default: Default
This defines what kind of meta-data is synchronized.
Combine multiple values with space.

  • Default: Import everything, this is the default. Can't be combined with any other value.
  • AccountPicture: Import/Update the account picture (if there is any).
  • DeleteDisabled: If the user is disabled, mark as "deleted" in inPoint.
  • ExtendedProps: Import/Update only the extended properties of the user or group.
  • Membership: Import/Update the membership of this user or group.
  • Principal: Import/Update only the user or group directly (no membership is changed, no extended properties are changed).
  • UpdateDeletedADUsers: Marks all deleted users from AD in inPoint as deleted.

RunOnce

Default: false
The job will run only once and will then deactivate itself.
NOTE: Using a run-once-job is usefully for a one time import of one or more groups.

Recursive

Default: false
If a group has additional groups as members, those groups will also be imported or synchronised.
NOTE: Using a run-once-job is usefully for a one time import of one or more groups.

ImportGroups

Default: true
Only updates existing groups and does not import new groups.

TenantGroup

Default: <not set>
With this setting multiple tenants can be imported with a single job which is not bound to a specific tenant. This requires an AD-Group for each Tenant, that has either the Tenant-Name or the Tenant-Id in it.

Replacement Texts are:
%TENANT_NAME%: will be replaced with name of the tenant.
%TENANT_ID%: will be replaced with the id of the tenant (without leading zeros).
NOTE: If a group with the name is not found, the tenant will be skipped (this is not an error)!

ImportIntoGroup

Default: <not set>
All users will be added automatically to this group. (This can be an inPoint group.)

SyncGroupsMembersName

Default: <not set>
A list of group names which will be synced or imported to inPoint.
Example:

  <SyncGroupsMembersName>
<string>inPointUsers@inpoint.local</string>
<string>inPointAdmins@inpoint.local</string>
</SyncGroupsMembersName>

In the UI you can enter the group member names comma separated.

SyncGroupsMembersGuid

Default: <not set>
A list of group GUIDs which will be synced or imported to inPoint.
Example:

  <SyncGroupsMembersGuid>
<guid>ca633a89-7370-44f9-99fc-4964b54d4f8e</guid>
<guid>b5b0ee60-9b02-4102-8008-3227e5f0cc46</guid>
</SyncGroupsMembersGuid>

In the UI you can enter the group member GUIDs comma separated.

IncludeAllKnownGroups

Default: false
If set to true, all already known groups will be imported to inPoint.

Examples

Setup Default

This is how the inPoint.Wizard creates the job. Because only known groups are synchronized the initial insert of groups has to be done first.

<?xml version="1.0"?>
<AdSyncJobSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SyncSetting>Default</SyncSetting>
<RunOnce>false</RunOnce>
<Recursive>true</Recursive>
<ImportGroups>true</ImportGroups>
<IncludeAllKnownGroups>true</IncludeAllKnownGroups>
</AdSyncJobSettings>

A job for multiple tenants

With this settings all tenants with an AD-Group which is called equal to the tenant are imported. (including sub-groups and all users). The job must be created without a specific tenant. If a new tenant is created in inPoint and a corresponding group in Active Directory the group and all will be imported and synced automatically.

<?xml version="1.0"?>
<AdSyncJobSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SyncSetting>All</SyncSetting>
<Recursive>true</Recursive>
<ImportGroups>true</ImportGroups>
<TenantGroup>%TENANT_NAME%</TenantGroup>
</AdSyncJobSettings>

AD Synchronization process overview

  • Processing all/configured tenants
    • Update deleted users
      • Find the deleted users in AD for all domains specified in ldapAuthenticationDomain web.config key
        • Iterate over all deleted users from AD
          • Find the deleted user also in inPoint - Find the deleted user in the PAM_USERREFERENCE by GUID
            • If found, update the user columns in the PAM_USERREFERENCE
              • Set DELETED = 1
              • Set USER_NAME = USER_NAME + "_deleted:<timestamp>"
              • Set DOWNLEVEL_LOGON_NAME = DOWNLEVEL_LOGON_NAME + "_deleted:<timestamp>"
      • Fetch groups to be synchronized
        • If SyncGroupsMembersGuid AD sync job setting set
          • fetching groups by GUID
        • If SyncGroupsMembersName AD sync job setting set
          • fetching groups by name
        • If IncludeAllKnownGroups AD sync job setting set
          • appending all existing AD groups from inPoint
      • Synchronizing found groups
        • Iterate over all group
          • Iterate over all group members retrieved from AD recursively
            • Find group in the PAM_GROUPREF by GUID
              • Import the new group to inPoint if not found
              • Update the group if found
            • Synchronize group membership
          • Iterate over all user members retrieved from AD
            • Find user in the PAM_USERREFERENCE by GUID
              • Import the new user to inPoint if not found
              • Update the user if found
            • Synchronize user membership

inPoint Version CleanUp Job

This job cleans the old version of documents. The configuration is done in the inPoint.Client and can be configured on several levels like 'General Settings', inside the 'Field Selection' and in the 'Global Site Administration'.

Tenant specific: No
Installation: inPoint.Server
Default name: inPoint.VersionCleanUp

Job Class*

Default: inPoint.Jobs.VersionCleanUpJob, inPoint.Jobs, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Settings

The job settings are auto-generated from the settings done in the inPoint.Client, do not edit!

inPoint Notification Job

This job sends all mails to external and internal users (this also includes reminder and share notifications).

Tenant specific: No
Installation: inPoint.Server
Default name: inPoint.Notification.Job

Job Class*

Default: inPoint.Jobs.NotificationJob, inPoint.Jobs, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Configuration File ("App Config")

Those settings are read from the "App Config" (default is C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config) in the section of <PamNotification>. During installing the user can set all of this values using the inPoint.Wizard.

Retries

Default: 5
Specifies the number of retries for a failed messages.

TestRecipient

Default: <not set>
Overrides the recipient address of all messages. Use only for testing!

SMTPSettings

Contains all of the smtp settings for sending mails.

Server*

Default: <not set>
Name or IP-address of the SMTP server.

Port

Default: 25
The TCP port number for connecting to the SMTP server.

Sender

Default: <not set>
The default sender mail address when sending mails. This can be configured more detailed in the inPoint.Client → Admin → E-mail templates

SenderName

Default: <not set>
The default sender display name when sending mails. This can be configured more detailed in the inPoint.Client → Admin → E-mail templates

User

Default: <not set>
The user name for connecting to the SMTP server (leave empty for anonymous access).

Password

Default: <not set>
The user password for connecting to the SMTP server(leave empty for anonymous access; use Encrypter.exe).

BulkMerge

Default: <not set>
When user should get all of his notification merge into one single mail, this is the stylesheet (XSL) for combining those mails.

Example

  <PamNotification Retries="5" TestRecipient="">
<SMTPSettings Server="smtp.inpoint.local" Port="25" Sender="inPoint@inpoint.local" SenderName="inPoint" User="" Password="" BulkMerge=""/>
</PamNotification>

inPoint Jobs Queue Handler Job

The job executes a single request from the inPoint-Jobs-Queue (in the table PAM_JOBSQUEUE). This job is not created by the setup but is dynamically created by the server for immediate processing of a single request.

The task are:

  • RelocationJob: Move all documents included in a folder structure to a different storage location. This implements the server part of the "JobQueue" plugin from the client (for background processing see inPoint Relocation Job.
  • CreateFromTemplate: Creating folder structures from folder templates.
  • UpdateAfterMoveJob: Updating shares, reminder,... after moving a document or folder in the background.
  • DeleteRequestFromSearch: Executes a fulltext search in the background and adds all hits to a purge request.

Tenant specific: No
Installation: not installed
Default name: not installed

Job Class*

Default: inPoint.Jobs.JobsQueueHandlerJob, inPoint.Jobs, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Settings

JobsQueueId*

Default: <not set>
This job will execute exactly one line from the jobs queue given by its id and will deactivate and remove itself afterwards if successful.

Example

This would execute one specific entry from the queue. This should not be edited by a user but it might be useful to locate the corresponding entry in the jobs-queue-table.

<?xml version="1.0"?>
<JobsQueueHandlerJobSettings
JobsQueueId="1234"
/>

inPoint Purge Job

This job implements the Delete Forever (GDPR) as background operation.

Tenant specific: No
Installation: inPoint.Server
Default name: inPoint.PurgeJob

Job Class*

Default: inPoint.Jobs.Purge.PurgeJob, inPoint.Jobs, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Settings

CsvSeparator

Default: ,
The separator for the CSV file.

CsvStringChar

Default: "
The character used to quote strings.

KeepRequest

Default: Request
Defines which information is to be kept for each processed request.

  • Nothing: Delete everything from the tables.
  • Request: Keep the request, but deletes the list of items!
  • RequestAndItems: Keeps the request and the list of items.
  • RequestAndFolder: Keeps the request, the list of items and if linked to a folder in inPoint keeps this folder too (this folder is created when a purge request is created by a user in the inPoint client).

CommandTimeout

Default: 600
The timeout in seconds for executing database commands (unless there is already a higher timeout configured in the "App Config".

PurgeId

Default: <not set>
This is for testing only, the job will process only a single purge request given by this id!

Examples

Setup Default

This is how the inPoint.Wizard creates the job.

<?xml version="1.0"?>
<PurgeJobSettings>
<!--The separator for the CSV file(default is: ,)-->
<CsvSeparator>,</CsvSeparator>

<!--The character used to quote strings(default is: ")-->
<CsvStringChar>"</CsvStringChar>

<!--Which information is to be kept for each request
Nothing: delete everything from the tables
Request: keep the request, but delete the list of items(default)
RequestAndItems: keeps the request and the list of items. -->
<KeepRequest>Request</KeepRequest>

<!--Override the default database command timeout(default is: 600)-->
<CommandTimeout>600</CommandTimeout>
</PurgeJobSettings>

inPoint Reminder Custom Action Job

This job executes the custom actions for reminder if the time is reached.

Tenant specific: No
Installation: inPoint.Server
Default name: inPoint.Jobs.ReminderCustomActionJob

Job Class*

Default: inPoint.Jobs.ReminderCustomActionJob, inPoint.Jobs, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=null
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.Core
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Settings

Blocksize*

Default: 1000
The number of entries to process in one run.

MailSenderAddress*

Default: jobs@inPoint
In case of an error, an e-mail is sent using this address. The recipient is configured in each custom action itself.

MailSenderName*

Default: inPoint.Jobs Reminder
In case of an error, an e-mail is sent using this display name.

Example

The job is created empty by the inPoint.Wizard, because there are defaults for all values. If configured it would look like this.

<?xml version="1.0"?>
<ReminderCustomActionJobSettings
Blocksize="1000"
MailSenderName="inPoint.Jobs Reminder"
MailSenderAddress="jobs@inPoint"
/>

inPoint.HashJob

This is a legacy job, which can create the hashes ('DOCHASH' and 'DOCRELHASH') for finding related documents for archived documents.

Tenant specific: No
Installation: not installed
Default name: not installed

Job Class*

Default: Pam.Match.HashJob.PamHashJob, inPoint.Match.HashJob, Version=<AssemblyVersion>, Culture=neutral, PublicKeyToken=83f8129610a968e2
The name of the class that implements this job including the version of the assembly.

App Path*

Default: C:\Program Files (x86)\HS Europe\inPoint.Archive\inPoint.Archive.Service
The directory where the file is located.

App Config*

Default: C:\Program Files (x86)\HS Europe\inPoint.Enterprise\inPoint.WebDav\web\web.config
The configuration file which is used by the job.

Settings

archiveId

Default: -1
The id of the archive to be processed, use -1 to process all.

unitId

Default: -1
The id of the archive unit to be processed, use -1 to process all.

runOnce

Default: false
Set to true, if the process should only run once.

FileTypes

A list of file-types and how they are hashed.

fileExt*

The extension including the dot. (use '.*' to match all)

fullTypeName*

The class which implements the hasher. This can any of the predefined hasher or a full qualified type name for a custom hasher.

  • ImageMetaDataHasher: For images. The MD5 of the content is saved as 'DOCHASH' and all text metadata inside of the image file and the preview is hashed as 'DOCRELHASH'.
  • MsgFileHasher: For mails saved as msg file. Using the "MessageID" as 'DOCHASH' and the "Conversation Index" as 'DOCRELHASH'.
  • FileHasherEml: For mails saved as eml file. Using the "Message-ID" as 'DOCHASH' and the "Thread-Index" as 'DOCRELHASH'.
  • FileHasherMd5: For any file, which just creates the MD5 of the content as 'DOCHASH'.
  • None: Predefined hasher which returns null.

A list of 'SearchParam' to search for the documents to be hashed. If the search is done over multiple archives or archive units make sure that the specified columns exist in all units.

Name*

The name of the column in the database.

Not*

true or false to negate the operator

SearchOp*

One of the defined search operator.

  • Equal: Equal to
  • Like: wild-card comparison (use '%' and '_' as wild-cards)
  • Greater: Greater Than
  • GreaterOrEqual: Greater Than or Equal To
  • Less: Less Than
  • LessOrEqual: Less Than or Equal To
  • In: Determines if a given value matches any value in a list (The argument for this search must be a list of values.)
  • Between: Determines if a given value is in the range of two values.
  • IsNull: Determines if a column is not set at all.

Value

The value or the list of values to be searched. This must include the type and the value itself.

  • In case of a single value use of of these types:
    • text: xsi:type="xsd:string"
      e.g.: <Value xsi:type="xsd:string">TODO</Value>
    • number: xsi:type="xsd:decimal"
      e.g.: <Value xsi:type="xsd:decimal">4711</Value>
    • date: xsi:type="xsd:dateTime"
      e.g.: <Value xsi:type="xsd:dateTime">2020-01-01T00:00:00+02:00</Value>
  • For a list of values use one these types:
    • text: xsi:type="ArrayOfString" and use multiple 'string' elements.
      e.g.: <Value xsi:type="ArrayOfString"><string>TODO</string></Value>
    • number: xsi:type="ArrayOfDecimal" and use multiple 'decimal' elements.
      e.g.: <Value xsi:type="ArrayOfDecimal"><decimal>4711</decimal></Value>
    • date: xsi:type="ArrayOfDateTime" and use multiple 'dateTime' elements.
      e.g.: <Value xsi:type="ArrayOfDateTime"><dateTime>2020-01-01T00:00:00+02:00</dateTime> </Value>

Example

This will process all archives and archive units, create hashes for common image types and mails (all other files will get empty hashes). All documents which have "TODO" in both 'DOCHASH' and 'DOCRELHASH' will be processed.

<?xml version="1.0"?>
<PamHashJobSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
archiveId="-1" unitId="-1" runOnce="false">
<FileTypes>
<FileHasherType fileExt=".msg" fullTypeName="MsgFileHasher" />
<FileHasherType fileExt=".eml" fullTypeName="FileHasherEml" />
<FileHasherType fileExt=".tif" fullTypeName="ImageMetaDataHasher" />
<FileHasherType fileExt=".tiff" fullTypeName="ImageMetaDataHasher" />
<FileHasherType fileExt=".jpg" fullTypeName="ImageMetaDataHasher" />
<FileHasherType fileExt=".jpeg" fullTypeName="ImageMetaDataHasher" />
<FileHasherType fileExt=".bmp" fullTypeName="ImageMetaDataHasher" />
<FileHasherType fileExt=".png" fullTypeName="ImageMetaDataHasher" />
</FileTypes>
<Search>
<SearchParam>
<Name>DOCHASH</Name>
<Not>false</Not>
<SearchOp>Equal</SearchOp>
<Value xsi:type="xsd:string">TODO</Value>
</SearchParam>
<SearchParam>
<Name>DOCRELHASH</Name>
<Not>false</Not>
<SearchOp>Equal</SearchOp>
<Value xsi:type="xsd:string">TODO</Value>
</SearchParam>
</Search>
</PamHashJobSettings>

inPoint DeleteJob

This is a legacy job, which deletes documents from inPoint by using a query for fetching the data. This is a predefined type, which does not need 'Job Class', 'App Path' or 'App Config'.

Tenant specific: No
Installation: not installed
Default name: not installed

Job Class*

Not needed, own type when creating the job.

App Path*

Not needed!

App Config*

Not needed!

Settings

ArchiveId

Default: -1
The id of the archive to be processed, use -1 to process all.

UnitId

Default: -1
The id of the archive unit to be processed, use -1 to process all.

BlockSize

Default: 1000
How may documents are read and deleted in one batch.

Search

A list of 'SearchParam' to search for the documents to be deleted. If the search is done over multiple archives or archive units make sure that the specified columns exist in all units. The query works similar to the one from the HashJob, use the same search settings.

ExcludeFiles

Default: <not set>
It's possible to exclude a list of documents (given by their DOCID), which would be in the found with the query.
The default location is: C:\Program Files (x86)\HS Europe\inPoint.Archive\inPoint.Archive.Service\JobFiles\xxxx\Exclude.txt (where 'xxxx' is the id of the job).

ExcludeFilesMd5

Default: <not set>
If an exclude file is defined, this is the MD5 checksum of it.

Search

A list of 'SearchParam' to search for the documents to be hashed.

Example

This will delete all documents archived in the year 2000.

<?xml version="1.0"?>
<DeleteJobSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ArchiveId>1</ArchiveId>
<UnitId>1</UnitId>
<Search>
<SearchParam>
<Name>DOCID</Name>
<Not>false</Not>
<SearchOp>Like</SearchOp>
<Value xsi:type="xsd:string">2000%</Value>
</SearchParam>
</Search>
<BlockSize>1000</BlockSize>
<ExcludeFiles>Exclude.txt</ExcludeFiles>
<ExcludeFilesMd5>221704229E5740D83D7182E893721096</ExcludeFilesMd5>
</DeleteJobSettings>