Archive for the 'Technik' Category

01
Apr

Nintex Maintenance Best Practices

 

Wer mit komplexen Nintex Worklfows arbeitet, darf die Wartung des Systems von Anfang an nicht aus den Augen verlieren. Spätestens bei Verwendung von Schleifen muss man ein Auge auf die Nintex Content Datenbank sowie die versteckte Liste NintexWorkflowHistory werfen. Macht man dies nicht, hat man je nach Workflowaufkommen früher oder später ein Performanceproblem. Ursache dafür ist der verbaute Logging-Mechanismus, der in einem starken Datenbankwachstum resultieren kann. Diese Erfahrung muss man wohl einmal gemacht haben, man kann sie aber von Anfang an vermeiden.

Bei jedem Nintex Workflow werden folgende Einträge in der ContentDB erzeugt:

Anzahl Beschreibung
1 Zeile pro Workflow
2 Zeilen pro Action, die ausgeführt wird
1 Zeile pro TaskAction (Request Approval…)
1 Zeile für jeden Approver, der einem Task zugewiesen wird
1 Zeile für jede Delegation eines Tasks

 

Außerdem wird für jede Action ein Item in der Liste NintexWorkflowHistory erzeugt.

Als Worklfow Designer hat man zum Glück einige Werkzeuge, um dem entgegen wirken zu können. Man ist schon im Nintex Designer in der Lage, das erzeugen von Datenbankeinträgen zu verhindern. Das machen Sie wie folgt:

Dialog

In der Konfiguration einer Action gehen Sie in den Reiter Common und aktivieren die markierte Checkbox. Nach der Neuveröffentlichung des Workflows logt die Action nicht mehr in die Datenbank. Sie ist allerdings nun auch nicht mehr in dem Workflowverlauf sichtbar. Daher sollten Sie das erst durchführen nachdem Sie den Workflow nicht mehr debuggen müssen und er fehlerfrei läuft. Sie können außerdem darüber nachdenken Actions nur während konfigurierter Geschäftszeiten ausführen zu lassen. Auch das senkt die Anzahl der Logeinträge. Das können Sie in dem Reiter Action einschalten.

Bereits erzeugte Logeinträge behandeln Sie mit einem Tool namens NWAdmin, das bei der Nintex Installation mit ausgeliefert wird. Sie finden das Tool im Ordner “C:\Program Files\Nintex\Nintex Workflow 2010”

Mit diesem Tool (NWADMIN.exe) sollten Sie folgende Dinge durchführen.

1. Den Nintex Datenbestand mit der WorkflowFoundation synchronisieren / Sync Terminated Workflows

NWAdmin.exe -o SyncTerminatedWorkflows -url “http.//url” -verbose -showMissingItems –terminateDeletedItems

Sollten Dokumente ohne Beendigung des Worklfows entfernt worden sein, so werden evtl. bestehende Workflows in den Zustand cancelled versetzt.

2. Den Datenbankbestand aufräumen / Purge Workflow Data

NWAdmin.exe -o PurgeWorkflowData -url http://url -state completed  -verbose

REM States: completed/cancelled/errored/all

Mit diesem Befehl werden Logeinträge aus der Datenbank entfernt.

3. Die Liste NintexWorkflowHistory verkleinern / Purge Workflow History

NWAdmin.exe -o purgeHistoryListData -siteUrl “http:URL” -verbose -batchSize 500 -state completed

REM States: completed/cancelled/errored/all

Mit diesem Befehl werden SPListItems aus der Liste NintexWorkflowHistory abgeräumt.

Beachtet man obige Dinge, steht einem langzeitstabilem System nichts im Wege. Ab der Version 2.2 des Nintex Worklfows 2010 kann man meiner Kenntnis nach diese Wartungsarbeiten in der CA konfigurieren. Ansonsten gelten die obigen ToDos ebenfalls für den Nintex Workflow 2007.

Führen Sie diese Tasks am besten außerhalb der Produktivzeiten durch, da doch etwas Last auf der DB erzeugt wird. TaskScheduler… Wer wissen will, wie man das automatisiert sucht bitte einfach den Kontakt.

Happy Coding!

24
Jan

SharePoint und die MS Workflow Foundation oder Nintex als brauchbare Alternative zu SharePoint Designer und Visual Studio

Ein Workflow ist die technische Abbildung eines Arbeitsprozesses.

Microsoft bietet mit dem SharePoint Server eine ideale Umgebung, um die geschäftseigenen Prozesse dokumentenbasiert abzubilden und mit Hilfe der Workflow Foundation technisch zu automatisieren. Ziel ist letztendlich immer die Einbindung und Benachrichtigung von prozessinvolvierten Personen. SharePoint bringt im Standard einige vordefinierte Workflows mit sich, wie zum Beispiel einen Freigabeworkflow oder einen einfachen Feedbackworkflow.

Häufig gibt es genau diese Prozesse aber so nicht in einem Unternehmen, oder es gibt weitaus komplexere Prozesse (Posteingangsworkflow, Eingangsrechnungsverarbeitung, QM usw.), die mit den bestehenden Workflows nicht abgebildet werden können.

SharePoint Designer

