Skip to content

Commit

Permalink
First release of 2019 (#113)
Browse files Browse the repository at this point in the history
* Dynamic Work Item Assignment (#111)

* Introducing dynamic assignment

Based on the template that was applied for the New Work Item, optionally enable the ability to assign an analyst within that template's Support Group either entirely randomly or by the least amount of assigned Work Items. These two settings can be further enhanced by leveraging the SCSM Out of Office management pack that maintain their purpose but will overlook an Analyst whose Out of Office is true.

* Excluding Work Item's that aren't being worked on

When determining the least amount of currently assigned work items for Dynamic Assignment, the counter of assigned work items per analyst should not count items that are in some form of a "finished" state such as Cancelled, Resolved, Skipped, Closed, etc. as it potentially skews fairness of assignment.

That said, this will count items that are "Open", includes Pending, and any custom sub-categories.

* Accidental variable drop

Between testing/commit removed the key means to actually count assignment

* Issue on pipeline

Breaking this into a few lines due to issue with selecting sourceobject

* Feature icon

Uploading icon for readme edit

* verbiage

initial verbiage around the assignment functionality

* Setting First Assigned Date

Given the property exists, it makes sense to set the First Assigned Date once the Work Item is dynamically assigned out through this feature

* license upgrade

new gpl

* gpl v3.0

adding new gpl license

* Azure Machine Learning integration (#114)

* icon for feature

Machine Learning feature icon for readme

* Adding ML section

Prepping readme for ML feature

* General integration

Config variables and function are deployed into the connector. Will integrate into the New-WorkItem function next.

* 1st draft of feature explanation

Providing general outline of how the feature will be used within the context of the SMLets Exchange Connector.

* Azure Machine Learning pricing link

Updating readme to feature a link over to Azure Machine Learning Studio pricing

* AML Configuration Link

Updating readme to link over to the Azure Machine Learning walkthrough on the Wiki.

* AML configuration screenshots

Uploading configuration screenshots for Wiki article on configuring Azure Machine Learning

* Preliminary Integration

While the function, explanation, and variables have been deployed. This is the commit that begins to leverage the returned values from AML. Still need to account for applying the Classification and Support Group.

* Confidence array issue

Testing with the 100x multiplier appears to return a "confidence array" as opposed to a single percentage result. Reverting back and investigating.

* Updating wiki url

Since the wiki is in developing status, the url has been changed.

* decimal data type fix

AML objects were previously using entirely string properties. This ensures the Confidence style properties are created as decimal data types so math can be performed in related functions.

* more screenshots

Screenshots to highlight how/where to evaluate model results after changing classification algorithm

* decoupling ACS features

Only after enabling ACS could ACS priority scoring be used. Those dependencies have been removed so it's possible to use ACS as a complimentary feature to AML.

* Updated Dynamic Assignment integration for AML

In order to get AML to work with the recently added Dynamic Work Item assignment feature, the function of Set-AssignedToPerTemplateSupportGroup was modified to take a SupportGroupID instead of a Template. In doing so, the feature can be used with or without AML and serves a more general purpose use. Finally, the function was renamed to Set-AssignedToPerSupportGroup

* verbiage on features

Dynamic Work Item Assignment and Dynamic Routing/Classification aren't just two separate features, but they are implemented two wholly different ways. Trying to remove any potential future confusion that could arise by trying to distinguish the AI features from a feature the connector can simply perform on its own.

* new screenshots

Updating documentation for Azure ARM deployment

* changing link again

Updating link to the be the more long term one, will update wiki inline to cite development status.

* First Response Date check on Dynamic Assignment

Added a sanity check to ensure it isn't possible to have misused Dynamic Analyst Assignment and thus set the First Response Date when in fact no Analyst had been assigned per the rule set

* IR status reply bug (#116)

Updating logic on the IR Reply changes Status feature so it can't be used against Closed Incidents.

* Fix for IR with Activity (#119)

This removes the SMLets call to set templates in favor of the previously leveraged and modified Set-SCSMTemplateWithActivities series of functions from Morten Meisler.

* Support for AI Reporting (#121)

* Support for AI Reporting

Adding variables for those who wish to extend Incident and Service Request classes with custom properties so returned ACS or AML scores can be written into the Work Item.

* Updating notes

The data type that should be used/extended on Incidents and Service Request should be a Decimal and not Integer data type.

* Bad IF logic

The condition that was previously evaluated just checked if ACS Sentiment scoring was being used, as opposed to determining if the custom class extension for Sentiment Scoring had been set.

* Control External Comments (#117)

* Control External Comments

Enable central modification and control of how comments are left when the user leaving the comment is not the Affected User or Assigned To

* updating notes

Trying to bring some verbiage parity between these features, continue to show what they can be changed to, and their stock values.

* Potential fix for #110 (#122)

Completing pull

* Updated Attach-FileToWorkItem and Attach-FileToWorkItem (#124)

Updated references to $existingAttachmentsCount rather than $existingAttachments.Count

* Support for Custom Work Item Prefixes (#109)

* First draft

Beginning to address a long standing request for supporting custom Work Item prefixes. Still need to address building custom RE:/Reply regex for the Merge Replies functionality. Expanded Get-SCSMWorkItemSettings function to build the regex from the retrieved prefix.

* replacing hardcoded prefixes

Continuing to work on removing any hardcoded prefixes from the connector.

* Merge reply & work item settings

Get-SCSMWorkItemSettings has now been modified to return the core of the prefix regex, so instead of returning the full match logic of "\[[I][R][0-9]+\]" for an Incident, it now simply returns [I][R]. As such, this requires the core matching logic of the connector to need a prefix and suffix of the square bracket and following number range. But enables a less (potentially) complex Merge Reply and Calendar regex. Finally, this does away with the C# style cast of [Regex]::Escape and returns to PowerShell.

* Prefix/Suffix for New Regex logic

Updating the matching logic that was used when identifying a Closed Incident to get in line with the previous commit wherein Get-SCSMWorkItemSettings was modified to only return "[I][R]" for a prefix regex instead of "\[[I][R][0-9]+\]"

* IR w/ Activity Missing Prefix

Addressing bug that was identified during testing of custom prefixes. While it is it not the direct result of this new feature, it's something that can and should be addressed.

* Undoing patch

Looks like this has raised a merge conflict. Going to revert and deploy with a new branch.

* Updating version notes

Intro comment block recognizes nradler2/Justin Workman as contributors as well as the standard release notes for the version

* Caught variable issue

Typo on a variable that used $$ instead of $
  • Loading branch information
AdhocAdam authored Apr 9, 2019
1 parent 237ebeb commit 8d2d699
Show file tree
Hide file tree
Showing 18 changed files with 1,018 additions and 372 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added FeatureScreenshots/Assign.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
903 changes: 619 additions & 284 deletions LICENSE

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,26 @@ The stock Exchange Connector is a seperate download for SCSM 2012+ that enables
This is aimed at SCSM administrators looking to further push the automation limits of what their SCSM deployment can do with inbound email processing. As such, you should be comfortable with PowerShell and navigating SCSM via SMlets.

## What new things can it do?
<table border="0">
<tr>
<td colspan="3"><i>Intelligent Routing and Classification with Azure Machine Learning (v1.4)</i></td>
</tr>
<tr>
<td width="200"><img src ="/FeatureScreenshots/machineLearningClassification.png" /></td>
<td width="auto">Further compliment "Dynamic Work Item Analyst Assignment" and "Azure Cognitive Services" features with integration for Azure Machine Learning. Using AML, you can now train Azure's artificial intelligence on your SCSM environment using your very own SCSM Data Warehouse to autonomously choose Work Item Type (Incident or Service Request), Work Item Classification, and Work Item Support Group on brand new Work Items that the connector creates. Azure pricing can be found <a href="https://azure.microsoft.com/en-us/pricing/details/machine-learning-studio/">here</a> and how to configure it for your environment/connector can be found <a href="https://github.com/AdhocAdam/smletsexchangeconnector/wiki/Azure-Machine-Learning-setup">here</a>.</td>
</tr>
</table>

<table border="0">
<tr>
<td colspan="3"><i>Dynamic Work Item Analyst Assignment on New Work Item (v1.4)</i></td>
</tr>
<tr>
<td width="200"><img src ="/FeatureScreenshots/Assign.png" /></td>
<td width="auto">When New Work Items are created, you can optionally enable the connector to assign them out to Analysts contained within the Default Template's Support Group. This can be done through several means - completely random, least assigned open Work Items, or in conjunction with the <a href="https://github.com/AdhocAdam/scsmoutofoffice">SCSM Out of Office Management pack</a> to prevent assignment when Analysts are out of the office. <i>(Requires at least the free Cireson SCSM Portal to establish the relationship between Support Groups and Analysts)</i></td>
</tr>
</table>

<table border="0">
<tr>
<td colspan="3"><i>Change Incident Status based on Who Replied (v1.4)</i></td>
Expand Down
467 changes: 379 additions & 88 deletions smletsExchangeConnector.ps1

Large diffs are not rendered by default.

0 comments on commit 8d2d699

Please sign in to comment.