Jump to content

Steve G

Hornbill Developer
  • Posts

    745
  • Joined

  • Last visited

  • Days Won

    30

Everything posted by Steve G

  1. Hi @MikeW, My SCCM database looks very different to yours as I'm missing a number of those tables and columns, but I expect the issue you're experiencing is because you're using inner joins in your query, when you actually want to use left joins... So, as a very stripped-down example, the following is how you would return all assets. For each row, if a match from the left-joined user_disc table is found, then LastLogged will be populated with the value of employeeid from the matched record, and if a match is not found then the LastLogged value will be NULL: SELECT dbo.system_disc.netbios_name0 AS [MachineName], dbo.system_disc.user_name0 AS [LastUserName], dbo.user_disc.employeeid AS [LastLogged] FROM dbo.system_disc LEFT JOIN dbo.user_disc ON dbo.system_disc.user_name0 = dbo.user_disc.user_name0 I hope this helps Cheers, Steve
  2. What's Fixed: Hornbill/Docmanager/Link Document operation was failing due to a rights issue
  3. Hi @Steven Cotterell, Rather than providing an iBridge utility to perform this, I've written a new BPM node in Hornbill Collaboration to perform this instead (which is a much better method of providing a utility of this type). Timezone and Seed Time are both optional, and if not provided then it'll provide the current date/time of the session timezone. It will be available in the next update Hornbill ESP. Keep an eye on the announcements forum to see when this goes live Cheers, Steve
  4. @Lightsource I've just attempted to replicate this issue, and have been unable to I have a user in my test domain, who has a department of Research & Development, and have a Research & Development department group in Hornbill. When I import this user, the department is applied as expected. This also works for user updates as well as user creation. What version of the LDAP Import Tool are you running? Is there any information in the log regarding this user, that could give us a better idea as to what is happening? The information in the log is collated per user, so it should be pretty easy to spot any errors... For example, this is from my log for the user I've just successfuly imported: And the resulting user: Cheers, Steve
  5. @Lightsource Ah ok, I'll have a look at replicating this in the tool now, and will let you know how I get on. Thanks, Steve
  6. Hi @Lightsource, When you say you're using AD sync to add the department in to Hornbill customers, what mechanism are you using to get those in to Hornbill? Are you using one of our import tools to perform this, or an external script? At what point is this actually failing? Thanks, Steve
  7. Hi @Michael Sharp, You can just kill the LDAP import process on the machine that is running the import. Usually a Ctrl+C will work, or close down the command line, or kill it via Task Manager (on Windows). Re: checking your import configuration, it may be worth you importing just a single user (set via the LDAP query) and ensuring everything has imported as expected, before you do a full (or larger partial) import. Cheers, Steve
  8. Hi @TomW, Yes, it's certainly possible, that's actually how our Power BI integration and data export tool both work Basically, all you need to do is: Run the report using the reporting::reportRun API Once the report is finished, use the reporting::reportRunGetStatus API to get the report file names, and use this to build the report content file URL Perform a HTTP GET request on the file URL (remembering that you need the authorization header to contain an API key that has access to the report file, for authentication). Check out the code in those tools for working examples: https://github.com/hornbill/rPowerBIHornbillDataSources/blob/master/PowerBIDataSource_Report.R https://github.com/hornbill/goHornbillDataExport Cheers, Steve
  9. Hi @Dan Munns, Apologies for the late response, just catching up after being on holiday. I've tried the above, and if I have Where it happened: It happened here! anywhere in Custom C, and have Custom A updated with your matched ternary above, then Custom A is populated with the output of the match as expected? What's actually being written in to Custom A for you when you try this? Cheers, Steve
  10. @Steven Cotterell Thanks Yeah I've had a read of that thread. So is the issue that you're getting datetime values in UTC, and want to convert them to a specific timezone datetime before adding them to the new Teams post? We do have an API for that in the platform, so we could write an iBridge utility to do that if that's the case... Cheers, Steve
  11. Hi @Steven Cotterell, Apologies for the late response, I've been on holiday for a couple of weeks and am just catching up. Regarding the Credentials field being mandatory, this shouldn't be the case so I've raised this with the relevant team of developers to be fixed. Regarding the headers error - this is an issue with the way the field is being presented on the custom button form. The headers field is expecting an array, but the field will only ever give a flat string to the operation, so I've also raised this to be fixed. Cheers, Steve
  12. Hi @Martyn Houghton, Apologies for the late response, I've been on holiday for the last couple of weeks. I'll add this to the todo list, and will let you know once done. Cheers, Steve
  13. What's Changed Microsoft Teams iBridge integration - updated data source for Team searching to only return non-Security type groups, and allow typing to search for Teams.
  14. @Steven Cotterell Those utility operations should actually not be premium on your instance, they are free to use - I just had this switched on in my development instance from some previous testing... I've just updated the datasource which is used to return the Teams as part of the Post To Channel operation, so that it's now a search box rather than a drop-down select box, and it'll also now not return security groups (which it was doing previously). Give it 5 mins for the content pack to get to your instance, then try searching with the first few letters of the Team group display name... Note - this will only do a "starts with..." search on the display name, as the MS API we're using to return groups doesn't support "contains" as an operator. Let me know how you get on. Cheers, Steve
  15. @Steven Cotterell That's a good point actually, they probably shouldn't be premium. Let me find out why they have the flag and I'll get back to you shortly. The IFTTT one isn't marked as premium... Cheers, Steve
  16. What's Changed HTTP Request iBridge utilities - updated the Body input parameter to be a multiline text entry field, rather than a single-line input.
  17. @Steven Cotterell I've just tested this and it does indeed work. I created a webhook against one of my teams, then posted to it using the HTTP Request operation via a workflow and Service Manager request, and this was the result: The node was configured as so: And the content of the body was: { "@type": "MessageCard", "@context": "http://schema.org/extensions", "themeColor": "0076D7", "summary": "Hornbill Request Logged: &[global["inputParams"]["requestId"]]", "sections": [{ "activityTitle": "![TestImage](https://47a92947.ngrok.io/Content/Images/default.png)New &[global["flowcode"]["requestType"]] for &[global["flowcode"]["customer"]]", "activitySubtitle": "&[global["flowcode"]["summary"]]", "activityImage": "https://teamsnodesample.azurewebsites.net/static/img/image5.png", "facts": [ { "name": "Request Reference", "value": "&[global["inputParams"]["requestId"]]" }, { "name": "Assigned to", "value": "&[global["flowcode"]["owner"]]" }, { "name": "Status", "value": "&[global["flowcode"]["status"]]" }], "markdown": true }] } Which was based on Microsofts example here: https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/connectors/connectors-using It uses no authentication, so you just need to make sure you keep the webhook URL private, or anyone could post to it Cheers, Steve
  18. @Steven Cotterell As long as the webhook doesn't need authentication, or supports basic auth, then you could use one of the HTTP Request operations listed under Utilities > Experimental in the Cloud Automation node to send "stuff" to the webhook... I've not tried it, but there's no reason why it wouldn't work Either that, or you could script it with PowerShell when we release Hornbill ITOM Cheers, Steve
  19. @Steven Cotterell Yeah I think that, because the API is in beta, Microsoft have just set the rights to be "something that an admin would have" - as the permission really doesn't make sense here. I expect that when this moves out of beta and in to production it will have a Graph permission all of it's own, so you'll be able to create a limited account just for this...
  20. @Steven Cotterell No worries, let me know how you get on. Just to note about the Teams integration too - the API we're using to post to a channel is actually still in Beta with Microsoft (we wouldnt usually implement integrations with APIs that are in beta, but we had another customer who really needed to use it...) - so it is liable to change when it moves in to production. So if this actually does stop working at some point, then that will be why and we'll need to update the integration to cater for its status change. As per the notes against the operation: I am checking the API status regularly, so you may not even see an outage when it moves in to production, but just one to be aware of... Cheers, Steve
  21. @Steven Cotterell From what I remember, refresh tokens in Office 365 expire after 14 days of inactivity - but that can be set to between 10 minutes and 90 days (depending on your O365 config). So I expect this issue is because the key was created a couple of months ago and the token has not been used... The fix should be straightforward - if you go back in to the key in keysafe, hit the Revoke Access button, then click Connect and re-log in to the Microsoft account that needs to perform the operation, you should get a working token and refresh token back. Then as long as you use the Teams integration once every 14 days (or more frequently than whatever the O365 refresh token expiry is set to for your organisation), then you should never have to revoke/reconnect your key again as it's all handled in the background. Cheers, Steve
  22. @Steven Cotterell It appears we posted at the same time It looks like your access token is invalid, and we've not been able to get a new one using the refresh token. This should all happen automatically in the background - unless the refresh token had expired between uses... When was this keysafe entry created, and how often is it used? Thanks, Steve
  23. Hi @Steven Cotterell, The "check console" message is referring to the console within your browser - any error messages for this will be listed in there. If you're a Chrome user, the shortcut to get there is Ctrl+Shift+J (or Cmd+Shift+J on Mac). What you should actually see, if the Keysafe entry has a valid token that has access to retrieve a list of Teams, is: Let me know what is being written to your browser console, and I'll hopefully be able to point you in the right direction. Cheers, Steve
  24. Hi @nasimg, A couple of AD packages are going to be released alongside ITOM, here's a sneak-peek at the operations within the AD User package Regarding the API call to raise a Service Request, you need to follow the instructions in that ServiceNow document, but for the details: Enter URL: The API endpoint for your instance (replacing yourinstanceid with the case-sensitive ID of your Hornbill instance): https://eurapi.hornbill.com/yourinstanceid/xmlmc/apps/com.hornbill.servicemanager/ServiceRequests?method=logServiceRequest Method: POST Headers (replacing yourapikeygoeshere with an API Key generated against a user within Hornbill, to authenticate the API call): Content-Type : text/xmlmc Authorization : ESP-APIKEY yourapikeygoeshere Body - this is the payload of the API call, in XML: <methodCall service="apps/com.hornbill.servicemanager/ServiceRequests" method="logServiceRequest"> <params> <summary>New onboarding request for {{new_hire}}</summary> <description>New onboarding request for {{new_hire}}</description> <teamId>TEAMID/GOES/HERE</teamId> <externalRefNumber>{{externalid}}</externalRefNumber> </params> </methodCall> And that's pretty much all there is to it... So that will log a new Service Request on your Hornbill instance on the back of a webhook event in Enboarder, populating the summary, description and external reference number fields, as well as assigning the SR to the team specified in the teamId element. To add additional details to the request being logged (service, catalog item, priority, workflow etc) this can be done by adding to the XML payload, as per the API documentation here: https://api.hornbill.com/apps/com.hornbill.servicemanager/ServiceRequests?op=logServiceRequest Let me know if you need any more information. Cheers, Steve
  25. Hi @nasimg, I've had a look at that document, and it looks like a pretty basic integration - Enboarder just logs new tickets on ServiceNow as part of their Webhooks functionality. Is this the same integration you're after - so an action in Enboarder would log a Service Request in Hornbill Service Manager? If so, then I could help with populating the webhook API call... Cheers, Steve
×
×
  • Create New...