SharePoint Workflow – DateTime und abweichende Stunden

In einem SharePoint Workflow habe ich verschiedenste Berechnung mit Daten (Datum). Sei es, dass ich zwei Daten voneinander subtrahiere um eine Zeitspanne zu erhalten oder eine definierte Zeit zu einem Datum dazu rechne um das Fälligkeitsdatum einer Aufgabe zu bestimmen.

Dabei bin ich immer wieder auf das Selbe Problem gestoßen. Der Workflow reagierte auf meine gesetzte Daten manchmal 2h später als angegeben.

Nach langer Suche stellt sich heraus, dass das Problem darin besteht wie SharePoint Daten speichert. Tatsächlich konvertiert SharePoint Daten nach UTC….! Ich habe also Berechnungen mit Daten zweier verschiedenen Zeitzonen durchgeführt, da z.B. Benutzereingaben in meiner Umgebung in der aktuellen MEZ angegeben werden. Das Ergebnis lag somit manchmal 2h in der Vergangenheit, ein anderes mal 2h in der Zukunft.

Ich habe im SharePoint-Designer in einem 2010er Workflow noch keine möglichkeit gefunden ein Datum automatisiert in die richtige Zeitzone zu konvertieren. Lediglich ein paar Drittanbieter-Actions habe ich gesehen die das scheinbar können.

Wenn du also im Code/Workflow mit Datum arbeitest, vergesse nicht, in UTC zu konvertieren bzw. sicherzustellen, dass alle Eingaben und Vergleichsdaten in UTC vorliegen.!

In SharePoint Logs nach einer Korrelations-ID suchen

Hier ein Beispiel wie man die SharePoint Log-Dateien anhand einer bestimmten Korrelations-ID filtert und anzeigt. Nachfolgenden Text hierfür in die SharePoint-Verwaltungsshell kopieren und eine Korrelations-ID einsetzen. Das Ergebnis wird in diesem Beispiel in eine Datei „ULSlogs.txt“ geschrieben.

Get-splogevent | ?{$_.Correlation -eq "<Correlation ID>"} | select Area, Category, Level, EventID,Message | Format-List > C:\ULSlogs.txt

 

SharePoint-Designer findet keine Listen / Es wurde keine Objektbibliothek gefunden

Seit einigen Wochen kann ich mittels SharePoint-Designer nicht mehr auf Listen, Websiteobjekte, Websiteseiten meiner SharePoint-Instanz zugreifen. Auch der Export von Workflows funktioniert nicht mehr, mit der Meldung es gäbe keine Website-Objektliste in der der Export gespeichert werden kann. Das Problem bezog sich nur auf eine einzige Sub-Website. Alle anderen Websites funktionierten weiterhin tadellos. Nun habe ich hierfür eine Lösung gefunden.

In einem Post (mittlerweile offline) habe ich gelesen, dass die Seite /_vti_bin/ListData.svc nicht zugänglich ist, falls eine Liste in der Website Probleme hat. Und tatsächlich konnte ich den Service auf genau dieser einen problembehafteten Site nicht erreichen. Es scheint also eine Liste defekt zu sein. „SharePoint-Designer findet keine Listen / Es wurde keine Objektbibliothek gefunden“ weiterlesen

SharePoint Genehmigungsworkflow startet nicht

Heute stellt ich fest, dass mein Genehmigungsworkflow, wenn er mit gewissen Parametern geladen wird, nicht anläuft. Im Front-End erschien weder ein Fehler, noch hat sich der Workflow beendet. Es schien fast so, als würde er ab einem gewissen Punkt einfach nicht weiter laufen.

Ich habe dann erst einmal das Workflow-Tracing aktiviert. Hierfür werden der folgende Abschnitt in die web.config der SharePoint Instanzt eingefügt:

<system.diagnostics>
   <switches>
      <add name="System.Workflow LogToFile" value="1" />
      <add name="System.Workflow.Runtime" value="All" />
      <add name="System.Workflow.Runtime.Hosting" value="All" />
      <add name="System.Workflow.Runtime.Tracking" value="All" />
      <add name="System.Workflow.Activities" value="All" />
      <add name="System.Workflow.Activities.Rules" value="All" /> 
   </switches>
