Friday, January 9, 2015

Service Now Workshop Assignments






Create ' Fortune Minds Calendar Event' Application
       - Create 'fm_calender_event' table with below fields, all are required
                   Name - Single text
                   Event - Drop down (Physical Inventory, Anniversary Sale, Release, Marketing)
                   Type - Drop down (Internal, External)
                    Event Start - Date
                    Event End - Date
      - Create a new module called 'Create Event', Users should able to create an event with above fields
      -  Create a new module called 'Current and Future Events' - Display all the events with below condition
            event start date on or after today OR Event end date on or after today
       - Create new module called ' List All Events' - Display all events created by users irrespective start and end dtes

- Create a Role called 'FM Admin' and 'FM User'

- 'Create Event' Module should be visible to ONLY 'FM Admin' Role , Apply the security to 'Create Event' Module, such that only any user who belongs to 'FM Admin' role can see this module

- Any user who belongs to 'FM User' role, they can see all the events, but they can't edit, they should able to see events in READ ONLY VIEW
    - Create  'readonly ACL' on 'fm_calendr_event' table and applicable to only 'FMUser' role

- Create a table called 'u_maintenance_window'  table with below fields
                 Event Name - String
                 Event Start Date - Date
                 Event End Date - Date

- Create a business rule 'Create Maintenance Window Business Rule' on 'fm_calendr_event' table, Whenever any event created with an event type called 'Internal' then trigger this business rule and create a new record into 'u_maintenance_window' table with the fields (Name, Event STart date and Event end date)

- Create 'Access Control List' (ACL) , only 'FMAdmin' can see 'New' button on 'fm_calendar_event' table, rest of the roles shouldn't see 'New' Button

 Hint : Create an 'create' record ACL and apply 'FM Admin' Role , Impersonate with 'FMUser' role, type 'fm_calender_event.list', You shouldn't see 'New' button

- Create a custom table called 'u_person' with below fields
                   Person_ID - Auto Increment
                   First Name, Middle Initial, Last Name , Date of Birth, Email fields

- Create an UI Policy to mark 'First Name', 'Last Name', 'Date of Birth' and Email fields as mandatory

- Create a client script on 'u_person' table, If entered DOB is future date, then display alert message saying " Date of Birth Can't be Future Date"

- Create a client script on 'u_person' table, If email field doesn't contain '@' or '.com' then display alert message saying "Invalid Email Address"

- If new record get's inserted into 'u_person' table, display a message " Successfully Created"

- Create a 'Inbound Webservice' called 'Person Web Service' on 'u_person' table , Copy the WSDL url and test 'Insert' functionality using SOAP UI tool

- Test the above 'Person Web Service' 'Insert' function using 'SOAP Message service'






Create Service Now Application
Use case : Create a 'Expense Reports' application and add assign a user Role

- Create 'Expense Reports' application, scope is ' x_snc_exp_rpt'.
Menu name should be 'Expense Reports'
User Roles - 'x_snc_exp_rpt_user'

Create Service Now Table

- Create a new table for 'Expense Reports'
- Label Name - Expense Report, Extends this table to 'Task' out of box table
- Enable 'Auto Number'
- Enable 'Module' for this table
- Set the role (x_snc_exp_rpt_user) to this table.

Create Service Now Child Table
- Create another table 'Expense Report Item'
- Don't enable the Module
- Add Fields - Description, Amount (Currency), Date (Date)
- Establish Referenetial integrity(Child table to Expense Report) to 'Expense Report' table , and reference is 'Expense Report'

Modify the Service Now Application Form Layout

- Change the form layout for 'Expense Report' Application as below
- Show list items with - Number, State, Short Description, Open By fields

Modify Service Now Form Design

