SlideShare a Scribd company logo
From Legacy Web Application
to SharePoint
By Elizabeth Szabo & Christine McKnight
Agenda
From Legacy Web Application To SharePoint - a case study
Business Reasons
Applications are migrating to or
integrating with the new Intranet.
Application database needs to be retired.
Features of the Existing Application
• Publishes data and documents on the Intranet
• Provides search functionality
• Users collaborate on data and documents
• Has light project management
• Has role based access to data and editing
Sounds like a normal OOB SharePoint – well … almost
Analysis
• Functionality is aligned with
SharePoint
• Data is relational, but most
lookups can be option lists.
Some tables are not
necessary. Data import can
be done with SSIS.
• Medium size legacy
application with a retiring
Oracle database and almost no
admin interface.
• Business wants more control
over application without
involving developers
Possible solutions
1. Minimally update old application (postpone problem)
2. Modernize application
3. Migrate to SharePoint
• All solutions need data migration
• All need Application, Database and SharePoint developer resources
• The first two need integration with SharePoint
Pros Cons
1. No new interface to learn 1. Code has to be rewritten
2. Database has to migrate
3. Need to add full admin interface
or still need developer support
4. Needs to integrate with SP
5. Can’t be searched from SP
6. Have to support network drive
Should we rewrite the application?
1. Part of the new Intranet
2. Findability
3. No custom app to support
4. More control to users
5. Easy Collaboration
6. SharePoint security
1. New user interface to learn
2. SharePoint works differently
3. Data is relational
4. Implementing governance is
more complex
Should we migrate the application?
Pros Cons
From Legacy Web Application To SharePoint - a case study
Requirements
1. Home page and search should look and function like the existing site
2. All data should be migrated and readily available for users
3. All functionality from old site should exist:
• Secured reports with aggregated data
• Exporting to Word
• Publication metadata for EndNote
4. Governance should be the same: project team leads
can edit only, and only their own project and related data
3. Data entry should be easy
Setup and Obstacles
• SharePoint 2013 on premise
• Should use the customized Intranet branding
• Organization is new to SharePoint
We have none of these…
Farm Admin access, farm solution, Visual Studio on the server,
PowerShell access, 2013 workflows, third party solutions, dedicated
SharePoint admin or developer
From Legacy Web Application To SharePoint - a case study
Solution Structure
• SharePoint Team site (with publishing enabled)
• Dashboard page for summary and easy data entry
• Main tables become SP lists
• Project (parent)
• Status, Team, Publications, Funding, Deliverables,
Project Documents (children)
Solution Structure (continued)
• Lookup tables mostly become
option lists
• Added document library for
public, secured library for
admins
• Search result webparts for
complex data display
• JavaScript reporting for online
• SSRS reports exports to Word
Technical solution
• Site columns and site content types used to
support data integrity and search
• Workflows flow data from children to parent (hidden columns)
• Parent list stores latest updates from children for reporting
Technical solution (cont)
• Custom display templates for data aggregation
• JSLink customized data entry and display forms
• Custom action to default Dashboard page as Project view
• Notification system to order new batch of security groups
From Legacy Web Application To SharePoint - a case study
Overview
• 30 tables, 0.9 Mb data + documents on network drive
• Mostly lookup and join tables
• List migrations: flattening the structure
• User migration - Active Directory integration
• Document migration
• Upload folders to SharePoint (could be done with SSIS)
• Adding metadata with SSIS
• Adding related documents to publications with SSIS
How do we get data from Oracle to SharePoint 2013?
Environment
1. SQL Server Integration Services (SSIS) 2012
• On Windows Server 2012 R2 (This solution does not work on Windows 10!)
• Run as developer admin account
2. Oracle 11g
• Connecting with database credentials
3. SharePoint 2013
• Connecting with developer admin account
• Site admin permissions
• Workflows on destination lists are OFF
Oracle Source SharePoint Destination
Neither of these are ship with SSIS 2012!
Source and destination
add-ins are installed.
Time to do the
expensive work!
Obstacle/Requirement Impact
SharePoint uses auto-incrementing integers as unique
identifiers. There is no way to modify these... even
through SSIS.
In order to reference SharePoint IDs, they need to first
be generated, then queried, then joined to the
referencing dataset.
There is already test data in the lists. Each list needs to be truncated before inserting data
from Oracle. This doesn't reset the seed for the
SharePoint IDs.
Some lists will have lookups referencing other lists. Load each list in the right order!
A person's name should link to their SharePoint
profile.
The SharePoint profile also has an auto-incrementing
ID. There is no list to query for all the SharePoint
profiles. Oracle stores people by their Username.
NO ERROR HANDLING!
(Yes, really! We looked everywhere.)
Lots of guess-and-check.
Plan the Data Flow Architecture
Plan the Data Flow Architecture
Requirements for fancy stuff...
• Numbers must be loaded as text (even money, so make it look like money first)
• SharePoint line break syntax is ;#
• Images and formatting can be added by loading data as strings of HTML
First, Truncate and Load Top Parent List called Projects
Truncate
Load
Next, Truncate and Load Child Lists in Order, Ex: Status
Truncate
Load
Truncate and Load Child Lists with Name Lookups, Ex: Tasks
Query Oracle for Usernames.
Match to AD on Username.
Now we have their full name as it
appears on their SharePoint profile.
Get All Names from Active Directory
Truncate and Load Child Lists with Name Lookups, Ex: Tasks
Make a temporary list called
UserMap.
Make a field in UserMap that is a
lookup to SharePoint Profiles.
Throw a list of integer keys at UserMap and see
which names populate in the lookups!​
Query UserMap.
Match on AD names in a
spreadsheet.
Now we have Username (Oracle
key) and SharePoint ID.
Truncate
Truncate and Load Child Lists with Name Lookups, Ex: Tasks
Load
Continue Same Steps for All Lists
in Hierarchical Order
Ex: Project Documents
Challenges
• Implementing governance
• Workflows too slow for SSIS
• Utility workflows needed for data fix-up
• Batch operations in SharePoint
Used JSOM for batch operations
• security group creation
• triggering workflows
• Production support
From Legacy Web Application To SharePoint - a case study
Dashboard page
• Provides summary information, most important facts
• Gives access to all information about a project
• List items can be edited directly from page (pop up forms)
• New items can be added directly from page
• Default project view from search result
• Added as a list custom action
• Custom action, filter webpart, connected webparts
All-in-one Experience
Parent-child lists data flow
Project list Project Id (hidden)
Short Name
Core Project
fields (editable)
Reporting fields
(non-editable)
Utility Fields
(hidden)
One
to
many
relationship
Child lists Status Team Publications Funding Documents
Data Latest status, status
date
Project manager,
Team members
Summary, Year,
Author, Related
Documents
Summary Link to
document
Project Dashboard Structure
Page Url with query string with Id
Filter web part
Project Summary
Status
Project Documents Other child lists
Publications
Other child lists
Other child lists
Filter webpart
4.
2.
3.
1.
hidden feature called BizAppsSiteTemplates
Replacing Word Export with SSRS Report
From Legacy Web Application To SharePoint - a case study
From Legacy Web Application To SharePoint - a case study
=SWITCH(
Fields!Project_ID.Value="35",1,
Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "Idea",1,
Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "Not Funded",1,
Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "Complete"
and DateDiff(DateInterval.Month,
Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Status_Date.Value, "StatusDS")
,today) > 6,1,
Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "Discontinued"
and DateDiff(DateInterval.Month,
Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Status_Date.Value, "StatusDS")
,today) > 3,1,
Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "On Hold"
and DateDiff(DateInterval.Month,
Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Status_Date.Value, "StatusDS")
,today) > 6,1,
true,0
)
Using the Lookup function as a join in a dataset filter expression!
From Legacy Web Application To SharePoint - a case study
Grid layout search result with complex data
Title Link to Dashboard
Data from Team list
Data from
Projects list
Data from
Status list
Grid: Header => control template, rows => item template
Status/risk indicator images
Images stored in Site Assets.
The status list Risk Level column customized with JSLink to display image instead of text
A workflow assigns the image to the risk level, updates project list
with the HTML to display the date, status and risk.
Security group request notification
• Anyone can add a new project, but only team members can edit
• Each projects have their own security group
• Groups are created in advance on demand (PowerShell script)
• Need to monitor Ids used
• Master Id table stores the Id for the last available security group
• Workflow compares new project Id and to Master and email to
HelpDesk for more if needed.
EndNote Entry Generator
Technics used
• Filter
webpart
(Url)
• Connected
webparts
• JSOM script
runs on
button click
From Legacy Web Application To SharePoint - a case study
Lessons learned
• Borderline size and complexity
• Data aggregation requires extra columns, workflows, form customization
• Batch operations are tricky
• Repeat data loading => repeat workflows (utility workflows/scripts)
• User adoption
• Need occasional help from System Operators
• configuring managed metadata
• publishing display template changes
• batch creating security groups
• Documenting for
• end users
• site administrators
• system operators
About us
Elizabeth Szabo
Sr. Consultant,
Web Application/SharePoint Developer
eszabo@anexinet.com
https://www.linkedin.com/in/elizabethszabo/
@lizascript
Christine McKnight
Business Intelligence Consultant
Cmcknight@anexinet.com
https://www.linkedin.com/in/christinemcknight/
Recognized as one of
Philadelphia Business Journal’s
“Best Places to Work”,
year after year.
With our Award-winning team!A consulting and services firm,
headquartered in Greater Philadelphia,
serving emerging, mid-market &
Fortune 1000 clients for over 15 years.
About Anexinet

