Cherwell administrators can work and design solutions more efficiently simply by following a few tips that will help solve business challenges more effectively. Whether you are a seasoned Cherwell administrator or fresh out of training, these design tips from a Cherwell Service Management guru will help you unleash the power of the Cherwell platform and ensure your design and automation is efficient and scalable.
How to Troubleshoot Apps for the Modern Connected Worker
Advanced Cherwell Administration Tips
1. John Gross
FlyCast
As one of Flycast Partners most senior and dynamic Consultants, John Gross brings a
diverse consulting and training background to every customer engagement. With over 20
years of extensive experience in IT Service Management Professional Services, Education
Services and Support Services, John is responsible for the entire gamut of the product life
cycle including Pre-Sales, Design Workshops, Implementations, Training and on-going
customer support. Implementation and Training experience includes a variety of public
and private sector customers in the Americas, EMEA and APAC. With over 400 ITSM
implementations, John has seen it all and willingly shares his meaningful experiences with
his Customers. As a Cherwell Certified Engineer and Cherwell Certified Instructor, John’s
ability to turn Cherwell CSM concepts into practical examples and interesting stories
makes his classes very enjoyable. As a result, John’s courses are always rated very highly.
“Advanced Cherwell
Administration Tips”
3. CSM Administration Challenges
• Needs for the application to produce results
• Play out a behavior or process that meets business
needs
• Some answers are pretty easy to get or do:
• Show how many open tickets we have right now in my
dashboard that are due today
• Send a notification to the owned by manager if the
ticket breaches the due date
4. CSM Administration Challenges
• Some answers are not easy:
• When I look at the customer records, I need to see who
the department manager is
• As we do reviews, we’d like a link that sends an email to
the department manager from the customer record
• Sounds easy, right?
• This is our first example
• They all normally sound easy to the person asking!
• I want you to display the age of the ticket in the grid
• I always like to know how old a ticket is when I look at my
work in the dashboard
5. Standard Tools in CSM
• Adds tabs in the Form
Arrangement
• Used to Display related records
• Enables the ability to Update
“Child Records” a.k.a. the related
records
• Can be used to auto-populate
fields
• Can be used to Delete Child
Records (where the child records
are “owned”)
• More . . . .
RELATIONSHIPS
6. Standard Tools in CSM
• Invoked by a button,
menu action, save
action, business process,
scheduler etc.
• Can keep related data
up-to-date when key
fields change
• More . . . .
One-Steps
7. Standard Tools in CSM
•Assist in calculating
field values
•Assist in creating filters
or limits
•More…..
Expressions
8. Standard Tools in CSM
• Working with field properties
• The Elusive Calculated Field
• How do I keep it
recalculating???
• It doesn’t update in the grid in
my dashboard!
• How rude
• But what about validating?
• Validating vs. Relationships
• When do I need a relationship?
• More . . .
• A lot more…..
Business
Object
Properties
9. Department Manager
• I want my Department to show all
Customers who belong to it in a tab
• I want to update the Department
Manager and automatically have all
Customers Update with the new
Manager Name
• When we do reviews of customers, I
need to see the valid manager of the
customer, not the one who was the
manager when I created the record
10. Common people language into Cherwell
development components:
• What will we need?
• A tab on the Department business
object? OK, that sounds like a
relationship and form arrangement.
• Update department managers? Where
to start: I don’t even keep track of
department managers.
• Add in a new field and update records
– how to I update a bunch of related
records at one time?
12. • Maybe set the
Business Object
Properties to at
least “Supporting”?
• No, since we want
to add a Form
Arrangement, we
must elevate to a
Major Object
• Only Major Objects
can have “tabs”
(Form
Arrangement)
14. Customer- Internal
• Is there already a
relationship to the
Department or is it
just being validated?
What was the
difference again?
• Hmmm . . . . . I do not
see a relationship
from Customer –
Internal to
Department
• Do I need a
relationship and do I
care about anything
here?
15. • Update the customers with department information
• A reverse relationship will need to exist between the
customer and department
• You can use the same fields (e.g. Department Name) to
link the Parent / Child.
• We need to set up a relationship to and from the
Customer – Internal and Department
• However, it will be the reverse relationship that was set
up from the Customer – Internal that will enable the
values to be sent from the Department to the
Customer – Internal (e.g. new Department Manager) as
well will see when we get to our One-Step
Step Through Children
16. • Customer – Internal Relationship
to Department (One to One)
• Department Relationship to
Customer – Internal (One to
Many)
• Both ways Reverse Relationship
• Common Link for both
relationships: Department Name
To get started, we will need:
17. • Now that the Department is a
Major Object, it can be linked
to other objects
• Only Major Objects can “link”
• Supporting Objects can be
“owned” but not linked to . . . .
• We simply create a
relationship that links the
parent (Department) to the
Child (Customer – Internal).
• The Department will Link to
Many Customer Internals
18. • So, what do we link?
• If you use the Wizard, you may be
driven down the road of linking the Rec
ID’s
• This is not always necessary
• Link common fields instead using the
custom constraints section
• E.g., “Customer –
Internal.Department” to
“Department.Department Name”
• You can also add additional Constraints
to limit the records that will be linked
• Hint: Constraint = Filter = Limit
Relationship Links
19. • Link and return only the values that
make sense
• When you eventually get to the Form
Arrangement, the tab will only show
values that match the filters set up in
the Constraint
• Note that Constraints only use field
values
• You cannot access expressions from the
Constrain area of a relationship
• The Form Arrangement can now display
the Customers in the Departments form
• However, we need to set up the rest of
the relationships
Relationship Links (continued)
20. • Using the same links,
set up the Customer
– Internal
relationship of
Customer – Internal
links ONE
Department
• Set the Reverse
Relationship
22. You may now go back to the original Department
relationship and set the reverse relationship
23. • We’re half-way there
• We can now see the department’s customers linked in
the department form
24. • Using our experience in
adding in fields, we add
in a validated field
called Department
Manager that validates
against the Full Name
in the Customer –
Internal business
object
• We’ve also added in
the Department
Manager Name to the
Customer – Internal
business object and
form
• We add this to our
form and are now 90%
done with our task
25. Step Through Children
• Now that we have the Parent /
Child relationship set up along
with the necessary reverse
relationship between the
Department and the Customer
– Internal, it is possible to use
the Step Through Children
One-Step and update the
children (Department
Manager Name) with the
Department’s Manager value
• You’ll need to “turn on” the
ability to write One-Steps on
the Department business
object
26. Create the One-Step to Step Through Children
• Because of the reverse
relationship, the Customer
– Internal now displays the
Department Fields in the
Field Explorer
29. Where to invoke the One-Step?
• You could add a button to
the form
• Add the one-step to the
Save Action of the business
object
• Use a Business Process
• Other Suggestion?
30. • To be more automatic, we’re going to invoke the
one-step in the Save Action of the Department
• In addition, we will invoke the One-Step after the
department has finished saving its own data
31. • As a final step, we
can return our
Department
business object to
the Lookup objects
• Where would we
go to add/edit
Departments if we
left it as a Major
Object??
34. • By leveraging the Relationships, we were able to
create a Step Through Children one-step and
update a list of records in one swoop
• Where else could we have invoked the one-step?
• Via a button or link:
37. As a final task to the request we would:
• Create a one-step to email the Department
Manager from the Customer – Internal object
• Add a link or button on the Customer – Internal
form that would invoke the email
38. The SQL “WHERE” Clause
• Constraints
• Filters
• Expressions
• Searches
• Limit
• Etc.
• For non-database-engineers
in common language:
• Select the data you want –
Show me the data
• WHERE
• Constraints/Filters/Searches
are True
39. The Age Old Question
• So, when I look at a grid, I want to see how many days old
my tickets are . . .
• Let’s see, since grids only show fields, I’ll need a new field
• Yeah! I know how to add a field
• OK, it’ll be in Days and a Number . . . .
• Hmmmm. So, when I add this to my grid, I need it so
show me how old it is
40. • If it’s Open, I want to see how many days it’s been
open since it was created and if it’s closed, I want to
see how long it took between the create date and the
close date
• I will need a Calculated Field
• I’m going to create an expression for each State
• For Open Tickets, I’ll refer to an expression that
calculates a Duration between Create and Right Now
(Current Date / Time)
43. Now, I can combine this into one
expression to add to my field
44. Now, we use the Age in Days expression as the
Calculated Value property of the new Age in Days field
45. Make sure you use the Recalculate after load so the
value updates on the form
46. So, you add the field to your grid
Why is it empty in the GRID!!!???!!
47. I can see the value on the form:
• NOTE: Grids only display data once it’s been saved in the
database
• Calculated fields only can be updated once the record is
saved
• Even displaying the record with the Age on it will NOT
update the grid unless you invoke a SAVE command on the
record
48. • So, how to I update the age?
• You will need to invoke a Save Command
• Typically, by updating a field in the object and then setting the
Save checkbox, the calculated field will re-calculate to its new
value
• The Last Modified Date Time is a good placer-holder field to
update and then execute the Save by checking the save checkbox
49.
50. To update the whole list, use the Run for
Group option in the One-Step Manager:
51.
52. • Since this example wants to see the Age in Days, then you’d
want to create a scheduled event to run the one-step every
day
• If it were Age in Hours, then schedule the event every hour
• When executing one-steps in the Scheduler, you must assign
a Search Group (Search) to the one-step
• It is not recommended to use the All Incidents, since this will
eventually be a load on the scheduled event
• Instead, create a search that includes all open tickets plus
things closed in the last day or so
Scheduling the Age Update