SharePoint 2013 - Import do Visual Studio

Požadavek

Potřebuji dostat nově založené fieldy, contenty typy a listy do wsp balíčku.

Řešení

Lze to provést pomocí Visual Studia, kde si založím projekt typu "SharePoint 2013 - Import Solution Package" a naimportuji vybrané položky.

Postup

1) Uložit web jako šablonu. Postup je zde

Problémy, které se mi vyskytly
  • Chybí odkaz "Save Site as Template"
    Řešení je zde
  • Při vytváření šablony nastal problém se seznamem "NintexWorkflowHistory" a tvorba skončila chybou.
    Problém býl způsoben počtem položek v seznamu.
    Řešením bylo snížení (smazáni) počtu položek a opětovné spustěná akce

2) Šablonu mám vyexportovanou a nyní potřebuji provést import do Visual Studia. Postup, jak to udělat, je zde.

Odkazy

SharePoint 2013 - chyba při nasazování

Problém

Ve Visual Studiu se při deploy projektu do SharePointu zobrazí následující chyba.

Error occurred in deployment step 'Recycle IIS Application Pool': The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm.

Řešení

Nastavit aktuálního uživatele jako db_owner pro 3 databáze.

  • SharePoint_Config
  • SharePoint_Admin_[GUID]
  • Content DB

Odkazy

SharePoint 2013/Online/2016 - zajímavé odkazy IV.

SharePoint 2013 - vypnutí mobilního zobrazení

Problém

Je potřeba vypnout mobilní zobrazení v prohlížečích, ale zachovat webové zobrazení.

Řešení

Akce webu >> Nastavení webu >> Funkce webu >> Deaktivovat Zobrazení v mobilním prohlížeči

Odkazy

SharePoint 2013/Online - zajímavé odkazy III.

Nástroje

Migrační nástroje

Utility pro SharePoint Online

 Vývoj

SharePoint - celá cesta k dokumentu

Problém

Potřebuji v kódu pracovat s celou cestou k dokumentu v knihovně dokumentů.

Řešení

spListItem["EncodedAbsUrl"] 

SharePoint 2013 - Features bez Scope

Problém

Na SharePointu jsem nalezl Features, které neměly žádný Scope. Nešly odstranit, jelikož k nim chyběly soubory na disku. Občas generovaly neznámé chyby.

Příklad generované chyby

Failed on try1 to load XML document at path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\Template\Features\MyProject.MyFeature\feature.xml': System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\Template\Features\MyProject.MyFeature\feature.xml'.
Failed on try2 to load XML document at path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Template\Features\MyProject.MyFeature\feature.xml': System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Template\Features\MyProject.MyFeature\feature.xml'.
 

Řešení

Našel jsem nástroj, který tyto Features identifikuje, popř. s nimi může provést i deaktivace. Jmenuje se SharePoint Feature Administration and Clean Up Tool a je volně ke stažení na CodePlex.com

Dále jsem našel článek, který popisuje jak identifikovat a smazat tyto Features pomoci Power Shellu.

Výpis samostatných features

Get-SPFeature | ? { $_.Scope -eq $null }

Odstranění samostatných features

Get-SPFeature | ? { !$_.Scope } | % { $_.Delete() }

Odkazy

SharePoint 2013 - odkazy

SharePoint 2013 - změna odkazu pro editaci ContentTypu

Problém

Potřebuji při editaci obsahu v listu editovat data ve vlastní (custom) stránce.

Řešení

Je potřeba změnit URL v Content Typu na požavanou stránku. Lze to udělat minimálně 2 způsoby (viz níže):

  • V XML definici pro Content Typ
  • programově kodem

XML definice

Lze to provést XML definici pro zaklani custom listu v souboru Schema.xml.

<ContentTypes>
  <ContentType ID="0x0100DD4C86551351479685D17668C23A9883" Name="OdeslanaDatovaZprava" Group="Moje" Description="" Inherits="TRUE" Version="0">
    <FieldRefs>
      <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Zpráva ID" Name="Title" Required="TRUE" />
        <FieldRef ID="{67bda4af-695a-4649-8e70-e0f97b556e1e}" DisplayName="Čas doručení" Required="FALSE" Name="DeliveryTime" Format="DateTime" />
        ....
        ....
    </FieldRefs>
    <XmlDocuments>
      <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
        <FormUrls xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url">
          <Display>_layouts/15/PROJEKT/dispform.aspx</Display>
          <Edit>_layouts/15/PROJEKT/editform.aspx</Edit>
          <New>_layouts/15/PROJEKT/newform.aspx</New>
        </FormUrls>
      </XmlDocument>
    </XmlDocuments>
  </ContentType>
</ContentTypes>

Programově

Lze to udělat následujícím kódem. Využití např. v konzolové aplikaci pro jednorázové nasazení.

SPWeb web = SPContext.Current.Web;
 
web.AllowUnsafeUpdates = true;
 
SPContentType ct = web.ContentTypes["Muj Your Content Type"];
 
ct.EditFormUrl = "_layouts/editform.aspx";
ct.NewFormUrl = "_layouts/newform.aspx";
ct.DisplayFormUrl = "_layouts/dispform.aspx";
 
ct.Update();

Odkazy

http://blog.qumsieh.ca/2009/05/15/how-to-change-the-default-editform-newform-and-dispform/

SharePoint 2013 - modalní okno

Při volání v javascriptové funkce openMyPage (zobrazení modálního okna) se modální okno neotevře a v javascriptu je následující chyba:

Unable to get property 'showmodaldialog' of undefined or null reference

Volaná funkce

function openMyPage(pageName, pageTitle) {
    var options = {
        url: '/_layouts/15/project.folder/' + pageName,
        title: pageTitle,
        allowMaximize: false,
        showClose: true,
        width: 600,
        height: 500,
        dialogReturnValueCallback: RefreshOnDialogClose
    };
    SP.UI.ModalDialog.showModalDialog(options);
}

Je potřeba upravit načítání SP.UI.ModalDialog.

Upravená funkce

function openMyPage(pageName, pageTitle) {
    var options = {
        url: '/_layouts/15/project.folder/' + pageName,
        title: pageTitle,
        allowMaximize: false,
        showClose: true,
        width: 600,
        height: 500,
        dialogReturnValueCallback: RefreshOnDialogClose
    };

    SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
}

Odkazy
http://sharepoint.stackexchange.com/questions/122812/unable-to-get-property-showmodaldialog-of-undefined-or-null-reference

O blogu

Tento blog je místem, kde sdílím své zkušenosti, části zdrojových kódů, odkazy apod. Zdroje jsou zaměřeny převážně na problematiku portálového řešení SharePoint a vývoj webů v prostředí Microsoft. Mým cílem není úplně obsahnout konkrétní řešení, ale pouze tu část, kterou potřebuji. Pokud se problematika obsáhlejší, jsou pod článkem odkazy na související informace.

O autorovi

Oldřich Zátopek
Zabývám se vývojem webových aplikací internet/intranet na Microsoft technologiích. Hlavní specializace je SharePoint. LinkedIn