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.




Bedingung einfügen wann ein Eintrag eines Liste angezeigt wird oder nicht

Dieser Beitrag hat 9 Antworten

Ohne Rang
5 Beiträge
Anatoliy2021 erstellt 20 Jan. 2021 13:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo SharePointCommunity!

Ich bin Sharepoint Anfänger. Dies ist mein erster Post hier, sagt bescheid wenn etwas nicht ok ist oder weitere Infos benötigt werden.

Anforderung:

Eine Bedingung einfügen wann ein Eintrag einer Liste angezeigt wird oder nicht.

Erklärung:

Es gibt eine Kunden-Liste in Sharepoint, die Einträge hat (Kunden)

Diese Kunden sind entweder aktiv oder inaktiv

Dann gibt es die Listen Projekt und Zeiterfassung, die mehrere columns haben z.B. Zeiten, Startzeitpunkt, Endzeitpunkt, Jahr, Mitarbeiter, etc.

Diese Listen sind verknüpft, d.h. ausgewählte columns aus Projekt und Kunde kommen in die Zeiterfassung, damit man z.B. eine View erstellen kann mit z.B. welcher Mitarbeiter wie viele Stunden bei welchem Projekt / Kunden, etc.

Problem:

Kunden, die in der Kunden Liste momentan auf inaktiv sind, werden in der Zeiterfassung angezeigt. Das möchte ich nicht, weil es kein Sinn macht und nur die Übersichtlichkeit ruiniert. Wie gehe ich am Besten vor?

Was ich versucht habe:

Ich habe das Sharepoint in VS Code mit Hilfe der Erweiterung SPGo geöffnet. Dort wird mir aber nur angezeigt wie die Seite aussieht, nicht wie die "Logik" der Seite ist. Ich bin gerade am Suchen wie ich dort an Code komme, um evtl irgendwas mit (pseudocode)  if Kunde.status=inactive hide Kunde.

Über konstruktive Antworten oder Links zu Quellen, die ich bei meiner Recherche übersehen habe, würde ich mich sehr freuen.

Anatoliy

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 20 Jan. 2021 15:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Auch wenn das zu den most wanted Features gehört: das geht einfach nicht.

Es gäbe eine einzige Möglichkeit und das wäre, daß man bei allen inaktiven Kunden die Berechtigungen so ändert, daß die User diese Kunden gar nicht mehr sehen können. In diesem Fall können sie die auch nicht mehr auswählen. Dann kommen aber auch nur ausgewählte User an diese Kunden ran, z.B. um sie wieder aktiv zu setzen.

Zum Ändern der Berechtigungen hätte man früher einen einfachen SharePoint Designer Workflow gebaut, aber die gibt es ja nicht mehr (als 2010er Workflow). Heute müßte man das mit Flow/Power Automater bauen, aber da bin ich nicht so der Spezialist...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
5 Beiträge
Anatoliy2021 Als Antwort am 21 Jan. 2021 09:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

vielen Dank für die schnelle Antwort! 

Nur damit ich sichergehe, dass wir vom Gleichen sprechen (ich glaube ich habe mich nicht konkret genug ausgedrückt):

Die Auswahlmöglichkeiten in einem Lookup Feld sollen auf aktive Einträge bei Kunden gefiltert sein, damit die Auswahl-Liste übersichtlich bleibt.

Die Darstellung in der Liste selbst sollen jederzeit sichtbar sein, d.h. ältere Einträge von mittlerweile nicht mehr aktiven Kunden müssen natürlich weiterhin sichtbar bleiben.

Ist es dann wirklich so, dass es dazu keinen Weg gibt?

Viele Grüße,

Anatoliy

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 21 Jan. 2021 10:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich hatte Dich schon verstanden, aber Du mich auch :-)

Es gibt leider keine Möglichkeit, die angebotenen Einträge in einem Lookup zu filtern. Das geht eben nur durch Beschränken der Berechtigungen. 

Wenn Du fit in JavaScript bist, könntest Du alle Einträge aus dem DropDown im Formular entfernen, per JS die Kunden aus der Liste abfragen und dann nur die aktiven wieder einfügen. Ich weiß grade nicht mehr genau, mit welcher Version Du arbeitest. Bei 2019 bekommst Du dazu Unterstützung durch SPFx, bei älteren Version durch JSOM.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
5 Beiträge
Anatoliy2021 Als Antwort am 23 Jan. 2021 10:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

danke für die Antwort!

Wir verwenden Sharepoint Online im MS Abo. Ich gehe also davon aus, dass hier eine SPFx Unterstützung gegeben ist.

Den Weg über Javascript, wenn er denn der Einzige ist, möchte ich gerne versuchen.

Da ich in Javascript nicht vorbelastet bin, wäre es sehr nett, wenn du einen Tipp für mich für den Einstieg hättest. Eventuell gibt es genau für diese Anforderung bereits eine Umsetzung.

Vielen Dank schonmal,

Anatoliy

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Jan. 2021 12:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe da gerade auch nichts parat, aber als ich etwas für Dich suchen wollte, bin ich über eine viel einfachere Lösung gestolpert: list - How to make a filtered lookup field - SharePoint Stack Exchange

Prinzip: lege bei den Kunden eine zusätzliche berechnete Spalte an und sorge dafür, daß bei activen der Name übernommen wird und sonst nichts (s. verlinkter Artikel). Setze dann das Nachschlagefeld auf diese berechnete Spalte und alle leeren Einträge werden automatisch nicht angeboten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
5 Beiträge
Anatoliy2021 Als Antwort am 25 Jan. 2021 16:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

danke für den Hinweis! Mit dieser Lösung verknüpfe ich die neue Spalte mit dem Feld "Kunden". Wenn ein heute aktiver Kunde inaktiviert wird, ändert sich das in der Übersicht auf "unassigned", da in dem neuen berechneten Feld der Eintrag geleert wird.

Wenn es möglich wäre, dass "ID"-Feld aus der Kundentabelle mit dem Feld Kunden in der Tabelle Zeiterfassung zu verlinken, im Lookup-Feld aber die neue berechnete Spalte anzuzeigen, wäre das eine Lösung, ich habe es aber so nicht hinbekommen.

Anatoliy

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Jan. 2021 07:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du kannst in dem berechneten Feld doch auch die ID verwenden. Weil das Lookup auf das berechnete Feld geht, hast Du dann die Kunden-ID überall dort, wo es verwendet wird.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
28 Beiträge
Vincent Als Antwort am 25 Jan. 2021 14:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Anatoliy2021"]

Problem:

Kunden, die in der Kunden Liste momentan auf inaktiv sind, werden in der Zeiterfassung angezeigt. Das möchte ich nicht, weil es kein Sinn macht und nur die Übersichtlichkeit ruiniert. Wie gehe ich am Besten vor?

[/quote]

Kannst du nicht einfach in der Ansicht filtern?

Wie kommen die Listen zueinander? Hast du einen Flow, der diese Dinge tut? Dann könntest du einen Odata Filter schon bei der Abfrage der Daten einsetzen.

Ohne Rang
5 Beiträge
Anatoliy2021 Als Antwort am 25 Jan. 2021 16:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Vincent,

wir sprechen von einem Lookup-Feld in einem Formular, nicht einer View.