Remedyforce Community Blog

Tracking software licenses in Remedyforce CMDB

Posted by on Sep 26, 2018 in RF | Comments Off on Tracking software licenses in Remedyforce CMDB

BY ANNE BROCK, RIGHTSTAR

We had a customer who wanted a simple way to track software licenses. He didn’t want to use a discovery tool; just wanted to track who is using what. Because there was no discovery tool, we suggested a method that uses one record to represent the software (instead of having one record for each installed instance of the software); then users would be attached to that record. I chose to do this in the Application class, but you may want to use another class. Once users are linked to the record, then it’s easy enough to see how many people have licenses.

For this, I suggested three approaches, from basic to most complex. Warning: On the most complex way, I wasn’t able to complete all the steps; the final step I would recommend having a consultant implement.

Summary of the Three Approaches:

One field approach:

  • Create a field for total number of licenses; increment it manually when licenses are bought
  • Manually attach clients to this record as the software is installed
  • Run a report showing this field and the attached users

Two field approach:

  • Create a field for total number of licenses; create another field for “New licenses purchased”
  • When purchase new licenses, put the number into the “New Licenses Purchased” field. After saving, this number should be added to the number in “total number of licenses” and then the “new licenses purchased” field should be set back to zero. NOTE: audit this field to track this over time
  • Run a report showing this field and the attached users

Three field approach:

  • Create a field for total number of licenses; create another field for “New licenses purchased”; a third for “Licenses in Use”
  • When purchase new licenses, put the number into the “New Licenses Purchased” field. After saving, this number should be added to the number in “total number of licenses” and then the “new licenses purchased” field should be set back to zero. NOTE: audit this field to track this over time
  • When a client is added to the record, increment this field; when a client is removed, decrement it

One Field Approach

  • In Setup, go to Create Objects; locate Base_Element
  • Add a custom field to Base_Element: Total Number of Licenses field

  • Add this field to the Base_Element field set “Application” or whatever class you are using to hold the software name (could be Product, could be Contract)

  • This is now visible in the CMDB Record on the second tab

  • Add the clients on the Details tab

  • Run a report showing Licenses available and number of clients

 

Creating the Report Type

  • Go to Setup – Report Types
  • Select “New Custom Report Type”
  • For Primary Object – select Base Elements

  • For B relationship, choose CI Client Link, and A records may or may not have B records

  • You can then create a report using the new report type; the number of users will show how many licenses are in use

If  you then want the total cost of licenses in use – create a formula field

 

And here’s the result:

 

Two Field Approach

  • Do the steps in One Field approach.
  • Then, go to Setup, go to Create Objects; locate Base_Element
  • Add another custom field to Base_Element: New Licenses Purchased

  • Add this field to the Base_Element field set “Application” or whatever class you are using to hold the software name (could be Product, could be Contract)

  • This is now visible in the CMDB Record on the second tab

  • Now add the workflow to increment Total Licenses when there is a value in New Licenses; also, zero out New Licenses after the addition. (Setup/Quick Action/Workflow – New)

First Workflow action – field update – Update Total Licenses

Second Workflow Action – field update – zero out New Licenses

  • Be sure to activate the workflow. Now, when you put a number into New Licenses, when you hit save, it will add to Total Licenses and then zero out New license

Before:

Put number in:

Hit Save:

  • I recommend adding these fields to the audit trail, so you know who incremented the license count:

  • To add to audit trail – Setup/Create Objects/Base Element/Custom fields/Set History Tracking. Check the fields and save.

 

Three Field Approach

  • Do the steps in One Field approach.
  • Then, go to Setup, go to Create Objects; locate Base_Element
  • Add another custom field to Base_Element: Licenses in Use

Another option is to look at this utility; it might be able to do it as well:

https://appexchange.salesforce.com/listingDetail?listingId=a0N30000009i3UpEAI

 

 

Reporting on multi-level categories

Posted by on Jun 21, 2018 in RF | Comments Off on Reporting on multi-level categories

BY ANNE BROCK, RIGHTSTAR SYSTEMS

First, I want to define the problem we need to solve.

We had a customer who had a multi-level category tree- more than two levels. Some of her categories were three levels deep, some four, some five. Something like this:

 

Now of course, this isn’t a problem to set up in Remedyforce; you can have many levels, although we recommend not going too deep.

But the problem came with reporting: The customer wanted to run a report from the top level – in the example above, regardless of whether they picked Level 1, 2, 3 or 4, she wanted to run a report of all “Level 1” tickets. Since the ultimate parent category isn’t stored on the ticket, this took a little bit of work.

Now you can put the whole parent tree on the ticket – In the case of the above example, if I choose Level 4, that gives me a field with this in it:

 

If I pick Level 3, the field looks like this:

 

Which is a great start; but HOW do you pull the top category off of that? It’s on the right-hand side of the field – but of course, number of characters may vary. And you can’t just search for “>” because that may be in the string multiple times. Here’s what I did.

Step 1