More Related Content

What's hot (20)

PPTX
search driven intranets
Jeff Fried
 
PDF
Fried sp techcon hybrid search deeper dive
Jeff Fried
 
PPTX
Understanding and Applying Cloud Hybrid Search
Jeff Fried
 
PPS
SharePoint 2007 Presentation
Ajay Jain
 
PPT
Introduction wss-3-and-moss-2007-12324
Mogili Venkatababu
 
PPTX
2013 MN IT Govt Symposium - Implement No Code Solutions with SharePoint and I...
Don Donais
 
PPTX
Develop iOS and Android apps with SharePoint/Office 365
Kashif Imran
 
PPTX
SharePoint Databases: What you need to know (201504)
Alan Eardley
 
PPTX
Introduction to Access Services
Matthew Jimison
 
PPTX
Make Text Search "Work" for Your Apps - JavaOne 2013
javagroup2006
 
PPTX
My First SharePoint Online PowerApp
Becky Bertram
 
PPT
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Srinath Reddy
 
PPTX
SharePoint Search - SPSNYC 2014
Avtex
 
PPTX
SharePoint 2013 'Search': What you need to Know!
WinWire Technologies Inc
 
PDF
Take Cloud Hybrid Search to the Next Level
Jeff Fried
 
PPT
SharePoint 2010: Business Insights
J.D. Wade
 
