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.




Workflow Alle Elemente einer Liste, die

Unbeantwortet Dieser Beitrag hat 13 Antworten

Ohne Rang
18 Beiträge
Ledercolin erstellt 5 Feb. 2014 15:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo, 

ich bin auf Ninetex Workflow begrenzt... (das nur zur Info)

ich habe folgendes Problem. 

Ich habe 2 Listen. In der einen Liste Speicher ich alle Themen und in der 2. Liste alle Maßnahmen, die zu einem Thema getroffen wurden. 

Wenn jetzt alle Maßnahmen zu einem Thema den Status geschlossen bekommen, möchte ich auch das Thema schließen. 

Ich habe einen Workflow, der startet, wenn eine Maßnahme geschlossen wurde und legt als Variable die ID des Themas fest. Aufbauend auf diese ID möchte ich gerne alle Maßnahmen aufrufen, die dieselbe Themen ID (sind in der Maßnahmenliste mit gespeichert) haben. Der Workflow soll jedes mögliche Element prüfen, ob der Status geschlossen wurde. Wenn noch offen, bricht der Workflow ab. Wenn jedoch alle Elemente geschlossen wurden, die auch die Themen ID haben, würde ich das Thema aktualisieren und auch schließen. 

Ich hoffe soweit ist die Erklärung noch klar. 

Mein großes Problem ist, dass ich einfach nicht finde, wie ich diese Bedingung festlegen kann. Ich kann immer nur auf das gleich Element zugreifen. Aber nicht in einer Art Schleife auf alle Elemente, die eine bestimmte Bedingung haben. Hat vielleicht jemand den richtigen Hinweis? 

Vielen Dank 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Feb. 2014 15:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du kannst mit der Aktion "Query List Items" Datein aus einer beliebigen Liste abfragen. Über CAML kannst Du dabei Such- bzw. Filterkriterien festlegen. An Deiner Stelle würde ich einfach nach Elementen mit derselben ID UND Status ungleich geschlossen suchen. Wenn Du keine findest, sind alle geschlossen. Du sparst Dir damit die Schleife über die Elemente.

Zu CAML allgemein: http://blogs.evocom.de/af/archive/2010/12/03/caml-anfragen-in-sharepoint.aspx

Wenn Du damit experimentieren möchtest: http://sharepoint.stackexchange.com/questions/72164/where-can-i-download-the-u2u-caml-query-builder-for-sharepoint-2010

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
18 Beiträge
Ledercolin Als Antwort am 6 Feb. 2014 07:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen Dank! Schön, wenn man hier diese Hilfe bekommt. 

jetzt bin ich schon einige Schritte weiter. Jetzt konnte ich erstmal die Verbindung schaffen und habe verstanden, wie meine Oberfläche funktioniert.

Jetzt habe ich nur noch Probleme mit der Ausgabe. Was vielleicht auch an der Bedienung von Ninetex Worklow liegt. Aber ich beiße mich da langsam durch. 

Diese Oberfläche bietet mir zwar eine große Hilfe beim erstellen des Codes, aber gleichzeitig schränkt sie mich auch ein. 

Ich finde keine Option, dass ich die Ausgabe auf eine andere Liste beziehen kann. 

Das ist der aktuelle Stand: 

<Query>

  <Lists>

    <List ID="{DBB47A8F-8879-448F-B5A6-9977EEFB9E97}" />

  </Lists>

  <Where>

    <And>

      <Eq>

        <FieldRef Name="Meeting_x0020_Thema_x003a_ID"  />

        <Value Type="Lookup">{WorkflowVariable:Thema ID}</Value>

      </Eq>

      <Neq>

        <FieldRef Name="Status"  />

        <Value Type="Choice">Geschlossen</Value>

      </Neq>

    </And>

  </Where>

</Query>

nun nochmal meine Frage. Ohne , dass ich die Liste wechsle. Kann ich eine Nachschlageliste soweit verbinden, dass, wenn ich den Eintrag in der aktuellen Liste ändere, er auch in der Nachschlagliste geändert wird?
Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Feb. 2014 08:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tut mir leid, aber ich verstehe die Frage(n) nicht :-(

[quote user="Ledercolin"]Ich finde keine Option, dass ich die Ausgabe auf eine andere Liste beziehen kann[/quote]

Wie meinst Du das? Möchtest Du eine andere Liste abfragen? Dann gebe das an der Stelle an:
<List ID="<GUID der Liste>" />

[quote user="Ledercolin"] Ohne , dass ich die Liste wechsle. Kann ich eine Nachschlageliste soweit verbinden, dass, wenn ich den Eintrag in der aktuellen Liste ändere, er auch in der Nachschlagliste geändert wird?[/quote]

Das habe ich gar nicht verstanden. Vielleicht kannst Du es nochmal anders formulieren? Vielleicht versteht es aber auch jemand anderes?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
18 Beiträge
Ledercolin Als Antwort am 6 Feb. 2014 08:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

also... ich versuchs nochmal. sorry für meine unklaren Gedanken ;)

 

ich komme aber zur zweiten Frage: 

ich möchte, wenn alle Maßnahmen geschlossen wurden auch die Themen automatisch schließen. (jedes Thema kann eine oder mehrere Maßnahmen zugeordnet bekommen) . Die Abfrage wurde nun gemacht: wenn alle Maßnahmen mit der Themen-ID geschlossen sind, dann soll er eine andere Liste dort aktualisieren, wo die Themen-ID = die ID des Themas . 

Jetzt war meine Frage, da die Themenlist ja eine Nachschlagliste der Maßnahmenliste ist. Ob man überhaupt die Liste wechseln muss für die Ausgabe. Ob es bei SharePoint sich nicht mit Nachschlagelisten so verhält, dass wenn ich das Themenfeld in der Maßnahmeliste ändere, es auch automatisch auf die Themenlist übertragen wird. Mir fehlt da die Erfahrung. 

