Sharepoint: Using CSR with activated MDS

MDS ist die „Minimale download strategie“ bei Sahrepoint. Mit CSR ist das „Client side rendering“ gemeint, mit dem man die Darstellung von Sharepoint-Seiten auf dem Client manipulieren kann.

Das eine (MDS) kommt dem anderen in die Quere! Hier gibts die Lösung:

https://blogs.msdn.microsoft.com/sridhara/2013/02/08/register-csr-override-on-mds-enabled-sharepoint-2013-site/

Aber ACHTUNG!!! Ein sehr wichtiger Hinweis findet sich in den Kommentaren darunter (User „armband“):

RegisterModuleInit expects a server relative URL and the url token ‚~sitecollection‘ doesn’t work, so if your CSRFieldType.js file is hosted in the ‚/sites/sitecol1‘ site collection master page gallery, the RegisterModuleInit call is:
RegisterModuleInit(„/sites/sitecol1/_catalogs/masterpage/CSRFieldType.js“, RegisterFavoriteColor);

 

Certificates: Create a certificate with the active directory CA/PKI

Wir hatten den Fall, dass wir für eine Sharepoint-Anwendung ein Wildcard-Certificate benötigten. Und zwar für nur intern genutzte Domäne die wir nicht besitzen. Im Grunde ist das nicht schwer. Wer allerdings noch nie die AD-interne Zertifizierungsdienste dazu genutzt hat braucht eine Anleitung dazu. Hier ist sie 😉

https://www.petenetlive.com/KB/Article/0001128

Kleiner Tipp: Falls beim Schritt „Zertifikat- oder Erneuerungsanforderung einreichen“ die Vorlage „Webserver“ nicht findet liegt das daran, dass ihr den IE mit Admin-Rechten starten solltet.

24.8.2018 Update:
Für selbst erstellte Zertifikate müsst ihr (damit diese auch bei Verwendung des Google Chrome Browsers korrekt funktionieren) folgendes beachten:
Der „Common Name“ (CN) und der „Alternative Subject Name“ (DNS) MÜSSEN übereinstimmen!!!
Details dazu findet ihr hier:
http://www.expta.com/2017/06/fix-for-certificate-error-in-chrome.html
https://www.heise.de/security/artikel/Chrome-blockt-Zertifikate-mit-Common-Name-3717594.html

 

Kleine Randnotiz:
Falls Ihr beim Erstellen der Zertifkatsanforderung die Fehlermeldung erhalten „Fehler bei der Analyse der Anforderung. Der angeforderte Antragstellername ist ungültig oder zu lang“ dann gibt es eine einfache Lösung:
Bei mir war der Grund, dass die Daten für den Eintrag „Lang“ mit „Austria“ zu lang war! Als ich das auf „AT“ geändert hatte war alles wieder OK 😉
Die Lösung fand ich hier im ersten User-Kommentar:
https://mxrnz.wordpress.com/2016/08/18/internal-ca-the-request-subject-name-is-invalid-or-too-long/

 

Javascript: mark.js – JavaScript keyword highlighter

Ich hatte die Anforderung auf einer Sharepoint-Seite eine einfache Suche einzubauen. Nichts großartiges: Nur eine Möglichkeit auf einer einzelnen Seite nach Vorkommen von bestimmten Buchstabenkombinationen zu suchen. Nach kurzem googeln fand ich mark.js. Das ist ein kleines aber feines jQuery-Plugin, mit dem man die Fundstellen von Such-Texten hervorheben kann.Das ist einfach einzubauen und die Hervorhebung kann auch einfach via CSS konfiguriert werden!

Sourcen:

 

Sharepoint: Get the list GUID within workflow

Wie gelangt man in einem Workflow im Sharepoint-Designer zur GUID der aktuellen Liste oder Bibliothek?

  1. Use the „Extract substring from End of String“ Action to copy 108 characters from the end of the Workflow Context: Workflow Status URL (Output to Variable:WorkflowStatusURLWithListGUID)
  2. Use the „Extract substring from Start of String“ Action to copy 44 characters from start of the WorkflowStatusURLWithListGUID (Output to Variable:ListGUID)
  3. You can now use the Workflow Variable ListGUID within your custom actions or to construct dynamic strings where Current List GUID is required

Wozu könnte man das brauchen: Wenn man z.B. in einer Email für ein neues Element direkt auf der Genehmigungsformular verlinken möchte 😉

Source: http://ragavj.blogspot.co.at/2015/12/how-to-get-current-list-guid-within.html

