Jump to content

Kevin Kennedy

Hornbill Users
  • Posts

    38
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Kevin Kennedy

  1. Notes on knowledgebase characteristics important to NN Inc in rough priority, . At least 2 levels of security as far as suggesting/viewing knowledgebase articles, end users and technicians. No need for more than 4 levels. Tagging articles with keyword tags, preferably with some method of ranking tags like sequential tagging (first tag highest ranked) or numeric (tag + ranking value) Reporting of either date added or “expiry date” so that old content can be refreshed or obsoleted on a regular cadence. Multilingual support. Ability to track which articles are being viewed, and some form of user feedback for helpful/not helpful. Natural Language/AI search engine to help not so computer literate folks get better results. In-article hyperlinking to related content. Linking to external content.
  2. @SamS @James Ainsworth helped me solve the connection problem, which was a problem in my KeySafe entry. Thanks to everyone who offered assistance, advice, or anything else toward solving this problem! Kevin K.
  3. @Giuseppe Iannacone It is below, but the only lines I changed from the example are the first 3. Thanks in advance for any advice anyone can offer. { "APIKey": "********************************", "InstanceId": "nninc", "KeysafeKeyID": 3 , "LogSizeBytes": 1000000, "HornbillUserIDColumn": "h_user_id", "SourceConfig": { "Source": "mssql", "Database": { "Authentication": "SQL", "Encrypt": false, "Query": "SELECT dbo.v_R_System.ResourceID AS [AssetID], dbo.v_R_System.User_Name0 AS [UserName], dbo.v_R_System.Netbios_Name0 AS [MachineName], dbo.v_R_System.Resource_Domain_OR_Workgr0 AS [NETDomain], dbo.v_GS_OPERATING_SYSTEM.Caption0 AS [OperatingSystemCaption], dbo.v_R_System.Operating_System_Name_and0 AS [OperatingSystem], dbo.v_GS_OPERATING_SYSTEM.Version0 AS [OperatingSystemVersion], dbo.v_GS_OPERATING_SYSTEM.CSDVersion0 AS [ServicePackVersion], dbo.v_GS_COMPUTER_SYSTEM.Manufacturer0 AS [SystemManufacturer], dbo.v_GS_COMPUTER_SYSTEM.Model0 AS [SystemModel], dbo.v_GS_PC_BIOS.SerialNumber0 AS [SystemSerialNumber], OAProc.MaxClockSpeed0 AS [ProcessorSpeedGHz], OAProc.Name0 AS [ProcessorName], dbo.v_GS_COMPUTER_SYSTEM.NumberOfProcessors0 AS [NumberofProcessors], dbo.v_GS_X86_PC_MEMORY.TotalPhysicalMemory0 AS [MemoryKB], dbo.v_GS_LOGICAL_DISK.Size0 AS [DiskSpaceMB], dbo.v_GS_LOGICAL_DISK.FreeSpace0 AS [FreeDiskSpaceMB], OAIP.IP_Addresses0 AS [IPAddress], OAMac.MAC_Addresses0 AS [MACAddress], dbo.v_GS_PC_BIOS.Description0 AS [BIOSDescription], dbo.v_GS_PC_BIOS.ReleaseDate0 AS [BIOSReleaseDate], dbo.v_GS_PC_BIOS.SMBIOSBIOSVersion0 AS [SMBIOSVersion], dbo.v_GS_SYSTEM.SystemRole0 AS [SystemType], OASysEncl.ChassisTypes0 AS [ChassisTypes], OASysEncl.TimeStamp AS [ChassisDate], dbo.v_R_System.AD_Site_Name0 AS [SiteName] FROM dbo.v_R_System OUTER APPLY (SELECT TOP 1 dbo.v_GS_SYSTEM_ENCLOSURE.* FROM dbo.v_GS_SYSTEM_ENCLOSURE WHERE dbo.v_GS_SYSTEM_ENCLOSURE.ResourceID = dbo.v_R_System.ResourceID ORDER BY TimeStamp DESC) OASysEncl OUTER APPLY (SELECT TOP 1 IP_Addresses0, ROW_NUMBER() OVER (order by (SELECT 0)) AS rowNum FROM dbo.v_RA_System_IPAddresses WHERE dbo.v_RA_System_IPAddresses.ResourceID = dbo.v_R_System.ResourceID ORDER BY rowNum DESC) OAIP OUTER APPLY (SELECT TOP 1 MAC_Addresses0 FROM dbo.v_RA_System_MACAddresses WHERE dbo.v_RA_System_MACAddresses.ResourceID = dbo.v_R_System.ResourceID ) OAMac OUTER APPLY (SELECT TOP 1 MaxClockSpeed0, Name0 FROM dbo.v_GS_PROCESSOR WHERE dbo.v_GS_PROCESSOR.ResourceID = dbo.v_R_System.ResourceID ORDER BY TimeStamp DESC) OAProc LEFT JOIN dbo.v_GS_X86_PC_MEMORY ON dbo.v_GS_X86_PC_MEMORY.ResourceID = dbo.v_R_System.ResourceID LEFT JOIN dbo.v_GS_OPERATING_SYSTEM ON dbo.v_GS_OPERATING_SYSTEM.ResourceID = dbo.v_R_System.ResourceID LEFT JOIN dbo.v_GS_COMPUTER_SYSTEM ON dbo.v_GS_COMPUTER_SYSTEM.ResourceID = dbo.v_R_System.ResourceID LEFT JOIN dbo.v_GS_PC_BIOS ON dbo.v_GS_PC_BIOS.ResourceID = dbo.v_R_System.ResourceID LEFT JOIN dbo.v_GS_LOGICAL_DISK ON dbo.v_GS_LOGICAL_DISK.ResourceID = dbo.v_R_System.ResourceID LEFT JOIN dbo.v_FullCollectionMembership ON (dbo.v_FullCollectionMembership.ResourceID = v_R_System.ResourceID) LEFT JOIN dbo.v_GS_SYSTEM ON dbo.v_GS_SYSTEM.ResourceID = dbo.v_R_System.ResourceID WHERE dbo.v_GS_LOGICAL_DISK.DeviceID0 = 'C:' AND dbo.v_FullCollectionMembership.CollectionID = 'SMS00001' " } } , "AssetTypes": [ { "AssetType": "Desktop", "OperationType": "Both", "PreserveShared": false, "PreserveState": false, "PreserveSubState": false, "PreserveOperationalState": false, "Query": "AND OASysEncl.ChassisTypes0 IN (3, 4, 5, 6, 7, 12, 13, 15, 16) AND dbo.v_R_System.Obsolete0 = 0 ORDER BY dbo.v_R_System.ResourceID ASC", "AssetIdentifier": { "SourceColumn": "MachineName", "Entity": "Asset", "EntityColumn": "h_name", "SourceContractColumn": "", "SourceSupplierColumn": "" }, "SoftwareInventory": { "AssetIDColumn": "AssetID", "AppIDColumn": "AppID", "Query": "SELECT AppID = CASE WHEN Publisher0 IS NULL AND Version0 IS NULL THEN DisplayName0 WHEN Publisher0 IS NOT NULL AND Version0 IS NULL THEN Publisher0+DisplayName0 ELSE Publisher0+DisplayName0+Version0 END, DisplayName0 , Version0, FCM.Name, convert(datetime, InstallDate0, 112) AS InstallDate0, Publisher0, ProdID0, FCM.ResourceID FROM v_Add_Remove_Programs AS ARP JOIN v_FullCollectionMembership As FCM on ARP.ResourceID=FCM.ResourceID WHERE FCM.CollectionID = 'SMS00001' AND FCM.ResourceID = '{{AssetID}}' AND DisplayName0 IS NOT NULL AND DisplayName0 != '' AND DisplayName0 NOT LIKE '%Update for Windows%' ORDER BY ProdID0 ASC", "Mapping": { "h_app_id":"{{.AppID}}", "h_app_name": "{{.DisplayName0}}", "h_app_vendor":"{{.Publisher0}}", "h_app_version":"{{.Version0}}", "h_app_install_date":"{{.InstallDate0}}", "h_app_help":"", "h_app_info":"" } } }, { "AssetType": "Server", "OperationType": "Both", "PreserveShared": false, "PreserveState": false, "PreserveSubState": false, "PreserveOperationalState": false, "Query": "AND OASysEncl.ChassisTypes0 IN (2, 17, 18, 19, 20, 21, 22, 23) AND dbo.v_R_System.Obsolete0 = 0 ORDER BY dbo.v_R_System.ResourceID ASC", "AssetIdentifier": { "SourceColumn": "MachineName", "Entity": "Asset", "EntityColumn": "h_name" }, "SoftwareInventory": { "AssetIDColumn": "AssetID", "AppIDColumn": "AppID", "Query": "SELECT AppID = CASE WHEN Publisher0 IS NULL AND Version0 IS NULL THEN DisplayName0 WHEN Publisher0 IS NOT NULL AND Version0 IS NULL THEN Publisher0+DisplayName0 ELSE Publisher0+DisplayName0+Version0 END, DisplayName0 , Version0, FCM.Name, convert(datetime, InstallDate0, 112) AS InstallDate0, Publisher0, ProdID0, FCM.ResourceID FROM v_Add_Remove_Programs AS ARP JOIN v_FullCollectionMembership As FCM on ARP.ResourceID=FCM.ResourceID WHERE FCM.CollectionID = 'SMS00001' AND FCM.ResourceID = '{{AssetID}}' AND DisplayName0 IS NOT NULL AND DisplayName0 != '' AND DisplayName0 NOT LIKE '%Update for Windows%' ORDER BY ProdID0 ASC", "Mapping": { "h_app_id":"{{.AppID}}", "h_app_name": "{{.DisplayName0}}", "h_app_vendor":"{{.Publisher0}}", "h_app_version":"{{.Version0}}", "h_app_install_date":"{{.InstallDate0}}", "h_app_help":"", "h_app_info":"" } } }, { "AssetType": "Virtual Machine", "OperationType": "Both", "PreserveShared": false, "PreserveState": false, "PreserveSubState": false, "PreserveOperationalState": false, "Query": "AND OASysEncl.ChassisTypes0 = 1 AND dbo.v_R_System.Obsolete0 = 0 ORDER BY dbo.v_R_System.ResourceID ASC", "AssetIdentifier": { "SourceColumn": "MachineName", "Entity": "Asset", "EntityColumn": "h_name" }, "SoftwareInventory": { "AssetIDColumn": "AssetID", "AppIDColumn": "AppID", "Query": "SELECT AppID = CASE WHEN Publisher0 IS NULL AND Version0 IS NULL THEN DisplayName0 WHEN Publisher0 IS NOT NULL AND Version0 IS NULL THEN Publisher0+DisplayName0 ELSE Publisher0+DisplayName0+Version0 END, DisplayName0 , Version0, FCM.Name, convert(datetime, InstallDate0, 112) AS InstallDate0, Publisher0, ProdID0, FCM.ResourceID FROM v_Add_Remove_Programs AS ARP JOIN v_FullCollectionMembership As FCM on ARP.ResourceID=FCM.ResourceID WHERE FCM.CollectionID = 'SMS00001' AND FCM.ResourceID = '{{AssetID}}' AND DisplayName0 IS NOT NULL AND DisplayName0 != '' AND DisplayName0 NOT LIKE '%Update for Windows%' ORDER BY ProdID0 ASC", "Mapping": { "h_app_id":"{{.AppID}}", "h_app_name": "{{.DisplayName0}}", "h_app_vendor":"{{.Publisher0}}", "h_app_version":"{{.Version0}}", "h_app_install_date":"{{.InstallDate0}}", "h_app_help":"", "h_app_info":"" } } }, { "AssetType": "Laptop", "OperationType": "Both", "PreserveShared": false, "Query": "AND OASysEncl.ChassisTypes0 IN (8, 9, 10, 14) AND dbo.v_R_System.Obsolete0 = 0 ORDER BY dbo.v_R_System.ResourceID ASC", "AssetIdentifier": { "SourceColumn": "MachineName", "Entity": "Asset", "EntityColumn": "h_name" }, "SoftwareInventory": { "AssetIDColumn": "AssetID", "AppIDColumn": "AppID", "Query": "SELECT AppID = CASE WHEN Publisher0 IS NULL AND Version0 IS NULL THEN DisplayName0 WHEN Publisher0 IS NOT NULL AND Version0 IS NULL THEN Publisher0+DisplayName0 ELSE Publisher0+DisplayName0+Version0 END, DisplayName0 , Version0, FCM.Name, convert(datetime, InstallDate0, 112) AS InstallDate0, Publisher0, ProdID0, FCM.ResourceID FROM v_Add_Remove_Programs AS ARP JOIN v_FullCollectionMembership As FCM on ARP.ResourceID=FCM.ResourceID WHERE FCM.CollectionID = 'SMS00001' AND FCM.ResourceID = '{{AssetID}}' AND DisplayName0 IS NOT NULL AND DisplayName0 != '' AND DisplayName0 NOT LIKE '%Update for Windows%' ORDER BY ProdID0 ASC", "Mapping": { "h_app_id":"{{.AppID}}", "h_app_name": "{{.DisplayName0}}", "h_app_vendor":"{{.Publisher0}}", "h_app_version":"{{.Version0}}", "h_app_install_date":"{{.InstallDate0}}", "h_app_help":"", "h_app_info":"" } } } ], "AssetGenericFieldMapping": { "h_name": "{{.MachineName}}", "h_site": "{{.SiteName}}", "h_asset_tag": "{{.MachineName}}", "h_description": "{{.MachineName}} ({{.SystemModel}})", "h_owned_by": "{{.UserName}}", "h_used_by": "{{.UserName}}" }, "AssetTypeFieldMapping": { "h_name": "{{.MachineName}}", "h_mac_address": "{{.MACAddress}}", "h_net_ip_address": "{{.IPAddress}}", "h_net_computer_name": "{{.MachineName}}", "h_net_win_domain": "{{.NETDomain}}", "h_model": "{{.SystemModel}}", "h_manufacturer": "{{.SystemManufacturer}}", "h_cpu_info": "{{.ProcessorName}}", "h_description": "{{.SystemModel}}", "h_memory_info": "{{.MemoryKB}}", "h_os_description": "{{.OperatingSystem}}", "h_os_service_pack": "{{.ServicePackVersion}}", "h_os_version": "{{.OperatingSystemVersion}}", "h_physical_disk_size": "{{.DiskSpaceMB}}", "h_serial_number": "{{.SystemSerialNumber}}", "h_cpu_clock_speed": "{{.ProcessorSpeedGHz}}", "h_physical_cpus": "{{.NumberofProcessors}}", "h_bios_name": "{{.BIOSDescription}}", "h_bios_release_date": "{{.BIOSReleaseDate}}", "h_bios_version": "{{.SMBIOSVersion}}" } }
  4. @Steve Goldthorpe Any thoughts in the cause of the above? e.g. What stupid thing did Kevin forget to do...
  5. Thanks so much for the help thus far. I have now gotten to the point where the users are being cached from Hornbill, but I am getting an error on the Site caching. I know it is likely something simple that I have not done or incorrectly done causing this, but cannot figure out what. Any ideas? Here is the actual text from the log file 2023/01/18 16:01:21 Loading Config File: c:\Hornbill\SCCMAssets/db_sccm.json 2023/01/18 16:01:23 Current binary is the latest version: 3.3.3 2023/01/18 16:01:24 ---- XMLMC Database Asset Import Utility v3.3.3 ---- 2023/01/18 16:01:24 [DEBUG] Flag - Config File db_sccm.json 2023/01/18 16:01:24 [DEBUG] Flag - Dry Run true 2023/01/18 16:01:24 [DEBUG] Flag - Concurrent 10 2023/01/18 16:01:27 Caching User Records from Hornbill... 2023/01/18 16:01:28 Loading Users from Hornbill 2023/01/18 16:01:28 getUserAccountsList Count: 1977 2023/01/18 16:01:28 Loading User Accounts List Offset: 0 2023/01/18 16:01:29 Loading User Accounts List Offset: 1000 2023/01/18 16:01:29 Users Loaded: 1977 2023/01/18 16:01:29 Caching Site Records from Hornbill... 2023/01/18 16:01:30 [ERROR] Unable to Read Sites List json: cannot unmarshal number into Go struct field .params.count of type string 2023/01/18 16:01:30 Caching Application Records from Hornbill... 2023/01/18 16:01:31 [ERROR] Database configuration not set. 2023/01/18 16:01:31 [ERROR] [DATABASE] Database Connection String Empty. Check the SQLConf section of your configuration.
  6. @SamS Thanks for the Quick reply. Follow up Question... How do I tell the import utility where the SQL database is located? Kevin K
  7. @Steve Giller @Giuseppe Iannacone @JBasey Hello gentlemen. My Company is working on setting up Asset Import/syncing from SCCM into Hornbill. You have either developed this tool, or have implemented it in your instances. I had a couple of questions for you. 1. It seems to me that the tool is written so that it must be loaded onto the SCCM server itself? Is this correct? If so, does it need to run on the drive that the SQL database is setup on, or is it fine on the boot drive of that server? My SCCM Admin has concerns that the tool "might screw up his highly tuned SCCM server". 2. Do any ports need to be opened on the Firewall to allow the tool to connect with Hornbill? If so, which ones? Thank you in advance for generously sharing your wisdom with me! Kevin K.
  8. Has anyone raised a support request on this yet? I don't want to bury HB Support, but might escalate things faster if we did.
  9. +1 - Us too, no requests showing, or views.
  10. @James AinsworthMember of our admin group reporting we are experiencing a similar error to this in Live. I have asked her to demo it for me tomorrow morning EST. Will report back my findings if/when we can reliably & repeatedly demonstrate the problem. She is getting an error when choosing dates, keeps telling her invalid date no matter which date is chosen.
  11. We also saw this, but I am just searching the forums now. Thanks for the fix !
  12. @James Ainsworth Thanks for clarifying, James, I was not aware of this. Is there a document(s) somewhere that would have told me this that I missed?
  13. @Ricky @James Ainsworth We just added Hornbill's ITOM to our subscription in August. I just set up the Site Integration Server yesterday, and got it working. I tried to create the test Runbook, following the instructions, and I am getting the same error that Andy was getting above, stating "Your subscription does not allow to create more runbooks". Due to my inexperience with ITOM, I have questions. Do I need to obtain a license for each runbook I set up, starting with the first?
  14. @SamS Thank you, somehow I must have missed this page. I have passed it along to our developers.
  15. In our prior helpdesk, we had triggers from a propriatary HR database that produced requests. We have decided to reproduce that functionality in Hornbill by modifying the code in the triggers to access the Hornbill API. So someone ends their employment, HR changes their status to terminated, and that kicks off the creation of a Termination request in Hornbill. We call them Terminations whether the employee initiated the separation, or the company did. Our development team, who have not ever worked with Hornbill, other than manually entering & servicing requests (no automation or API experience yet), sent me a few questions. I was pleased that I (maybe) knew the answer to one of them. The questions asked were: 1. The specs seem to indicate that they are expecting a SOAP WS call – Can we find out if Hornbill can accept RESTFul call with a JSON payload? 2. On the response they send, can they respond via JSON objects? Or only XML response? 3. Do they need to be called via secure web service? If so we may need to know the authentication un/pw? I think #3 is that they need to use an API Key that I generate for the account we want to use for authentication. No idea on #s 1 & 2. Thanks in advance for any clarification you may be able to provide. Kevin K.
  16. @James Ainsworth @Victor So embarrassed that the problem ended up being something you had suggested early on, that I told you was not the case in our instance. Upon changing the two email addresses that were duplicated among out users, and retesting, it seems to be working as expected.
  17. @Steve Giller Thanks for the prompt suggestions. First point was definitely a problem, I fixed it (Red Arrow). I also removed and retyped the condition, basing it on subject, and shortened the searched for text to "Alert" (Yellow Arrow). These seem like very good suggestions, but the result is the same, the email stays unread in the service desk inbox I know there must be something I have done wrong.
  18. @Steve Giller Thank you! I had reviewed both of those previously, and made some changes to test whether any of reasons listed could have been the root cause. I don't think they are, at least to my inexperienced eye.
  19. Hello Relative newbie to the Hornbill world, trying our first go at Routing Rules. Everything seems fairly straightforward, but I am missing something basic. Below are the pertinent screenshots. Can anyone let me know what I missed, I think I have tried all of the solutions in the wiki & forums. Email just sits seemingly unprocessed in the Inbox Thanks in Advance - Kevin Kennedy
  20. @Victor Your wisdom is above question, sir. Maybe I am not describing it properly, or we were attacking the wrong problem. Notifications exist for activities, the activities having previously expired, or remained undone and the request is closed. Technicians want to see the current list of pertinent notifications, not be reminded of what they failed to do 3 months ago, that in most cases is no longer relevant. I guess I was unaware that the activities list could be filtered? The underlying question is "How do we make the technicians list only show notifications for activities within active requests?". The irony is that the technicians see this as a "bug" within Hornbill, when it really is a failure on the Technicians part. (or my part if it was a subject they were inadequately trained on).
  21. @Victor In our case, we are still learning, and the true enemy may be our lack of understanding of the application, and proper methods to use it. These are tasks that are still incomplete (usually expired) attached to long closed tickets. Our Analysts have just recently begun paying close attention to their notifications, and see the notifications for tickets closed several months back. I suppose as an alternative I could have reopened each ticket, opened the executed/executing BPM for that request, change it to force the BPM to continue (although I have had mixed success doing this), and then reclosing the request once the task has been completed/cancelled. However, in my case the writing a report to identify incomplete tasks attached to closed tickets, and feeding the output of that to the HB Task Cancelling Utility seems likely to solve the majority of my problems.
  22. @Victor @lcottell I think I figured mine out. I was unaware of the Hornbill Task Cancellation Tool on Github. I was able to cancel some, although others errored out. It appears that if the request was closed, the Task can be cancelled, if the request is cancelled, the Task ID errors out as already cancelled. I think at this point my problem is solved.
  23. +1 we are also having this problem. Waiting for advice on how to get rid of these expired tasks.
×
×
  • Create New...