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.




Formular mit flexiblen Datumswerten

Unbeantwortet Dieser Beitrag hat 11 Antworten

Ohne Rang
6 Beiträge
Brainzina erstellt 29 Okt. 2015 14:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo!

Ich lege eine Projektdatenbank als Sharepointliste an. Projekte sind fast immer Veranstaltungen. Hier geht es um das Projekt datum, das immer ein ganztägiges Ereignis ist.

Jedes Projekt hat mindestens ein Datum (ein Tag oder mehrere Tage). Um das einzutragen, gibt es im Formular ein Start- und ein Enddatum. Wird das Formular abgeschickt, übernimmt ein Workflow und speichert den Termin in den Projektkalender.

Jetzt würde ich allerdings gerne die Möglichkeit haben, nicht nur einen Datumsbereich sondern mehrere solcher Bereich einzufügen. Also z.B. das Projekt "Küstlertour", das jeden Freitag und an einem Wochenende stattfindet. Hierfür würde ich gerne die Kalendereinträge "Freitag1", "Freitag2" und "Freitag3-Sonntag" einfügen. Ich stelle mir das so vor, dass man neben dem einzelnen Datumsbereich ein kleines + hat, das dann eine weitere Zeile eröffnet.

Grundsätzlich hätte ich das jetzt mit JavaScript gemacht, die zusätzlichen Zeilen sollten da ja kein Problem sein. Nur wie bekomme ich es dann in den Workflow? Dort kann ich ja nur fixe Felder als Quellen für den Eintrag in der Kalenderliste setzen.

Vielen Dank für einen Tipp!

Alle Antworten

Ohne Rang
86 Beiträge
MMAY Als Antwort am 29 Okt. 2015 15:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hm ja auf ähnliche Probleme bin ich in einem anderen Fall auch schon gestoßen.

Eventuell über Wenn bzw. If Abfragen im Workflow lösen.

Bsp: erledigen des ersten Datum eintrages im WF, dann prüfe

wenn Feld Datum2 nicht leer 

dann....

etc.

 

Sowas eventuell als Lösung?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 29 Okt. 2015 15:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du müßtest auf der Liste ausreichend Felder anlegen, z.B. um drei Datumsbereiche speichern zu können. Auf dem Formular kannst Du mit JavaScript arbeiten und damit anfangs nur den ersten Bereich sichtbar zu machen. Klick auf + gibt dann den nächsten Bereich frei.

Im Workflow mußt Du dann die weiteren Bereiche abfragen, indem Du prüfst, ob Beginn2/Ende2 nicht leer sind.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
6 Beiträge
Brainzina Als Antwort am 29 Okt. 2015 16:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

OK, so weit ungefähr hatte ich es mir auch schon überlegt. Das was mich stört - warum ich ursprünglich auch hier gefragt habe - ist, dass es im Einzelfall doch passieren kann, dass ein Projekt 15 einzelne Termine hat. D.h. ich hätte dann in der Liste start1-15 und end1-15, das ist nicht sehr schön und wenn dann ein Projekt 16 Termine hat ist es erst recht nicht möglich.

Damit werde ich aber wohl leben müssen und die Anzahl der möglichen Termine auf 4 festlegen. 

Eine Möglichkeit wäre dann noch, den Kalendereintrag mit dem Projekt zu verknüpfen (was sowieso passieren würde, damit man ändern kann). Wenn ich also wirklich 16 Termine für ein Projekt habe, lege ich die Termine über die Kalenderliste an und schreib unten die ProjektID hinein.

Noch eine generelle Frage:
Die Standard-Formulare (ohne Infopath) haben eine recht cooles Fehlermanagement und schauen ganz gut aus. Wenn ein Eintrag nicht gesetzt ist steht es direkt drunter in rot geschrieben und auch das allgemeine Design gefällt mir ganz gut. Wie kriege ich es mit Infopath hin, dass das Design genauso schlicht ist und vor allem aber das Fehlermanagement auch so gut funktioniert. Das ist sonst nämlich nur eine Standard Alert Fehlermeldung (ziemlich hässlich).