ich hoffe das ist klarer. Danke

Ohne Rang
18 Beiträge
Ledercolin Als Antwort am 6 Feb. 2014 08:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

aber ich merke. Ich bin neu beim Arbeiten mit CAML. Ich versuche mir das alles herzuleiten und bis jetzt klappte das auch ganz gut. 

Vielleicht kannst Du.. oder jemand anderes mir doch mal ein Bespiel dafür schreiben, wie ich die Ausgabe da rann klatsche. Ich glaube es ist nur ein Syntaxproblem. Ohne ein Beispiel komme ich nicht weiter und mache anscheinend immer dumme Fehler. Ich wäre dafür wirklich dankbar. 

 

was ich habe ist also: 

 

<Query>

  <Lists>

    <List ID="{DBB47A8F-8879-448F-B5A6-9977EEFB9E97}" />

  </Lists>

  <Where>

    <And>

      <Eq>

        <FieldRef Name="Meeting_x0020_Thema_x003a_ID"  />

        <Value Type="Lookup">{WorkflowVariable:Thema ID}</Value>

      </Eq>

      <Neq>

        <FieldRef Name="Status"  />

        <Value Type="Choice">Geschlossen</Value>

      </Neq>

    </And>

  </Where>

</Query>

 

wo genau springe ich jetzt in die neue Liste.

und was schreibe ich , wenn ich zum Beispiel das Listenfeld Status (Auswahl) bei ID=Thema ID  = Geschlossen setzen möchte. 

danke! 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Feb. 2014 08:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Abfrage sieht an sich gut aus und sollte funktionieren.

Bei den Nachschlagefeldern / Lookups mußt Du aber aufpassen. Hier hast Du zwei Möglichkeiten: entweder Du fragst den angezeigten Text ab (das machst Du jetzt) oder die dahinterstehende ID. Der Name Deiner Variablen "ThemaID" läßt vermuten, daß Du eher an der ID interessiert bist. Der relevante Teil der Abfrage muß dann so aussehen:

<FieldRef Name="..." LookupId="True" />
<Value Type="Integer">...</Value>

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
18 Beiträge
Ledercolin Als Antwort am 6 Feb. 2014 13:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

ich habe wohl immernoch ein Problem mit der "Logik" 

 

also ich hab das jetzt: Ich habe die Bedinungen gestellt. Aber ich kann diese Bedinungen nicht verarbeiten. Ich schicke mal eine Screenshot mit. Ich glaube es hängt mit meinem Unverständnis für die Oberflüche von Ninetex zusammen. 

Oder anders gefragt: Was muss ich unter Feld eingeben.... ? 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Feb. 2014 13:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Ledercolin"]Was muss ich unter Feld eingeben.... ?[/quote]

Gar nichts. Das dient nur dazu, dynamische Elemente in die CAML-Query einzufügen. Es ist nur ein Hilfsmittel im Designer und für den Ablauf des Workflows irrelevant.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
18 Beiträge
Ledercolin Als Antwort am 6 Feb. 2014 14:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

dann bekomme ich: Die Ausgabe wurde nicht konfiguriert. 

 

Ohne Rang
18 Beiträge
Ledercolin Als Antwort am 6 Feb. 2014 14:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

mein Problem ist einfach, dass ich im Moment keine Ahnung habe, wie man eine Ausgabe konfiguriert. Wahrscheinlich ist es nur etwas Code, den ich noch anhängen muss. Aber soviel ich auch Beispiele suche und anpasse. Er schluckt sie nicht. Mir würde mal ein auf dieses Problem zugeschnittenes Beispiel genügen. Ich muss mehrmals Daten aus einer Liste nach bestimmten Kriterien ziehen und kriege das bestimmt dann hin. 

Aber ohne ein Beispiel am Anfang,.. scheine ich nicht weiterzukommen. 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Feb. 2014 15:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tut mir leid, ich habe das offenbar zu lange nicht mehr gemacht. Hab's aber jetzt ausprobiert.

Über das Field und den Add-Button fügst Du der Abfrage Felder hinzu, die sie zurückliefert. Beim <FieldRef Name="Title" /> mußt Du immer den internen Spaltennamen verwenden, z.B. Title. Wenn Du dann auf Add klickst, erscheint darunter ein DropDown, über das Du eine Variable angeben kannst, in die dann der Feldwert aus der Abfrage geschrieben wird. Wenn Deine Abfrage mehrere Datensätze liefert, mußt Du eine Collection-Variable nehmen. Über den Button oben kannst Du Variablen definieren. Diese Variablen kannst Du dann auch in den folgenden Workflowaktionen weiterverwenden und so in Abhängigkeit der Abfrage den Workflow steuern.

Ich hoffe, das hilft Dir jetzt erstmal weiter. Für noch ausführlichere Erklärungen fehlt mir leider die Zeit. Viel Erfolg!

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
18 Beiträge
Ledercolin Als Antwort am 6 Feb. 2014 16:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

wirklich keine Entschuldigung nötig.. .bin Dir sehr, sehr dankbar. 

so ähnlich hatte ich es verstanden. Aber warum bekomme ich hier kein Ergebnis: Ausgabe ist hier eine Variable + die ist danach leer.  Irgendwo hier muss mein Denkfehler sitzen.. hoffe ich. 

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Feb. 2014 16:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Gibt es auf der Liste ein Feld mit InternalName "Test"? Und beacte meine Ausführungen zum Abfragen von Nachschlagefeldern (einige Posts weiter oben). Du kannst das auch immer mit dem Button "Jetzt ausführen" testen - das geht schneller.

Viele Grüße
Andi
af @ evocom de
Blog