PPTX
Understanding and Applying Cloud Hybrid Search
Jeff Fried
 
PDF
josh huspen - resume
Josh Huspen
 
DOC
Kanakaraj_Periasamy
Kanakaraj Periasamy
 
PPTX
Cloud Hybrid Search with SharePoint
Jeff Fried
 
search driven intranets
Jeff Fried
 
Fried sp techcon hybrid search deeper dive
Jeff Fried
 
Understanding and Applying Cloud Hybrid Search
Jeff Fried
 
SharePoint 2007 Presentation
Ajay Jain
 
Introduction wss-3-and-moss-2007-12324
Mogili Venkatababu
 
2013 MN IT Govt Symposium - Implement No Code Solutions with SharePoint and I...
Don Donais
 
Develop iOS and Android apps with SharePoint/Office 365
Kashif Imran
 
SharePoint Databases: What you need to know (201504)
Alan Eardley
 
Introduction to Access Services
Matthew Jimison
 
Make Text Search "Work" for Your Apps - JavaOne 2013
javagroup2006
 
My First SharePoint Online PowerApp
Becky Bertram
 
Tableau - Learning Objectives for Data, Graphs, Filters, Dashboards and Advan...
Srinath Reddy
 
SharePoint Search - SPSNYC 2014
Avtex
 
SharePoint 2013 'Search': What you need to Know!
WinWire Technologies Inc
 
Take Cloud Hybrid Search to the Next Level
Jeff Fried
 
SharePoint 2010: Business Insights
J.D. Wade
 
Understanding and Applying Cloud Hybrid Search
Jeff Fried
 
josh huspen - resume
Josh Huspen
 
Kanakaraj_Periasamy
Kanakaraj Periasamy
 
Cloud Hybrid Search with SharePoint
Jeff Fried
 

Similar to From Legacy Web Application To SharePoint - a case study (20)

PDF
Windows Share Point Services V3 Presentation
ADRose
 
