User Guide

Introduction

The Operaio Asset Management for SCSM expands the functions of Microsoft System Center Service Manager (SCSM) and enables companies to manage their hardware assets, software assets, and contracts efficiently and sustainably. The add-on allows tracking of hardware assets during their whole life cycle, and enables companies to call up information on assets’ locations, users, or cost centers at any time.

Software assets can be tracked with the purchased licenses, and you can control whether licenses are assigned to users and computers manually, or automatically based on the inventory from System Center Configuration Manager. You can also add technical installation details to your software assets, holding information about how the software can be deployed to your computers.

To complete the benefits, the add-on allows different contract types, such as leasing, warranty or service contracts to be linked to the respective assets. All asset management data resides in the Service Manager CMDB, and can be visualized transparently at any time in the Service Manager console, the Operaio Analyst portal, or with the supplied reports.

What's in this guide?

The purpose of this document is to explain the concepts, ideas and usage of Operaio Asset Management for SCSM to asset managers. It contains the following parts:

  • Working with Asset Management
    • Using the SCSM Console
    • Using the Operaio ITSM Analyst Portal
  • Data Model
  • Workflows

Working with Asset Management

As an Asset Manager you can use either the SCSM console or the Operaio ITSM Analyst Portal to work with Operaio Asset Management for SCSM.

All data is stored in the SCSM CMDB, and the data is based on the SCSM data model system, i.e. you can make use of user-defined views, workflows, tasks, etc., but of course you can also use the data in request offerings in the self-service portal.

Using the SCSM Console

Operaio Asset Managements for SCSM is displayed in the SCSM console in the form of its own wunderbar. The individual areas are structured as follows:

  • Hardware Asset Management
  • Software Asset Management
  • Contract Management
  • Master Data

Using the Operaio ITSM Analyst Portal

If you own the Operaio ITSM Analyst Portal and you want to use the portal to manage your assets, please follow the installation guide to properly install the required components. The asset management areas are then available in the portal in a separate section.

Data Model

The detailed data model is documented as a Visio diagram and is continuously updated. This is why we only refer to the most important concepts and properties in this section. The aim is to introduce the individual classes and to explain the most important ideas and concepts.

General Concepts

External Sync

In scenarios where asset management is not the master of the data, it is common for the data to be imported via connectors into the CMDB and thus into asset management. Nevertheless, it is possible that certain entities are maintained manually in Asset Management.

In order to take this circumstance into account, many entities are equipped with the following attributes:

  • Externally Managed: If this Boolean is set to true, the instance is imported through a connector and not managed manually
  • Externally Last Synced: use this property to set a timestamp when the last synchronization occurred

These attributes can be set accordingly via scripts/connectors/runbooks. They are not automatically populated. The fields are read-only on the respective forms in the SCSM console.

Prices

When Operaio Asset Management for SCSM is installed, each configuration item in the SCSM CMDB can have a price. This functionality is exposed in the respective forms of the following asset management objects:

  • Hardware Catalog Item
  • Hardware Asset
  • License
  • Software Asset

Because different prices have to be managed depending on the use case, Asset Management uses a generic approach: Five prices can be defined for each object, with the following fields available per price:

  • Price Type: This is a list which you can use to manage the type of the price, such as Purchase Price, Sales Price, Transfer Price, Chargeback Amount, etc. You have to add entries to the Price Type list first
  • Price Amount: Use this field to enter the price
  • Price Currency: This is a list to identify the currency of the respective price. You have to add entries to the Currency list first.
  • Price Periodicity: This is a list to identify the periodicity of the price, such as One-time, yearly, quarterly, monthly, daily, hourly, etc. You have to add entries to the Price Periodicity list first.

Hardware Asset Management

Hardware Catalog Item

Hardware catalog item objects represent types of hardware of either managed hardware assets or unmanaged consumables. Every managed hardware asset and consumable that lives in the CMDB should be related to an appropriate hardware catalog item object. These objects are normally used in request offerings to create self-service shop experiences in the portal.

Example: If your company owns and offers “Microsoft Surface Pro 6” devices to your users, then you would have an active hardware catalog item named “Microsoft Surface Pro 6” in asset management, and each individual Surface device would be a Hardware Asset object with the appropriate serial number, which is related to the hardware catalog item.