</system.diagnostics>

Darauf wird im Ordner C:\Windows\System32\inetsrv die Datei workflowtrace.log angelegt. Sollte die Log-Datei nicht automatisch angelegt werden, kann das an den Berechtigungen liegen. In diesem Fall einfach von Hand eine leere Datei mit diesem Namen anlegen. „SharePoint Genehmigungsworkflow startet nicht“ weiterlesen

A type named ’SP.Data.ListItem’ could not be resolved by the model. When a model is available, each type name must resolve to a valid type” error in SharePoint 2013.

Heute bekam ich den obigen Fehler beim Erstellen eines ListItems für eine Aufgabenliste unter Verwendung der Rest-Schnittstelle in einer SharePoint-Anwendung.

Hier muss als Parameter SP.Data.<ListName>ListItem übergeben werden, also der ListEntityTypeFullName der Liste.

Mit dem folgenden Serviceaufruf erhält man den entsprechenden Typ:

https://<site>/_api/web/lists/getbytitle(‚<Listenname>‘)?$select=ListItemEntityTypeFullName

Ergebnis:
<?xml version="1.0" encoding="utf-8"?>
<entry xml:base="http://isp01/_api/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml" m:etag="&quot;14&quot;">
	<id>http://isp01/_api/Web/Lists(guid'138e2bab-f2fb-4620-849d-e97f6c084387')</id>
	<category term="SP.List" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
	<link rel="edit" href="Web/Lists(guid'138e2bab-f2fb-4620-849d-e97f6c084387')" />
	<title />
	<updated>2018-01-23T10:43:12Z</updated>
	<author>
		<name />
	</author>
	<content type="application/xml">
		<m:properties>
			<d:ListItemEntityTypeFullName>SP.Data.GetCurrentTimeHelperListListItem</d:ListItemEntityTypeFullName>
		</m:properties>
	</content>
</entry>
Weitere Infos:

https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/complete-basic-operations-using-sharepoint-rest-endpoints

SharePoint-Systemhaus Stuttgart

SharePoint: Einige Felder fehlen in aktueller Aufgabe – Workflow mit Genehmigungsprozess

Ich verwende die Prozessaktivität „Genehmigungsaufgabe“ im SharePoint-Workflow. Nachdem kopieren des Workflows auf eine andere Farm stellte ich fest, dass einige Felder unter der aktuellen Aufgabe fehlen. So zum Beispiel „zugewiesen an“ und „Ergebnis“.

Im Inhaltstyp der Aufgabe selbst, fehlten alle geerbten Spalten der „Workflowaufgabe“.

Die Lösung: Neuinstallieren der eingebauten Felder/Feldtypen über die Verwaltungsshell

stsadm -o deactivatefeature -name Fields -url http://spsite-force
stsadm -o activatefeature -name Fields -url http://spsite-force

SharePoint-Systemhaus Stuttgart

Fehler beim Veröffentlichen eines InfoPath 2010-Formulars in SharePoint: „Die folgende URL ist nicht gültig“

Heute habe ich beim Veröffentlichen eines Formulars diesen Fehler erhalten:

Die folgende URL ist nicht gültig http://sp2016

Hinter der URL liegt die root site collection.

Die URL verwendet einen Host-Header-Namen. Die Angabe der zentralen Administrations-URL (unter Verwendung des Rechnernamens) funktionierte.

Die Lösung: Den Netzwerkadapter der virtuellen Maschine aktivieren.

Die Deaktivierung des „System Event Notification Service“ (net stop sens auf der Kommandozeile) löste das Problem. Aber dieser Dienst sollte so schnell wie möglich wieder gestartet werden!

SharePoint-Systemhaus Stuttgart

Fehler 5566 bei SharePoint Service-Aufruf durch ein InfoPath-Formular

