SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

Hilfe bei einem Workflow mit mehreren Bedingungen

bewertet von 0 Usern
Nicht beantwortet Dieser Beitrag hat 0 Geprüfte Antworten | 8 Antworten | 1 Follower

Ohne Rang
7 Beiträge
Sebastian84 erstellt in 27 Okt 2016 19:55

Hallo Zusammen,

ich habe ein Problem bei der Erstellung eines Listenworkflows.

Liste A ist eine Aufstellung aller Bücher mit Titel, ISBN, Verlag, Ausleihdatum etc.

Liste B ist eine Aufstellung der Bücher, die momentan verliehen wurden. Auch hier gibt es wieder ein Feld für den Titel, das Ausleihdatum und gegebenenfalls wann es wieder zurückgegeben wurde.

Der Workflow soll nun aus Liste B (ausgeliehene Bücher) das Ausleihdatum holen und es in Liste A (alle Bücher) beim Buch mit dem selben Titel hineinschreiben. Soweit sogut, das lässt sich ja über "Listenelement suchen" mithilfe einer Zuweisung der beiden Titel-Felder aus den zwei Listen bewerkstelligen. Das Problem dabei ist nun aber, das jeder Titel in Liste B mehrmals drinstehen kann. Wenn sie früher schon einmal ausgeliehen wurden. Dann ist allerdings auch ein Rückgabedatum gesetzt worden, was man hierbei als zweite Bedingung nutzen könnte.

Also: setze Ausleihdatum von Liste A auf das Ausleihdatum von Liste B, beim Listeneintrag mit dem selben Titel bei dem außerdem kein Rückgabedatum gesetzt wurde.

ListeB.Titel == ListeA.Titel && ListeB.Rückgabedatum == 01.01.0001 (war glaub ich der Standardwert für ein leeres Datumsfeld)

Ich kann aber immer nur eine Bedingung über "Listenelement suchen" setzen. Ich brauche hier aber zwei mit UND verknüpfte Bedingungen, habe aber leider keinen Schimmer wie ich das bewerkstelligen kann. Es muss doch möglich sein, einen Listeneintrag anhand von zwei Bedingungen heraus suchen zu lassen. Hat jemand eine Idee wie man das mit den Sharepoint Designer und einem Workflow realisieren kann? Eigentlich eine eher banale Aufgabe (möchte man meinen) aber ich bekomm es mit den eingeschränkten Auswahlmöglichkeiten des Designer einfach nicht hin.

Gleich noch ein anderes Problem auf das ich gestoßen bin. Wieso kann ich den Wert für eine Feld in einer anderen Liste nicht ändern? Ich habe immer nur die Möglichkeit den Wert für ein Feld aus der aktuellen Liste zu ändern. Werte aus einer anderen Liste holen geht aber Werte festlegen scheinbar nicht. Wenn ich beispielsweise mit einem Workflow für Liste B, einen Wert in Liste A ändern will.

 

Alle Antworten

Ohne Rang
7 Beiträge

Hat keiner eine Idee wie man das bewerkstelligen kann? Er schnappt sich bei der Suche des Eintrages nach dem Titel immer den ersten den er findet (der leider zu einen früheren Ausleihvorgang gehört). Damit nur eine einzige Zelle in Frage kommt brauch ich mehr als eine Bedingung. Ich bin echt ratlos wie ich das machen soll...

Top-10-Beitragsschreiber
18.756 Beiträge

Du kannst der Liste eine zusätzliche berechnete Spalte geben und dort mehrere Werte zusammensetzen. Der Workflow setzt ebenfalls diese Werte zusammen und kann dann mit dieser einen Spalte filtern.

Unabhängig von diesem Workaround würde ich aber auf die zweite Liste ganz verzichten. Den Ausleihstatus kann man ja auch in einer Liste abbilden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
7 Beiträge

Danke erstmal für die Antwort.

