Sharing the experience search

Search sharing-the-experience.blogspot.com
Showing posts with label SharePoint Online. Show all posts
Showing posts with label SharePoint Online. Show all posts

Friday, May 30, 2014

#SP2013 The server was unable to save the form at this time.

A user can't edit  and save properties of the document.
In my case it turned out to be a permission issue.
The document library uses a document set which in turn uses a custom content type that were defined on the site collection level.
The lib was created under some site (spweb) , the lib has unique permissions
The user doesn't have access to the site, but has access to the lib.
The user can upload and check in  the document to the document set, but can't edit and save the properties of the custom document content type (which is used in the document set).
Every time the user hits the save button he gets the client-side error -
"The server was unable to save the form at this time.Please try again."
I have traced the issue when the user attempted to create a document set item. He got an error: "Access denied".
It happens because SharePoint uses the link ~site/_layouts/15/NewDocSet.aspx that is not accessible by the user since he doesn't have access to the site.
The obvious fix in my case to give access to the site to the user.

Monday, May 19, 2014

@SPC_ORG SP2013 Search by @bniaulin

Continuous crawl:
 - only works on SP Content sources;
 - by default every 15 min;

Use continuous crawl diligently, only on the content source that they need it.

NO XSLT, use html, css, js

SP2013 SP1 has ability to turn the Optimistic overwrite for title - MetadataExtractorTitle

2 web parts for Search:
SearchResult web part - you have to have a custom display template
Content Search web part - you can re-map the properties

2 types of templates:
1. Control (a container for item display template)
2. Item Display

! Don't touch automatically created js file out from content template

Result types helps to vary item templates based on the rule (conditions)

Resources:
http://tympanus.net/codrops/


@SPC_ORG Go mobile with responsive design by @kyleschaeffer

1. Why Mobile
30% audience are on mobile already for a general content

2. What is responsive design
Future-friendly approach to handle different screen resolution.
The inventor of the term - Ethan Marcotte

3. How does it work?
HTML+CSS+JavaScript
Flexibility & Adaptation

  • Stop using fixed width, use %;
  • CSS Media query
@media screen and (max-width:800px) {} - basically, a rule when to use this CSS in {}


"Mobile first" is better since the client won't need to download extra artifacts

4. How SharePoint do it?
 this is a tricky question. It takes more effort.
We don't have full control on SP OTB html and css.

Much easier if you start with your own master page.

  • Disable "Mobile browser view"
  • Activate SP server publishing