- Configure the Form design for 'Expense Report' application as below
- Remove 'Configuration Item', 'Assign To', 'Active', 'Priority', 'Parent' fields
- Add new field 'Opened By'
- Modify the 'State' List of values to include only 'Open','Submitted', Approved, Rejected, Set the default value as 'Open'
- Save the Form design changes
- Reload/Open 'Expense Report' form, Add new Record, Ensure you should see only
'Number', 'State', 'Opened By', 'Short Description' and 'Description' fields
- Configure the Form design and choose the 'Related List' in order to include 'Expense Report Items' (Child) table section of data on 'Expense Report' form layout.
- Shuffle 'Expense Report Items' to right hand side
- Configure 'Expense Report Items' form layout to include only 'Description', 'Amount' and 'Date' fields.

Create a new Record into Service Now Parent Child Tables

- Create a new record for 'Expense Report' , Ensure you should able to create a new record for 'Expense Report' , and add two 'Expense Line Items' records

Adding a UI Policy to a Service Now Form

Use case : Add a Policy to make 'Description' , 'short Description' fields read only when 'Expense Report' State is anything expect 'Open'
- Choose 'Configure' -> 'UI Policies'
- Click on 'New', Give a Name 'Read Only After Submitted'
- When to Apply  - State is one of 'Submitted', Approved, Rejected' and Save
- Add Action ' Description ' - Read Only, 'Short Description' - Read Only and Submit
- Create a record for 'Expense Report', Set state equals to 'Open' you should able to see above both fields editable, Change the state to 'Submitted' above two fields should be read only

Create a Business Rule

- Use case: Create a Business Rule, It should validate at least one line Item must be
entered while creating any Expense Report
- Configure -> Business Rules -> New
- Enter Name, Enable Active
- Filter Condition -> State -> ' is one of' -> Submitted, Approved, Rejected
- When to Run -> Insert & Update
- Click Advanced
- Write a onBefore() script using Glide Record pointing at 'Expense Report Item' table, If Expense Report Item row count is zero, then display Error Message and set current.setAbortAction(true);
- Create new Expense Report, Save status to 'Submitted' without any line item, you should get error message when you Update.

Create a Script Includes

Use case : Bulk Approve , Provide 'Approve' Button, By clicking on it, go through each 'Expense Report' Record, and approve if 'Expense Report' Record state is 'Submitted'

- Goto 'Script Includes' -> New
- Name as 'ExpenseReportUtil'
- Develop a function called approve(current)
- if(current.state==2){current.state=3;current.update();gs.addInfoMessage('Approved' +current.number);}

Create UI Action in Service Now

Use case : Bulk Approval
- Configure -> UI Actions -> New
- Name as 'Bulk Approve', Choose 'List Bottom of Button'
- Use Script Include which we created in above example
- Create an Object for 'ExpenseReportUtil'
- Invoke 'approve(current)' method of 'ExpenseReportUtil' class.
- Goto 'Expense Reports', you should able to see newly created button 'Bulk Approve' at the bottom of the page.
- Click on 'Bulk approve' , make sure all 'Submitted' state records should change to 'Approved' State.

Modify Application Scopes

Use case : Modify 'Expense Reports' table scope to public such as external applications should able to access this table

- Configure -> Tables -> Expense Report
- Change 'Accessible form ' to 'all Application Scopes' , Choose appropriate scope, such as ' Can read', 'create', 'update', 'delete', 'Allows access to the table via web services', etc..
- Click Update
- Now 'Expense Reports' table should be accessible externally


