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.




Auto-Linkgenerierung zu Kontaktdatenbank durch ID-An-/Eingabe

Geprüfte Antwort Dieser Beitrag hat 15 Antworten

Ohne Rang
46 Beiträge
AciDRaiN erstellt 4 Sept. 2009 17:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe eine Kontaktadenbank und eine Auftragsdatenbank. Wenn ich einen neuen  Auftrag anlege, habe ich in meiner Eingabemaske die Möglichkleit, die interne ID eines Kontaktes aus der Kontaktdatenbank einzugeben und bekomme dann, durch einen vorher aufgesetzten Workflow, den Link zum eingegebenen Kontakt zurück.

Funktioniert in etwa so:

SharePointDesigner geöffnet und dann als allererstes eine Variable mit dem bezeichnenden Titel "AG_Link" erstellt (in diesem Fall steht AG für Auftraggeber).

Die Startbedingungen sind "automatisch wenn neues Element erstellt" und "automatisch wenn Element geändert". Wir klicken auf Weiter.

Wir fügen eine Bedingung "Vergleiche Liste Feld" hinzu und sagen "Wenn AG_ID ist nicht leer"

Nun erstellen wir eine Aktion "Dynamische Zeichenfolge erstellen".
Im "Zeichenfolgengenerator" füge ich nun die URL zu irgendeinem x-beliebigen Kontakt hinzu. Wichtig ist hierbei, dass ich die URL nur bis zur ID kopiere. Ein Beispiel dazu:

Lautet die URL eigentlich "http://.../Lists/Kontakte/DispForm.aspx?ID=3416"
lassen wir im "Zeichenfolgengenerator" die ID, also die Zahlen am Ende, weg.
Sieht dann so aus:

http://.../Lists/Kontakte/DispForm.aspx?ID=

Wir klícken nuin einmal direkt hinter das Gleichheitszeichen und anschließend auf "Nachschlagen hinzufügen".

Die Quelle für den Nachschlagevorgang belassen wir bei "Aktuelles Element" und als Feld wählen wir "AG_ID".

Sieht dann in etwa so aus:

 http://.../Lists/Kontakte/DispForm.aspx?ID=[%Aufträge:AG_ID%]

Ich persönlich setze hinter die ganze Geschichte dann noch ein "," (Komma) inklusive Leerstelle hinter dem Komma und schreibe dann "Zum Auftraggeber".

Ich klicke auf OK und speichere das ganze in meiner vorher angefertigen Variable "AG_Link".

Jetzt definiere ich eine abschließende Aktion "Feld im aktuellen Element festlegen"
Als Feld wähle ich meine Spalte "Auftraggeber" und als Wert wähle ich die Workflowvariable.
Fertig.

Das Ergebnis:

Lege ich einen neuen Auftrag an oder haben sich die Informationen zu einem alten Auftrag geändert (bezüglich Auftraggeber, Ansprechpartner etc.), brauche ich nur eine ID einzutragen und mir wird automatisch ein direkter Link zum Kontakt in der entsprechenden Datenbank hinterlegt.

Nun meine Frage:
Es ist zwar schön, dass ich so mit einem Klick zum gewünschten Kontakt komme, allerdings lautet der Link (logischerweise) überall immer "Zum Auftraggeber".
Wäre/ist es möglich, einen weiteren Nachschlagevorgang zu definieren, der mir den Namen des Kontaktes zum Link macht? Ich hoffe ihr versteht was ich meine.

So funktioniert es momentan:

ID Eingabe Link Ziel
AG_ID 1 zum Auftraggeber Kontakt: Müller
AG_ID 2 zum Auftraggeber Kontakt: Ebert
AG_ID 3 zum Auftraggeber Kontakt: Krawutzke

Und so "hätte ich es gerne":

ID Eingabe Link Ziel
AG_ID 1 Müller Kontakt: Müller
AG_ID 2 Ebert Kontakt: Ebert
AG_ID 3 Krawutzke Kontakt: Krawutzke

Ist das möglich und wenn ja, wie sieht der Nachschlagevorgang dazu aus?

Mit bestem Gruß,

