bkd-mba-fbi / webapp-schulverwaltung

JavaScript Web-Modul, das mit SLH.Evento Backend (REST-API) die Prozesse der Schulverwaltung online sicherstellt
https://bkd-mba-fbi.github.io/webapp-schulverwaltung/
MIT License
9 stars 0 forks source link

PDF-Report für Auswertung #267

Open fbufbi opened 3 years ago

fbufbi commented 3 years ago

Arbeitsgebiet "Auswertung": Einbindung des PDF-Buttons für den Druck des Reports Id 290048 "Auswertung der Absenzen":

image

Mit Klick auf das PDF-Icon soll folgender Request Prozess ablaufen:

Bsp.: /LessonPresences/?filter.StudyClassRef==5976&filter.TypeRef=>0&fields=LessonRef,RegistrationRef,StudentRef,EventRef,StudyClassRef,TypeRef

Beispiel: GYM l1@test.ch, Klasse 22a

fbufbi commented 3 years ago

Zurückgestellt: Vor der Umsetzung warten wir einen Change Request im Sommer 2021 ab, um die Daten einfacher suchen zu können.

caebr commented 3 years ago

@schefbi @fbufbi

Ich habe noch Mühe mit dem Report.

Ich setze folgende Requests ab (am Beispiel der Klasse 22a):

/LessonPresences/?filter.StudyClassRef==5976&sort=StudentFullName.asc&offset=0&limit=200&fields=LessonRef,RegistrationRef,StudentRef,EventRef,StudyClassRef

Mit dem Resultat aus dem ersten Request ergibt sich der nächste Request:

https://evento-test.erz.be.ch/restApi/Files/CrystalReports/Praesenzinformation/290048?ids=58289_103066,58290_103066,58291_103066,58292_103066,58293_103066,58294_103066,58343_103066,58344_103066,58345_103066,58346_103066,58347_103066,58348_103066,58337_103066,58338_103066,58339_103066,58340_103066,58341_103066,58342_103066,58331_103066,58332_103066,58333_103066,58334_103066,58335_103066,58336_103066,58325_103066,58326_103066,58327_103066,58328_103066,58329_103066,58330_103066,58319_103066,58320_103066,58321_103066,58322_103066,58323_103066,58324_103066,58313_103066,58314_103066,58315_103066,58316_103066,58317_103066,58318_103066,58307_103066,58308_103066,58309_103066,58310_103066,58311_103066,58312_103066,58301_103066,58302_103066,58303_103066,58304_103066,58305_103066,58306_103066,58295_103066,58296_103066,58297_103066,58298_103066,58299_103066,58300_103066,55850_103067,55851_103067,55852_103067,55853_103067,55854_103067,55855_103067,55868_103067,55869_103067,55862_103067,55863_103067,55864_103067,55865_103067,55866_103067,55867_103067,55856_103067,55857_103067,55858_103067,55859_103067,55860_103067,55861_103067,55204_103068,55205_103068,55206_103068,55207_103068,55208_103068,55209_103068,55240_103068,55241_103068,55234_103068,55235_103068,55236_103068,55237_103068,55238_103068,55239_103068,55228_103068,55229_103068,55230_103068,55231_103068,55232_103068,55233_103068,55222_103068,55223_103068,55224_103068,55225_103068,55226_103068,55227_103068,55216_103068,55217_103068,55218_103068,55219_103068,55220_103068,55221_103068,55210_103068,55211_103068,55212_103068,55213_103068,55214_103068,55215_103068,55359_103069,55360_103069,55361_103069,55362_103069,55363_103069,55364_103069,55395_103069,55396_103069,55389_103069,55390_103069,55391_103069,55392_103069,55393_103069,55394_103069,55383_103069,55384_103069,55385_103069,55386_103069,55387_103069,55388_103069,55377_103069,55378_103069,55379_103069,55380_103069,55381_103069,55382_103069,55371_103069,55372_103069,55373_103069,55374_103069,55375_103069,55376_103069,55365_103069,55366_103069,55367_103069,55368_103069,55369_103069,55370_103069,57523_103070,57524_103070,57525_103070,57526_103070,57527_103070,57528_103070,57595_103070,57596_103070,57597_103070,57598_103070,57599_103070,57600_103070,57589_103070,57590_103070,57591_103070,57592_103070,57593_103070,57594_103070,57583_103070,57584_103070,57585_103070,57586_103070,57587_103070,57588_103070,57577_103070,57578_103070,57579_103070,57580_103070,57581_103070,57582_103070,57571_103070,57572_103070,57573_103070,57574_103070,57575_103070,57576_103070,57565_103070,57566_103070,57567_103070,57568_103070,57569_103070,57570_103070,57559_103070,57560_103070&token=<token>