Microsoft gibt dem versierten Benutzer nun ein Werkzeug namens SharePoint Designer an die Hand, mit dem etwas komplexere Workflows ohne Programmierkenntnisse erstellt werden können. Das ist sicherlich für den ein oder anderen kleinen Anwendungsfall eine gute Sache. Sobald aber ein gewisser Komplexitätsgrad des Workflows überschritten wird, stößt man entweder an technische Grenzen oder verliert völlig den Überblick. Die Abbildung eines Workflows im SharePoint Designer ist wegen der verschachtelten tabellarischen Darstellung nämlich nicht ganz optimal gelöst. Hinzu kommt, das es eine Exportmöglichkeit eines einmal erstellten Workflows erst ab der Version 2010 gibt, d. h. ein Workflow musste im 2007er Umfeld für jede relevante Liste/Bibliothek neu erstellt und angebracht werden.

Visual Studio

Komplexe Workflows gibt Microsoft in die Hände des Entwicklers, der mit dem Visual Studio die Anforderungen seines Projektleiters abbilden kann. Auf dieser Ebene kann man nun wirklich die komplexesten Dinge anstellen, man muss allerdings Programmierkenntnisse mitbringen und sich darüber im Klaren sein, das Anpassungen zur Projektlaufzeit aufwendig sind und in der Folge kostspielig werden können.

Nintex

Nintex bietet hier eine Alternative. Nintex integriert einen Designer direkt in das UserInterface des SharePoints und bringt etliche so genannte Activities mit sich, mit denen auch recht komplexe Workflows ähnlich wie in einem FlowChart erstellt werden können. Gibt es Anforderungen, die nicht im Nintex Standard erfüllt werden, so kann man recht einfach so genannte Custom Activities entwickeln und fest in die Nintex Umgebung für die weitere Verwendung in sämtlichen Workflows integrieren. Nintex bietet also eine Mischung aus einem einfachen und übersichtlichen Designer, der es gerade zur Projektlaufzeit ermöglicht, sehr schnell auf neue Anforderungen zu reagieren und die Möglichkeit mit Programmierkenntnissen und dem Visual Studio auch extrem komplexe Anforderungen, mit Entwicklungsunterstützung abbilden zu können. Das alles wiederverwendbar, ex- und importier bar, auch unter SharePoint 2007.

Da ich in meiner täglichen Arbeit als Entwickler bei ecspand Nintex nutze und die Möglichkeiten sowohl auf Seiten des Designers als auch mit dem Visual Studio ziemlich ausreize, möchte ich die Gelegenheit nutzen, hin und wieder einige Tipps und Informationen zu diesem Thema zu veröffentlichen.

Mit diesem einleitenden Beitrag möchte ich den Auftakt machen.

20
Jan

How to send a mail programmatically with c#

It is very easy to send a mail programmatically in .Net c#.

Maybe you need this, to send a mail in case of an error in an automated maintenance process.

You need two classes MailMessage and SmtpClient. You can find both in the namespace System.Net.Mail

string to,from,subject,body=string.Emtpy;

MailMessage msg=new MailMessage();

msg.To.Add(to); //recipient mail addresses (List)

msg.From=from; //sender mail address

msg.Subject=subject;

msg.Body=body;

if you have created your MailMessage you can send it via the SmtpClient:

Therefor you need further informations about your mail relay server and maybe some credentials and the port of the listener.

SmtpClient smptClient=new SmtpClient(host,port); //port Int32 (normally 25), host string

use

smtpClient.UseDefaultCredentials=true; //your user authenticates via NTLM

or

smtpClient.Credentials=new System.Net.NetworkCredentials(user,password);

Now you can send your Mail:

smtpClient.Send(msg);

I hope this helps!

22
Dec

SVN Dateien und Ordner rekursiv löschen – Batchdatei

An dieser Stelle noch kurz ein Shellaufruf  um rekursiv alle SVN-Dateien und Ordner innerhalb eines Projektes zu löschen.

Man ist öffter mal in der Situation ein in SVN eingebundenes Projekt zu kopieren oder weitergeben zu wollen, zuvor möchte man aber gerne die SVN-Dateien loswerden.

Erstellt Euch dazu am besten eine Batchdatei deleteSvn.bat in der ihr folgenden Eintrag vornehmt.

FOR /F “tokens=*” %%G IN (‘DIR /B /AD /S *.svn*’) DO RMDIR /S /Q %%G

Die Batch müsst Ihr dann nur noch innerhalb des betroffenen Ordners ausführen.

Falls es nach dem Rauskopieren nicht funktioniert, überprüft bitte die Anführungszeichen und ersetzt diese in Eurer BatchDatei.

10
Dec

Problem: ‘This solution contains resources scoped for a Web application and must be deployed to one or more Web applications’ Solution Installer Sharepoint 2007

Falls Ihr beim Deployen einer wsp-Datei in das gleiche Problem lauft, dann probiert doch bitte diesen Fix aus, den ich bereits bei Codeplex zum Besten gegeben habe.

Für mich hat es so funktioniert, eine offizielle Bestätigung eines Core-Developers habe ich bis heute allerdings nicht erhalten.

Ladet Euch dazu das komplette Project im Source down und fixed die dort beschriebene Stelle (Eintrag von kfiegenbaum). Compiled anschließend die Solution und es sollte funktionieren.

Eine Garantie kann ich dafür allerdings nicht geben:

Hier findet Ihr alles was Ihr braucht!

Der Tobias Lekman bietet dazu bereits eine gefixte .exe an.

Hoffe, das hilft Euch.

Gruß,
Kai




February 2012
M T W T F S S
« Dec    
 12345
6789101112
13141516171819
20212223242526
272829  

Badge Farm

  • Powered by Redoable 1.0