Special attributes:

  • Type: Use this field to specify the type of the hardware catalog item (laptop, desktop computer, mobile phone, network device, printer, etc.). You have to specify entries in the Hardware Catalog Item Type list first.
  • Can Be Requested: This is useful to filter out hardware catalog items that should not be visible in the self-service portal.
  • Needs Approval: This is useful in automation scenarios where you want to trigger an approval (review activity) only for certain hardware catalog items.
  • Is Accessory: Use this field to identify accessories and create appropriate filters in queries

Hardware Asset

A hardware asset represents a physical, managed device during its whole lifecycle. Hardware assets are normally used to represent desktop or notebook computers, network devices, printers, mobile phones, etc. that are either in stock or deployed at a user’s desk or in your office locations. With that information, IT knows where the managed devices are located, who is using them and who is paying for them.

Unlike consumables, hardware assets are serialized devices that can be uniquely identified, usually by a serial number.

Computers are also imported into the SCSM database by the AD Connector and the SCCM Connector. With the Hardware Asset Windows Computer Mapping Workflow, these objects are automatically linked to the corresponding hardware assets. The link can be seen under Inventoried Configuration Item. See Hardware Asset Windows Computer Mapping Workflow for more information.

Special attributes:

  • Child Assets: List of hardware assets that are related to the hardware asset. Can be used to logically «connect» multiple hardware assets such as a notebook and a docking station.
  • Used By Organizations: This list of organizations can be useful for internal chargeback, when you have a use case where costs must be allocated to organizations that make use of certain hardware assets, such as network devices, for example.

Consumable

A consumable object represents a semi-managed object. Other than hardware assets which are fully managed during the whole lifecycle, consumables are used for unmanaged objects where only the stock amount is of interest (non-serialized assets). If someone orders a new consumable object, the stock amount is reduced by the appropriate number.

You normally hold one position per stock location where your consumables of a certain type are stored. For example, if you have 100 mice of type “Logitech MX400” in Stock Location A, and another 200 mice of the same type in Stock Location B, you would create one Hardware Catalog Item for “Logitech MX400”, and 2 related Consumable records, one with quantity 100 and Stock Location A, and another one with quantity 200 and Stock Location B.

Special attributes:

  • Stock Count: The number of items on stock. To be increased/decreased as items are added to or removed from stock.

Software Asset Management

Software Asset

Software asset objects represent managed applications. They are used to assign software to persons or devices. The related licenses are used to calculate the assigned and available licenses of a company.