Put a special character that the beginning of your top level categories. The sharp-eyed among you will have noticed I’m using an exclamation point.

 

Step 2

Put the Parent Tree on to your form. You can show it or not in the Field Sets; but create a field that looks up the full Parent Tree in your Incident form. So go to Setup/Create/Objects/Incident Object; and go to Custom Fields and Relationships, and create a new field. I called mine AB_Category_Tree. Create it as a formula field, and in the Formula, enter:

BMCServiceDesk__FKCategory__r.BMCServiceDesk__parentTree__c

 

I put it on my Remedyforce Incident form, so I could see the results:

 

Step 3

Create a field that will extract everything after the “!” and put it into a field that can be used for reporting. The important thing here is that IF someone chooses the very top level category – i.e. !Level 1 – the field we created in Step 2 will be blank, so we need to account for that.

So again, go to Setup/Create/Object/Incident and go to Custom Fields and Relationships. Create a formula field; I called my field Parent Category. This time, the Formula is:

IF( ISBLANK(AB_Category_Tree__c),   BMCServiceDesk__Category_ID__c , RIGHT(AB_Category_Tree__c, LEN(AB_Category_Tree__c)- FIND(“!”,  AB_Category_Tree__c) + 1) )

To break that down:

IF( ISBLANK(AB_Category_Tree__c),   BMCServiceDesk__Category_ID__c , This is for those cases where someone picks the top level category; since the tree will be blank, we’ll just assign the category
RIGHT(AB_Category_Tree__c We want to start from the right of the parent tree field, not the left and take a certain number of characters
FIND(“!”,  AB_Category_Tree__c) This gives us the place in the string where the special character is – I used !, but replace that with your special character
LEN(AB_Category_Tree__c)- FIND(“!”,  AB_Category_Tree__c) + 1) If I take the full length of the string (let’s say 25) and remove where I found the special character (let’s say position 17) I’ll have the number of characters remaining after the special character – 8. I add 1 back on to get the special character. (I’ll need this to match what happens if I just select the top level category.)
RIGHT(AB_Category_Tree__c, LEN(AB_Category_Tree__c)- FIND(“!”,  AB_Category_Tree__c) + 1) Using the example right above, if the string is 25 characters long and the special character is in position 17, I am taking the right-most 9 characters to fill in the Parent Category field.

 

Step 4

Create a report showing Parent Category and Category to see the results! No matter which category they pick under !Level 1, I can still report on all tickets that came in for that parent category.

 

And here’s that same report in Lightning:

 

Let us know if you have any questions or comments!

Dependent Picklists in Self-Service

Posted by on Jun 11, 2018 in RF, Uncategorized | Comments Off on Dependent Picklists in Self-Service

BY ANNE BROCK, RIGHTSTAR

In Winter, 2018, one new feature was being able to use Dependent Picklists in Self-Service. For me, it was a bit of a head-scratcher to figure out how to do it, so I thought I’d write it up.

First, let’s look at the end result. When you put a dependent picklist into incident self-service (“Submit a Ticket”), you get a field B that depends on field A. So below, if I choose San Francisco as my location, I get one set of drop-downs in the department field; if I choose New York, I get a different set:

 

 

You can do a similar setup for Service Requests. Before we look at how that is done, I want to address a couple common questions:

  • Don’t we have conditional questions on Service Requests anyway? Yes – absolutely. And I recommend continuing to use them because of the answer to the next question. But this feature is using Salesforce Dependent Fields functionality; and it does give us a dependent set of questions on the “Submit a Ticket” form.
  • Can I use different Dependent Fields on different Service Requests? NO – when you add Dependent Fields to your Request form, they will appear on every single service request. So unless there is something you want people to answer on every service request, keep using conditionals.

Ok, let’s set this up.

First thing is you might want to read up on Dependent Fields on the Salesforce site: https://help.salesforce.com/articleView?id=fields_defining_field_dependencies.htm&type=5

Next, check your setting in Remedyforce Administration/Configure Self Service/Service Requests. Uncheck the box by “Use the fields from Service Request Right Panel and Left Panel field set instead of Request Details Self Service 3.0 in Self Service 3.0” (if you will be using this for Service Requests).

 

Create your fields. Below, I’ve created Location and Department at Location, both as picklists, on my Incident Object (if you are doing this for Service Requests, add them to the Request Detail object):

 

Then create the Dependency – click this button at the top of the Custom fields list:

 

Click on New, choose your controlling and dependent field (in my case, these are Location and Department at Location), and get to this screen:

Highlight the appropriate values for each column, and “include” or “exclude” as needed and then Save.

 

Final step: you need to add them to the appropriate field set. For the Incident object, it’s “Self Service – Ticket Layout”; for Request Detail object, it’s “Request Details Self Service 3.0”. Below is my Self Service-Ticket Layout field set:

 

And now they will be visible on the “Submit a Ticket” form (where we started this writeup).

I would be very interested in your use cases for this feature; I was drawing a bit of a blank, but I’m not out in the “real world”, so let me know what you use this for!

Show Buttons
Hide Buttons