AciD

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Sept. 2009 09:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wo stehen denn die Auftraggeber? Wenn sie in einer SharePoint-Liste im selben Web sind, dann kannst Du das problemlos nachschlagen. Falls nicht, dann müßte man dazu eine eigene Workflowaktion programmieren.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
AciDRaiN Als Antwort am 8 Sept. 2009 16:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Erst mal Danke für die Antwort. Beruhigt mich schon mal sehr zu hören.
Dennoch, ich bekomme den zweiten Nachschlagevorgang im Zeichenfolgengenerator einfach nicht hin.
Ich weiß nicht was ich da verkehrt mache.

Also ist anstatt: http://.../Lists/Kontakte/DispForm.aspx?ID=[%Aufträge:AG_ID%], zum Auftraggeber

so etwas möglich: http://.../Lists/Kontakte/DispForm.aspx?ID=[%Aufträge:AG_ID%], [%Aufträge:Nachname%] ?

Ich habe da jetzt bestimmt schon mindestens eine halbe Stunde INTENSIV daran gesessen, doch entweder bekomme ich bei ID-Eingabe und speichern gar keinen Wert zurück oder er spuckt mir die nackte URL aus. Weiter komme ich nicht :-(

Greetz,

AciD

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 8 Sept. 2009 17:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sorry, aber ich kapiere nicht, was Du erreichen willst bzw. wo das Problem liegt. Kannst Du das bitte nochmal für Blödel beschreiben?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
AciDRaiN Als Antwort am 9 Sept. 2009 10:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ohje, dann hab´ ich mich zu entschuldigen. Hab´ ich nicht richtig erklärt. Und dass ICH hier der Blödel bin... ist ja eigentlich klar :-)
Nagut:

Wie man hier ganz gut erkennen kann, führe ich eine Auftragsliste, eine Kontaktdatenbank und eine Auftraggeberdatenbank.

In meiner Auftragsdatenbank (klar), lege ich neue Aufträge an.

In der Auftraggeberdatenbank befinden sich sinnigerweise die Auftraggeber und die dazugehörigen Ansprechpartner.

In der Kontaktdatenbank befinden sich Kontakte, die mit der Auftraggeberseite nichts zu tun haben. 

Und so sieht meine Eingabemaske für neue Aufträge in etwa aus:

Die Auftragsnummer wird automatisch vergeben und dementsprechend beim Neuanlegen eines Auftrages nicht angezeigt. (Ist es eigentlich möglich, trotzdem ein "leeres" Feld "Auftragsnummer" in die Maske zu integrieren? Vielleicht ein vorbelegtes Feld "Nummer wird automatisch vergeben"? Oder geht das bei Formelfeldern nicht?)

Doch widmen wir uns nun dem interessanten Teil.

Wie Eingangs schon erwähnt, habe ich in meiner Eingabemaske die Möglichkeit die internen IDs (also die IDs, die von SharePoint automatisch vergeben werden sobald man in irgendeiner Liste ein neues Element anlegt) von Kontakten aus der Kontakte_DB und der Auftraggeber_DB einzutragen.

AP_id steht hier für die ID des Ansprechpartners. Was mein Workflow bisher macht ist folgendes:

Sobald bei "AP_id" ein Wert eingetragen (oder geändert) wird, aktiviert sich der Workflow und fügt in die erste Zeile bei "Ansprechpartner" quasi die unvollständige Url mit der dann zusätzlich nachgeschlagenen ID ein.

Nun ist es ja so, dass man in der ersten Zeile die reine Url eingibt und in der zweiten Zeile kann man dann eine "Beschreibung" eingeben, die dann in der normalen Listenansicht zum Link gemacht wird.

Doch wie schon beschrieben, der Workflow schreibt mir in die "Beschreibungszeile" immer nur "Zum Ansprechpartner". Egal welche ID ich eingebe. Die Links stimmen zwar, aber es wäre doch um einiges nützlicher, wenn stattdessen gleich der Nachname des betroffenen Kontaktes zum Link gemacht wird.

Und genau daran scheitere ich. Die Urls zu den Kontakten sind ja alle gleich und unterscheiden sich nur durch ihre ID. Von daher speicher ich die Url bis zur ID im Workflow

http://.../Lists/Kontakte/DispForm.aspx?ID=

Hinter dem = definiere ich dann einen Nachschlagevorgang. Er schlägt dann im Prinzip in dem Feld "AP_id" nach und schreibt den Wert dann direkt hinter die Url und vervollständigt diese dann, um sie direkt in die erste Zeile "Ansprechpartner" zu schreiben.

