Hallo Community,
ich habe folgende Aufgabe gestellt bekommen:
Zu einer Dokumentenbibliothek soll eine Liste erstellt werden, in die alle Stammdaten der Dokumente in der Bibliothek übernommen werden. Die Dokumente sind aber jeweils in verschiedenen Sprachen vorhanden, sodass mehrere Dokumente oft weitestgehend gleiche Stammdaten haben. Damit sich die Einträge in der Liste nicht doppeln, habe ich einen SP 2013-Workflow in SPD 2013 erstellt, der dieses Problem für mich lösen soll.
Der Workflow startet beim Hochladen oder Bearbeiten eines Dokuments in der Bibliothek. Im Workflow gibt es eine Variable "Durchlauf" und eine Variable "Probe", beide vom Typ Integer. "Durchlauf" wird zu Beginn auf den Wert 1, "Probe" auf den Wert 100000 festgelegt. Eine Schleife soll so lange laufen, bis "Durchlauf" größer 2000 ist. (2000 ist hierbei die ungefähre Anzahl der sich in der Liste befindlichen Elemente.)
In der Schleife wird zunächst geprüft, ob es das Listenelement mit der ID vom Wert wie "Durchlauf" einige Stammdaten mit dem eben hochgeladenen bzw. bearbeiteten Dokument in der Bibliothek gemein hat. Wenn dies der Fall ist, also bereits ein Eintrag für das eben hochgeladene bzw. bearbeitete Dokument in der Liste besteht, wird dieser aktualisiert und dabei um einige Daten ergänzt. Dann wird die Variable "Probe" auf den Wert von "Durchlauf" gesetzt und dieser Wert wird mit einer Anmerkung im Workflowverlauf protokolliert. Dann wird die Variable "Durchlauf" auf 2000 gesetzt. Eine Alternative besteht nicht.
Nach der Bedingung, aber noch in der Schleife wird der aktuelle Wert von "Durchlauf" mit einer Anmerkung im Workflowverlauf protokolliert und dann um 1 erhöht.
Nachdem die Schleife vollständig durchlaufen wurde, wird geprüft, ob die Variable "Probe" noch den Wert 100000 hat. Wenn ja, wird ein Element in der Liste mit den Stammdaten des eben hochgeladenen bzw. bearbeiteten Dokuments in der Bibliothek erstellt und eine entsprechende Anmerkung im Workflowverlauf protokolliert. Danach endet der Workflow.
Der SPD sagt mir, dass der Workflow keine Fehler enthält. Die Workflowverlaufsliste gibt mir zu verstehen, dass die Schleife 2000x durchlaufen wird und danach wird wie im Workflow angegeben ein Listenelement erstellt. Soweit so gut. Wenn aber schon ein entsprechendes Element vorhanden ist, wird das in der schleifeninternen Bedingung nicht erfasst, sie wird einfach übersprungen, die Schleife bis zum Ende durchlaufen und ein neues Element erstellt.
Kann mir jemand sagen, warum diese Bedingung übergangen wird? Ich bin für jegliche Hilfe dankbar!
VG Myrcella