Two workflows are relevant for software assets: The Software Asset Installation Workflow maps computers that have a certain software asset installed to the respective software asset(s), and the Software Asset Licensing Workflow counts the number of available and used licenses based on mapped licenses and mapped computers. More information about how the calculation and the mapping works can be found in Software Asset Installation Workflow and Asset Licensing Workflow](#software-asset-licensing-workflow) respectively.

The detection of computers that have a certain software installed only works in combination with the SCCM Connector. This connector imports installed software items into SCSM and reports which Software Items are installed on which computers. In Asset Management, these Software Items must now be connected to the Software Assets. This can be done manually and/or automatically using definable matching patterns. On the Mapping tab, you can define matching patterns in the Software Item Matching Pattern field. All Software Items that match the pattern will then be added to the list This Software Asset is mapped to the following Software Items based on the matching pattern by the workflow. To manually define Software Items that should count towards a Software Asset, you can add them to the list This Software Asset is manually mapped to the following Software Items. More information about mapping computers to Software Items and Software Assets can be found in Software Asset Installation Workflow.

Alternatively, if you do not want or cannot track license usage by installed Software Items, you can manually add the configuration items (computers, network devices, etc.) that use a license to the list Assigned Configuration Items. This is useful for Client Access Licenses that are not represented by a detectable piece of installed software, for instance.

Special attributes:

  • Category: The category of the software, such as Office Suite, Productivity, Tools, etc. You have to specify entries in the Software Asset Category list first.
  • Total Entitlements: The total number of licenses you are entitled to. Automatically filled by the Software Asset Licensing Workflow.
  • Assigned Entitlements: The total number of licenses manually assigned to configuration items. Automatically filled by the Software Asset Licensing Workflow.
  • Installed Entitlements: The total number of licenses used by computers that have matching Software Items installed. Automatically filled by the Software Asset Licensing Workflow.
  • Remining Entitlements: The total number of unused licenses. Automatically filled by the Software Asset Licensing Workflow.
  • License Count Type: defines how remaining entitlements are calculated
    • By Installation: Only automatically discovered configuration items are taken into account (the ones discovered by the Software Asset Installation Workflow)
    • By Assignment: Only manually maintained configuration items are taken into account.
    • Both: The higher of the two numbers is taken into account.
  • License Warning Threshold: defines the number of unused licenses from which on the Licensing Status will change to Warning
  • Licensing Status: the Status depending on remaining licenses and warning threshold (OK, Warning, Underlicensed)
  • Can Be Requested: This is useful to filter out software assets that should not be visible in the self-service portal.
  • Needs Approval: This is useful in automation scenarios where you want to trigger an approval (review activity) only for certain software assets.
  • Needs License: Use this field to identify software assets that require a license
  • Software Asset Details: contain technical information for automatically installing and removing related software assets on target machines. You can store deployment types, AD groups for software installation and removal, SCCM collections, etc. in this tab. This then allows you to retrieve the relevant information when you automate the installation of software using runbooks or scripts.
  • Downgrade & Upgrades: Here you can specify with which newer or older software assets the current asset can be licensed as well. The remaining entitlements from upgrade and downgrade software assets are added to the current software asset's total entitlements.

License

Licenses are used to define the licensing mode and the number of available licenses of a software asset. After assigning license objects to software assets, the Software Asset Licensing Workflow calculates the number of available, installed, assigned and remaining licenses of a software asset (see Software Asset Licensing Workflow).

Special attributes:

  • License Unit: The unit which defines the license quantity, such as Device, User, or CPU. You have to specify entries in the License Unit list first.
  • License Type: The type of license, such as CAL, User License, etc. You have to specify entries in the License Type list first.
  • License Count: The number of licenses. This field is used by the workflow to calculate the total number of entitlements on the software asset.
  • Software Assets: The software assets this license should count towards.

Contract Management

Contract

A contract object can be used to keep track of a contract, such as a software license contract, a warranty agreement, a support contract, etc. The Contract Expiration Workflow can be used to send notifications when contracts are about to expire.

Special attributes:

  • Type: The type of contract, such as Warranty Agreement, Lease, Software License Agreement, etc. You have to specify entries in the Contract Type list first.
  • Master Contract: An optional relationship to another contract which is a master agreement for this contract.
  • Superseded By Contract: An optional relation to a contract which supersedes this contract.
  • End Date / Expiration Warning Threshold In Days: These fields are used to determine when a notification should be sent about the contract expiration. See Contract Expiration Workflow for more information.
  • Assigned Configuration Items: Here you can add items that are related to this contract, such as computers that are under warranty by a certain agreement.

Vendor

A vendor object can be used to manage vendors that represent contractual parties of contracts, issue quotes and invoices, or receive purchase orders.

Special attributes:

  • Documents: The list of Sales Documents lists all Invoices, Quotes, and Purchase Orders that are related to this vendor, and the list of Contracts lists all contracts with this vendor.

Quote

Quotes can be used to keep track of quotes that are received from vendors.

Purchase Order

Purchase Orders can be used to keep track of POs that are issued to vendors.

Invoice

Invoices can be used to keep track of Invoices sent by vendors.

Master Data

Cost Center

Cost centers can be used for billing purposes. They are related to organizations. Objects such as licenses or hardware assets can be directly linked to cost centers.

Special attributes:

  • Managers: : Here you can add persons who are responsible for the cost center. You can make use of this information using runbooks/workflows for approval scenarios (e.g. when a software is ordered, add the managers of the cost center the person ordering the software belongs to as reviewers of the review activity).

Location

Location objects represent physical locations of a company, such as a country, city, company campus or building.

Special attributes:

  • Type: Use this field to specify the type of the location (country, region, city, campus, building, room, etc.). You have to specify entries in the Location Type list first.
  • Parent Location / Child Locations: The solution allows you to build hierarchical location structures by configuring parent/child locations
  • Default Service Request Support Group: Here you can choose a support group from the Service Request Support Group list in SCSM. This can be useful in scenarios where you would like to use runbooks or workflows to automatically select the appropriate support group when service requests relating a location are created.
  • Active Directory OU Distinguished Name: Here you can enter the distinguished name of an OU in Active Directory that represents this location (if applicable). This can be useful in scenarios where you would like to use runbooks or workflows to automatically place objects you create (such as users) into the appropriate organization unit.
  • Default Culture: Use this field to specify the default culture users in this location have. Can be useful for automation purposes.
  • Time Zone: Use this field to specify the time zone of the location. Can be useful for automation purposes.

Organization

Organization objects represent companies, business units or departments. Organizations are mainly used to assign hardware assets, persons, licenses or cost centers.

Special attributes:

  • Parent Organization / Child Organizations: The solution allows you to build hierarchical organizational structures by configuring parent/child organizations
  • Primary Location / Additional Locations: Used to specify the headquarter / main location of an organization. Use the Additional Locations list to specify other locations.
  • Managers: Here you can add persons who are responsible for the cost center. You can make use of this information using runbooks/workflows for approval scenarios. (e.g. when a software is ordered, add the managers of the organization the person ordering the software belongs to as reviewers of the review activity).

Subnet

Subnets are used to map Hardware assets to a location depending on the IP Address of Hardware Assets. If a Hardware Asset's IP address matches the range of a subnet, the hardware asset is automatically related to the location related to the corresponding subnet object.

Special attributes:

  • IP Address Range: The IP Address range of the subnet. (Example: 192.168.0.[0-255])
  • Location: The Location to which Hardware Assets will be related if they match the IP Address range.

Person

Person objects represent company employees or contractors. They are mainly used in employee joiner and leaver processes to onboard or offboard employees. A person object is the central object for an employee where software assets, hardware assets and many other objects are related to.

In contrast to the user class, which is supplied with SCSM by default and imports all users from Active Directory via the AD connector, only those users who correspond to actual persons should be actively managed in Asset Management. For this reason, Asset Management uses its own entity. This ensures that generic user objects such as service accounts, admin accounts, test accounts, etc. are not regarded as persons.

To make a connection between the person object and the user object possible, the corresponding user object can be assigned to the person object in the Primary AD User field.

With this relationship between the two objects, you can traverse from the Person to the User, which is important in automation scenarios.

If you don't want to manually create person objects, or if you don't want to create person objects using processes or automated offerings, you can use the Person Workflow to automatically create person objects and keep them up to date. More information can be found in Person Workflow.

Special attributes:

  • Default Culture: Use this field to specify the default culture of the user. Can be useful for automation purposes when setting up new client computers for the person.
  • Is Real Person: Used to identify Person objects which represent real people. There are scenarios where you might have generic Person objects, which would have this attribute set to false.
  • Primary AD User / Assigned AD Users: Used to map the user’s Active Directory user accounts (see above). The Primary AD User is the main user account of the person. If the person owns additional accounts (such as administrative user accounts), you can add them to the list of Assigned AD Users.

Role

Roles are used to define user- or device-specific roles. They contain assigned permissions, applications or other related objects that can be assigned automatically during provisioning processes or during the lifecycle. By default, there is no automatic assignment or removal of role-based configuration items. This needs to be configured using workflows or automation.

An example would be a role named “CAD Workstation” where you would all software that normally is installed on a CAD Workstation to the Default Configuration Items for this Role list. Then, you can use request offerings to let users order CAD Workstation, which then uses automation runbooks to provision the computer and install the software according to this list.

Special attributes:

  • Type: Use this field to specify the type of the role, such as Device Role, Person Role, etc. You have to specify entries in the Role Type list first.
  • Default Configuration Items for this Role: Here you add the objects that belong to this role, i.e. each item which is of this role type should get these items assigned
  • Optional Configuration Items for this Role: Here you add objects that can optionally belong to items of this role. You could use request offerings and allow the user to choose from these items after selecting the role.
  • Configuration Items based on this Role: Here you add or see the items that are based on this role. Please note that this information needs to be maintained manually or with workflows/automation.

Culture

Culture objects represent cultures. They can be related to locations and persons. Culture objects can be one-time imported into the CMDB using the appropriate script from the installation media:

PopulateCultures.ps1

You must run this script from a SCSM management server

Time Zone

Time Zone objects represent time zones. They can be related to locations. Time zone objects can be one-time imported into the CMDB using the appropriate script from the installation media:

PopulateTimeZones.ps1

You must run this script from a SCSM management server

Workflows

itnetX Asset Management for SCSM contains a number of workflows that support perform periodic data imports and data mappings, such as importing Person objects or mapping Windows Computers to Hardware Assets.

This chapter explains what the purpose of each workflow is and exactly what they do. Information about how you can enable/disable workflows, when and how often they are triggered, as well as how you can run them manually and troubleshoot them, can be found in the Installation Guide.

Hardware Asset Windows Computer Mapping Workflow

SCSM uses Windows Computer objects to represent logical computers. itnetX Asset Management for SCSM, on the other hand, uses Hardware Assets. This is because a managed asset is not always the same as the operating system environment (OSE) running on it. For example, a physical computer can run two or more virtual machines. These are two or more logical Windows Computer objects, but only one Hardware Asset.

Often, especially on client computers where there a 1:1 relationship between the OSE and the physical device exists, it is desirable that the logical Windows computer object be connected to the Hardware Asset. This can be achieved with the Hardware Asset Windows Computer Mapping Workflow.

It is important to understand that the mapping only happens between Hardware Assets and the Windows Computer objects located in the SCSM CMDB; Asset Management does not establish a direct connection to your Active Directory or SCCM, but assumes that you have set up connectors. The workflow then takes the Windows Computer objects from the CMDB (active instances of the Microsoft.Windows.Computer class).

In other words, the Windows Computers must exist under Configuration Items – Computers – All Windows Computers for them to be mapped to Hardware Assets.

The matching between Windows Computers and Hardware Assets is done by comparing the serial number, SMBIOS GUID, and principal name with the respective properties of the Hardware Assets.

Process Explained

Whenever the workflow runs, the following actions are performed:

  • All instances of the Hardware Asset class are retrieved which are not deleted
  • All instances of the class Microsoft.Windows.Computer are retrieved which are not deleted
    • For each Windows Computer object in the list of Windows Computers, do the following:
      • Try to find a matching Hardware Asset where at least one of the following rules is true:
        • WindowsComputer.SMBIOS_UUID = HardwareAsset.FirmwareGUID
        • WindowsComputer.SerialNumber = HardwareAsset.SerialNumber
        • WindowsComputer.PrincipalName starts with HardwareAsset.DisplayName
      • If a matching Hardware Asset is found:
        • Set the Windows Computer as the Inventoried Configuration Item of the Hardware Asset (itnetX.AssetManagement.HardwareAssetHasConfigurationItem relationship)
  • All existing relationships of type itnetX.AssetManagement.HardwareAssetHasConfigurationItem are retrieved
    • For each item in the list of relationships, do the following:
      • Check if the source Hardware Asset and the target Windows Computer still have at least one of the above-mentioned mapping rules which is true
        • If this is not the case, delete the relationship

Software Asset Installation Workflow

Asset Management allows you to define one or more patterns that are used to automatically detect installed software on computers.

You can define multiple matching patterns and separate them with a semicolon (;). You can use Asterix (*) as a wildcard for any number of characters, or question mark (?) as a wildcard for any one character.

The workflow compares the patterns with the software items discovered by SCCM. Any software item that matches one or more patterns is connected to the Software Asset, and so are any computers that have these software items installed.

It is important to understand that the mapping only happens against the Software Item objects located in the SCSM CMDB; Asset Management does not establish a direct connection to your SCCM, but assumes that you have set up connectors. The workflow then takes the Software Item objects from the CMDB (active instances of the System.SoftwareItem class).

In other words, the Software Items must exist under Configuration Items – Software – All Software for them to be mapped to Software Assets.

The data which this workflow generates is used later also by the Software Asset Licensing Workflow, in order to determine the number of used licenses.

Process Explained

Whenever the workflow runs, the following actions are performed:

  • All instances of the Software Asset class are retrieved which are not deleted and the Status property is Active.
    • For each Software Asset object in the list of Software Assets, do the following:
      • All existing relationships of type itnetX.AssetManagement.SoftwareAssetHasSoftwareItem with the Software Asset as its source are retrieved
        • For each item in the list of relationships, do the following:
          • Check if the target Software Item still matches one of the patterns defined in the SoftwareItemMatchingPattern property of the Software Asset, whereas the DisplayName property of the Software Item is used to do be comparison.
            • If this is not the case, delete the relationship
      • Get a all instances of class System.SoftwareItem which match at least one item pattern defined in the SoftwareItemMatchingPattern property of the Software Asset, whereas the DisplayName property of the Software Item is used to do be comparison.
        • For each Software Item object in the list of Software Items, do the following:
          • Create a new relationship of type itnetX.AssetManagement.SoftwareAssetHasSoftwareItem between the Software Asset and the Software Item
      • If no SoftwareItemMatchingPattern has been defined, all existing relationship instance of type itnetX.AssetManagement.SoftwareAssetHasSoftwareItem with the Software Asset as its source are deleted.
      • Get all distinct Software Items from the two relationships itnetX.AssetManagement.SoftwareAssetHasSoftwareItem and itnetX.AssetManagement.SoftwareAssetHasManualSoftwareItem which have the Software Asset as its source.
      • All existing relationships of type itnetX.AssetManagement.SoftwareAssetIsInstalledOnDevice with the Software Asset as its source are retrieved
        • For each item in the list of relationships, do the following:
          • Check if the device still has at least one of the distinct Software Items installed (relationship System.DeviceHasSoftwareItemInstalled).
            • If this is not the case, delete the relationship
      • For each distinct Software Item in the list of distinct Software Items, do the following:
        • Retrieve all devices that have this Software Item installed (relationship System.DeviceHasSoftwareItemInstalled).
        • For each Device in the list of Devices, do the following:
          • Create a new relationship of type itnetX.AssetManagement.SoftwareAssetIsInstalledOnDevice with the Software Asset as the source and the Device as the target.

Software Asset Licensing Workflow

This workflow determines the number of licenses per software asset, and calculates how many licenses are in use and how many are still available.

To determine the number of licenses, all licenses associated with the Software Asset are summed up. The number of manually assigned Configuration Items is then determined (Assigned Entitlements), and the number of Configuration Items automatically assigned by the Software Asset Installation Workflow is determined (Installed Entitlements).

Finally, the number of available licenses is calculated based on the defined license count type:

  • By Installation: Only automatically discovered configuration items are taken into account (the ones discovered by the Software Asset Installation Workflow)
  • By Assignment: Only manually maintained configuration items are taken into account.
  • Both: The higher of the two numbers is taken into account.

Process Explained

Whenever the workflow runs, the following actions are performed:

  • All instances of the Software Asset class are retrieved which are not deleted and the Status property is Active.
    • For each Software Asset object in the list of Software Assets, do the following:
      • Get all related licenses (relationship itnetX.AssetManagement.SoftwareAssetHasLicense) and create the sum of LicenseCount or all licenses found.
        • Set the value of the TotalEntitlements property to the sum of LicenseCount
      • Get the number of configuration items that have been manually assigned to the Software Asset (relationship itnetX.AssetManagement.SoftwareAssetIsAssignedToConfigItem)
        • Set the value of the AssignedEntitlements property to the number of CIs
      • Get the number of configuration items that have been automatically assigned to the Software Asset by the Software Asset Installation Workflow (relationship itnetX.AssetManagement SoftwareAssetIsInstalledOnDevice)
        • Set the value of the InstalledEntitlements property to the number of CIs
      • If the value of the LicenseCountType property equals By Installation
        • Set the value of the RemainingEntitlements property to TotalEntitlements - InstalledEntitlements
      • If the value of the LicenseCountType property equals By Assignment
        • Set the value of the RemainingEntitlements property to TotalEntitlements – AssignedEntitlements
      • If the value of the LicenseCountType property equals Both
        • Set the value of the RemainingEntitlements property to TotalEntitlements minus the higher value of AssignedEntitlements and InstalledEntitlements.
      • If RemainingEntitlements is greater than or equal LicenseWarningThreshold
        • Set the value of the LicensingStatus property to OK
      • If RemainingEntitlements is less than LicenseWarningThreshold and RemainingEntitlements is greater than or equal zero
        • Set the value of the LicensingStatus property to Warning
      • If RemainingEntitlements is less than zero
        • Set the value of the LicensingStatus property to Underlicensed

Person Workflow

As explained earlier in this document, itnetX Asset Management for SCSM uses the Person class to manage individuals and link them to assets. If you don't want to manually create person objects, or if you don't want to create person objects using processes or automated offerings, you can use the Person Workflow to automatically create person objects and keep them up to date.

It is important to understand that person objects are created from AD objects located in the SCSM CMDB; Asset Management does not establish a direct connection to your Active Directory, but assumes that you have set up AD connectors. The workflow then takes the AD users from the CMDB (active instances of the Microsoft.AD.User class).

In other words, the AD user must exist under Configuration Items – Users for it to become a Person object.

In the Settings of the Workflow (see Installation Guide), you can optionally define a Distinguished Name Matching Pattern for the Person Workflow. This allows you to filter out AD user objects you do not want to become Person objects, such as service accounts, for instance.

Example: *OU=Users,OU=LAB,DC=ix,DC=lab

This Matching Pattern will only import AD user objects that are within the LAB\Users organizational unit in the IX.lab domain.

You can define multiple matching patterns and separate them with a semicolon (;). You can use Asterix (*) as a wildcard for any number of characters, or question mark (?) as a wildcard for any one character.

Process Explained

Whenever the workflow runs, the following actions are performed:

  • All instances of the class Microsoft.AD.User are retrieved which are not deleted and the UPN property is not null.
    • Filter the list of AD users using the Matching Pattern(s), if defined
    • For each AD user object in the list of AD users, do the following:
      • Check if a Person object exists where the UserPrinciplanName of the Person matches the UPN of the AD user, and the Person is not deleted
      • If no matching Person object is found:
        • Create a new Person object, using the following property mapping:
          • Person.PersonID = “PER{n}”
          • Person.Status = “Active”
          • Person.DisplayName = ADUser.DisplayName
          • Person.FirstName = ADUser.FirstName
          • Person.LastName = ADUser.LastName
          • Person.UserPrincipalName = ADUser.UPN
          • Person.UserLogonName = ADUser.UserName
          • Person.OfficePhone = ADUser.BusinessPhone
          • Person.MobilePhone = ADUser.Mobile
          • Person.EmailAddress = SMTP target address of user in CMDB
        • Set the AD user as the Primary AD Account of the newly created Person object (itnetX.AssetManagement.PersonHasPrimaryADAccount relationship)
      • If a matching Person object is found:
        • Update the Person object, using the following property mapping:
          • Person.DisplayName = ADUser.DisplayName
          • Person.FirstName = ADUser.FirstName
          • Person.LastName = ADUser.LastName
          • Person.UserPrincipalName = ADUser.UPN
          • Person.UserLogonName = ADUser.UserName
          • Person.OfficePhone = ADUser.BusinessPhone
          • Person.MobilePhone = ADUser.Mobile
          • Person.EmailAddress = SMTP target address of user in CMDB
          • Person.ObjectStatus = “Active”
        • Set the AD user as the Primary AD Account of the Person object (itnetX.AssetManagement.PersonHasPrimaryADAccount relationship)
  • All instances of the Person class are retrieved which are not deleted and the UserPrincipalName property is not null.
    • For each Person object in the list of Persons, do the following:
      • Check if an AD user object exists where the UPN of the AD user matches the UserPrincipalName of the Person, and the AD user is not deleted
      • If no matching AD user object is found:
        • Delete the Person object (set ObjectStatus to “Pending Delete”)

Contract Expiration Workflow

This workflow allows you to send a notification when contracts are about to expire. The workflow works with the attributes End Date and Expiration Warning Threshold in Days that can be defined on each contract:

In the example of this screenshot, the workflow will set the attribute ExpirationWarning to true on May 29, 2017. This change can be used to send an e-mail or start a workflow via the notification or workflow module of SCSM.

The criterion you would use in a subscription or workflow is:

Process Explained

Whenever the workflow runs, the following actions are performed:

  • All instances of the Contract class are retrieved which are not deleted and where an EndDate is set and the property ExpirationWarning is not true.
    • For each Contract object in the list of Contracts, do the following:
      • Subtract the value of ExpirationWarningThresholdInDays from the EndDate (in days), if a value was set
      • If the calculated date is less than the current date:
        • Set the ExpirationWarning property to true
  • All instances of the Contract class are retrieved which are not deleted and where the property ExpirationWarning is true.
    • For each Contract object in the list of Contracts, do the following:
      • Subtract the value of ExpirationWarningThresholdInDays from the EndDate (in days), if a value was set
      • If no EndDate is set, or if the calculated date greater than or equals the current date:
        • Set the ExpirationWarning property to false

Certificate Renewal Workflow

This workflow creates a Service Request based on the "SR - Certificate Renewal template" template for each Certificate that is about to expire. This Service Request is assigned to the Owner of the Certificate and the Certificate is related to the SR as affected Configuration Item.
You are free to modify the "SR - Certificate Renewal template" to model your process required for a certificate renewal.

Process Explained

Whenever the workflow runs, the following actions are performed:

  • All instances of the Certificate class are retrieved for which the Renewal in Progress property is false and Expiration Date - Days To Alert before is today or in the past.
    • For each of the Certificate instances a Service Request based on the "SR - Certificate Renewal template" is created
    • The primary AD User of the Owner of the Certificate is assigned to the new SR
    • The Certificate is related to the SR as affected Configuration Item
    • The Renewal in Progress property of the Certificate is set to true

Yearly Review Workflow

This workflow creates a Service Request based on the "SR - Yearly Review Template" template for each of the following Items that have no yearly review date set, or a yearly review date in the past:

  • Contract
  • Location
  • Person
  • License
  • Organization
  • Role
  • Vendor
  • Consumable
  • Hardware Asset
  • Hardware Catalog Item
  • Software Asset

You are free to modify the "SR - Yearly Review Template" template to model your process required for a yearly review.

To disable this workflow for specific items in the above list, remove the respective typeprojection from the following section in your workflow configuration management pack:

<WorkflowArrayParameter Name="TypeProjections" Type="guid">
    <Item>$MPElement[Name='itnetX.AssetManagement.Contract.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.Location.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.Person.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.License.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.Organization.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.Role.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.Vendor.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.Consumable.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.HardwareAsset.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.HardwareCatalogItem.YearlyReview.TypeProjection']$</Item>
    <Item>$MPElement[Name='itnetX.AssetManagement.SoftwareAsset.YearlyReview.TypeProjection']$</Item>
</WorkflowArrayParameter>

Also, make sure to remove the corresponding "Additional Criteria" item from the optional AdditionalCriteria parameter. The example below shows such an "Additional Criteria" setting which makes sure that no Yearly Review Service Request is created for Hardware Assets in Status "Decommissioned"

<WorkflowArrayParameter Name="AdditionalCriterias" Type="string">
    <Item></Item>
    <Item></Item>
    <Item></Item>
    <Item></Item>
    <Item></Item>
    <Item></Item>
    <Item></Item>
    <Item></Item>
    <Item>
    <!-- Ignore Hardware Assets with Status "Decomissioned" -->
    <![CDATA[
        <Expression>
        <SimpleExpression>
            <ValueExpressionLeft>
            <Property>$Context/Property[Type='AssetManagement!itnetX.AssetManagement.HardwareAsset']/Status$</Property>
            </ValueExpressionLeft>
            <Operator>NotEqual</Operator>
            <ValueExpressionRight>
            <Value>{3b7258cb-945c-02ce-f6ae-e088402f46ea}</Value>
            </ValueExpressionRight>
        </SimpleExpression>
        </Expression>
        ]]>
    </Item>
    <Item></Item>
    <Item></Item>
    </WorkflowArrayParameter>

Process Explained

Whenever the workflow runs, the following actions are performed:

  • All instances of the Classes listed above are retrieved for which the Review in Progress property is false and Yearly Review date is in the past.
    • For each of the Instances a Service Request based on the "SR - Yearly Review Template" is created
    • The primary AD User of the Owner of the Instance is assigned to the new SR
    • The Instance is related to the SR as affected Configuration Item
    • The Review in Progress property of the Instance is set to true