PPTX
Upgrade/Migration to SharePoint 2013 - How to get there (SPS SV)
barryboudreau
 
PDF
Introduction to share point 2010 development
Eric Shupps
 
PPTX
Share point techfest 2011 user driven data sources
Marc Hoppers
 
PPTX
Reporting For Duty - Best Practices for Reporting Services With Sharepoint
John White
 
PPTX
Programming SharePoint 2010 with Visual Studio 2010
Quang Nguyễn Bá
 
PPT
SharePoint Server 2007 Overview - TechMentor 2007 with Joel Oleson
Joel Oleson
 
PPTX
MN Govt IT Symposium - SharePoint 2013 The Next Stage In Evolution
Don Donais
 
PPTX
Movin’ On Up - SP Engage Oct 2015
Jim Adcock
 
PPTX
Sharepoint 2010 composites
Kashif Akram
 
PPTX
Microsoft Ignite Recap: SharePoint & OneDrive for Business with Vlad & Drew
Drew Madelung
 
PPTX
Movin’ On Up - A #SharePoint Migration Case Study #HSPUG
Jim Adcock
 
PPTX
Boston Area SharePoint User Group BI Data Visualization
Knowledge Management Associates, LLC
 
PPTX
Movin’ on Up SPS Houston 2016
Jim Adcock
 
PPTX
Case study - Migration to office 365 from SharePoint 2010 spsclt17
Johnny Lopez
 
PPTX
Inside PerformancePoint
Dan English
 
PPT
Sharepoint developement tools(webparts+worflows) EBizSoft
Shakir Majeed Khan
 
PPTX
Solve Todays Problems with 10 New SharePoint 2010 Features
Cory Peters
 
PDF
Introduction and What is New: Microsoft SharePoint 2013
David J Rosenthal
 
PPTX
Office, share point, exchange 2013 and sql 2012 better together
Alan Marshall
 
Windows Share Point Services V3 Presentation
ADRose
 
Upgrade/Migration to SharePoint 2013 - How to get there (SPS SV)
barryboudreau
 
Introduction to share point 2010 development
Eric Shupps
 
Share point techfest 2011 user driven data sources
Marc Hoppers
 
Reporting For Duty - Best Practices for Reporting Services With Sharepoint
John White
 
Programming SharePoint 2010 with Visual Studio 2010
Quang Nguyễn Bá
 
SharePoint Server 2007 Overview - TechMentor 2007 with Joel Oleson
Joel Oleson
 
MN Govt IT Symposium - SharePoint 2013 The Next Stage In Evolution
Don Donais
 
Movin’ On Up - SP Engage Oct 2015
Jim Adcock
 
Sharepoint 2010 composites
Kashif Akram
 
Microsoft Ignite Recap: SharePoint & OneDrive for Business with Vlad & Drew
Drew Madelung
 
Movin’ On Up - A #SharePoint Migration Case Study #HSPUG
Jim Adcock
 
Boston Area SharePoint User Group BI Data Visualization
Knowledge Management Associates, LLC
 
Movin’ on Up SPS Houston 2016
Jim Adcock
 
Case study - Migration to office 365 from SharePoint 2010 spsclt17
Johnny Lopez
 
Inside PerformancePoint
Dan English
 
Sharepoint developement tools(webparts+worflows) EBizSoft
Shakir Majeed Khan
 
Solve Todays Problems with 10 New SharePoint 2010 Features
Cory Peters
 
Introduction and What is New: Microsoft SharePoint 2013
David J Rosenthal
 
Office, share point, exchange 2013 and sql 2012 better together
Alan Marshall
 
Ad

Recently uploaded (20)

PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Ad

