being ethical in a sometimes unethical world...- branson sharepointalooza september 13th, 2014
Post on 20-Aug-2015
224 Views
Preview:
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