http://.../Lists/Kontakte/DispForm.aspx?ID=[%Aufträge:AG_ID%]

Jetzt hat man im Zeichenfolgengenerator des SharePointDesigners noch die Möglichkeit ein Komma hinter das ganze zu setzen und eine Beschreibung einzufügen. Das sah bei mir dann so aus:

http://.../Lists/Kontakte/DispForm.aspx?ID=[%Aufträge:AG_ID%], zum Auftraggeber

Also egal welche ID nachgeschlagen wird, als "Beschreibung" oder Link steht dann immer "zum Auftraggeber".
Meine Frage ist jetzt, kann ich anstatt des Textes hinter dem Komma einen weiteren Nachschlagevorgang definieren der mir anhand der ID den Wert eines anderen Feldes (bsp. Nachname) in die Beschreibungszeile schreibt?

Hoffe jetzt war es etwas verständlicher :-)

Mit bestem Gruß,

Richard

PS: An dieser Stelle noch ein ganz großes Dankeschön für die Hilfe

Greetz,

AciD

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Sept. 2009 12:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ah, phantastisch. Ich hab's kapiert :-)

Also: wenn Du den Link zusammenstellst, schlägst Du die AG_ID nach und zwar im "Aktuellen Element". Genau mit der selben Funktionalität kannst Du aber nicht nur im "Aktuellen Element" nachschlagen, sondern auch in der Liste mit den Auftraggebern. Einfach im DropDown statt "aktuelles Element" die Auftraggeberliste auswählen, dann das Feld, das angezeigt werden soll (Nachname) und bei den unteren beiden Feldern gibst Du an, welches Element aus der Liste der Auftraggeber verwendet werden soll (hier: ID = aktuelles Element.AG_ID).

Jetzt hoffe ich nur, daß ich das halbwegs verständlich rübergebracht habe ;-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
AciDRaiN Als Antwort am 9 Sept. 2009 15:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Japp, Danke, keinerlei Verständnisprobleme.

Genauso hatte ich es mir ja auch gedacht, doch es will einfach nicht funktionieren. Und es erschließt sich mir noch nicht wirklich warum.

Also, wenn ich den zweiten Nachschlagevorgang definieren möchte sieht es bei mir so aus:

Ich klicke auf "Nachschlagen hinzufügen" und es erscheint sofort das von dir beschrieben Fenster mit der Vorauswahl "Aktuelles Element". Welches in meinem Fall ja die Auftragsliste ist.
Bei "Feld" kann ich mir da auch ganz normal die ganzen Felder aussuchen, die sich in dieser Liste befinden.
Wie Links auf dem Bild zu sehen:

AG_id, AP_id, Ansprechpartner und der Scrollbalken deutet darauf hin, dass da noch einige Felder mehr sind.

Da ich aber nicht im aktuellen Element (Auftragsliste) nachschlagen möchte sondern in der Auftraggeberdatenbank, gebe ich diese auch an.

Also gebe ich die Daten wie Links zu sehen an.
Zuerst die Quelle und das Feld in dem ich nachschlagen möchte und anschließend das Feld und den Wert zur identifikation. So weit, so gut.

Doch nun steht mir folgendes im Weg:

Sobald ich auf den "Formelbutton" (fx) klicke, um dann die AG_id anzugeben, wird mir diese einfach nicht angezeigt.

Wie im Screenshot zu sehen ist, bekomme ich nur die Standardfelder angezeigt, und nicht wie im ersten Bild noch alle Felder.

Selbst wenn ich (auch wenn mit "Aktuelles Element" immer noch die Auftragsliste gemeint sein müsste) gezielt die Auftragsliste angebe, werden mir weiterhin nur die Felder angezeigt, wie sie hier zu sehen sind.

Und da blicke ich nicht durch.

Weil ich mir nämlich auch dachte, dass der von Dir beschriebene Weg eigentlich richtig sein müsste.
(Ist er ja auch, nur in meinem Fall stimmt da was nicht).

Doch wie gesagt, er "verschluckt" scheinbar sämtliche Felder.

Und wie aus den ganzen Screenshots zu ersehen ist:

Zuerst sind sie da, und plötzlich nicht mehr.

?!?