From Legacy Web Application To SharePoint - a case study

  • 1. From Legacy Web Application to SharePoint By Elizabeth Szabo & Christine McKnight
  • 4. Business Reasons Applications are migrating to or integrating with the new Intranet. Application database needs to be retired.
  • 5. Features of the Existing Application • Publishes data and documents on the Intranet • Provides search functionality • Users collaborate on data and documents • Has light project management • Has role based access to data and editing Sounds like a normal OOB SharePoint – well … almost
  • 6. Analysis • Functionality is aligned with SharePoint • Data is relational, but most lookups can be option lists. Some tables are not necessary. Data import can be done with SSIS. • Medium size legacy application with a retiring Oracle database and almost no admin interface. • Business wants more control over application without involving developers
  • 7. Possible solutions 1. Minimally update old application (postpone problem) 2. Modernize application 3. Migrate to SharePoint • All solutions need data migration • All need Application, Database and SharePoint developer resources • The first two need integration with SharePoint
  • 8. Pros Cons 1. No new interface to learn 1. Code has to be rewritten 2. Database has to migrate 3. Need to add full admin interface or still need developer support 4. Needs to integrate with SP 5. Can’t be searched from SP 6. Have to support network drive Should we rewrite the application?
  • 9. 1. Part of the new Intranet 2. Findability 3. No custom app to support 4. More control to users 5. Easy Collaboration 6. SharePoint security 1. New user interface to learn 2. SharePoint works differently 3. Data is relational 4. Implementing governance is more complex Should we migrate the application? Pros Cons
  • 11. Requirements 1. Home page and search should look and function like the existing site 2. All data should be migrated and readily available for users 3. All functionality from old site should exist: • Secured reports with aggregated data • Exporting to Word • Publication metadata for EndNote 4. Governance should be the same: project team leads can edit only, and only their own project and related data 3. Data entry should be easy
  • 12. Setup and Obstacles • SharePoint 2013 on premise • Should use the customized Intranet branding • Organization is new to SharePoint We have none of these… Farm Admin access, farm solution, Visual Studio on the server, PowerShell access, 2013 workflows, third party solutions, dedicated SharePoint admin or developer
  • 14. Solution Structure • SharePoint Team site (with publishing enabled) • Dashboard page for summary and easy data entry • Main tables become SP lists • Project (parent) • Status, Team, Publications, Funding, Deliverables, Project Documents (children)
  • 15. Solution Structure (continued) • Lookup tables mostly become option lists • Added document library for public, secured library for admins • Search result webparts for complex data display • JavaScript reporting for online • SSRS reports exports to Word
  • 16. Technical solution • Site columns and site content types used to support data integrity and search • Workflows flow data from children to parent (hidden columns) • Parent list stores latest updates from children for reporting
  • 17. Technical solution (cont) • Custom display templates for data aggregation • JSLink customized data entry and display forms • Custom action to default Dashboard page as Project view • Notification system to order new batch of security groups
  • 19. Overview • 30 tables, 0.9 Mb data + documents on network drive • Mostly lookup and join tables • List migrations: flattening the structure • User migration - Active Directory integration • Document migration • Upload folders to SharePoint (could be done with SSIS) • Adding metadata with SSIS • Adding related documents to publications with SSIS
  • 20. How do we get data from Oracle to SharePoint 2013?
  • 21. Environment 1. SQL Server Integration Services (SSIS) 2012 • On Windows Server 2012 R2 (This solution does not work on Windows 10!) • Run as developer admin account 2. Oracle 11g • Connecting with database credentials 3. SharePoint 2013 • Connecting with developer admin account • Site admin permissions • Workflows on destination lists are OFF
  • 22. Oracle Source SharePoint Destination Neither of these are ship with SSIS 2012!
  • 23. Source and destination add-ins are installed. Time to do the expensive work!
  • 24. Obstacle/Requirement Impact SharePoint uses auto-incrementing integers as unique identifiers. There is no way to modify these... even through SSIS. In order to reference SharePoint IDs, they need to first be generated, then queried, then joined to the referencing dataset. There is already test data in the lists. Each list needs to be truncated before inserting data from Oracle. This doesn't reset the seed for the SharePoint IDs. Some lists will have lookups referencing other lists. Load each list in the right order! A person's name should link to their SharePoint profile. The SharePoint profile also has an auto-incrementing ID. There is no list to query for all the SharePoint profiles. Oracle stores people by their Username. NO ERROR HANDLING! (Yes, really! We looked everywhere.) Lots of guess-and-check. Plan the Data Flow Architecture
  • 25. Plan the Data Flow Architecture Requirements for fancy stuff... • Numbers must be loaded as text (even money, so make it look like money first) • SharePoint line break syntax is ;# • Images and formatting can be added by loading data as strings of HTML
  • 26. First, Truncate and Load Top Parent List called Projects Truncate Load
  • 27. Next, Truncate and Load Child Lists in Order, Ex: Status Truncate Load
  • 28. Truncate and Load Child Lists with Name Lookups, Ex: Tasks Query Oracle for Usernames. Match to AD on Username. Now we have their full name as it appears on their SharePoint profile. Get All Names from Active Directory
  • 29. Truncate and Load Child Lists with Name Lookups, Ex: Tasks Make a temporary list called UserMap. Make a field in UserMap that is a lookup to SharePoint Profiles. Throw a list of integer keys at UserMap and see which names populate in the lookups!​ Query UserMap. Match on AD names in a spreadsheet. Now we have Username (Oracle key) and SharePoint ID.
  • 30. Truncate Truncate and Load Child Lists with Name Lookups, Ex: Tasks Load
  • 31. Continue Same Steps for All Lists in Hierarchical Order Ex: Project Documents
  • 32. Challenges • Implementing governance • Workflows too slow for SSIS • Utility workflows needed for data fix-up • Batch operations in SharePoint Used JSOM for batch operations • security group creation • triggering workflows • Production support
  • 34. Dashboard page • Provides summary information, most important facts • Gives access to all information about a project • List items can be edited directly from page (pop up forms) • New items can be added directly from page • Default project view from search result • Added as a list custom action • Custom action, filter webpart, connected webparts
  • 36. Parent-child lists data flow Project list Project Id (hidden) Short Name Core Project fields (editable) Reporting fields (non-editable) Utility Fields (hidden) One to many relationship Child lists Status Team Publications Funding Documents Data Latest status, status date Project manager, Team members Summary, Year, Author, Related Documents Summary Link to document
  • 37. Project Dashboard Structure Page Url with query string with Id Filter web part Project Summary Status Project Documents Other child lists Publications Other child lists Other child lists
  • 38. Filter webpart 4. 2. 3. 1. hidden feature called BizAppsSiteTemplates
  • 39. Replacing Word Export with SSRS Report
  • 42. =SWITCH( Fields!Project_ID.Value="35",1, Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "Idea",1, Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "Not Funded",1, Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "Complete" and DateDiff(DateInterval.Month, Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Status_Date.Value, "StatusDS") ,today) > 6,1, Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "Discontinued" and DateDiff(DateInterval.Month, Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Status_Date.Value, "StatusDS") ,today) > 3,1, Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Project_State.Value, "StatusDS") = "On Hold" and DateDiff(DateInterval.Month, Lookup(Fields!Short_Name.Value, Fields!Project.Value, Fields!Status_Date.Value, "StatusDS") ,today) > 6,1, true,0 ) Using the Lookup function as a join in a dataset filter expression!
  • 44. Grid layout search result with complex data Title Link to Dashboard Data from Team list Data from Projects list Data from Status list Grid: Header => control template, rows => item template
  • 45. Status/risk indicator images Images stored in Site Assets. The status list Risk Level column customized with JSLink to display image instead of text A workflow assigns the image to the risk level, updates project list with the HTML to display the date, status and risk.
  • 46. Security group request notification • Anyone can add a new project, but only team members can edit • Each projects have their own security group • Groups are created in advance on demand (PowerShell script) • Need to monitor Ids used • Master Id table stores the Id for the last available security group • Workflow compares new project Id and to Master and email to HelpDesk for more if needed.
  • 47. EndNote Entry Generator Technics used • Filter webpart (Url) • Connected webparts • JSOM script runs on button click
  • 49. Lessons learned • Borderline size and complexity • Data aggregation requires extra columns, workflows, form customization • Batch operations are tricky • Repeat data loading => repeat workflows (utility workflows/scripts) • User adoption • Need occasional help from System Operators • configuring managed metadata • publishing display template changes • batch creating security groups • Documenting for • end users • site administrators • system operators
  • 50. About us Elizabeth Szabo Sr. Consultant, Web Application/SharePoint Developer [email protected] https://www.linkedin.com/in/elizabethszabo/ @lizascript Christine McKnight Business Intelligence Consultant [email protected] https://www.linkedin.com/in/christinemcknight/ Recognized as one of Philadelphia Business Journal’s “Best Places to Work”, year after year. With our Award-winning team!A consulting and services firm, headquartered in Greater Philadelphia, serving emerging, mid-market & Fortune 1000 clients for over 15 years. About Anexinet

Editor's Notes

  • #10: Ask for permission from Kristi
  • #35: TODO: split slide, add screenshots