Dann erhalte ich: "Bericht darf aus CLX.Evento-Web nicht aufgerufen werden"

Fragen:

fbufbi commented 3 years ago

@caebr Es fehlte eine Einstellung auf dem Report - geht es jetzt?

caebr commented 3 years ago

@fbufbi Nein, ich erhalte immer noch dasselbe Resultat.

schefbi commented 3 years ago

@caebr Fehler auf unser Seite. Der Hotfix der dieses Problem löst ist nicht auf der Testumgebung. Ich werde Ihn Heute resp. Morgen früh installieren lassen. Betroffene Tasks dieser und #261

caebr commented 3 years ago

@schefbi @fbufbi Der Report kommt nun, aber der Inhalt scheint mir nicht richtig zu sein (wieder am Beispiel der Klasse 22a):

report.pdf

Stimmt bei den ids vielleicht doch noch etwas nicht?

fbufbi commented 3 years ago

@caebr Die IDs sind wirklich komisch. Die erwähnte Schülerin hätte Absenzen auf 57563_103070 und 57564_103070 im 1. Semester und 96269_115731 und 96270_115731 im 2. Semester. Bei der Klasse 22a gäbe es aber noch viele weitere Absenzbuchungen. Sandro schaut auch noch, was er herausfinden kann.

caebr commented 3 years ago

@fbufbi @schefbi

Also wenn ich den effektiven Report-Request mit den von Dir angegebenen Ids aufrufe, sieht das richtig aus.

Das bedeutet wohl, dass beim ersten Request etwas noch nicht stimmt oder dass ich das Resultat davon falsch weiterverarbeite.

schefbi commented 3 years ago

@caebr Der Request Parameter offset=0&limit=200 ist das Problem -> Bitte entfernen, sonst werden nur die ersten 200 vom Evento gesandt

caebr commented 3 years ago

@schefbi Ok - ich hatte das am Anfang eigentlich so (ohne die Parameter), aber dann gab es einen Fehler (Response truncated o.Ä.) und ich dachte, ich müsse hier analog zur Suche limitieren. Jetzt scheint es aber zu gehen.

Braucht es den Sort-Param auch nicht?

schefbi commented 3 years ago

@caebr sort braucht es auch nicht. Frist nur Perfomance, der Report sortiert sowieso nochmals. Nur filter und fields sind wichtig.

caebr commented 3 years ago

@schefbi Super, danke!

caebr commented 3 years ago

@schefbi Wenn ich nun all die Ids mitschicke, bekomme ich den Fehler 414 Request URI Too Long

Müssen die Ids noch irgendwie gefiltert werden?

schefbi commented 3 years ago

@caebr Das ist mir vorhin auch noch in den Sinn gekommen, dass wir evtl. auf die Begrenzung des Browser oder des Backend stossen. @fbufbi und ich habe entschieden das wird auf filter.TypeRef=>0 einschränken. Zusätzlich musst du noch bei den fields den TypeRef hinzufügen sonst kann das Backen die Einschränkung nicht machen und gibt ein Fehler zurück.

bsp. /LessonPresences/?filter.StudyClassRef==5976&filter.TypeRef=>0&fields=LessonRef,RegistrationRef,StudentRef,EventRef,StudyClassRef,TypeRef

fbufbi commented 3 years ago

@caebr Wenn die Response vom Request /LessonPresences/?filter.StudentRef etc. leer ist, dann müsste der PDF-Button ausgeblendet werden.

Zurzeit kommt bei Klick auf den PDF-Button folgende Seite, die die User/innen nicht verstehen werden: image

Beispiel GYM l1@test.ch > Schülerin Lauper Nicole (hat überall 0)

fbufbi commented 3 years ago

@caebr

  1. Du wartest momentan auf den Endpunkt /Statistics, bevor du den Request /LessonPresences mit Filter schickst. Könntest du den Request gleichzeitig schicken? Denn teilweise wartet man relativ lange, bis das PDF-Icon angezeigt wird. Wenn beide Antworten da sind, ist dann ja klar, ob das PDF-Icon angezeigt wird.
  2. Weshalb schickst du den Request zweimal? Er scheint sich nicht zu unterscheiden. Bitte einen Request aufheben, wenn das ein Versehen ist.
caebr commented 3 years ago

@fbufbi Punkt 1: Habe ich so angepasst, dass das Icon angezeigt wird sobald es ready ist unabhängig vom Laden der Tabelle. Punkt 2: Habe ich angepasst, so dass nur noch ein Request abgesetzt wird

fbufbi commented 3 years ago

Test ok