Excel Data Loader Assignment #1

 - Create a custom table 'Employee' with below fields (Employee ID, First Name, Last Name, Gender (Radio button) , Languages known (english, spanish, chinees,etcc) select choice.
- Prepare sample excel with above fields and prepare 10 dummy records.
- Load the data from excel file into 'Employee' table created in first step.
- Create a role 'EmpAdmin' who will have access to create/modify/delete on above table.
- Create a role 'EmpUser' who will have only 'Read Only Access' to above table.


Rest API Explorer
Use Case : Query Expense Report Table using REST API
  -  Goto 'REST API Explorer'
  - Choose Table API, Select 'Expense Report' Table, Get - You should able to see the Response with all the expense records
  - Enter short_description,state for 'sysparam_fields' and click on 'Send', This time , you will notice all expense records related 'short_description' and 'state' values only

Service Catalog

Service Catalog Assignment #
  - Create  a variable set called 'RequestedByNFor' as per below
                 - Requested For - > Reference field to 'sys_user' table.
                 - Requested By - > Reference field to 'sys_user' table.


Service Catalog Assignment #  : Create a Service Category called 'Books'
                 - Create a Service Category Items as below
                                   - Service Now Administration by Tim Cook, Price : 12.34$
                                   - Java Complete Reference by Scmidit , Price 34.13$
                 - Place on order for 4 'Java Complete Reference' books, make sure understand about how to create Service Category, Service Category Items, How to place the request



Service Catalog Assignment # 

 - Create ' Laptop Request' Service Catalog Item 
 - Below are the variables
             - Laptop Manufacturer -> Select Box with ' Dell, HP, Apple, Lenovo, Acus' list of values.
             - If 'Dell' is selected then display below
                           Model Types - Select box with values  - Dell XPS, Dell Latitude 
             - If 'Apple' is selected then display below values 
                           Model Types - Select box with values - Apple macbook, Apple macbook pro, Apple mackbook air
             - If ' Lenovo' selected then display below values
                            Model Types - Select box with values - Lenovo1, Lenovo2
            - Ram Configuration - Select Box - 4GB RAM, 8GB RAM, 16GB RAM
            - CPU - Select Box - intel i5, intel i7
            - Description - Multi select box
            - Home Office or Corporate Office - radio button
            - Keyboard - Check box
            - Mouse - Check box
            - Lan Cabel - Check box
            - Use 'RequestedByNFor' variable set developed in previous assignment.
- Design a work flow as per below
           - Request should be approved by 'Requested For' Manager.
           - If Request is approved then assign the request to 'Desktop Fulfillment Group'
           - Request should be completed in 10 business days, otherwise request should be updated to 'Rejected' status
          - If Manager aproves/Rejects send out email confirmation to 'Requested By' user.


-------------------------------- Service Catalog Assignments End ------------------


- Create Business Rule with below requirement
   - Whenever Incident 'Urgency is 'Critical'' then set a short description as " Urgency of this incident is Critical, Please resolve it in 1 business day"
  - Test this by creating a sample incident.

- Create a simple Business Rule with the below requirement
 - Whenever Incident is updated it's priority to 'Critical' and Urgency to 'High' , Write a script to set 'short Description = This incident # <Get the Incident Number dynamically using field variables> has Critical Priority and High Urgency "
  - Test above rule by updating sample incident

- How to rename a Module?

 Create a new module under the Problem Application , but it should have same behavior like 'CreateNew' Module for Incident Hint: Inheritance?

- How to create a User?

-  How to add roles to User?

-  How to add a new Category under Category field in Incident form?

-  How to add a new Sub Category to newly added category value in Category field?

-  How to implement search functionality (Ex like configuration field)?

- How to add new item to Impact field?

-  What is importance for the number value in Choice fields ex 1-High?

-  How to implement the functionality of impact,urgency and priority fields,In detail When Impact and Urgency are changed Priority field is changed How to do it?

-  Can we change the prefix for Auto-Number Increment field i.e INC to IND?

Scenario : How to create a simple table in Service Now ? How to add fields to newly created table ? How do you personalize a table to display view to list down all the fields in a table.

Business Rules

- Create a Business Rule on Incident Display an Info Message Whenever Priority of Incident Changed from Low to High.

- Display Latitude Longitude of Location of incident after Updating Incident.

- Alert some value before form is displayed using scratch pad variable.

- Debug Business Rule find out your BR's created and their execution.

- Develop Before,Async business rules of same order on Insert and find difference in execution.

- Create a new field on Incident Refereing to Problem table such that on giving a problem number in that field and clicking on update butoon

on incident that problem record should get deleted.

-create a business rule on incident before insertion all the problem records 'short description' should get updated with text 'Updated by Incident'.

- Create a Business Rule on Incident such that if priority is 1 it should not allow user to update the incident.(Abort operation).

- Create an two user defined tables 'MyTable', 'MyTableCopy' such that on insertion of Mytable MytableCopy should also have a record.

- Perform Delete operation on above two tables such that on deletion of Mytable record MyTableCopy record also should get deleted.

- Create Business Rule on incident such that if Priority is High it should Info User that Incident Priority is high.

- Perform problem 4 using Async Business Rule observe the difference.

- Create a Business Rule on Incident such that whenevr state changes from Active to Closed it update 'short_descrption' with State changed from Active to Closed.

- If current User is having ITIL role while querying Incident a display a message 'No of Incidents': count of no of incidents.

- Create a Business Rule on Updating it Current Caller's Department Manager should get Deleted.

Scenario : Create a business rule to Create a custom table(cust_incident) with two fields (incident_num, state), and whenever incident created, copy newly created incident associated incident_num, state values into the new custom table.



Scenario : Create a business rule, Whenever a record deleted from 'cust_incident' table, delete corrresponding incident record from 'incident' table

Scenario : Write a business Rule, and determine total how many problem records exists

Scenario : Write a business Rule, Display all the 'active' records of  'Problem' table using Glide Record?


WorkFlow


1. Design a workflow such that it should run on Problem Table when state is Pending change and wait for 5mins then move it to closed state.

2.Design a workflow on change request whenever a change is raised  it should go for group Approval if any one of the group memeber approves it change request should get closed by sending a notification to the Requester.

3. Design a workflow on Change request like in problem2 whenever group approves the change create a task record  with priority 2-high and with out scripting move change request to close state.

4. Perform the same with Run Script Activity

5  Perform below activities 

   a. Create a workflow with Incident table Begin
   b. State is Active   
   c. Set Timer for 30 seconds
   d. Waiting For Condition (state is Awaiting Problem &  Approval is Requested)
   e. Send the Notification mail to the user
   f. Waiting For Approval 
   g. State is Closed/Resolved and Approval is Approved
   h. State is Closed/Resolved and Approval is Rejected
   i. End

5. Create a Incident by adding the values in the form.


6. Execute the workflow.

Advanced:

Use “IPhone” catalog for this assignment.

- Create a script include called “IPhoneFunction”. 
- In that create a function called “checkOpenedBy” which check whether the “Opened By” user belongs to “America” or not.
- Create a function called “getManager” which accepts  “sys_id” of a user and returns “Managers” sys_id in an array.
- Create a function called “UpdateStage” that accepts the stage to update as input.
- Create a function “getSysId” that returns the sys_id of the user given as input.

Create a workflow called “IPhone Order”.In the workflow,

- Place an,“If” condition “Check opened by”. In that, call the above “checkOpenedBy” function.
- In the “Yes” side of “Check opened by”, place a run script “Waiting for Approval” and call the function “UpdateStage” to update the stage to “Waiting for Approval”.
- Connect the above to “Manager Approval”(Approval-User type) and call the script “getManager”.
- Connect the “No” side of “Check opened by” and “Manager Approval” approved to a run script called “Delivery”. In that call the “UpdateStage” function to update the stage to “Delivery”.
- Connect this to a catalog task called “Place Order” and add its assignment group as “Hardware”.
- Add a wait for condition “Check Place Order” and only after its close complete create a new catalog task called “Delivery”.
- Add another wait for condition “Check Delivery” and after its close complete add “User Approval” and call the script “getSysId”.
- Assign the approved of “User Approval” to a run script called “Completed” and call the function “UpdateStage” to update the stage to “Completed”


Glide Reference

Scenario : Write a Business Rule, Whenever new incident created, Display information message to display total number of incidents exists in the system

- Using Glide Record, Whenever new incident created, copy the newly created incident associated two fields into a custom table.

Scenario : Create a business rule to Create a custom table(cust_incident) with two fields (incident_num, state), and whenever incident created, copy newly created incident associated incident_num, state values into the new custom table.



Scenario : Create a business rule, Whenever a record deleted from 'cust_incident' table, delete corrresponding incident record from 'incident' table

Webservices


- Develop outbound web service on 'Incident' table, Test this web service using SOAP UI, find out how many incident records are there ? Pass the Incident ID and get the corresponding Incident details

Hint : Follow this How to test WSDL using SOAPUI
Hint : Follow this to create and test WSDL in SOAP UI Fortune Minds Service Now Learning Notes


- Expose a Inbound webservice(DemoInsertRecordWebService) on 'Incident' table, This will consume a Webservice payload response and insert a record into Incident table 

- Create a Script, Query only incident created by 'Rob' and iterate through each record, Invoke 'DemoInsertRecordWebservice' by passing 'Rob' Created Incidents


Email Notification assignments

1. Trigger an email when new “contact is added” in the contact table.
a. Create new table contact with two fields as Name, email address and DOB
b. Create registry with name “contact.inserted”
c. Create Email template with name “contact.temp”
d. Create BR(Business Rule to fire the event) with name “contact.addition”
e. Create Email notification with name “contact notification”
f. Test email logs, that event are triggered or not.

Scenario:

i) The corresponding person name which you have entered in Contact table. That person should receive the mail with this following message.“xxxx Has been added successfully.”
ii) If the scenario failed in case, this message should display for the team.“The Person xxxx mail was not send due to some network issue. Currently try again later.”
iii) The mail From Header should be “Service Now Support Team”.

