SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Mehrstufiger Genehmigungsworkflow mit variabler Anzahl an Genehmigern

Unbeantwortet Dieser Beitrag hat 7 Antworten

Ohne Rang
1714 Beiträge
C.Kaiser erstellt 12 Okt. 2009 08:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zuzammen,

ich bin gerade dabei einen mehrstufigen Genehmigungsworkflow zu bauen, welcher dem Build-In Workflow sehr nah kommt, aber halt um gewissen funktionalit'ten und Stufen erweitert werden muss.

Nun stehe ich gerade vor zwei Problemen und hoffe mir kann jemand ein paar Anregungen geben.

Szenario:
Ich habe ein Metadatenfeld mit Genehmigern gebaut, in der alle Personen, die das Dokument genehmigen sollen hinterlegt werden. Ausserdem gibt es einen Freigeber (immer nur einer) der, sobald alle Genehmiger das Dokument genehmigt haben, das Dokument freigeben muss. Danach wird es an verschiedene Stellen kopiert und der Workflow ist abgeschlossen.

1. Frage:
Wie kann ich das Multi-Personenfeld auslesen und jeder Personen die da drin steht eine Aufgabe zuweisen?

2. Frage:
Geht das mit einem Sequentiellen Workflow? Wie verhaelt sich das mit den Correlation-Tokens, da es ja eine dynamische Anzahl an Genehmigern ist?

Bei einer Personals Genehmiger ist das kein Ding, nur sobald es mehr werden bekomme ich Kopfschmerzen.

Danke und beste Gruesse,
Christian (mit englischem Tastaturschema, welches ich nicht mehr abgestellt bekomme...)

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 Okt. 2009 08:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du hast doch bestimmt eine Maximalzahl an Genehmigern. Ich würde dann für jeden eine eigene Spalte anlegen, die auch leer bleiben darf. Das läßt sich sehr viel einfacher auslesen und Du mußt dann nur die Felder nacheinander abprüfen, ob sie einen Wert enthalten, wenn ja dann Genehmigungsprozeß, und so alle Felder nacheinander abarbeiten und zum Schluß dann die Freigabe.

[quote user="C.Kaiser"]mit englischem Tastaturschema, welches ich nicht mehr abgestellt bekomme[/quote]

Systemsteuerung -> Regions- und Sprachoptionen?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 12 Okt. 2009 08:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Vorgabe ist erstmal alle Genehmiger in einem Feld zu haben. Ich hab mir mal mal Code ergoogelt, welchen ich testen muss:
http://sharepointdevwiki.com/display/public/Setting+and+Getting+field+values+of+type+SPFieldUser,+SPFieldUrl+and+SPFieldLookup+using+extension+methods?focusedCommentId=13172927

[quote user="Andi Fandrich"]

[quote user="C.Kaiser"]mit englischem Tastaturschema, welches ich nicht mehr abgestellt bekomme[/quote]

Systemsteuerung -> Regions- und Sprachoptionen?

[/quote]

Funktioniert nicht mehr, nachdem ich gestern mit meinen virtuellen Maschinen und den Spracheinstellungen auf diesen rumgespielt habe. :(

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 Okt. 2009 09:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="C.Kaiser"]Ich hab mir mal mal Code ergoogelt[/quote]

Beachte dabei, daß Du von einem Personenfeld mit Mehrfachauswahl eine SPFieldUserValueCollection als Wert erhälst.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 12 Okt. 2009 12:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

also irgendwie stehe ich gerade auf dem Schlauch... ich versuche gerade seit 3 Stunden das AssignedTo Feld zu füllen und ich bekomme entweder einen Fehler oder eine neue Aufgabe mit leerem AssignedTo Feld...

Folgenden Code habe ich verwendet:
Feld direkt gefüllt:
createApprovaltask.TaskProperties.AssignedTo = @"xyz\administrator"

Über SPFieldUserValue:
this.approver = new SPFieldUserValue(WorkflowActivationProperties.Web, WorkflowActivationProperties.Item["Freigeber"].ToString());
WorkflowActivationProperties.Web.EnsureUser(approver.ToString()).LoginName;

Über die Workflow Properties:

createApprovaltask.TaskProperties.AssignedTo = WorkflowActivationProperties.Item["Freigeber"] as String;

createApprovaltask.TaskProperties.AssignedTo = WorkflowActivationProperties.Item["Freigeber"].ToString();

Interessant ist, dass selbst das direkte Füllen nicht klappt :(

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 Okt. 2009 13:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

AssignetTo erwartet einen string und da sollte der Loginname funktionieren. Ich würde an Deiner Stelle die Variante mit EnsureUser in ihre Bestandteile aufdröseln (zum leichteren Debuggen) und es damit versuchen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 12 Okt. 2009 13:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

jo das war auch mein ansatz, nur funktionierts ja auch nicht, wenn ich das Feld direkt betanke.

Ich glaub ich fang nochmal neu an... das Gleiche funktioniert bei nem anderen Workflow :(

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 14 Okt. 2009 08:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So... Felder kann ich jetzt auslesen und richtig befüllen. Habe das Auslesen an der falschen Stellen angefangen und dann wird ein Fehler geschmissen.

Aber nun nochmal zu meiner Ursprungsfrage:
Ist es möglich eine unbestimmte Anzahl an Aufgaben, richtet sich nach der Anzahl der User im o.g. MultiUser-Feld ("Genehmiger"), zu erstellen? Ich denke da gerade an so Sachen wie das "Correlation Token" und die ID die bei jeder Aufgabe eindeutlig sein müssen. Wie erzeuge ich sowas automatisiert? :|

Edit: Rücksprache mit Auftraggeber hat ergeben, dass man zunächst keine Beschränkung für die Genehmiger haben möchte

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de