being ethical in a sometimes unethical world...- branson sharepointalooza september 13th, 2014

Post on 20-Aug-2015

220 Views

Category:

Data & Analytics

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Thomas DuffCambia Health SolutionsSeptember 12th – 13th, 2014

Tracking Ethical Conflicts in a Sometimes Unethical World

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 | SharePointalooza – Branson, MO 2014

Rock Star Sponsors

Performer Sponsors

Giveaway Sponsors

Soloist Sponsors

Thank you, sponsors!

4 | SharePointalooza – Branson, MO 2014

Download the attendee packet at http://bit.ly/SPAloozaAttendee

Attend the “Rock Star” Sessions at the end of each day for fun, raffle prizes, wrist bands for concert access, and your chance to win a Surface Pro 3

Attend Nintex’s Brown Bag lunch Friday and Saturday (lunch provided for first 100 people)

Tweet about the event using #SharePointalooza

Thank our sponsors Have a great time!

A Few Reminders

5 | SharePointalooza – Branson, MO 2014

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.

The Bands

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 | 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 | SharePointalooza – Branson, MO 2014

Why are Ethics programs necessary? My story…

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 | 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 | SharePointalooza – Branson, MO 2014

How we got from there to here… to Customized Lists

• 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 | SharePointalooza – Branson, MO 2014

The Form…

Customizing the list item form using Customize Form With InfoPath

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 | SharePointalooza – Branson, MO 2014

Behind the scenes… for the Ethics officers

Using hidden sections, information gathered by the Ethics officer is stored

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 | SharePointalooza – Branson, MO 2014

The employee number triggers the profile load

When a person creates or edits a COI, we run a routine to update information based on their user profile

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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | SharePointalooza – Branson, MO 2014

The questions start next… looking for “Yes” or “No”

In the case of a “No” answer, not much changes

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 | 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 | 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 | SharePointalooza – Branson, MO 2014

We grab all the existing comments on the form

The critical part is storing the existing comments on the form so we can change for changes on Form Submit

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 | SharePointalooza – Branson, MO 2014

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

39 | SharePointalooza – Branson, MO 2014

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:

40 | SharePointalooza – Branson, MO 2014

The Changed Entries field gathers those changes

The Changed Entries field is stored on the form so the Ethics officer can review what was changed

41 | SharePointalooza – Branson, MO 2014

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:

42 | SharePointalooza – Branson, MO 2014

SharePoint Designer And Workflows

43 | SharePointalooza – Branson, MO 2014

Workflow Impersonation – a WONDERFUL thing

44 | SharePointalooza – Branson, MO 2014

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:

45 | SharePointalooza – Branson, MO 2014

Drilling down to add and/or remove permissionsA drill-down into removing/adding permissions:

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 | SharePointalooza – Branson, MO 2014

Emails triggered after saves…Letting the user know there will be a review due to one “Yes” answer:

48 | SharePointalooza – Branson, MO 2014

Emails triggered after saves…

Letting the user know a more thorough review is needed after preliminary review:

49 | SharePointalooza – Branson, MO 2014

Emails triggered after saves…Initial notice to let people know they need to complete the conflict statement:

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 | 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 | 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 | SharePointalooza – Branson, MO 2014

Bonus Tip! Sending ad-hoc emails on an item…

This is a nice ad-hoc email workflow you can attach to any list:

54 | SharePointalooza – Branson, MO 2014

Bonus Tip! Sending ad-hoc emails on an item…

It uses the Initiation Form (and parameters) as well as local variables:

55 | SharePointalooza – Branson, MO 2014

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:

56 | SharePointalooza – Branson, MO 2014

Bonus Tip! Sending ad-hoc emails on an item…Very simple Initiation Form design… almost the default:

57 | SharePointalooza – Branson, MO 2014

Bonus Tip! Sending ad-hoc emails on an item…

The Send Email action in the workflow:

58 | SharePointalooza – Branson, MO 2014

Bonus Tip! Sending ad-hoc emails on an item…

When the workflow is initiated, this is what the user sees:

59 | SharePointalooza – Branson, MO 2014

Bonus Tip! Sending ad-hoc emails on an item…

This is what the email looks like when it arrives:

60 | SharePointalooza – Branson, MO 2014

Questions?

Thank you, and enjoy the conference!

top related