Ich weiß nicht woran das liegt und kann es mir beim besten Willen auch nicht erklären. Ich hoffe Du (oder wer auch immer das hier liest) kannst etwas Licht ins Dunkel bringen.

Greetz,

AciD

Greetz,

AciD

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Sept. 2009 15:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das liegt dann wohl daran, daß das Feld ID (der Auftraggeber) numerisch ist und das Feld AG_ID (der Aufträge) ein Textfeld. Der Designer merkt das und läßt deshalb den Vergleich nicht zu. Du kannst versuchen das Feld AG_ID in ein numerisches Feld zu ändern (ist eh besser, weil die Benutzer ja nur Zahlen eingeben sollen) oder Du versuchst, ob Du dieses Feld mit einer vorherigen Workflowaktion in eine numerische Workflowvariable bekommst und diese benutzt Du dann zum Nachschlagen.

Jedenfalls liegt Dein Problem an der Unverträglichkeit der Datentypen.

Übrigens sehr schön, wie Du das mit den Screenshots und Erklärungen machst :-) Wenn das alle machen würden, würde sich die Qualität der Antworten sicher auch verbessern. Außerdem ergibt das so eine schöne Knowledge Base...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
AciDRaiN Als Antwort am 9 Sept. 2009 16:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das denke ich mir auch jedes mal. Umso besser die Frage gestellt und formuliert ist, umso besser fällt die Antwort aus. Ist aber auch nicht immer so einfach wenn der Wissensstand so immens unterschiedlich ist. Vieles wird von Anfängern sehr kompliziert umschrieben, da es an den nötigen Fachausdrücken und natürlich Hintergrundwissen fehlt. Da fällt es auch einem Profi nicht immer leicht zu folgen. Das fängt ja schon bei den "einfachsten" Begrifflichkeiten an.
Umgekehrt verhält es sich aber ähnlich. Man bekommt eine richtige Antwort zugeschickt, weiß mit dieser aber nichts anzufangen oder kann diese einfach nicht umsetzen, da es an (Hinter-)Grundwissen und somit auch an Verständnis mangelt.
Das mit der Knowledge Base sehe ich genauso. Vor allem ist es auch wichtig, Lösungen auf die man dann selbst gestoßen ist und für die es noch keine Antworten gab trotzdem zu veröffentlichen. Vor allem wenn man selbst die Frage gestellt hat.
Das kann eine große Hilfe für Leute sein die irgendwann mal das gleiche Problem haben. Na, Knowledge Base eben. Wir wissen, von was wir sprechen.
Ist mir ja letztes mal passiert. Naja, so viel zu dem Thema. Ich geb´ mir Mühe ;-)

Doch zurück zum eigentlichen Thema:

Ich habe jetzt die Feldtypen von Text auf Zahl verändert. Zunächst hatte ich mich erschrocken, als ich im ersten Workflowschritt die übliche Bedingung

Wenn AG_id ist nicht leer

eingeben wollte und ich die Bedingung "nicht leer" nicht mehr finden konnte. Stattdessen habe ich nun nur noch mathematische Formeln und Bedingungen wie "ist gleich", "ist ungleich", "ist größer als" etc. gefunden.
"Ist nicht leer" gibt´s nicht mehr.
Also habe ich einfach "Ag_id ist größer als 0" probiert. Wobei ich da bedenken hatte, dass in keinem dieser ID-Felder "0" vordefiniert ist. Und ob ich einfach gar keinen Wert angebe... naja. Ist ja auch egal.

Danach wollte ich wie sonst auch meine dynamische Zeichenfolge mit den schönen Nachschlagevorgängen erstellen doch ich stehe nach wie vor vor dem selben Problem.

Es werden mir im zweiten Nachschlagevorgang wirklich nur die Basisfelder angezeigt (bei sämtlichen anderen Listen übrigens auch). Selbst nach der Änderung von Text auf Zahl.

Kann da noch etwas schief gehen?

Greetz,

AciD / Richard / sucht´s euch aus

PS: Ich glaube ich werde das mit der Signatur ähnlich machen. Dann komme ich auch mit meinen Namen nicht ständig durcheinander *lach

Greetz,

AciD

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 9 Sept. 2009 17:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

So jetzt habe ich's getestet: es gibt im Workflowdesigner mehrere Arten von Variablen, z.B. Nummer und Listenfeld-ID. Mit Nummer funktioniert es tatsächlich nicht. Nur mit Listenfeld-ID, aber in diese Variable bekommt man kein Feld eines numerischen Typs (nur z.B. ID).

