Jump to content


Hornbill Product Specialists
  • Content Count

  • Joined

  • Last visited

  • Days Won


DanielRi last won the day on March 23 2018

DanielRi had the most liked content!

Community Reputation

61 Excellent

About DanielRi

  • Rank
    Product Specialist

Profile Information

  • Gender

Recent Profile Visitors

1,547 profile views
  1. The defect described in this thread was resolved and the fix contained in Service Manager build 1392 which was released to live on November 29th. Detail: Catalog item not visible to a Co-Worker when their team is excluded but the user is included.
  2. Hi Dan, I've encountered the need to set a "due date" on several occasions during my work with customers. Essentially the need to set a target based on a specific event that is influencing the delivery of the work (e.g. end of the financial year, an audit deadline, or a new member of staff starting) - which is what I would understand as being "fluid" in your description i.e. the due date could be quite a strict deadline (unlikely to move) but the factor influencing the deadline can variable for each piece of work. The immediate benefit of such a feature would allow easy sorting of the request list but in terms of the performance and service delivery improvement I'd be interested to know what type of reports or metrics would be useful to you in relation to a "due date". At the very least I would expect there is a need to compare the time at which the request was "marked" with the due date target, and then set a 1 or 0 accordingly - representing whether this was marked within the due date, or exceeded the due date. Would you be able to elaborate further in this area, or is the need essentially the same as reporting on Service-Level-based targets? I'd also speculate that there should be restrictions when it comes to editing any existing due date on a request. Who is involved in managing and setting of due dates in your scenario? The concept of a due date is already under discussion by the Product team and I understand you may already have contributed in some conversations but it would be great to hear a few thoughts on the latter points RE: reporting and governance around amending a due date. Thanks, Dan
  3. Hi Steffen, I've added the BPM definitions for you to explore at your leisure. These are based on the "EXAMPLE Hornbill Service Request Process" which is shipped out-of-the box. The first definition below utilises two human tasks: example-hornbill-service-request-process-incorporating-manual-authorisation.bpm.txt This second definition ("v2") replaces the first human activity with a BPM email notification which automatically looks up the line manager of the customer. This second approach is dependent on user-manager relationships existing in your instance. example-hornbill-service-request-process-incorporating-manual-authorisation-v2.bpm.txt I hope that helps, Dan
  4. Hi Steffen, to add to Stevens description above, here's how that would be achieved: If Line Manager information is being stored against a user (typically populated through the user import) there is scope to replace the first human task with an automated email to the line manager as follows: Of course you can adjust the "on-Hold" behaviour to suit your particular scenario(s) too. Dan
  5. During the recent Hornbill Academy Webinar, there was interest in how to create a widget that would display all requests logged Vs those that had been resolved each day. This post illustrates how this can be done using Hornbill Advanced Analytics. When the sample period is of importance (daily, weekly, monthly etc.), a measure is typically the place to go. In essence, what we are looking to do in this example is create two measures and display them in the same widget. Creating the measures The first measure we are going to create is “No. tickets logged per day”. You will need to input the frequency of the measure as daily and ensure you are pulling data from the h_itsm_requests table. Our Date ranging column will need to contain h_datelogged as the measure needs to put the records into the right sample period based on when things were logged. The query where clause will be used to ensure we are only considering records we are interested in. This could simply be h_requesettype=”service request”. The second measure will be used to obtain the “No. tickets resolved per day”. In this case, we will use h_dateresolved in the Date Ranging column. In the Query Where Clause, you may want to use a specific statement to also ensure that only resolved or closed requests are included in the measure. If you don't wish to define this in your statement, the measure will extract all requests that contain a Date Resolved timestamp, regardless of their current status. For example, without definition, the measure could include any request that has been resolved and subsequently reopened, as this would contain a historical Date-Resolved timestamp. When creating your measure, it is important to identify what information you would like to extract from the system and define your Query Where Clause accordingly. Building the Widget Now that we have these two measures, we can now create our widget. A chart-type widget will be suitable for our needs and as we are going to be displaying information gathered by a measure, and we are interested in the sample period, our data type will be "Measured Samples". Multiple measures can be displayed by adding a new series. In our case, our first series will represent our “Requests logged” data (taken from our “No. tickets logged per day” measure) and our second will represent “Requests Resolved” (taken from “No. tickets resolved per day”). Does it Add Value? This widget provides three pieces of information, the volume of requests logged per day, the volume of requests resolved per day, and as these are being displayed together you can potentially get a rough idea of how many active calls you would typically expect to have at any one time. I hope that helps, Dan
  6. During the recent Hornbill Academy Webinar, there was interest in how to create a widget that would display all requests that were due to breach within the next hour. This post illustrates how this can be done using Hornbill Advanced Analytics. In this example, I'll focus on a resolution (fix) breach but the same approach could be applied to a response breach by amending the database column the widget is focusing on. The fix target is stored as a timestamp in h_itsm_requests.h_fixby and the response target can be found in h_itsm_requests.h_respondby. The Hornbill Application Entity Viewer can be used to explore all the tables in the Hornbill database further https://wiki.hornbill.com/index.php/Application_Entity_Viewer or as an alternative there is a h_itsm_requests quick reference available on the hornbill wiki: https://wiki.hornbill.com/index.php/Reporting Grabbing the Records: When starting out with any metric-building, its important to be clear in what records we want to see and how we are going to extract these. The requirement here is to identify a list of times that fall into the period of one-hour from NOW ("NOW" being whenever the widget refreshes). So we're working with a time period in the future and a time period that is also continually "moving" i.e. the datum is not fixed. In this situation, I turn to my faithful reference: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html and end up with the following where clause: h_fixby BETWEEN NOW() AND DATE_ADD(NOW(),INTERVAL 1 HOUR) BETWEEN - allows me to set two boundaries NOW() - allows me to grab the current date/time in the form "YYYY-MM-DD HH:MM:SS" which will be used as my first boundary DATE_ ADD - is going to give me the ability to add a time value (interval) to a date. In this case I need NOW + 1 to use as my second boundary. The result being I get all records from h_itsm_requests where the h_fixby timestamp lies between NOW and NOW + 1. Displaying the Result If I wanted this information on a dashboard, I'd probably go for the Widget that can show me a list of data and for maximum flexibility use the custom sql query option. The full query would be as follows: select h_pk_reference AS Reference, h_fixby AS Resolve_By from h_itsm_requests WHERE h_fixby BETWEEN NOW() AND DATE_ADD(NOW(),INTERVAL 1 HOUR) - See image below. Does it add value? On a final note, in keeping with the Academy Webinar, we should ask if this Widget is going to add value. In my opinion, looking at what's going to breach in the next hour doesn't give much room to react, in fact it probably creates anxiety and unnecessary pressure which could impact performance and morale. You may want to consider a widget that will display what is due to breach tomorrow. Looking further ahead will perhaps give more chance to get on top of the situation. If you're finding that the desk is swamped by breaches, I'd ask whether your Service Level targets are realistic given the manpower, type of incident/request being dealt with, or quality of service you're aiming to provide the customer.
  7. Thank you to all that attended yesterdays Hornbill Academy Webinar "Winning with Analytics". It was great to see such a big turnout and I hope everyone found the content useful in some way. An hour is a very short space of time to talk about Analytics! There were a number of questions asked at the end of the webinar and unfortunately time was against us so I was unable to answer many of them. As promised, here is the follow up to those questions. "Will a recording of the session be made available to view again?" Yes, we will make the recording available to all those who attended the webinar. Details will be sent out soon. "Is there anyway to view a slideshow without having to log into admin console? As this makes it difficult to have a dashboard running on a display screen as a user needs to be left logged in on a separate session on the screen for it to run." Currently dashboards can't be published or distributed in any way. A slideshow must be run in the context of a user who has the appropriate roles to run the slideshow and access the data being show on the dashboard. Generally speaking, any action or operation performed in your instance is done in the context of a particular user. "When configuring a measure, what impact do the the "scorecard" and "sparkline" limits have?" The Scorecard and sparkline limit settings dictate how many samples are shown in the scorecard and in the sparkline graphics on the list of measures. We talked about sample history being the number of samples that would be stored in the system. There may be a situation where your sample history is quite large, say 180 samples (i.e. if you wanted to store 6 months worth of daily samples), however trying to display 180 scorecards or 180 points on the sparkline is probably not a good idea unless you've got a REALLY big monitor. It's partly an aesthetic consideration, and typically only the most recent samples are relevant for that at-a-glance trend the list of measures provide. When creating a measure, what is the function of the "Date Ranging Column2"? As we know, the date-ranging column defines the date/time field that determines the sample period the record (e.g. request) relates to. i.e. in the case of a measure that is sampling daily, do the records relate to Mon, Tues, Weds, or Thurs, etc. The Date Ranging Column2 allows us to set a second date/time field which is useful if we want to create measures such as "Incidents Logged and Resolved in the same day". In this example, you would set the first date ranging column to be "date logged", and the second date ranging column to use "date resolved". The measure would then only include a record for Monday if the date logged and date resolved both occurred on Monday. Widget Examples There were also a couple of questions asking how to create particular widgets. I'll cover these in separate posts. Dan
  8. Hi Alisha, thanks for your post. The logs can be found in Hornbill Administration via Home > System > Monitor > Monitor Log Files and this error will be logged in EspServerService.log The logs are only accessible by someone with the "Admin Role" security role and typically only show the activity for the current day (as they're archived when they reach a certain size). If you don't have permission to access the logs I would advise speaking with the person responsible for administering Hornbill as they will be the ones who have the access. Once you've found the error, please post it here and we will be able to offer further assistance. I hope that helps, Dan
  9. @Jeremy I think I understand what you're saying. I assume the progressive capture question is using a select box being driven by either a static list (configured in the pro cap field) or a dynamic list (located in Service Manager simple lists). Is that right? So you're suggesting that the decision was once using the "value" in its evaluation but now is using the "display name" in the evaluation and therefore failing to match the string "Windows 10"? Can you send a screen shot of the simple list or static list you're using and confirm my interpretation above? Thanks Dan
  10. @Jack_Podmore thanks for posting! As @HHH has said, these button labels can be changed by amending the appropriate translation string in Hornbill Administration > Home > Hornbill Service Manager > Translations . Every piece of text throughout the application has a translation string and as well as allowing us to display the term in German, French, etc we can also amend the English translation to use more appropriate terminology. When it comes to the portals, the strings you need will depend on what portal you're working with. As you might know, Hornbill Service Manager has two portals. The "Customer" portal facilitates external support and is used in conjunction with contacts whereas the "Service" portal is used to deliver a support function within your organisation and is accessed by Basic Users. Each portal has it's own set of translation strings: For the Customer portal, all translation strings begin with guest.com.hornbill.servicemanager.portals.portal....... For the Service portal, all translations begin with guest.com.hornbill.servicemanager.portals.servicePortal........ A very subtle difference, but one to be aware of. Therefore I believe the translation strings you're looking for are: guest.com.hornbill.servicemanager.portals.servicePortal.home.requestView.details.resolve.working and guest.com.hornbill.servicemanager.portals.servicePortal.home.requestView.details.resolve.broken I hope that helps! Dan
  11. @samwoo I think I may be able to offer some advice in relation to the errors you posted above: https://eurapi.hornbill.com//xmlmc//apps/com.hornbill.servicemanager/?method=shrGetCustomerDetails: invalid request :path "//xmlmc//apps/com.hornbill.servicemanager/?method=shrGetCustomerDetails" . When you see an error stating "invalid request path", this will be most likely due to an incorrect or missing instance name in the conf.json file. I would expect to see your instance name somewhere in the path as follows: https://eurapi.hornbill.com/<instanceName>/xmlmc//apps/com.hornbill.servicemanager/?method=shrGetCustomerDetails . The reason why it goes onto say "Create" even though you know the asset exists in Hornbill is because the utility could not complete the search in Hornbill due to the invalid path. Basically, the utility did not receive any results from the search to confirm that the asset already existed, therefore it assumed it needed to create a record. This can be seen here: "API Call failed when searching instance for existing Asset:Post https://eurapi.hornbill.com//xmlmc//data/?method=entityBrowseRecords: invalid request :path "//xmlmc//data/?method=entityBrowseRecords"" Specifying a valid instance name and API key in the conf file should address these particular errors. I hope that helps. Dan
  12. Hi @lokent having reviewed the above thread, I suspect the reason for the behaviour you're encountering is due to the user having multiple sessions. By default, a Hornbill instance will permit a single user to login multiple times, be it from the same machine or from different machines and each login creates a session. As you know, when you close a browser, this action itself doesn't kill a session so it's entirely possible to be opening and closing windows all day at at some point multiple sessions may be established. At the end of the day, you log out and close the browser which only closes one of the sessions. All the active sessions in the system can be viewed in Hornbill administration > Home > System > Monitor > Sessions and it's possible to clear any particular session from this view (see image): In terms of preventing multiple sessions from existing, you can change the setting communications.multiLoginUser to to "kick", this means that a user will only be able to have a single session active at any one time. If they login again and another session is created, the previous one will be killed. The setting can be found in Home > System > Settings > Advanced Please let me know if my suggestion regarding the multiple sessions is true, and also it would be great to know if changing the multi-Login setting to "kick" sees a reduction in this situation. Best Regards, Dan
  13. Hi @Jeremy for maximum visibility, reporting would be the best approach here. As Daniel has pointed out, the visibility model for tasks is very much focused around the task owner and task assignee. Lets start by looking at a simple widget to show who has been completing tasks. This requires the Advanced Analytics module found in Hornbill Administration and we can utilise a chart style widget returning data via the "SQL Group By" data type. The data source would be something like below: The configuration above is very general and would return tasks completed by all users, including an "N/A" column as we're looking at all tasks. We haven't yet filtered on status (Assigned, completed, etc.). To ensure you're just focusing on completed tasks, add the filter: h_state = 4 and this will get rid of the "N/A" results. Setting the date column to "h_completed_on" allows us to begin looking at the data over certain time periods, for this to take effect it's necessary to select the desired "Sample Period" in the field that immediately follows. If you're interested only in the tasks completed by users that belong to a particular team (or other Hornbill group), it will be necessary to enhance the filter. The following will acheive this: h_state = 4 AND h_completed_by IN (select h_sys_account_groups.h_user_id from h_sys_account_groups WHERE h_sys_account_groups.h_group_id = "MYCOMPANY/IT/SERDSK/") Replace "MYCOMPANY/IT/SERDSK/" with the ID of the group that you're interested in. This can be obtained from your organisation structure. If you're keen to understand the other task status values, these are as follows (taken from https://api.hornbill.com/docs/_types/taskStateType ): <xs:enumeration value="assigned" esp:mappedValue="1"/> <xs:enumeration value="accepted" esp:mappedValue="2"/> <xs:enumeration value="complete" esp:mappedValue="4"/> <xs:enumeration value="rejected" esp:mappedValue="5"/> <xs:enumeration value="cancelled" esp:mappedValue="10"/> <xs:enumeration value="expired" esp:mappedValue="16"/> I hope that helps, let me know if you need some help with other task-related reporting requirements! The application entity viewer that may help with the identification of columns when building more metrics and reports: https://wiki.hornbill.com/index.php/Application_Entity_Viewer Dan
  14. To expand a little more on progressive capture custom forms, if you have a key piece of information being captured by custom questions, it may be prudent to use field mapping to ensure the data is stored in a more accessible way. Field mapping (https://wiki.hornbill.com/index.php/Mapping_Fields_from_Customised_Forms), allows us to map the information being captured via custom forms to a column in the main request table, h_itsm_requests. The benefits are as follows: the data will exist alongside all the standard request data allowing you to focus on a single table in your report. the data can be mapped to a field of an appropriate type i.e. when capturing date-time stamps this can be mapped to a field that specifically expects a date-time stamp. If we were to apply field mapping to the above example, so the booking date being captured is mapped to a specific date-time field (say h_itsm_requests.h_custom_21) we could use the Advanced Analytics module to build a measure to show when the bookings were requested. In this example, setting h_custom_21 as the "Date Ranging Column" would enable daily, weekly, or even monthly trends to be captured. Once we're capturing the information in a measure, this would mean we can use the other chart widget data-types such as "Measured Samples", "Measure Group By", and "Measured Samples Group By". Of course, a measure would only be useful when looking at past data. Dan
  15. Hi Lauren, thanks for your post. When it comes to information gathered using custom forms/fields during progressive capture (which are ultimately displayed in the "Questions" section of a request), this information is stored in a table called "h_itsm_questions". The attached image shows the table description that can be found in the entity viewer (https://wiki.hornbill.com/index.php/Application_Entity_Viewer) - a very useful tool when it comes to building reports or measures. I'll start with a rather crude approach which looks directly at h_itsm_questions, and aim for a count of records grouped by date i.e. the number of bookings for each unique date found in the database. In this case, I'm assuming that you've got a date picker in your progressive capture which will lead to a date/time stamp (YYYY-mm-dd 00:00:00) being stored in the database. If you're using a date/time picker, then this approach won't work and we'll have to go into more detail. Either way, the date-time stamp will be found in the column h_answer. To isolate this information, it will be necessary to focus on this specific question. You can use "h_question_id" or "h_question" to do this. "h_question_id" will contain the field id of the field in progressive capture, "h_question" will contain the label that you specified for the custom field: In terms of the method we use to get the information out of this table, assuming we just want to focus purely on this piece of data we could utilise a Chart Widget using the "SQL Group By" data type and set the data source as shown. As I said, It's quite a crude method and I have made an assumption about how the progressive capture is set up and thus how the data is stored. If you're using a date-time control rather than a date control then that means there's going to be many unique timestamps and this method won't be suitable . Let me know if that helps at all, I've got some alternatives which I will follow up with shortly. Dan
  • Create New...