Mit einem berechneten Feld hatte ich es auch versucht, da standen mir aber nur Felder/Spalten der aktuellen Liste zur Verfügung. Zumindest über die grafische Oberfläche. Kann ich dort auch irgendwie auf Felder einer anderen Liste zugreifen oder sie ändern? Ich wäre auch über ein Beispiel der das etwas veranschaulicht dankbar.

Müsste ja dann ungefähr in die Richtung gehen. Syntax mal außen vor gelassen.

=IF(AND(ListeB.Titel == ListeA.Titel, ListeB.Rückgabedatum == 01.01.0001), "True", "False")

Wobei sich das ja wieder nicht auf eine spezielle Zeile in der Liste bezieht. So müsste er die Abfrage/Berechnung ja für jeden Listeneintrag ausführen und prüfen ob die Bedingung stimmt.

Ich bin zwar programmiertechnisch auch nicht so unbegabt, aber von diesem Sharepoint bin ich momentan echt kein großer Fan. Ich fülle mich in meinen Möglichkeiten schon sehr eingeschränkt.

Top-10-Beitragsschreiber
18.756 Beiträge

Da hast Du glaube ich einfach zu umständlich gedacht :-)

Ich versuche es nochmal ausführlicher: Du hast einen Workflow auf Liste A. Der Workflow möchte auf ein bestimmtes Element in Liste B zugreifen, braucht aber zum Identifizieren des richtigen Elements zwei oder mehr Spalten. Standardmäßig kann ein Workflow aber zum Filtern nur eine Spalte verwenden. Deshalb legst Du jetzt in Liste B eine berechnete Spalte an und setzt dort alle notwendigen Spalten zu einer einzigen zusammen. Der Workflow auf Liste A macht dasselbe und benutzt dann diese berechnete Spalte zum Finden des richtigen Elements.

Jetzt verständlicher?

Sebastian84:
von diesem Sharepoint bin ich momentan echt kein großer Fan

Wenn Du etwas mehr Übung hast und die Möglichkeiten (und Einschränkungen) besser einschätzen kannst, wird sich das sicher ändern ;-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
7 Beiträge

Achso, ich glaube ich weiß wie du das meinst. So hab ich nur noch eine Spalte nach der ich filtern muss. In das berechnete Feld übertrage ich den Titel, falls noch kein Rückgabedatum gesetzt wurde und setze das Feld dann als Suchkriterium ein. So fällt der frühere Leiheintrag weg, weil das Feld dort ja leer bleibt. Manchmal sieht man den Wald vor lauter Bäumen nicht, danke Andi ;-)

Ohne Rang
7 Beiträge

Auch nicht so einfach wie gedacht, das Titelfeld ist vom Typ "Nachschlagen" und kann bei berechneten Feldern nicht benutzt werden. Über einen Workflow geht es (über eine berechnete Spalte wäre es mir zwar eigentlich lieber gewesen...), allerdings steht dann vor dem eigentlichen Feldinhalt die Feld-ID (vermute ich). Wie bekomme ich nur den Inhalt zurück?

Sieht dann in etwa so aus:

9;#Titel

Ich habe schon überlegt ob ich da irgendwas mit einem regulären Ausdruck machen kann, aber das muss doch auch einfacher gehen oder? Ich brauche lediglich den Titel, die Zeichen davor nicht.

Top-10-Beitragsschreiber
18.756 Beiträge

Innerhalb eines Workflows kannst Du das sehr einfach trennen. Am besten nimmst Du dafür eine Variable für die weitere Verarbeitung. Wenn Du der Variable den Nachschlagewert zuweist, kannst Du direkt im DropDown darunter auswählen, wie Du den Wert haben möchtest. Standard ist genau das beschriebene <ID>;#<Text>. Nachschlagewert gibt Dir die ID und Nachschlagetext den angezeigten Text.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
7 Beiträge

Danke, das hilft mir schonmal weiter ;-)

Seite 1 von 1 (9 Elemente) | RSS