Danke!

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 Okt. 2015 08:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Brainzina"]dass es im Einzelfall doch passieren kann, dass ein Projekt 15 einzelne Termine hat. D.h. ich hätte dann in der Liste start1-15 und end1-15, das ist nicht sehr schön und wenn dann ein Projekt 16 Termine hat ist es erst recht nicht möglich[/quote]

Schon klar. Wenn man das wirklich flexibel haben möchte (oder haben muß), dann muß man es wie bei klassischen relationalen Datenbankmodellen machen. Also eine zweite Liste, in der die Datumswerte gepflegt werden (jeweils nur ein Start/Ende-Paar) und eine Referenz auf den ursprünglichen Datensatz. Hier wird allerdings der Aufwand für ein benutzerfreundliches Eingabeformular deutlich größer.

Und man muß einen 2013er Workflow verwenden, weil nur damit die 1:n Relation aufgelöst und alle Kindelemente verarbeitet werden können.

[quote user="Brainzina"]Eine Möglichkeit wäre dann noch, den Kalendereintrag mit dem Projekt zu verknüpfen [/quote]

Wie oben beschrieben: das geht mit Nachschlagefeldern, die quasi einen Fremdschlüssel darstellen.

[quote user="Brainzina"]Infopath[/quote]

Ich würde empfehlen InfoPath zu vergessen. Es ist von Microsoft abgekündigt und man weiß nicht, wie lange es tatsächlich noch unterstützt wird.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
6 Beiträge
Brainzina Als Antwort am 30 Okt. 2015 10:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die vielen Infos!

[quote user="Andi Fandrich"]

[quote user="Brainzina"]dass es im Einzelfall doch passieren kann, dass ein Projekt 15 einzelne Termine hat. D.h. ich hätte dann in der Liste start1-15 und end1-15, das ist nicht sehr schön und wenn dann ein Projekt 16 Termine hat ist es erst recht nicht möglich[/quote]

Schon klar. Wenn man das wirklich flexibel haben möchte (oder haben muß), dann muß man es wie bei klassischen relationalen Datenbankmodellen machen. Also eine zweite Liste, in der die Datumswerte gepflegt werden (jeweils nur ein Start/Ende-Paar) und eine Referenz auf den ursprünglichen Datensatz. Hier wird allerdings der Aufwand für ein benutzerfreundliches Eingabeformular deutlich größer.

[/quote]

Ich komme ursprünglich aus der objektorientierten Welt drum denke ich immer eher in den klassischen Datenmodellen. Ich habe mir jetzt aber dafür entschieden, die eher unschönere Version zu verwenden. Diese seltenen Fälle mit vielen Daten werde ich dann extra behandeln. Hauptgrund ist eben das benutzerfreundliche Eingabeformular.

[quote user="Andi Fandrich"]Und man muß einen 2013er Workflow verwenden, weil nur damit die 1:n Relation aufgelöst und alle Kindelemente verarbeitet werden können.[/quote]

Sind 2013 Workflows irgendwie ein Nachteil oder hört sich das hier nur so an? Ich habe die ersten Tests jetzt mit 2013er Workflows gemacht und alles halbwegs hinbekommen was ich versucht habe.

[quote user="Andi Fandrich"]

[quote user="Brainzina"]Infopath[/quote]

Ich würde empfehlen InfoPath zu vergessen. Es ist von Microsoft abgekündigt und man weiß nicht, wie lange es tatsächlich noch unterstützt wird.

[/quote]

Auch das ist eine gute Info, danke! Welche Möglichkeit ist dann zu empfehlen, die Fomulare etwas umzugestalten bzw. z.B. durch Tabellen ein bisschen aufzuhübschen?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 Okt. 2015 11:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Brainzina"]Sind 2013 Workflows irgendwie ein Nachteil oder hört sich das hier nur so an?[/quote]