Sharepoint: Set page to fullscreen mode using CSR

Hier ein kleines Schnipsel wie ich in einem meiner Projekte eine Page in den Full-Screen-Modus schalte. Die Source im WWW habe ich mir damals leider nicht notiert. ICh abe das damals verwendet um die Bedienung der Page auf einem Tablet zu erleichtern. Für den User wurde eine Hinweisemeldung eingeblendet, die nach 10 Sekunden wieder verschwand:

window.onload = function() {
    var width = $(window).width();
    console.log("width: " + width);

    if (width < 1000)
    {
        var addText = '<div id="fullScreenModeHint" style="color: red;">Da die Breite des Fensters weniger als 1000 Pixel (' + width + 'px) darstellt, wurde die Website in den "Vollbildmodus" geschalten! Um diesen zu verlassen klicken Sie bitte das entsprechende Icon oben rechts!<br><br><b>Diese Nachricht wird in 10 Sekunden ausgeblendet!!</b><br><br></div>';
        $("#WebPartWPQ3").html(addText + $("#WebPartWPQ3").html());
        //console.log("window onload - set full screen mode");
        SetFullScreenMode(true);        
        
        timeoutID = window.setTimeout(removeFullScreenModeHint, 10000);
    }
};

function removeFullScreenModeHint() {
    $("#fullScreenModeHint").html("");
}

 

Sharepoint: Restore a host name site collection

Da einige Anleitungen im Internet nicht funktioniert haben hier das Script, das bei mir funktioniert hat:

Restore-SPSite http://hnsc.domain.tld 
  -DatabaseServer SQLALIAS -DatabaseName WSS_Content 
  -Path "\\path\to\backup\sitecollection_export.file" 
  -HostHeaderWebApplication http://hnsc.domain.tld 
  -Force

Das Backup wurde übrigens erstellt aus der CA von Sharepoint 2016. Zuerst habe ich ein Backup der ContentDB wiederhergestellt und dann in der CA unter „Backup und Restore“ den Assistenten „Recover data from a unattached content database“ bemüht.

Sharepoint: How to move/copy a workflow between sites/sitecollections

Wenn die Variante „Export as Visio“ und „Import from Visio“ nicht funktioniert gibt es einen einfachen Cheat:

  • Im SPD den alten Workflow als Visio exportieren (z.B. „old“ oder „source“ an den Namen anhängen)
  • Im SPD für die (neue) Liste einen neuen Workflow erstellen, veröffentlichen und diesen ebenfalls als Visio exportieren (z.B. „new“ order „destination“ an den Namen anhängen)
  • beide exportierte Files von *.vwi zu *.vwi.zip umbenennen
  • aus dem Zip der „new“ (bzw. „destination“) Version die Datei „workflow.xoml.wfconfig.xml“ in das Zip der „old“ (bzw. „source“) Version kopieren!
    Achtung: Von „new“ nach „old“!! Nicht umgekehrt!!
  • die *.vwi.zip Dateien wieder zurückbenennen nach *.vwi
  • Im SPD in der Workflow Ansicht den Workflow markieren (nur markieren! nicht öffnen) und dann mit „Import as Visio“ die geänderte „old“ (bzw. „source“) Version erneut importieren

Fertig.

Quelle:

Bei mir in dieser Situation nicht funktionierende Quelle:

 

 

Sharepoint: Using host-named-site-collections

Alle Infos rund um Host-named-site-collections in einem Blog-Beitrag!

What Every SharePoint Admin Needs to Know About Host Named Site Collections

In aller Kürze:  Soweit ich das verstanden habe kann man HNSC jederzeit und überall verwenden. Die ersten Limits in das man läuft sind in Zusammenhang mit der Suche.

Maximum 50 content sources per search service application.
Maximum 100 start addresses per content source.

Alle anderen Limits sind so weit „oben“ angesiedelt, dass man dort als „normaler“ Sharepoint-User oder -Admin sowieso nicht hinkommt. Sollte man an diese Grenzen stoßen, ist man schon soweit Profi, dass man diese Grenzen sowieso kennt 😉

Ein anderes Limit, an das man „recht bald“ stoßen kann ist dieses hier:

Managed path for host-named site collections: 20 per Farm
Managed path for path-based site collections: 20 per web application

Das sollte man irgendwo im Hinterkopf haben 😉

Quelle: https://technet.microsoft.com/en-us/library/cc262787(v=office.16).aspx