Aruanne avaneb brauseris, parameetrid renderdatakse ja ekspordinupp tekitab vea, tühja allalaadimise või faili, mida arvutustabel keeldub avamast. Sellel kombinatsioonil on tavaline kuju. Töötav aruandeleht on testinud renderdamist ja autentimist ning mitte midagi muud. Eksport on eraldi päring oma vastusega ja kliendita portaali kaudu läbib see ka ümberkirjutuskihi, mida ei projekteeritud kunagi failide allalaadimiseks.

Kaks teed, üks töötav leht

Renderdamine ja eksportimine on erinevad toimingud isegi siis, kui need algavad samast nupust. Aruandeserver renderdab lehe brauserile ja renderdab ekspordi teise väljundlaienduse kaudu, millel on oma sisutüüp ja oma veakäitumine, nagu kirjeldab ekspordi dokumentatsioon. Portaal, mis laseb esimese laitmatult läbi, võib teise siiski rikkuda, sest teine on vastus, mida portaal ei oodanud näha. Need kaks jagavad seanssi ja aadressi ning peaaegu mitte midagi muud.

Käsitlege töötavat lehte ainult autentimise ja kättesaadavuse tõendina. See tõestab, et konto jõuab aruandeserverini ja et portaal edastab HTML-i. See ei ütle midagi failivastuste, sisu paigutuse päiste ega ümbersuunamiste kohta, mis lõpevad allalaadimise, mitte dokumendiga.

See ongi kogu põhjus võrrelda eksporditeed eraldi, selle asemel et uuesti testida lehte, mis juba töötab. Kaks päringut, mis jagavad seanssi, on ikka kaks päringut.

Kolm tingimust, mis otsustavad, kus eksport katkeb

Kolm küsimust paigutavad vea kiiresti ja iga vastus osutab erinevale omanikule.

Esiteks, kas sama aruanne, konto ja vorming eksporditakse sisemisest võrgust õigesti? Kui jah, on aruandeserver ja selle renderdaja korras ning erinevus on juurdepääsuteel. Teiseks, kas ebaõnnestunud vastus kannab faili sisutüüpi või HTML-lehte, millel on faililaiend? See eristab renderdaja viga portaalipoolsest asendusest. Kolmandaks, kas portaal kirjutab päringu URL-i ümber või eemaldab vastusest päiseid? Ümber kirjutatud URL võib maanduda täiesti teisele lõpp-punktile.

Vastake kõigile kolmele enne mis tahes seade muutmist, sest igal on erinev abinõu. Renderdaja viga kuulub aruandeserverile, asendatud keha kuulub portaalile ja eemaldatud päis on poliitikaküsimus, mitte viga.

Kirjutage vastused üles. Nendest kolmest reast kokku pandud tugijuhtum on väärt kümmet ekraanipilti.

Lugege ekspordivastust, mitte olekukoodi

HTTP õnnestumise olek tõestab ainult seda, et miski vastas päringule. Uurige keha ja päiseid koos, sest huvitav rike on õnnestunud vastus, mis kannab vale sisu.

curl -sS -D export.headers -o export.bin --location "https://portal.example.com/reports/export?format=xlsx"
file export.bin
head -c 300 export.bin

Päiseväljund näitab sisutüüpi ja kõiki sisu paigutusi, mille portaal tagastas. Käsk file tuvastab, mis keha tegelikult on, ja tekstifail seal, kus oodati arvutustabelit, on klassikaline asendatud sisselogimisleht. Käsk head näitab piisavalt, et HTML-i ära tunda, ilma et kogu aruannet terminali valataks.

Eemaldage seansiküpsised ja märgised enne selle mis tahes osa jagamist. Töötava ekspordi jäädvustus on kasulik tõend ja kellelegi teisele kuuluva seansi jäädvustus on intsident.

Piiritlege erand rakendusega, mitte kontoga

Kui portaal vastust ümber kirjutab või blokeerib, on kiusatuslik parandus kogu saidi vabastamine või aruande anonüümseks muutmine. Mõlemad parandavad allalaadimise ja eemaldavad põhjuse, miks portaal olemas on. Piiritletud erand nimetab ühe rakendusetee, ühe sisutüübi ja ühe suuna ning jääb sellele, kes poliitikat omab, ülevaatamiseks kättesaadavaks.

Kasutage lüüsiversiooni, mida te tegelikult käivitate, ja selle dokumenteeritud rakendusseadeid. Valik, mida tarnija kirjeldas kunagi liiklust muutmatuna jätvana, ei ole üldine juhis, ja selle kopeerimine vanast foorumiteemast on viis, kuidas ajutisest erandist saab püsiv arhitektuur.

Kui erandit ei saa nii kitsalt piiritleda, kuulub eksport tõenäoliselt sisemisele teele teistsuguse juurdepääsumeetodiga, mitte portaali taha. Kogu saiti hõlmav vabastus on portaali omaniku otsus, mitte ühe aruande möödaviik.

Võtke vastu eksport, mitte salvestusdialoog

Viimane kontroll on fail ise: see avaneb, sisaldab oodatud veerge ja selle summad ühtivad aruandega, mille kasutaja heaks kiitis.

Salvestusdialoogi ilmumine ei ole edu ja parandushoiatusega avanev fail ei ole samuti edu. Võrrelge ridade arvu ja üht teadaolevat väärtust ekraanil oleva aruandega, sest kärbitud eksport läbib iga testi, mis vaatab ainult faili suurust. Seejärel eksportige teist korda, sest vahemälukiht, mis ühel korral serveerib vale keha, võib järgmisel katsel serveerida õige.

Võtke vastu töövoog, mida kasutaja vajas, ja mitte vähem. Allalaadimine, mis avaneb vales rakenduses, on ikka ebaõnnestunud eksport.

Seotud artiklid