An error occurred accessing a data source.

An entry has been added to the Windows event log of the server. 

Log ID:5566

oder

XML-Daten, die erforderlich sind, damit dieses Formular ordnungsgemäß funktioniert, wurde nicht gefunden.

Dem Windows-Ereignisprotokoll des Servers wurde ein Eintrag hinzugefügt

Protokoll-ID:5566

Lösung

Verwenden Sie den Secure Store Service in SharePoint Server, um alternative Anmeldeinformationen für die Datenverbindung zu speichern.

Secure Store Service-Authentifizierung funktioniert, indem ein Benutzername und ein Passwort in einer verschlüsselten Datenbank gespeichert werden. Wenn InfoPath Forms Services Secure Store Service-Authentifizierungen im Namen eines Benutzers anfordert, führt Secure Store Service eine individuelle Authentifizierung oder Gruppenauthentifizierung durch. Für die individuelle Authentifizierung prüft Secure Store Service, ob der angeforderte Benutzer einen Eintrag in der Secure Store Service Datenbank hat. Bei der Gruppenauthentifizierung überprüft Secure Store Service, ob der Benutzer Mitglied eines Gruppeneintrags ist. Wenn der Benutzer validiert ist, gibt Secure Store Service die entsprechenden Anmeldedaten zurück. Dann verwendet InfoPath Forms Services diese Credentials, um sich als Benutzer auszugeben. Daher sieht der Web Service, dass der Benutzer in der Secure Store Service Datenbank angegeben ist, auch wenn der angegebene Benutzer nicht der tatsächliche Benutzer ist. „Fehler 5566 bei SharePoint Service-Aufruf durch ein InfoPath-Formular“ weiterlesen

SharePoint: Erstellen einer WorkFlow-Vorlage mit Visual Studio

Seit einigen Tagen versuche ich mittels Visual Studio eine SharePoint-Vorlage zu erstellen welche ich in beliebigen Listen/Bibliotheken wiederverwenden kann. Hierfür habe ich jedoch in den entsprechenden Workflow-Wizards in Visual Studio keine Option gefunden. Meine Workflows waren stets an eine definierte Liste gebunden und waren dann auch nur bei eben dieser Verfügbar.

Laut der SharePoint-Dokumentation sollte das jedoch möglich sein:

A workflow can be written as a template so that after it is deployed, it can be reused and associated with any list or library.

Nun habe ich jedoch eine vermeintliche Lösung gefunden. Wenn während der Erstellung eines neuen Listen-Workflows keine Bezugsliste angegeben wird, die Eigenschaft also leer gelassen wird, steht dieser Workflow in SharePoint als Vorlage zur Verfügung und kann an eine beliebige Liste  gebunden werden. Über den Menüpunkt „Workflow hinzufügen“ in einer SharePoint-Liste kann dann auch eine entsprechende Aufgabenliste und Verlaufsliste zur Laufzeit gebunden werden.

SharePoint-Systemhaus Stuttgart

SharePoint: WorkFlow bricht ab (System.ArgumentException: ContentTypeId)

Nach dem Kopieren und Aktualisieren eines WorkFlows verweigerte SharePoint die Ausführung mit der folgenden Meldung:

RequestorId: 1a9862c8-3314-4e2a-a3e8-85d79f2cd7c9. Details: System.ArgumentException: ContentTypeId 
at Microsoft.Activities.Hosting.Runtime.Subroutine.SubroutineChild.Execute(CodeActivityContext context) 
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) 
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

Das Wort ContentTypeId hat mir geholfen, die Ursache des Problems zu identifizieren. In meinem neuen Workflow-Task wurde die alte Workflow-TaskList verschoben. Somit war mein Custom-ContentType in der TaskList nicht mehr vorhanden.

Es gilt also zu prüfen ob die TaskList den eigenen ContentType enthält. Falls ja, prüfen ob der WorkFlow auch die korrekte TaskList nutzt.

Weiterführende Hilfe

SharePoint-Systemhaus Stuttgart