Highs, lows & random rants onSharePoint 2013IMPLEMENTING A GOVERNANCE AND QUALITY MANAGEMENT INSHAREPOINT 2013NORWEGIAN SH...
Brought to you by
Mikael@MIKAELSVENSONTECHMIKAEL.BLOGSPOT.COM
Harald@CMDRTCHORTWWW.FIANBAKKEN.COM
Processes and DiagramsAKA THE IMPORT
File share, I loveth thee!• Data stored in external system• Exported as static HTML files to remote server, along with Dia...
Publishing PageLibraryDocumentLibrarySPSiteGIMSFrontendPages GIMSDocsIntegration Architecture LegendTimer JobSharePoint 20...
Scrape, scrape, baby• Processes and parses a set of files• Generic processing and parsing• Reading <META> template• Determ...
Object model cat walk• POCO’s• Puzzle Framework• SharePointations• Annotations• Auto-generate stuff
Workflows & WorkflowManagerAKA THE DONKEY
Where is it?Sites based on a blank template does not work out of the box – Won’t let youcreate 2013 based workflows.Enable...
Why don’t you love me?At random times, workflows are getting cancelledDetails: System.ApplicationException: HTTP 401…• Use...
You can’t handle the truth!Workflow is suspendedDetails: An unhandled exception occurred during theexecution of the workfl...
I don’t want to be approved!• You want custom task outcomes• No matter what the user picks as a result, the default outcom...
You want an upgrade? – We’re all about SPD• Remember to hit Publish before exporting• Add a comment at the top for version...
2013 Workflow’s – Yes, we do love you!• Overall, much better design experience compared to 2010• It is v1, we know it will...
Office Web AppsAKA THE COMPANION (WAC)
• Customer: We want CHARTS!• Mikael: I’m NOT coding charts in ASP.NET!• Mikael: How about the Excel Viewer Web Part?• Cust...
Coming to a Codeplex site near you!
Click jacking anyone?• SharePoint 2013 by default prevents pages from being click-jacked/ iframed• SharePoint 2013 by defa...
Who iframedRoger Rabbit?Search previews did!<webpartpages:allowframing runat="server" />
SocialAKA THE FORGETFUL
Users want to bookmark• Feeds forgets when server runs out of memory – Veolocity Cache hooray!• ..or when Velocity cache i...
JSOM is da shiznit!• Rapid development and fun!• At least three SP .js API’s who implement following• Official API (sp.use...
SearchAKA MR KNOW IT ALL
Users want to see the world...• A «360» view• Automatically imported items (Processes)• Documents• Managed metadata• Impro...
The three leveled monster - Managed properties• Site level, Site Collection level, SSA level• Auto-generated properties• C...
Result sources• Limit search to specific content• Subset• Content types +• Easy administration from GUI• Query transforms•...
Result types and display templates• Powerful feature• Easy to get started• Remember to press the button
Search result: Separatedifferent «artifacts»
Query rules and more• The fun begins…• Many ways to reach the goal• Many errors in search along the way..• 1 query rule to...
Some quirks...• Refiner on ContentType• Application/xhtml [some newlines] MyContentType• Not user friendly• Use the builti...
…and we have more quirks…• Managed properties not fetched• Even when specified• SPContentType is not returned in display t...
Lessons learnt...• Avoid «complex» query rules• 1 query rule per «result type»• Create search schema on SSA• If possible• ...
Managed metadataAKA THE ORACLE
More than just tagging documents..Term based navigation
Custom properties on terms
Endless possibilities• Requirement:• «Our users need different forms for the Business area when submitting an item. The BA...
Example – Dynamic term driven form
Annie - The orphaned site-collection group• Removing a site collection yields a orphaned group• Not visible from GUI• Inte...
HTML, CSS, BOOTSTRAP,ScriptAKA MR PERFECT
Get the right markup, get the markup right• Twitter Bootstrap for SharePoint - http://bootstrapsharepoint.codeplex.com/• D...
Mega menu script– out with the oldSP.SOD.executeFunc(sp.core.js, SP.UI.AspMenu, function() {// Mega Menu// Kill off SPs de...
Mega menu CSS$(".pageNav").affix({ offset: { top: "270px" } });$(".pageNav ul li").click(function () {$(".pageNav li.activ...
Wrap-up• Import data from file share to publishing pages• Workflows 2013 style• Office Web Apps (WAC) for charts• Social f...
Resources• http://www.fianbakken.com/• http://nuget.org/packages/Fianbakken.SharePointations/• http://techmikael.blogspot....
Questions?
Upcoming SlideShare
Loading in …5
×

Nsc 2013 06-17 - random rants on 2013

2,873 views

Published on

Highs, lows & random rants on SharePoint 2013 - Experiences from implementing a governance and quality management in SharePoint 2013. Presented at Norwegian SharePoint Community June 17th, 2013.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,873
On SlideShare
0
From Embeds
0
Number of Embeds
1,568
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Create one global variable after the Assign task stepSet the global variable value to task outcome column explicitly.Mapped it with assigned task&apos;s TaskID variable.
  • Web Applications Companion
  • Nevnenoeomexplisitt loading a properties / strange behavior (lokalmaskin = working, server not loading properties unless explicitly specified..)
  • Users want to display all related items...
  • Nsc 2013 06-17 - random rants on 2013

    1. 1. Highs, lows & random rants onSharePoint 2013IMPLEMENTING A GOVERNANCE AND QUALITY MANAGEMENT INSHAREPOINT 2013NORWEGIAN SHAREPOINT COMMUNITY – 2013-06-17
    2. 2. Brought to you by
    3. 3. Mikael@MIKAELSVENSONTECHMIKAEL.BLOGSPOT.COM
    4. 4. Harald@CMDRTCHORTWWW.FIANBAKKEN.COM
    5. 5. Processes and DiagramsAKA THE IMPORT
    6. 6. File share, I loveth thee!• Data stored in external system• Exported as static HTML files to remote server, along with Diagrams (images)• Exposing metadata as <META>• Clickable <img> tags (image maps).• Synced (RoboCopy) to server from static html files on a file share• Imported to SharePoint and transformed• Custom import job• Publishing pages
    7. 7. Publishing PageLibraryDocumentLibrarySPSiteGIMSFrontendPages GIMSDocsIntegration Architecture LegendTimer JobSharePoint 2013Taxonomy(ManagedMetadata)QLM Generated HTML PagesQLMQualiwareImporterTimer JobTaxonomy(ManagedMetadata)DiagramLibraryFlow, or pull as we call it
    8. 8. Scrape, scrape, baby• Processes and parses a set of files• Generic processing and parsing• Reading <META> template• Determines what SPContentType the type and constructs typed objects.• Specific parsing for certain objects• E.g. Selecting a WorkflowDiagramProcessor• Uses reflection• Parses meta data values• Maps META headers to properties by convention• Specific mapping• Cleans HTML• Remove javascript• Remove onclicks, table headers++
    9. 9. Object model cat walk• POCO’s• Puzzle Framework• SharePointations• Annotations• Auto-generate stuff
    10. 10. Workflows & WorkflowManagerAKA THE DONKEY
    11. 11. Where is it?Sites based on a blank template does not work out of the box – Won’t let youcreate 2013 based workflows.Enable-SPFeature -Identity WorkflowServiceStore –Url $yourUrl
    12. 12. Why don’t you love me?At random times, workflows are getting cancelledDetails: System.ApplicationException: HTTP 401…• User Profile Synchronization has to be started• User Profile must exist for the user kicking of the workflow
    13. 13. You can’t handle the truth!Workflow is suspendedDetails: An unhandled exception occurred during theexecution of the workflow instance. Exception details:System.ArgumentNullException: Value cannot be null• Typically sending an e-mail fails as the user does not have e-mail address• User is not synched to SiteUserInfoList with e-mail address
    14. 14. I don’t want to be approved!• You want custom task outcomes• No matter what the user picks as a result, the default outcome is returned in theworkflow, meaning option one - Approve.
    15. 15. You want an upgrade? – We’re all about SPD• Remember to hit Publish before exporting• Add a comment at the top for versioning• Each export gives a new solution id, so no real version upgrade• Deactivate the old feature, activate the new feature
    16. 16. 2013 Workflow’s – Yes, we do love you!• Overall, much better design experience compared to 2010• It is v1, we know it will be killer in v3, just don’t tell the customer• Nintex anyone?
    17. 17. Office Web AppsAKA THE COMPANION (WAC)
    18. 18. • Customer: We want CHARTS!• Mikael: I’m NOT coding charts in ASP.NET!• Mikael: How about the Excel Viewer Web Part?• Customer: No, we only have Standard License.• Mikael: CRAP!• WAC: Hey, I can help • Mikael: Of course! Because WAC in read-only mode is FREE, andhttp://<ServerName>/_vti_bin/ExcelRest.aspx works just fine forany SharePoint version (nothing needs to be enabled but WAC)• Mikael: I’ll just whip up a custom web part for it!
    19. 19. Coming to a Codeplex site near you!
    20. 20. Click jacking anyone?• SharePoint 2013 by default prevents pages from being click-jacked/ iframed• SharePoint 2013 by default does not encourage you to use different domains forparts of your solution• http://intranet.contoso.com• http://collaboration.contoso.com• http://my.contoso.com• http://qms.contoso.com• http://search.contoso.com
    21. 21. Who iframedRoger Rabbit?Search previews did!<webpartpages:allowframing runat="server" />
    22. 22. SocialAKA THE FORGETFUL
    23. 23. Users want to bookmark• Feeds forgets when server runs out of memory – Veolocity Cache hooray!• ..or when Velocity cache is reset• Let’s follow the pages!• Works just fine.. except…• Our pages are on the format of E99829BB-70F3-4D72-980A-E06D01FC1C83.aspx• Feeds does not store the Title, but the Name field!• JSOM to the rescue• No default good grouping of what you have followed exceptsites/documents/people/tags
    24. 24. JSOM is da shiznit!• Rapid development and fun!• At least three SP .js API’s who implement following• Official API (sp.userprofiles.js)• Page/list wrapper (followingcommon.js)• Search wrapper (searchUI.js)• OOB SharePoint does not check follow status on item load
    25. 25. SearchAKA MR KNOW IT ALL
    26. 26. Users want to see the world...• A «360» view• Automatically imported items (Processes)• Documents• Managed metadata• Improvements (Relates to a process)• Filter on «common» domain specific terms• Business area or Region
    27. 27. The three leveled monster - Managed properties• Site level, Site Collection level, SSA level• Auto-generated properties• Crawled• Comes in «2»• E.g. ows_q_DATE_ReportedDate, ows_ReportedDate• Managed• Always text!• Don’t map to non-text columns• Avoid auto-generation/mapping• Script search setup• Neat cmdlets• *-SPEnterpriseSearchMetadataCrawledProperty , *-SPEnterpriseSearchServiceApplication
    28. 28. Result sources• Limit search to specific content• Subset• Content types +• Easy administration from GUI• Query transforms• Preview
    29. 29. Result types and display templates• Powerful feature• Easy to get started• Remember to press the button
    30. 30. Search result: Separatedifferent «artifacts»
    31. 31. Query rules and more• The fun begins…• Many ways to reach the goal• Many errors in search along the way..• 1 query rule to «rule them all»• Promoted result blocks for each rs• No good• Global result source• Distinct query rules• One promoted block in each
    32. 32. Some quirks...• Refiner on ContentType• Application/xhtml [some newlines] MyContentType• Not user friendly• Use the builtin magic Managed property• SPContentType• Displaying a «User» field• Shows the Claims identifier• |Harald Fianbakken|8238229110120ACCE19192911;i0#;fianbakkenharald.fianbakken|harald.fianbakken@fianbakken.com|• Fix by Javascript• Check mapping order• ows_Created_0x0020_by, Internal:105, Internal:3
    33. 33. …and we have more quirks…• Managed properties not fetched• Even when specified• SPContentType is not returned in display template• !retrievable• Query rules not triggered• But triggered when using the «preview».• Result sources throwing exception, when used• But working in preview
    34. 34. Lessons learnt...• Avoid «complex» query rules• 1 query rule per «result type»• Create search schema on SSA• If possible• RAM• Strange behaviors• Crashes/query processing• When in doubt; Reboot
    35. 35. Managed metadataAKA THE ORACLE
    36. 36. More than just tagging documents..Term based navigation
    37. 37. Custom properties on terms
    38. 38. Endless possibilities• Requirement:• «Our users need different forms for the Business area when submitting an item. The BA’s havedifferent fields required (and option) for when submitting an item, and different requirements whenediting the item».• Solution:• Use term store• Add some custom coding• Custom coding• Dynamic populated dropdown lists and checkbox lists for the same SPField• Add configurable options (properties) for each field• Allowing a site collection admin (or term storeadmin) to customize the form• Enforce «required» or hide fields in the different display modes.• Automatically fill out values in form based on choices• E.g. Selecting a «Improvement area» from a dropdown, sets another field by looking up the selected valuecustom property• Possible to port parts of code to delegate control.
    39. 39. Example – Dynamic term driven form
    40. 40. Annie - The orphaned site-collection group• Removing a site collection yields a orphaned group• Not visible from GUI• Interfers• Accessable through Powershell• Remove the old termstore
    41. 41. HTML, CSS, BOOTSTRAP,ScriptAKA MR PERFECT
    42. 42. Get the right markup, get the markup right• Twitter Bootstrap for SharePoint - http://bootstrapsharepoint.codeplex.com/• Designers want to do HTML5/CSS3• Customers want IE8• Do NOT under-estimate the time needed to make your design fit in IE8 withSharePoint overrides.
    43. 43. Mega menu script– out with the oldSP.SOD.executeFunc(sp.core.js, SP.UI.AspMenu, function() {// Mega Menu// Kill off SPs default menu hover scriptSP.UI.AspMenu.prototype.showSubMenu = function () { };});
    44. 44. Mega menu CSS$(".pageNav").affix({ offset: { top: "270px" } });$(".pageNav ul li").click(function () {$(".pageNav li.active").removeClass("active");$(this).addClass("active");});$(".root li.static.dynamic-children").hover(function () {var browserWidth = $("#s4-bodyContainer").width();var menuoffset = parseInt((browserWidth - 1200) / 2);browserWidth -= menuoffset * 2;$(this).find(>a).addClass(hover);$(this).find(>ul.dynamic).css({ zindex: "200", width: browserWidth + "px", paddingRight: menuoffset+ "px", paddingLeft: menuoffset + "px", left: "-" + menuoffset + "px" }).show();}, function () {$(this).find(>ul.dynamic).css("zindex", "100").hide();$(this).find(>a).removeClass(hover);});$(".root.ms-core-listMenu-root .static ul.dynamic li.dynamic ul.dynamic li.dynamic-children").hover(function () {$(this).find(">ul.dynamic").show();}, function () {$(this).find(">ul.dynamic").hide();});
    45. 45. Wrap-up• Import data from file share to publishing pages• Workflows 2013 style• Office Web Apps (WAC) for charts• Social following• Search• Managed meta data• UI customizations
    46. 46. Resources• http://www.fianbakken.com/• http://nuget.org/packages/Fianbakken.SharePointations/• http://techmikael.blogspot.com/• http://anujabhojani.blogspot.in/
    47. 47. Questions?

    ×