Workaround: lege eine Variable vom Typ Nummer an und weise ihr den Wert von AG_ID zu ("Workflowvariable festlegen"). Dann unten auf "Variablen..." klicken und den Typ der Variablen auf Listenfeld-ID ändern. Den vorherigen Schritt nicht mehr anfassen!
Jetzt kannst Du die Variable und damit die AG_ID zum Nachschlagen verwenden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
AciDRaiN Als Antwort am 9 Sept. 2009 17:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Jupp, etwas ähnliches hatte ich auch schon probiert, bin aber direkt gescheitert. Ich weiß nicht, ob ich heute noch mal dazu komme es nach deiner Anleitung auszubprobieren, aber sobald ich das gemacht habe, gebe ich bescheid.

Noch mal ein riesen Danke für die Hilfestellung und einen schönen Feierabend wünsche ich.

Mit bestem Gruß,

Richard

Nachtrag: Also wenn ich das nun richtig verstanden habe lege ich die Variable an und weise dieser die AG_id zu. Und im letzten Nachschlagevorgang nehme ich als letzten Wert als Quelle "Workflowdaten" und suche mir dann dort die erstellte Variable aus.

Bei Workflowdaten zeigt er mir aber auch wieder einfach nichts an. Ein leeres Dropdownfeld. Mehr nicht. Vielleicht habe ich in der Eile auch etwas grundlegendes übersehen. Ich teste das zu gegebener Zeit noch mal etwas genauer und vor allen Dingen konzentrierter.

Greetz,

AciD

Ohne Rang
46 Beiträge
AciDRaiN Als Antwort am 11 Sept. 2009 11:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Morgen,

habe das eben nochmal probiert und im SharePointDesigner hat es auch funktioniert. Allerdings nicht in der Liste. Anbei noch zwei Screenshots:

Wie man auf dem obigen Screenshot erkennt, habe ich einen neuen Auftrag angelegt, doch weder in der Spalte Ansprechpartner noch in der Spalte Auftraggeber wird mir der Link angezeigt. Stattdessen bricht der Workflow einfach mit einem Fehler ab (hab´ den Workflow einfach mal "Link" genannt).

Hier stehen die eingetragenen IDs.
Ich werde später noch mal versuchen den Workflow neu aufzusetzen. Vielleicht klappt´s ja dann. Wenn nicht, dann folgt evtl. noch mal eine etwas detailliertere Beschreibung meiner Schritte. Vielleicht mache ich ja etwas falsch.

Greetz,

AciD

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 Sept. 2009 11:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn Du auf den Link "Fehler" klickst, dann solltest Du mehr Informationen dazu bekommen. Ist aber leider nicht immer aussagekräftig :-(

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
AciDRaiN Als Antwort am 11 Sept. 2009 14:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sorry, die Fehlermeldung habe ich mir natürlich angesehen. Doch die war so nichtssagend, dass ich total vergessen habe diese beizufügen.

Die Fehlerberschreibung lautet schlicht und einfach: "Fehler in Link."

Deswegen meinte ich auch, dass ich den Workflow dann noch mal neu aufspielen werde. Vielleicht war es ja wirklich wieder ein Fehler meinerseits. Ich geb´ dann bescheid ;-)

Greetz,

AciD

Ohne Rang
46 Beiträge
AciDRaiN Als Antwort am 16 Sept. 2009 10:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sodelle, ich hab´ den Workflow nun 3 mal aufgesetzt mit jeweils dem selben Resultat. Er wird mit einem Fehler abgebrochen und in der Fehlerbeschreibung steht nach wie vor einfach nur "Fehler in Link.".

Ich glaube fast, ich lasse diese Funktion einfach sterben. Das will einfach nicht hinhauen. Oder fällt Dir vielleicht noch etwas ein?

Nachtrag: Der zweite Nachschlagevorgang sorgt da definitiv für "Chaos". Ohne den zweiten Nachschlagevorgang läuft´s nach wie vor :-/ Kann man wohl nichts machen

Greetz,

AciD

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Sept. 2009 10:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ne sorry, aber dann weiß ich auch nicht weiter :-(

Viele Grüße
Andi
af @ evocom de
Blog