Du hast die feinen Untertöne durchaus richtig gedeutet. Die 2013er sind bestimmt die Zukunft, aber derzeit leider nicht sehr stabil. Microsoft bekommt das bei ihren eigenen Systemen in SharePoint Online nicht wirklich zum Laufen und Du kannst Dir vorstellen wie schwierig es dann erst bei einem selbst betriebenen SharePoint ist. Ich verwende die aber trotzdem auch, weil sie zum Teil einfach mehr Möglichkeiten bieten. Manches geht aber immer noch nur mit 2010, wie z.B. Berechtigungen setzen. Ich verstehe die Politik von MS hier einfach nicht. Warum muß man eine extrem stabil und jahrelang erprobte Technik durch etwas neues und instabiles ersetzen?

[quote user="Brainzina"]Welche Möglichkeit ist dann zu empfehlen, die Fomulare etwas umzugestalten [/quote]

 Hier gibt es von MS derzeit nichts. Und auch keine Aussagen, wie sie sich das zukünftig vorstellen. Man muß also entweder auf Drittanbieter zurückgreifen oder selbst etwas machen. Das kann serverseitige Programmierung wie eigene Webparts sein (würde ich hier nicht machen) oder clientseitig mit JavaScript eingreifen. Da gibt es wieder zwei Möglichkeiten: man kann das fertig gerenderte Formular nachträglich mit JavaScript verändern oder gleich in den Renderprozeß eingreifen. Stichwort dafür ist CSR (client side rendering).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
6 Beiträge
Brainzina Als Antwort am 30 Okt. 2015 11:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]

[quote user="Brainzina"]Sind 2013 Workflows irgendwie ein Nachteil oder hört sich das hier nur so an?[/quote]

Du hast die feinen Untertöne durchaus richtig gedeutet. Die 2013er sind bestimmt die Zukunft, aber derzeit leider nicht sehr stabil. Microsoft bekommt das bei ihren eigenen Systemen in SharePoint Online nicht wirklich zum Laufen und Du kannst Dir vorstellen wie schwierig es dann erst bei einem selbst betriebenen SharePoint ist. Ich verwende die aber trotzdem auch, weil sie zum Teil einfach mehr Möglichkeiten bieten. Manches geht aber immer noch nur mit 2010, wie z.B. Berechtigungen setzen. Ich verstehe die Politik von MS hier einfach nicht. Warum muß man eine extrem stabil und jahrelang erprobte Technik durch etwas neues und instabiles ersetzen?

[/quote]

Danke! Dann werde ich mir die 2010 auch mal anschauen. Ich bin davon ausgegangen, dass die 2013 ein das neuere Modell sind ohne Nachteile.

[quote user="Andi Fandrich"]

[quote user="Brainzina"]Welche Möglichkeit ist dann zu empfehlen, die Fomulare etwas umzugestalten [/quote]

 Hier gibt es von MS derzeit nichts. Und auch keine Aussagen, wie sie sich das zukünftig vorstellen. Man muß also entweder auf Drittanbieter zurückgreifen oder selbst etwas machen. Das kann serverseitige Programmierung wie eigene Webparts sein (würde ich hier nicht machen) oder clientseitig mit JavaScript eingreifen. Da gibt es wieder zwei Möglichkeiten: man kann das fertig gerenderte Formular nachträglich mit JavaScript verändern oder gleich in den Renderprozeß eingreifen. Stichwort dafür ist CSR (client side rendering).

[/quote]

