Web-Form Benutzerantrag

Tagged: ,

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #2637

    Hoi Pugler,

    ich habe ein Web-Form aufgesetzt, welches für unsere Benutzeranträge genutzt wird.
    Gewisse Unannehmlichkeiten(z.B. keine Schleifen) habe ich soweit geschluckt, allerdings gibt es noch einige Punkte, die gewünscht sind.
    Ich sammele sie an dieser Stelle einmal und hoffe, dass dem Einen oder Anderen etwas dazu einfällt … besten Dank!

    1) Das ausgefüllte Web-Formular nach dem Absenden noch einmal öffnen (zur Prüfung)
    2) Kopierfunktion schon ausgefüllter und übermittelter Web-Formulare
    3) ‘Speichern in Memo’ > die Formattierung sieht auch aufgrund der bis zu neun stufigen Konstruktion des Formulars dürftig aus – muss ich die Answers soweit nicht vorhanden in Virtual.fields unterbringen, um Sie in der Kommunikation (Mails, Aufgaben, Memo) schön aufbereiten zu können?

    Gute Zeit!

    Marc

    #2640
    Stefan Reichelt
    Participant

    Hm, 1) und 2) klingen sehr spannend, sind aber natürlich RFCs, die bei Wendia einzureichen wären. Unter unseren Nutzern kamen auch schon ähnliche Ideen auf:
    – Favoritenfeature
    – Dynamisches Portlet, das die meistgenutzten Webforms (z.B. Top 10) des aktuellen Nutzers auflistet

    Zu 3) wäre natürlich interessant, wie genau du die Ergebnisse gern aufbereiten möchtest. Im WebForm selbst gibt es ja bereits die bekannten CSS-Felder (Question style/Answer style) für Fragen und Antworten.
    Den Fragen kannst du ja noch eine Css-Klasse mitgeben, echte Formatierungsoptionen gibt es aber (noch?) nicht. Wir tricksen da immer ein wenig mit HTML-Code herum, denn dieser wird sowohl im SSP als auch später im Memo durchaus umgesetzt. Wenn man also eine einzelne <font color='red'>Antwortoption</font> mit simplen HTML-Tags umgibt, landet das Ergebnis dann auch genau so im Memo.
    Gibt es Anforderungen eurerseits, die über diese Möglichkeiten hinaus gehen?

    #2688

    Hoi Stefan,

    das Form ist bis zu elf-stufig (Frage 1 > 1.1 > 1.1.1 > 1.1.1, …)- das hat damit zu tun, dass darin Berechtigungen auf z.B. Laufwerke x mal angeboten werden müssen(Problematik “keine Schleifen”) und nicht untereinander stehen können, weil sonst die Folgefragen im Pulk unten an eingerückt angezeigt werden und nicht mehr zuordbar sind.

    Explizites Beispiel:
    Frage: IT BA 012.2 = Laufwerke / Ordner? (2)
    Antworten:
    1) TextFeld
    >>> Folgefrage IT BA 013.2 Berechtigungsoptionen auf Laufwerk/ Ordner (2)
    2) Kästchen ‘Weitere’
    >>> Folgefrage IT BA 012.3 Laufwerke / Ordner? (3)

    Folgefragen:
    zu 1) IT BA 013.2
    Anworten:
    1) Lesen
    2) Bearbeiten
    3) Zugriff löschen

    zu 2) IT BA 012.3 Laufwerke / Ordner? (3)(gemäß der Ausgangsfrage)

    Hoffe einigermaßen verständlich!

    Die gesamte Architektur gefällt mir nicht wirklich, aber es ist wohl nicht anders umsetzbar …

    Nun will ich Bestandteile wie manche Fragen oder Angaben, die mit ‘Ja’ oder ‘Weitere’ beantwortet wurden, nicht in das Memo übertragen, geschweige denn in Freigabeaufforderungsmails an Geschäftsführer …

    Im Ursprungsformular sind 70 Fragen enthalten – muss ich alle Triggern/ auf Inhalt prüfen und dann bei Anlage ins Memo selektiv hereinschreiben? :-l

    #2691
    Stefan Reichelt
    Participant

    Oha, das klingt wirklich nach Feld(er)salat. Zumindest würde ich empfehlen, im WebForm-Detail mit Questionnaires statt mit Questions zu arbeiten. Damit könntest du die Fragen besser in übersichtliche Blöcke aufteilen. Wäre das eine Option? Wenn es aber um die selektive Übernahme ins Memo geht, kommen wir langsam an die Grenze der Möglichkeiten: Momentan gibt es einfach keinen Parameter, der steuert, ob eine Frage/Antwort im Memo landet oder nicht. Hier heißt es: Alle oder keine.

    Wenn du in den Freigabeaufforderungsmails immer nur wenige Infos mitschicken willst, würde es sich vielleicht lohnen, die Antworten mit am Fall zu speichern und dann im Mailtemplate nur die relevanten Infos per PQL zu ermitteln. Dann hast du zwar immer noch alle Infos im Memo, aber die Mails enthalten nicht gleich den ganzen Roman. Soviel zu deiner Ausgangsfrage, ob denn alles in virtuelle Felder muss: Nein. Kann man auch alles per PQL direkt im Mailtemplate ermitteln.

    Das Webform in mehrere kleine Formulare aufzusplitten (Parent-Child-Beziehung), um wirklich nur die benötigten Felder abzufragen, wäre hier keine Option, oder?

    #2792

    Was hältst du davon, dass Problem Memo nicht über den Haken der Komplettübernahme zu pflegen, sondern über Datatrigger das Memo-Feld zu befüllen.

    Wenn 1.2 Ja, dann fülle mit …
    “Der Benutzer soll Zugriff auf [Answer 1.2.1] mit der Ausprägung [Answer 1.2.1.1] bekommen.”

    Wird zwar unheimlich aufwändig, aber scheint mir die schönste Lösung – ist dies technisch möglich?

    #2795
    Stefan Reichelt
    Participant

    Seit 1.6 sollte das problemlos möglich sein, ja. Hatte noch keine Zeit, damit herumzuspielen, aber die Data Action sollte auf der Tabelle Answer angelegt werden und auf die Case-Tabelle zielen. Die Bedingung geht dann auf AnswerOption, evtl. ergänzt um eine True-Bedingung, die prüft, ob die Antwort auch zum richtigen Fragebogen ([SubmitedAnswer.Survey.Id]) bzw. zur richtigen Frage ([SubmitedAnswer.QuestionDefinition.Id]) gehört. Letzteres ist aber eher optional. Blende dir einfach im Answer-Tab deiner Frage die ID der Antwortoption mit ein, dann kannst du in der Condition direkt darauf referenzieren.
    In der Data Action selbst kannst du dann entweder die Source column (z.B. AnswerText), den Source Value (irgendein manueller Text) oder halt einen beliebigen Source PQL Value benutzen.

    Eine vielleicht ganz nette Erweiterungsidee hab ich noch: Bau einfach auf Frage- und/oder Antwortebene noch eine neue Spalte “Virtual.CopyToMemo” (Bool) ein und frage das in den Conditions ab, statt jede einzelne Antwortoption abzufangen. Dann kannst du die Übernahme ins Memo flexibel pro Frage bzw. Antwort steuern.

    #2933

    Ich muss jede Antwort erfragen und die Antworten auf Folge-Fragen abhängig von diesen.
    Im SQL habe ich nun folgendes zusammengebastelt …

    1) …für Text-Antworten:

    select answer_text from Answer a 
    inner join Submited_Answer sa on sa.submited_answer_pk = a.submited_answer_pk
    Inner join Question_Definition qd on qd.question_definition_pk=sa.question_definition_pk
    AND qd.question_definition_pk='83488619'
    where a.root_pk='83534915'

    2) … für Auswahloptionen:

    select ao.description from dbo.Answer_Option ao
    inner join dbo.Answer a on a.answer_option_pk = ao.answer_option_pk and a.root_pk='83534915'
    where ao.question_definition_pk ='83488637'

    Das muss ich noch in PQL übersetzen und die rootpk mit der case pk gleichsetzen – soweit kein Problem.

    Irgendwelche offensichtlichen Fehler enthalten?

    Aber wie weiter … Ich würde jetzt ein neues Textfeld erstellen(“Mailtext”) und abhängig von den obigen Antworten (~80 Conditions) dieses Feld füllen(~80 DataTrigger).

    Gibt es bessere Ideen?

    Wie kann ich in der Entität Answer ein Feld im Case nicht “=” setzen sondern ergänzen? Macht das “+=”?

    #2934
    Stefan Reichelt
    Participant

    80 Conditions und Data Trigger? Das klingt für mich undenkbar. Da muss auf jeden Fall eine flexiblere Lösung her, sonst kann das System am Ende niemand mehr administrieren – von der Performance ganz abgesehen. Warum erweiterst du nicht die Frage- bzw. Antwortoptionstabelle entsprechend und verwendest die Felder dynamisch?
    Eine meiner ersten Aktionen in Bezug auf das Surveymodul war übrigens, dort jeweils ein Feld namens “Virtual.OptId” anzulegen, mit dem ich per SQL/PQL gezielt darauf zugreifen kann. PK-Werte sind mir zu unsicher, weil sie schnell im Test- und Produktivsystem auseinanderdriften.

    Ach ja, deine Vermutung ist richtig: “+=” bedeutet, dass der Eintrag dem Memo hinzugefügt werden soll.

    #2935
    Stefan Reichelt
    Participant

    PS: Etwas weiter oben hatte ich vorgeschlagen, auf Frage- bzw. Antwortebene einen Haken “CopyToMemo” einzubauen. Damit kannst du deine 80 Conditions durch eine einzige ersetzen: Wenn bei einem Insert in der Answer-Tabelle der Haken drin ist, kopiere den Text ins Memo des Falles. Fertig.

    #2959

    Hoi Stefan,

    ich müsste abhängig von den Inhalten der Antworten, diese dann jeweils in verständliche und schöne Texte umwandeln, daher funktioniert das mit dem Haken leider nicht.
    Persönlich denke ich, dies speziell wegen der Performance zurückzustellen.
    Gewisse Aspekte muss ich jedoch abfragen und da stoße ich erneut an meine PQL-Grenzen.
    Du hattest dür die Answer Condition mir einmal schön
    [<strong>s</strong>|SubmitedAnswer s,QuestionDefinition q|s.QuestionDefinition=q.QuestionDefinitionPK and q.Id='IT BA 001' and s.SubmitedAnswerPK=[SubmitedAnswer.SubmitedAnswerPK]]
    zusammengebaut.

    Diesen Code habe ich dann “Gleich” gesetzt mit der SubmittedAnswer.
    Weil es funktioniert hat, habe ich mich nicht weiter damit beschäftigt.

    Jetzt geht es aber daran mehrere Dinge auszulesen und daher die Frage, was das s in dem Select herausgibt?

    Ich muss jetzt Teile der Antworten auslesen und verarbeiten und da benötige ich das Verständnis …

    Der Code gibt mir leider auch nichts in einer Test-Mail heraus – warum?

    Besten Dank!

    #2960
    Stefan Reichelt
    Participant

    Hi Marc,

    den Haken hatte ich mir ja direkt auf der Ebene der Antwortoption vorgestellt. So könntest du je nach Antwort unterschiedlich reagieren. Denkbar wäre auch ein Enum, über den du dann verschiedene Formatierungen auslöst.

    Was den Code angeht (der aber nicht von mir stammt, sieht nicht nach meinem “Stil” aus): “s” als Alias von SubmitedAnswer steht für das Objekt an sich. Es gibt dir in diesem Fall die Antwort (also Objekt, nicht als tatsächlich nutzbaren Textwert!) zurück, die auf die Frage mit der ID “IT BA 001” gegeben wurde.
    Was genau willst du denn abfragen?

    Wenn du den Code in Mailtemplates testen willst, kommt es natürlich auf die Entität an, mit der du das Template verknüpft hast.

    #2961

    Ich muss jetz auf die Antwortoptionen und die -texte herunter.
    In der Entität Answer kann ich nur SubmittesAnswer nutzen, oder?

    Ich habe mir für eine Option dieses Code gebaut(bestehenden um AnswerOption ergänzt):
    [s|SubmitedAnswer s,AnswerOption a,QuestionDefinition q|s.QuestionDefinition=q.QuestionDefinitionPK and q.Id='IT BA 014.1.1' and a.QuestionDefinitionPK=q.QuestionDefinitionPK and a.answer_option_pk='83500088' and s.SubmitedAnswerPK=[SubmitedAnswer.SubmitedAnswerPK]]

    Gedacht ist die Condition, auf die Frage IT BA 014.1.1 mit der Option 83500088 zu antworten …

    #2962
    Stefan Reichelt
    Participant

    Wenn du einfach nur eine Condition für diese eine Antwortoption anlegen willst, kannst du dir das Leben viel leichter machen, indem du in der Tabelle Answer eine solche baust und AnswerOption – Equal – (Deine Antwortoption) setzt. Um es dir noch einfach zumachen, empfehle ich, im Antworttab der Fragedefinition die Id der Antwortoption einzublenden.

    Entscheidend ist, dass du die Antwort NICHT auf SubmitedAnswer abfängst, sondern direkt auf der Tabelle Answer!

    #2963

    Also manchmal …
    Hatte deine kurze Lösung bereits ausprobiert, doch die Anwendung gab es unter den zig Antworten zwei Mal. 50 / 50 geht halt zu 80 % schief.
    Damit sollte ich erst einmal hinkommen und wahrscheinlich werde ich auf Wendia warten, um die Antworten schön für Mails aufzubereiten.

    Vielen Dank!

    Erledigt.

Viewing 14 posts - 1 through 14 (of 14 total)
  • You must be logged in to reply to this topic.