Closed kkaiser12 closed 5 years ago
Name | Fächer – Gegenstandszuordung (UC 1) |
---|---|
Kurzbeschreibung | Der User muss vor der Verwendung des Skills „Tasche packen“ selbst Informationen über die benötigten Utensilien für die einzelnen Fächer einsprechen. |
Akteure | User |
Auslöser | Der Aufrufer möchte neue Utensilien hinzufügen. |
Vorbedingungen | --- |
Eingehende Informationen | Fachname, benötigte Gegenstände |
Ergebnis(se) | Alexa antwortet: „Daten gespeichert“ |
Nachbedingungen | Fächer wurden mit gewünschtem Gegenstand zugeordnet. |
Ablauf | 1. Alexa Gegenstände hinzufügen Der User sagt zu Alexa: „Neuen Gegenstand hinzufügen“. Daraus folgt, dass Alexa bereit ist zu einem beliebigen Fach neue Utensilien hinzuzufügen. 2. Eingabe des Users Der Anwender muss zuerst das Fach sagen, damit Alexa weiß wo sie den neuen Gegenstand hinzufügen soll. Danach kann er beliebig viele Utensilien hinzufügen 3. Beenden der Eingabe zu aktuellem Fach Zum beenden der Eingabe sagt der User zu Alexa: „Beende Gegenstandseingabe“. Somit nimmt Alexa zu diesem Fach keine neuen Daten mehr auf. 4. Neues Fach wählen Will der User noch etwas zu einem anderen Fach auswählen, dann kann er das neue Fach jetzt sagen. 5. Eingabe vollständig beenden Zum vollständigen beenden der Eingabe und endgültigen Speicherung muss der User nur noch zu Alexa sagen: „Beende Eingabe“ |
Offene Punkte | --- |
Änderungshistorie | Datum, Fach, Utensil(ien) |
Sonstiges, Anmerkungen | Es ist schon eine Default Einpackliste vorhanden |
In welcher Tabelle? Bei mir sieht das noch ganz normal aus.
Hab es jetzt geändert. Es war quasi alles ohne Zeilenumbrüche, die kann man aber mit "br" in spitzen Klammern einfügen.
Name | Fächer – Gegenstandszuordung (UC 1) |
---|---|
Kurzbeschreibung | Der User muss vor der Verwendung des Skills „Tasche packen“ selbst Informationen über die benötigten Utensilien für die einzelnen Fächer einsprechen. |
Akteure | User |
Auslöser | Der Aufrufer möchte neue Utensilien hinzufügen. |
Vorbedingungen | --- |
Eingehende Informationen | Fachname, benötigte Gegenstände |
Ergebnis(se) | Alexa antwortet: „Daten gespeichert“ |
Nachbedingungen | Fächer wurden mit gewünschtem Gegenstand zugeordnet. |
Ablauf | 1. Alexa Gegenstände hinzufügen Der User sagt zu Alexa: „Neuen Gegenstand hinzufügen“. Daraus folgt, dass Alexa bereit ist zu einem beliebigen Fach neue Utensilien hinzuzufügen. 2. Eingabe vom User Der Anwender muss zuerst das Fach sagen, damit Alexa weiß wo sie den neuen Gegenstand hinzufügen soll. Danach kann er beliebig viele Utensilien hinzufügen 3. Beenden der Eingabe zu momentanen Fach Zum beenden der Eingabe sagt der User zu Alexa: „Beende Gegenstandseingabe“. Somit nimmt Alexa zu diesem Fach keine neuen Daten mehr auf. 4. Neues Fach wählen Will der User noch etwas zu einem anderen Fach auswählen, dann kann er das neue Fach jetzt sagen. 5. Eingabe vollständig beenden Zum vollständigen beenden der Eingabe und endgültigen Speicherung muss der User nur noch zu Alexa sagen: „Beende Eingabe“ |
Offene Punkte | --- |
Änderungshistorie | geändert am 08.11.2018 von Sara Frank |
Sonstiges, Anmerkungen | Es ist schon eine Default Einpackliste vorhanden |
Ich weiß nicht sicher ob die Fehler daran liegen, aber ich habe es bisher nicht auf die Reihe gebracht, dass beim Einlesen des Faches und des hinzuzufügenden Gegenstands beide erkannt werden. Mindestens eines von beiden ist null, weshalb das Programm immer ins else springt. Kann auch an meiner Inkompetenz liegen, aber ich werden jetzt mal versuchen das schrittweise umzusetzen, dh eigener Handler für Fach und eigener Handler für Item. Das macht die ganze Prozedur etwas langwieriger, aber solang es funktioniert
Könnte es evtl. sein, dass es Probleme gibt, wenn das Fach aus mehreren Wörtern besteht? Dummerweise ist das fast immer der Fall.
HashSet<String> items = (HashSet<String>) persistentAttributes.get(Utitlities.subjectToBeChanged.toLowerCase());`
if(items.contains(item)) {
items.remove(item);
status = "Gegenstand entfernt. ";
}
else {
items.add(item);
status = "Gegenstand hinzugefügt. ";
}
Ist hier irgendwas grundsätzlich an dem remove falsch? Ich probiere jetzt schon eine weile herum und stehe leider ein bisschen auf dem Schlauch. Das add funktioniert einwandfrei. Problem ist, wenn ich den eingegebenen item String (der bereits in dem Set enthalten ist, also entfernt werden soll) mit dem String im Set mit equals vergleiche wird false returned. Wenn ich beide ausgeben lasse sehen die aber gleich aus. Falls jemandem von euch einfällt, wo mein Fehler liegen könnte wäre ich dankbar um den Tipp.
Update: Irgendwie kann ich die nach dem Launch hinzugefügten Sachen nicht aus dem Set auslesen/sie werden nicht richtig gespeichert. Wenn man im AWS die datenbank anschaut steht zwar der hinzugefügte Wert im Set, aber wenn man die Größe des Sets im Developer ausgibt hat sich daran nichts geändert.
Ich hab mal wieder richtig mist gebaut, weil ich nicht daran gedacht habe, dass ich ja jedes Mal den Skill neu starte und alles überschreite wenn ichs neu ausgeben lasse. Ich schau dass ich das jetzt trotzdem noch irgendwie zeitlich auf die Reihe bekomme
Zu deinem ersten Problem mit dem Hashset, dass das removen nicht funktioniert: Komisch, ich bin die Java Doc von Hashset und String mal durchgegangen. Eigentlich müsste das contains vom Hashset das equals vom String aufrufen, welches zeichenweise die Strings vergleicht. Dabei sollte also eigentlich kein Fehler auftreten. Mehr fällt mir dazu leider nicht ein, sorry. Meine erste Vermutung wäre gewesen, dass du nur eine Kopie der Liste von persistantAttributes erhälst und du diese somit nicht verändern kannst. Das kann aber nicht stimmen, da du ja Elemente hinzufügen kannst..... Ich frage mich ob es am Typecast liegen könnte, obwohl ich das sehr stark bezweifel. Bei den anderen Problemen kann ich dir leider nicht weiterhelfen.
Was wird denn genau überschrieben? Die Sachen in dem Skill selbst oder in der Datenbank?
Danke für die Nachfrage, seit 30 Minuten geht alles
ist auch schon gepushed
Bei einem Test für GetRequiredItemsIntentHandler bekomme ich immer die Fehlermeldung "Attempting to read persistence attributes without configured persistence adapter". Hast du iwo was mit einem PersistenceAdapter gemacht? Das scheint ein Objekt zu sein, mit dem man die Verbindung zur Datenbank konfiguriert
Ja, den braucht man zum Datenbankzugriff, aber ich hab ka wie man das umgehen kann
Also das ist erstmal soweit fertig, je nachdem ob das mit dem ZPA noch klappt muss man evt noch ein bisschen was ändern, aber ich würde das vorzugsweise lieber in der Calender-Klasse klären.
Ich hab so ziemlich bei allen bestehenden Klassen, die irgendwas mit Fächern oder Gegenständen zu tun haben etwas geändert. An model Klassen sind Utilities, Subjects und SubjectsToday hinzugekommen. Ein UML-Diagramm wird noch erstellt.
Ok, super. Sag Bescheid, wenn irgendjemand noch was machen soll, du hattest in diesem Sprint eh schon mega viel Arbeit.
Gegenstand hinzufügen Aktivitätsdiagramm
Subject Klassendiagramm
Ok, super. Sag Bescheid, wenn irgendjemand noch was machen soll, du hattest in diesem Sprint eh schon mega viel Arbeit.
Ich würde die Tests für meine Handler einfach in diesem Sprint nicht mehr machen
User Story: Fächer-Gegenstandszuordnung Als User möchte ich Fächern in meinem Stundenplan Gegenstände zuordnen, die ich für das jeweilige Fach benötige, um später abfragen zu können, was ich benötige.
Akzeptanzkriterien