Auch hier danke! Ich hab ja grundsätzlich kein Problem damit, direkt im Code herumzuarbeiten und sowohl das Layout als auch die "Zusatzfeatures" mit HTML bzw. JS oder sonstigen EventHandlern hineinzuschreiben. Wie kommst du dann an den Sourcecode wo man wirklich den Layoutaufbau verändern kann? Über den Sharepoint Designer?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 Okt. 2015 12:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Brainzina"]Ich hab ja grundsätzlich kein Problem damit, direkt im Code herumzuarbeiten und sowohl das Layout als auch die "Zusatzfeatures" mit HTML bzw. JS oder sonstigen EventHandlern hineinzuschreiben. Wie kommst du dann an den Sourcecode wo man wirklich den Layoutaufbau verändern kann? Über den Sharepoint Designer?[/quote]

SharePoint Designer hilft hier nur bedingt. Er kann ein Mittel sein, Dein Script in die Seite zu bringen, aber das geht auch z.B. mit einem Script Editor Webpart.

Und an welchen Sourcecode möchtest Du denn? Das gerenderte HTML liegt ja vor Dir. Das Script mußt Du selbst schreiben. Hier noch ein paar Beispiele zu CSR: https://code.msdn.microsoft.com/office/Client-side-rendering-JS-2ed3538a

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
6 Beiträge
Brainzina Als Antwort am 30 Okt. 2015 12:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]Und an welchen Sourcecode möchtest Du denn? Das gerenderte HTML liegt ja vor Dir. Das Script mußt Du selbst schreiben. Hier noch ein paar Beispiele zu CSR: https://code.msdn.microsoft.com/office/Client-side-rendering-JS-2ed3538a[/quote]

Durch das viele Herumspielen mit Infopath sind die Standard Formulare verschwunden. Die in denen man das gerenderte HTML nicht sieht. Die kriegt ich gerade auch nicht wieder hin. Aber durch das neue Erstellen von den Formularen hab ich jetzt ja automatisch die mit dem HTML Code.

Danke für den Link! Schau ich mir dann etwas später an!

Ich spiele gerade viel herum und bin am Überlegen nach dem Herumspielen (jetzt dann mal) eine komplett neue Liste zu machen und alles wieder sauber anzugehen.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 30 Okt. 2015 12:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Brainzina"]Ich spiele gerade viel herum und bin am Überlegen nach dem Herumspielen (jetzt dann mal) eine komplett neue Liste zu machen und alles wieder sauber anzugehen.[/quote]

Das muß manchmal sein. Irgendwann weißt Du ja nicht mehr, ob etwas jetzt wirklich nicht geht oder ob Du es selbst vorher kaputtgemacht hast...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
6 Beiträge
Brainzina Als Antwort am 1 Nov. 2015 11:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich hols nochmal rauf.

Die Kalenderfunktionalität habe ich nun recht solide hergestellt. Die Logik obein  und wenn ja welcher Termin mit welchem Titel eingetragen wird funktioniert mit Workflows. Das geht zwar lähmend langsam aber es funktioniert.

Da ist jetzt allerdings doch plane, noch einige andere Features in diese Verwaltung einzubauen habe ich mich noch etwas weiter in die Möglichkeiten vertieft. Besonders genau habe ich die Möglichkeiten der Entwicklung mit Access 2013 beschäftigt.

Die Frage die sich stellt basiert auf einer weiteren Anforderung. Ich hätte im Endeffekt gern die Möglichkeit für unterschiedliche Gruppen (u.a. auch externe User) die Möglichkeit unterschiedliche Ansichten (sowohl für die Gesamtprojektliste als auch für die einzelnen Projektseiten) zu generieren. Diese bieten dann auch unterschiedliche Features. Ideal wäre also (nach meinem derzeitigen Verständnis), generell mit SP Listen und den damit verbundenen Features zu arbeiten, die DB dahinter und auch die Formulare mit Access zu bauen. Das würde aber beinhalten, dass man über die Access Web App voll auf die Listen zugreifen kann (also lesen / schreiben). Die wichtigste Liste ist hier der Kalender.

Funktioniert das irgendwie oder müsste ich in dem Fall alles in der Web App selbst entwickeln und gänzlich auf die normalen SP Listen verzichten?