(team site don't have master pages, you have to activate the publishing feature, and you need to create a new page for layouts)
Use only Publishing template!

When you create a mobile portal - keep only: publishing site template, custom master page and layouts

  • Create responsive templates:
    • Master pages
    • Page layouts
    • Item styles
    • Display templates (2013)
  • Create responsive content
ListView is still a problem to make it responsible
A kind of workaround: Put a div wrapper.

Resources:
http://spblueprint.codeplex.com/  - a blank blunt template for Sp2013 OTTB Responsive
http://responsivesharepoint.codeplex.com/






@SPC_ORG @DougHemminger on #SharePointApp development

No more authohosted app!
MS announced that the Office 365 Autohosted Apps Preview program will end on June 30, 2014.
So now we have 2 left: SharePoint-hosted, provider-hosted.

App model to solve security issues of full trust solutions.

When to use the App Model
 -SPOnline
 -Strong JavaScript\Client side developers

Other recommended read: 

Note:
On Anonymous access for App - How to: Create apps for SharePoint that can be used by anonymous users


Tuesday, May 13, 2014

#SPOnline: 5 things you wish you knew before the move

SharePoint Online suits my company no doubt. At the same time, I see that certain scenarios won't land well in SharePoint Online. It's a complex question "when to use the cloud". And usually, I ask money to answer it.

What I can do for free here is to share with you few discoveries while using SharePoint Online. I hope these discoveries will help you to form your view if your current on-prem environment can be moved to the cloud.

1. You can't get log from the SharePoint Online.
As of 5/13/2014 , the SPOnline PowerShell cmdlt Get-SPOTenantLogEntry "For Beta 2, the only company logs available are for Business Connectivity Services (BCS)."
No workaround here.

2. Windows PowerShell cmdlets for SharePoint Online have limited command sets.  For example, you can't Get-SPWeb the way you used to get on prem.
The Windows PowerShell Command Builder tool helps you quickly understand and use Windows PowerShell cmdlets for SharePoint Online
Workaround: use community tools such as Lapointe.SharePointOnline.PowerShell.msi

Workaround: use Site Mailbox if applicable.


Workaround: Provider-hosted SP App (example from Office App Model Samples)

5.  You can't sync docs from App web lib (the library that resides withing SP App) 
Workaround: place library in Host web, assign appropriate permissions for App to access the docs there.

P.S. I didn't cover the obvious limitations such as:
 -  no farm solutions, that means - no server-side coding, no timer jobs;
 -  others that described in SharePoint Online Service Description

Tuesday, April 29, 2014

Sync in app web not possible?

 referenced me (didn't help) to Sync button for Document Library created with custom list definition in order to resolve the issue I am having.
Here is an issue:

I need to have a library in SharePoint-hosted app that can be synced via OneDrive Sync Tool in SpOnline.
as of 4/29/2014, I can't make it happen:

The sharepoint-hosted app has a library. Once deployed (SPOnline), I see the instance. 
The sync button is disabled on the doc panel...
I have checked the  Sync button for Document Library created with custom list definition and did as prescribed, but the issue remains. 
Here what I did as the article said:
1. Checked the feature id that delivers the list and list instance:
FeatureId="7ea48d05-ba84-4553-b5ab-0d02118c86f4"

 2. Modified element.xml:

in the list template:
  • changed the type to 101;
  • added FeatureId="7ea48d05-ba84-4553-b5ab-0d02118c86f4";
  • changed DocumentTemplate to "10000".
in the list instance template:
  • changed the type to 101;
  • added FeatureId="7ea48d05-ba84-4553-b5ab-0d02118c86f4".



 After that, re-deployed to SharePoint Online:
The sync button is still disabled
If somebody knows solution, please help me out!
Thanks

P.S.
The same wsp from App deployed as a sandboxed solution on the same site collection does allow me to sync docs from the lib

P.S.S.
And here is almost official response: NO, APP WEB LIB WON'T SYNC


Monday, April 28, 2014

Why term set pop up doesn't have "Add new item"

One of the common confusions using term store in SharePoint is:
 #1. who can contribute (add new items) to the term set?
 #2. why the term set pop doesn't have "add new item"?
As in this example:


Here is the mystery solved:
for #1. Who can contribute to the term set?
In Term Store (_layouts/15/termstoremanager.aspx) you have Term set group to which you can assign access to contribute by adding a user to:
1. Group Managers (high privileged)
2. Contributors

More here : Manage permissions and roles for term sets

for #2.why the term set pop doesn't have "add new item"?
Make sure that:
1. a user has permissions to contribute (see above)
2. the term set submission policy it open
3. the managed metadata column in the list has "Allow Fill-In" - Yes


Tuesday, April 22, 2014

#SP24 : SP2013 New methodology on Branding by Khoa Quach

@niftykhoa in #SP24S007 "Branding in SharePoint 2013" demoed New way to brand the SP Sites.
Tools and libraries:

  • Visual Studio 2012/2013
  • SPD 2013
  • Web Development Editor/Tool and mapped drive to asset library in SP2013.

Optional libraries:
  • jQuery
  • Boostrap.js
  • Angular.js, Backbone.js, Ember.js
  • Knockout.js
  • CoffeScript.js


Rendering page in SP = Master page + Page Layout + page (content)

New branding methodology in SP2013:
Device channel + master page => the design for mobile
Device channel has User agent string to identity the mobile (to get agent string - http://useragentstring.com/)
After identifying the device channel, create a custom master page  and link that page to a channel

Design manager
Allows web designer do the web design in html and upload that into the design manager, which converts the html into master page
In case you need to modify markup stick either with master page or html. Preferably, modify only html to keep automotive conversion going smoothly.

Add additional elements into the markup via snippet gallery.

Utilize JSlink


Monday, April 21, 2014

#SP24 : SP Online vs On-Premise

A visual aid from #SP24 conference on SP Cloud vs OnPrem

#SP24 : SP Solutions vs Apss

A quick visual aid from one of the speaker in #SP24.
How do you choose between SP Solutions and SP Apps?

#InfoPath is dead. What's next?

InfoPath 2013 is the last release of the desktop clientwill be supported through April 2023.
InfoPath Forms Services in SharePoint Server 2013 is the last release of InfoPath Forms Services. will be supported until April 2023.
The InfoPath Forms Services technology within Office 365 will be maintained and it will function until further notice. It's been said that Office 365 users will have until at least the next major release of office (2015) , plus some

Until we have more detailed technology roadmap and guidance to share with you, we encourage you to continue using InfoPath tools




Essetially FoSL = Forms on SharePoint Lists is coming soon. it will allow you to edit SharePoint LIsts directly in your web browser (rather than opening up InfoPath) they demo it in that session

Here is a envisioned (work in progress) technical road map on replacing InfoPath:

Side notes:

Excel – FoSS – form on top of SpreadSheet

FoSL – form on SP list
Structured document (forms) – no clear vision yet
Access: multiple relational dbs on SQL Azure


Friday, April 18, 2014

#SP24 : SPOnline public site branding issues


@gusfrases presented #SP24S067 Office 365 Public Websites The Good The Bad 
the Ugly #SP24 Online conference. The ugliest part was the most attractive one.

In that part he showed the challenges and issues around branding of a SPOnline public facing site.

Here are the most prominent challenges and issues:

Mobile
No customizable device channels

Anonymous users issues
Workaround:

Sandbox solution
JSlink (and yes, you can do a multiple JSLinks ListView Web Part issues with JSLink and Display Templates – A solution?)
  • No cache

Not a real workaround for cache issue:
 CDN for jQuery
 Client -side options for caching
 Lazy load;
 Content optimization

>> Takeaway>> NO for a Search-driven application on SPOnline public anonymous sites



Site management issue

No UI for Site columns, content types, search schema and creation of the subsite
Some default site templates are not available

Workaround:
Some features are accessible through direct links, some via SPD.

User Code Service not reliable in O365
Instead of Sandbox solution, consider JSLink when possible

>>Takeaway>> Why and why not to use SPonline for public facing sites?

*Search = OOTB Search

Resources:
Blog by Gus Frases
SPOnline Public Site with search which is possible built by Gus Frases



Thursday, April 17, 2014

#SP24 : SharePoint 2015 by Bill Baer

Bill Baer opened the SP24 Online conference.
His topic was "What's next in SharePoint?"

1. SP2013 SP1
SP1 turned out to be buggy , the features that have been packed are to integrate SP On-prem more closely to Office365:
 - Redirect to OneDrive for Business; 
 - Integration with Yammer


2. SharePoint 2015 Is this the last version for on premises?
No, Bill assured that Microsoft will ship on-prem as long as there is a demand on it. 
Next version of SP2015 will introduce a deeper integration with Yammer through the new concept of "GROUPS" (yammer groups).
These groups will be visible in the Outlook and you can see discussion within the groups in the outlook as a tree from Yammer discussion. The document will have a tree view discussions attached to them in the Yammer.


3. SPOnline will have ENCRYPTION AT REST



Friday, March 28, 2014

Managed metadata: 5 things that you wish you knew before using term store management tool in SharePoint

My recent posts are more on the darker side. I see the mistakes, issues and flaws in SharePoint, as well as in working with SharePoint.
It doesn't mean that SharePoint is getting worse, it just means I am getting better). I know more, I see more.
Last couple of years, I was working on understanding how to use SharePoint right. Where SharePoint is helpful, what feature is more appropriate for the specific use case. 
Finally, I have figured out where Managed metadata can bring value. 
More on that:

I have implemented managed metadata, and have used it successfully to improve findability in the portal.
Nevertheless, working with managed metadata in the real world portal highlights some flaws that currently exist in Term Store management implementation.

1. No history, no versioning
There is no way to see changes made in the term store, nor you can't revert changes.

2.No author of the term
The term doesn't have an author field. So, there is now way to know who created or modified and when the term.

3. No usage (where value is used)
Being in the term store you can't trace where the term has been used.

4. No UI to backup\restore
What you can do is to reach out for PowerShell to export term to backup it.

5. No sync options in case of Hybrid Cloud Architecture
There is no way to maintain term store in sync between 2 farms: on-prem and SharePoint Online

These 5 things can be easily significant in the large implementation of the SharePoint. I hope that you know them before making decision. And it doesn't mean that these facts stop you, but you will be better equipped to set the expectations right.

Wednesday, March 12, 2014

Simple Concept: List View How to add a link to the column other than Title?

Question: I have a column that is not a default Title. I need to have this column rendered with a link to display form in the list view. How can I do it?
Answer:
You have several options, the old ones are described in Simple Concept: List View How to add context menu to the column?

A new versatile approach - JSLink. It works as a charm on prem , as well as on SharePoint Online.

1. Create a js file to render template for the field

var ebt = ebt || {};

// shows link to list item display form
ebt.displayLinkTemplate = function (ctx) {
    if (ctx == null)
        return '';
    var value = ctx.CurrentItem[ctx.CurrentFieldSchema.Name];
    var url = ctx.displayFormUrl + "&ID=" + ctx.CurrentItem.ID + "&ContentTypeID=" + ctx.CurrentItem.ContentTypeId;
   

    return "<a href='" + url + "'>" + value.Label + "</a>";
};

(function () {
    var context = {};
    context.Templates = {};
    context.Templates.Fields = {
        "Project": { "View": ebt.displayLinkTemplate }        
    };
    
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(context);
})();

2. Upload the js file into Asset Library and then update the view.JSLink.
I use PowerShell for SharePoint Online By Gary Lapointe

$PrjLst= Get-SPOList -Web "/" -identity "Projects List"
$PrjViews=$PrjLst.GetViews()  
$prjDefaultView = $PrjViews|Where-Object {$_.Title -eq "ProjectView"}
$prjDefaultView.JSLink="~site/SiteAssets/ebt.root.projectlistview.js"
$prjDefaultView.Update()
$PrjLst.Update()

Tuesday, March 11, 2014

Simple Concept: How to delete Drop Off library in SharePoint Online?

[Question]: In SharePoint Online I have accidentally turned the feature "Content Organizer" on.
Then I have turned it off. But Drop Off library wasn't deleted. There is no "Delete this document library" in Drop Off library settings.
The various blogs suggest to set "AllowDeletion" property to  True. 
Since it's SharePoint online, I can't use Microsoft.SharePoint.dll
How can I remove Drop Off library in SharePoint Online?

[Answer]: To keep it short: you can't. Please let me know if were able to.
The only way to manipulate with SharePoint Online objects is through CSOM, the property "AllowDeletion" is not exposed  in Client.List



At this moment, what I do is to set Drop Off library Hidden.
I use Gary Lapointe module - Lapointe.SharePointOnline.PowerShell.msi to get Microsoft.SharePoint.Client.List and set Hidden=True

 Import-Module -Name Lapointe.SharePointOnline.PowerShell 
 Connect-SPOSite -Url $siteCollectionUrl -Credential $spOnlineCredentials
 $dropofflib= Get-SPOList -Web "/" -identity $fullUrlToDropOffLibrary
 $dropofflib.Hidden=$true
 $dropofflib.Update()

Wednesday, October 9, 2013

SharePoint Online: Aha moments! How to get a log?

Welcome to the SharePoint Online bizzare world!

Do you think you can access the log ?

Here is what Microsoft says about:

as of October 2013:

The Get-SPOTenantLogEntry cmdlet cannot retrieve all SharePoint Online errors. This cmdlet retrieves a subset of errors that happen due to external systems.

For Beta 2, the only company logs available are for Business Connectivity Services (BCS).

SharePoint Online and PowerShell: How to Get-Spweb?

Finally, your SharePoint is Online! I mean, you have got your farm running in SharePoint online.

You still have some administration\development\maintenance left for SharePoint Online. And of course, the main means that you have used to have to do your job is PowerShell.

Now, tricky questions (who thought!) - how do you run Get-Spweb in SharePoint Online?

Isn't true that we have PowerShell in SharePoint online, you might wonder?
Yes, you are right (kind of), we have SharePoint Online management shell.
But, the module microsoft.online.sharepoint.powershell only includes some basic manipulation commands on the site collection level 

Check this cool visual tool for PowerSheeling in SharePoint to see what's available in SharePoint PowerShell modules.

So, how do you proceed with the task Get-Spweb in SharePoint Online?
Through SharePoint Client Side model of course!

Here are 3 ways that deal with it:
1.Gary Lapointe module - Lapointe.SharePointOnline.PowerShell.msi
Example:
Get-SPOWeb [-Detail [<SwitchParameter>]] [-Identity [<SPOWebPipeBind>]]

2. Using standard  Microsoft.SharePoint.Client dll

Example:

$loadInfo1 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
$loadInfo2 = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
$webUrl = Read-Host -Prompt "HTTPS URL for your SP Online 2013 site" 
$username = Read-Host -Prompt "Email address for logging into that site"
$password = Read-Host -Prompt "Password for $username" -AsSecureString


$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl) 
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
$web = $ctx.Web
$webs = $web.Webs
$lists = $web.Lists 

$ctx.Load($lists)
$ctx.Load($webs)
$ctx.Load($web)
$ctx.ExecuteQuery()

$lists| select -Property Title



Example:

#You need to run PowerShell in single-threaded mode (the authentication requires it).
powershell -STA
#Import the DLL.
[Reflection.Assembly]::LoadFile("{local path to the dll ClaimsAuth.dll}")
#Instantiate a new SPOContext providing your SharePoint Online site URL. (Don’t forget the https)
$ctx = new-object SPOContext("{Url of the site}")

#let's test it

$web = $ctx.Web
$lists = $web.Lists 

$ctx.Load($lists)
$ctx.Load($web)
$ctx.Load($web.Webs)
$ctx.ExecuteQuery()

$lists| Select -Property Title, ItemCount | FT -AutoSize

Now, it's finally is THE TIME, SharePoint Online Administators, to get know Client Side Object Model for SharePoint! 

SharePoint Online manual migration: Managed Metadata issues

I have just finished SharePoint Online manual migration. And this post is all about migration Term Store and the managed metadata columns.

So, you have got a term set on-prem.

How do you migrate the term set to SharePoint Online? 

In case of migration to SharePoint Online manually, the only option you left with - is Import CSV file of term set to the destination - SPOnline.

The provided PowerShell script exports the term site into CSV file on-prem in order to import it in SharePoint Online.

The pitfall of importing CSV file , you can't specify child-parent relationship between term sets.

Another issue that I have discovered that there is no way to copy over Keywords, since it's a system term set. So, in case you need them from on-prem either you should re-type them manually or (much better option) a buy a 3rd party tool for SharePoint migration.

And finally, the BIG ISSUE of manual migration of managed metadata:

Imported terms will get a different GUID than terms on-prem. That means, every list that has managed metadata  after migration should be updated manually with valid imported term.

To sum up, if you have used Taxonomy, Folksonomy extensively in your on-prem, the best approach to migrate is to use 3rd party tools for SharePoint migration