{"id":3121,"date":"2012-06-18T11:16:34","date_gmt":"2012-06-18T09:16:34","guid":{"rendered":"http:\/\/contoso.se\/blog\/?p=3121"},"modified":"2012-06-18T16:31:15","modified_gmt":"2012-06-18T14:31:15","slug":"richer-incident-reporting-with-the-service-manager-self-service-portal","status":"publish","type":"post","link":"http:\/\/contoso.se\/blog\/?p=3121","title":{"rendered":"Richer Incident Reporting with the Service Manager self-service portal"},"content":{"rendered":"<p>With default settings you can report incident with the self-service portal in Service Manager. But the form is generic, and often you want to customize it. For example if someone reports a issue with e-mail you might want them to submit some e-mail specific details like Outlook version and location. I was looking into this last week and want to share with you some ideas. We can publish incident templates in the self-service portal the same way we can do with service request. They are both published as request offerings. When we configure a request offering we setup a number of user inputs. We can do this with a incident template too, but there are not many suitable fields on a incident to store custom data, like Outlook version. Instead we can create activities on a incident template and on each of them store data, but out of the box we have only the manual activity to use, and lets say we want to store five custom fields, we don&#8217;t want to use five manual activities in the incident template. Instead we can create a new activity class, that includes for example five generic fields. To do that we need to start in the Service Manager Authoring Tool<\/p>\n<ol>\n<li>Start Service Manager Authoring Tool<\/li>\n<li>Create a new Management Pack, for example ContosoManualActivity<\/li>\n<li>Right-click Classes and select Create Other Class<\/li>\n<li>Base Class, select Manual Activity as base class<\/li>\n<li>Create Class, input\u00c2\u00a0Contoso.Manual.Activity as internal name<\/li>\n<li>Delete the default property named something like Property_XX<\/li>\n<li>Click Create property,\u00c2\u00a0input internal name, for example text01<\/li>\n<li>Click Create property,\u00c2\u00a0input internal name, for example text02<\/li>\n<li>Click Create property,\u00c2\u00a0input internal name, for example text03<\/li>\n<li>Click Create property,\u00c2\u00a0input internal name, for example text04<\/li>\n<li>Click Create property,\u00c2\u00a0input internal name, for example text05<\/li>\n<li>Save the management pack<\/li>\n<li>Seal the management pack, more info how to seal a management pack and generate a key file <a href=\"http:\/\/contoso.se\/blog\/?p=3019\">here<\/a><\/li>\n<li>Start the Service Manager Console, import the seal management pack (mp file)<\/li>\n<li>Restart the Service Manager console to reload class structure<\/li>\n<li>In the Service Manager console navigate to Library\/Templates<\/li>\n<li>Click Create Template in the Tasks pane<\/li>\n<li>Create Template, input a name, for example Contoso &#8211; Template &#8211; Manual Activity. Select the Contoso.Manual.Activity class (under basic classes). Create a new management pack named for example Contoso Activity where you store the template<\/li>\n<li>Manual Activity Template, input a title, for example\u00c2\u00a0Contoso &#8211; Manual Activity. Click OK<\/li>\n<li>Click Create Template again<\/li>\n<li>Create Template, input a name, for example Contoso &#8211; Template &#8211; Mail Incident. Select Incident as class and select the same management pack as before<\/li>\n<li>Incident Template, configure classification category, source, impact, urgency<br \/>\n<a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_01.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3124\" title=\"20120618_01\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_01-300x290.jpg\" alt=\"\" width=\"300\" height=\"290\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_01-300x290.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_01.jpg 617w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/li>\n<li>Click on the Activities tab<\/li>\n<li>Click Add&#8230;<\/li>\n<li>Select a class, select Contoso.Manual.Activity and click OK<\/li>\n<li>Select Template, select Contoso &#8211; Template &#8211; Manual Activity<\/li>\n<li>Click OK<\/li>\n<li>Click OK to close the Incident Template form<\/li>\n<li>Time to publish this as a Request Offering.\u00c2\u00a0Navigate to Library\/Service Catalog\/Request Offerings, click Create Request Offering from the Tasks Pane<\/li>\n<li>Create Request Offering, General,\n<ol>\n<li>input title Exchange Issue<\/li>\n<li>Template name, Contoso &#8211; Template &#8211; Mail Incident<\/li>\n<\/ol>\n<\/li>\n<li>Create Request Offering, User Prompt. Note that we use only strings here. You could configure your management pack properties to be true\/false or any other data type. You can then also use the same data type in Service Manager user input, for example let the user select Outlook and Windows version from a drop down menu.<br \/>\n<a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_02.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3125\" title=\"20120618_02\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_02-300x173.jpg\" alt=\"\" width=\"300\" height=\"173\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_02-300x173.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_02.jpg 756w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/li>\n<li>Create Request Offering, Map Prompts,<br \/>\n<a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_03.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3126\" title=\"20120618_03\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_03-300x208.jpg\" alt=\"\" width=\"300\" height=\"208\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_03-300x208.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_03.jpg 750w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/li>\n<li>Create Request Offering, Publish. Change Offering Status to Published. Finish the wizard<\/li>\n<li>Create a new Service Offering, named for example Incident, and include the request offering you just created. Don\u00c2\u00b4t forget to change the service offering status to Published.<\/li>\n<li>Browse to the self-service portal now<\/li>\n<\/ol>\n<div>A user can now choose Incident as a category. Under Incident there is a offering named Exchange issue. The Exchange issue form includes the questions we added. Might be a good idea to also include a free text description field and map it to the default incident description field.<\/div>\n<div><\/div>\n<div><a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_04.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3127\" title=\"20120618_04\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_04-300x154.jpg\" alt=\"\" width=\"300\" height=\"154\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_04-300x154.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_04.jpg 480w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<div>.<\/div>\n<div><a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_05.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3128\" title=\"20120618_05\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_05-300x171.jpg\" alt=\"\" width=\"300\" height=\"171\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_05-300x171.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_05.jpg 611w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<div>.<\/div>\n<div><a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_06.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3129\" title=\"20120618_06\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_06-300x274.jpg\" alt=\"\" width=\"300\" height=\"274\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_06-300x274.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_06.jpg 800w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/div>\n<p>If the user then\u00c2\u00a0submits\u00c2\u00a0the incident you can see all the custom data under the activities tab. As we added the text fields to the new activity class. That is not optimal to have it there, as it will require some extra clicks to show it.<\/p>\n<p><a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_07.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3131\" title=\"20120618_07\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_07-300x169.jpg\" alt=\"\" width=\"300\" height=\"169\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_07-300x169.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_07.jpg 983w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>You can of course solve this with Orchestrator \ud83d\ude42 I have create a simple runbook that picks up the incident and merge the User Input data with the Description field. The User Input field is a default field on a incident that contains all the data we added to the custom text fields on the activity. You could trigger this runbook automatically when a new incident of this type is created. One thing to think about is that you want to merge the User Input data with the already existing Description field, make sure not to overwrite it. As you can see in the last image we also get the XML code from User Input. I did not create a runbook to clean that, but you could of course do that with a runbook too, to only keep the user input text.<\/p>\n<p>The result, you can use custom input fields, different for different type of incident, to let user report incident with the self-service portal.<\/p>\n<p><a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_08.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3132\" title=\"20120618_08\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_08-300x162.jpg\" alt=\"\" width=\"300\" height=\"162\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_08-300x162.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_08.jpg 867w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_09.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-medium wp-image-3134\" title=\"20120618_09\" src=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_09-300x176.jpg\" alt=\"\" width=\"300\" height=\"176\" srcset=\"http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_09-300x176.jpg 300w, http:\/\/contoso.se\/blog\/wp-content\/uploads\/2012\/06\/20120618_09.jpg 664w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>As usual thanks to <a href=\"http:\/\/www.litware.se\/\">Patrik <\/a>\u00c2\u00a0for Service Manager authoring support<\/p>\n<p>Please note that this is provided \u00e2\u20ac\u0153as is\u00e2\u20ac\u009d with no warranties at all.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With default settings you can report incident with the self-service portal in Service Manager. But the form is generic, and often you want to customize it. For example if someone reports a issue with e-mail you might want them to submit some e-mail specific details like Outlook version and location. I was looking into this &hellip; <a href=\"http:\/\/contoso.se\/blog\/?p=3121\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[60,25],"tags":[],"_links":{"self":[{"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3121"}],"collection":[{"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3121"}],"version-history":[{"count":11,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3121\/revisions"}],"predecessor-version":[{"id":3139,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3121\/revisions\/3139"}],"wp:attachment":[{"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3121"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/contoso.se\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}