Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Being ethical in a sometimes unethical world...- Branson SharePointalooza September 13th, 2014

599 views

Published on

Tracking potential conflict of interests using SharePoint.

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Being ethical in a sometimes unethical world...- Branson SharePointalooza September 13th, 2014

  1. 1. Tracking Ethical Conflicts in a Sometimes Unethical World Thomas Duff Cambia Health Solutions September 12th – 13th, 2014
  2. 2. 2 | SharePointalooza – Branson, MO 2014 Who am I?  Thomas Duff, aka “Duffbert”  Technologist, blogger, writer, speaker, SharePoint developer  20+ years with Microsoft and IBM collaboration technologies  Email: duffbert@gmail.com  Twitter: @duffbert  Blog: sharepointduffbert.com
  3. 3. 3 | SharePointalooza – Branson, MO 2014 Thank you, sponsors!
  4. 4. 4 | SharePointalooza – Branson, MO 2014 A Few Reminders  http://bit.ly/SPAloozaAttendee     
  5. 5. 5 | SharePointalooza – Branson, MO 2014 The Bands What better way to unwind after a long day of working out your brain than with some great live music at the amazing outdoor stage at Branson Landing! The bands will be playing both Friday and Saturday night from 6:30 pm to 10 pm.
  6. 6. 6 | SharePointalooza – Branson, MO 2014 Outline  Why use SharePoint to track this information?  Why are Ethics programs necessary – my story  How we got from there to here  Under the Conflict of Interest form covers  Questions?
  7. 7. 7 | SharePointalooza – Branson, MO 2014 Why use SharePoint to track this information?  No-code solution – easy to maintain  Easy to build forms – Customize Form with InfoPath  Easy to administer – for both SharePoint Support and the customer/site owner  Workflows can trigger notices and set permissions  These are techniques you can use to build any type of electronic form and workflow solutions
  8. 8. Why are Ethics programs necessary? My story… 8 | SharePointalooza – Branson, MO 2014
  9. 9. 9 | SharePointalooza – Branson, MO 2014 How we got from there to here… from Notes… • Started Conflict of Interest tracking application in 2002 • Tracking for 5000+ people (employees and contractors) • Used Lotus Notes (our main collaboration tool through 2009) • Surprisingly, many of the benefits of this type of form existed both then in Notes and now in SharePoint
  10. 10. 10 | SharePointalooza – Branson, MO 2014 How we got from there to here… to InfoPath… • Switched to SharePoint using InfoPath forms in 2010 • It worked, but we were learning as we went along • There were… issues • InfoPath client support • Submissions would disappear • Workflows couldn’t update information in the XML document • Cumbersome to work with administratively
  11. 11. How we got from there to here… to Customized Lists 11 | SharePointalooza – Branson, MO 2014 • Made some major changes for 2014, so decided to go with a SharePoint Customized List • Major improvements in stability and support • Browser support • No reliance on InfoPath client • Full access to update fields via SPD workflows • “It just works”
  12. 12. 12 | SharePointalooza – Branson, MO 2014 The Form… Customizing the list item form using Customize Form With InfoPath
  13. 13. 13 | SharePointalooza – Branson, MO 2014 A series of 14 questions to flag conflicts • Covers areas such as: • Connections with providers, vendors, other plans, or customers • Received gifts/gratuities (you and/or family) or honorariums • Other employment • Family members employed at the company • Other relationships • Convictions, disbarments, and license revocations
  14. 14. 14 | SharePointalooza – Branson, MO 2014 Behind the scenes… for the Ethics officers Using hidden sections, information gathered by the Ethics officer is stored
  15. 15. 15 | SharePointalooza – Branson, MO 2014 Behind the scenes… for the form data To track changes that a person makes on the form in a specific session, we store the current information on Form Load
  16. 16. The employee number triggers the profile load 16 | SharePointalooza – Branson, MO 2014 When a person creates or edits a COI, we run a routine to update information based on their user profile
  17. 17. 17 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… To accomplish the profile load, we set up a rule that will call the GetUserProfileByName web service and fill in the form fields with the values from that call
  18. 18. 18 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… Start by clicking the Manage Data Connections under the list of fields, and then click Add to create a new data connection:
  19. 19. 19 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… The data connection will be one that receives data (in this case, from the SharePoint profile for the employee)
  20. 20. 20 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… We’ll be using one of the SOAP web services that is built into SharePoint
  21. 21. 21 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… To find the list of web services, enter the URL for the WSDL file http://<yourSite>/_vti_bin/userprofileservice.asmx?wsdl
  22. 22. 22 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… For this particular form, we want to use GetUserProfileByName as we have the account name (the employee number) as the key to the profile.
  23. 23. 23 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… On this screen, we leave the value blank, as we will provide the value at the time we call the web service with the data connection
  24. 24. 24 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… These are the two final screens, which can be taken with default values. Once that’s done, the new data connection for the web service is finished
  25. 25. 25 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… Once we have the data connection in place, we have to set the fields in the form based on values in the profiles
  26. 26. 26 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… We start by adding an action to our rule – “Set a field’s value”
  27. 27. 27 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… Choose the form field name, click on the fx for the field value, click on Insert Field or Group, and then use the Advanced View to show the GetUserProfileByName data connection fields
  28. 28. 28 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… Within the data connection, click on Value. To filter the data returned in Value, use the Filter Data box to select a filter condition…
  29. 29. 29 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… Since we’re looking for a single property in the data connection record, we filter on the name of the property (in this case, Title)
  30. 30. 30 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… Once that’s done, you now have the value of the Title field in the SharePoint profile loaded into the Employee Title field in the form:
  31. 31. 31 | SharePointalooza – Branson, MO 2014 The profile load – how it’s done… Side note… if you want to “code that directly instead of working through all the panels, you can select the Edit XPath (advanced) option and do the following:
  32. 32. The questions start next… looking for “Yes” or “No” 32 | SharePointalooza – Branson, MO 2014 In the case of a “No” answer, not much changes
  33. 33. 33 | SharePointalooza – Branson, MO 2014 “Yes” answers trigger more questions If a “Yes” answer is given, then a hidden section reveals two required fields asking for detail and how that is different than last year’s disclosure
  34. 34. 34 | SharePointalooza – Branson, MO 2014 This is done via a formatting rule… If a “Yes” answer is given, then a hidden section reveals two required fields asking for detail and how that is different than last year’s disclosure:
  35. 35. 35 | SharePointalooza – Branson, MO 2014 The rules for when the form loads The Form Load rules set up the new data for the user, as well as storing existing data for comparison purposes on Form Submit
  36. 36. We grab all the existing comments on the form 36 | SharePointalooza – Branson, MO 2014 The critical part is storing the existing comments on the form so we can change for changes on Form Submit
  37. 37. 37 | SharePointalooza – Branson, MO 2014 When the form submits, more rules If there’s at least one “Yes” answer on the form, we set a flag so that the Ethics officer can follow up for investigation
  38. 38. Clean up of detail fields if the answers were “No” Housekeeping – make sure that if an answer was set to “No”, that there are no residual comments on the question from prior “Yes” answer 38 | SharePointalooza – Branson, MO 2014
  39. 39. If a Yes/No answer changes, get that information For each Yes/No answer change, track what it was changed to, as well as what the comment was on Form Load: 39 | SharePointalooza – Branson, MO 2014
  40. 40. The Changed Entries field gathers those changes 40 | SharePointalooza – Branson, MO 2014 The Changed Entries field is stored on the form so the Ethics officer can review what was changed
  41. 41. The Changed Entries field gathers those changes This is an example of what would be loaded into the Changed Entries field for changes I made: 41 | SharePointalooza – Branson, MO 2014
  42. 42. 42 | SharePointalooza – Branson, MO 2014 SharePoint Designer And Workflows
  43. 43. Workflow Impersonation – a WONDERFUL thing 43 | SharePointalooza – Branson, MO 2014
  44. 44. Workflow Impersonation – a WONDERFUL thing Because people should only be able to see their own COI, it’s important to give each COI unique permissions. This is done via an impersonation step in a workflow built in SharePoint Designer: 44 | SharePointalooza – Branson, MO 2014
  45. 45. Drilling down to add and/or remove permissions 45 | SharePointalooza – Branson, MO 2014 A drill-down into removing/adding permissions:
  46. 46. 46 | SharePointalooza – Branson, MO 2014 An alternative way to set the permissions We could have also done permissions this way, but the prior method allows us flexibility if we ever wanted to make specific items visible to supervisors or managers:
  47. 47. 47 | SharePointalooza – Branson, MO 2014 Emails triggered after saves… Letting the user know there will be a review due to one “Yes” answer:
  48. 48. 48 | SharePointalooza – Branson, MO 2014 Emails triggered after saves… Letting the user know a more thorough review is needed after preliminary review:
  49. 49. 49 | SharePointalooza – Branson, MO 2014 Emails triggered after saves… Initial notice to let people know they need to complete the conflict statement:
  50. 50. 50 | SharePointalooza – Branson, MO 2014 Emails triggered after saves… Initial notice to let people know everything is fine and no further action is required:
  51. 51. 51 | SharePointalooza – Branson, MO 2014 Adding icons on the workflow dropdowns… Cool Tip… you can add workflows (and icons) to the list item dropdown menus: These are added to the list in SharePoint Designer under Custom Actions:
  52. 52. 52 | SharePointalooza – Branson, MO 2014 Adding icons on the workflow dropdowns… Adding a custom action allows you to assign a workflow to the action, as well as an icon to the custom action menu entry
  53. 53. Bonus Tip! Sending ad-hoc emails on an item… This is a nice ad-hoc email workflow you can attach to any list: 53 | SharePointalooza – Branson, MO 2014
  54. 54. Bonus Tip! Sending ad-hoc emails on an item… It uses the Initiation Form (and parameters) as well as local variables: 54 | SharePointalooza – Branson, MO 2014
  55. 55. Bonus Tip! Sending ad-hoc emails on an item… The Initiation Form parameters supply the To/CC/email body fields. The local variables supply some of the standard email body text: 55 | SharePointalooza – Branson, MO 2014
  56. 56. Bonus Tip! Sending ad-hoc emails on an item… Very simple Initiation Form design… almost the default: 56 | SharePointalooza – Branson, MO 2014
  57. 57. Bonus Tip! Sending ad-hoc emails on an item… The Send Email action in the workflow: 57 | SharePointalooza – Branson, MO 2014
  58. 58. Bonus Tip! Sending ad-hoc emails on an item… When the workflow is initiated, this is what the user sees: 58 | SharePointalooza – Branson, MO 2014
  59. 59. Bonus Tip! Sending ad-hoc emails on an item… This is what the email looks like when it arrives: 59 | SharePointalooza – Branson, MO 2014
  60. 60. 60 | SharePointalooza – Branson, MO 2014 Questions? Thank you, and enjoy the conference!

×