2. Trigger an email “when task is assigned to group”.

Scenario:

i) The corresponding group should receive the mail when the state is open with the following message.
Subject Line:  “Task No.  : “ < Number >,  “Requested For : ”  <Requested For > , “Opened By : ” < 
Opened By >,  “ Subcategory  : “ < Sub Category >
Greetings All,
The task < task ID > is assigned to group <assignment group>

Ticket Description

- Short Description (if any)   : < Short Description >
- Requestor                         : < Requestor >
- Requested on Behalf of      : < Requested on Behalf of >
- Request Type                     : < Request Type >
- Assigned To                        : < Assigned To >
- Assignment group :< Assignment group>
- State of Request                 : < Request State >

Click here to view Task: < Link > 

ii) Send Notification only when “Task Status” changes from any status except “More Info to Open” or  “Open to More Info”
iii) Send Notification when assignment group is changed 

3. Trigger an email “When new request item is created on behalf of”.
Scenario:

i) Send Notification to “request for” with the following message format.

Subject Line GIS Service Request Ticket <RITM Ticket No> - Created on your behalf <Requested on Behalf>
Greetings < Name >, A GIS Service Request Ticket <RITM Ticket No> has been opened on your behalf by <opened by>
Ticket Description

- Short description (if any) : < Short Description > 
- Opened By : < Opened By >
- Requested For : < Requested For > 
- Requested on Behalf : <Requested on Behalf>

What action should you take?


This email is informational therefore, no action is required by you at this time.


Service Now Assignments from 'Service Now Community'


11 comments:

  1. Thanks very helpful.Please post some more assignments if possible

    ReplyDelete

  2. awesome post presented by you..your writing style is fabulous and keep update with your blogs.

    servicenow online training hyderabad

    ReplyDelete
  3. the blog is about Fortune Minds Service Now it is useful for students and servicenow Developers for more updates on servicenow follow the link

    ServiceNow Online Training

    For more info on other technologies go with below links

    tableau online training hyderabad

    Python Online Training

    mulesoft Online Training

    ReplyDelete
  4. Very useful information, the post shared was very nice.
    ServiceNow Online Training

    ReplyDelete
  5. Thanks for sharing valuable information and very nice article. Keep posting.

    servicenow developer certification
    best servicenow online training

    ReplyDelete
  6. This information is really awesome thanks for sharing most valuable information.
    Best ServiceNow Online Training
    ServiceNow Developer Training Online

    ReplyDelete
  7. can we get the update set of this workshop , is urgent please share if possible

    ReplyDelete