La Calcul salarii pentru luna de lucru, primesc Eroare UPS Date personal. Eroare necunoscuta
Am instalata Versiunea 885.04
Am atasat eroarea
La Calcul salarii pentru luna de lucru, primesc Eroare UPS Date personal. Eroare necunoscuta
Am instalata Versiunea 885.04
Am atasat eroarea
Din experienta mea mesajul apare cand sunt probleme de genul: pozitie dubla pe un angajat in conditii salarizare fara a avea sustinere in pozitie dubla in nomenclatoare (aceeasi marca nu trebuie sa se repete), sau lipsa cont undeva in caracterizarile contabile de la personal, contributii sau indemnizatii (orice observati ca e folosit in luna)
Hai sa fim seriosi, cel ce programeaza salarii e programator, sau e tapinar!
Chiar un programator nu stie de unde ii vine eroarea!!!
E lipsa de respect fata de utilizatori; adica reformulez e bataie de joc fata de utilizator, tradusa prin "cauta ma prostule gresela mea, ca eu nu sunt in stare sa zic unde e greseala!!!"
-nu am marci, dublate, oricum softul ar trebui sa nu imi permita, ca mie utilizator sa nu pot folosi marci dublate! in nomenglator personal
-nu am poziti dublate pe contracte, idem sustin ideea ca ar trebui sa existe interdictii, de a face pozitii dublate!(poate sa existe cand sunt 2 contracte intr-o luna), nu e cazul la mine acum.
-la configurari contabile nu s-a schimbat nimic, s-a introdus ceva nou?, mesaj de avertizare unde este? Ce alte validari s-au pus noi? nu trebuie sa stie prostimea!
Cu scuzele de rigoare!
Asta nu tine nici de timp, nici de nimica, tine de programator.
Ii recomand programatorlui cand programeaza sa se gandeasca la utilizatori prima data, cum utilizeaza programul lui alti utilizatori care il folosesc! de usurinta de exploatare, nu de a pune capcane in program. gen Eroare neindetificata!. Cand pune validari noi, sa anunte; ba prostilor, trebuie respectata asta!, asa e normal!
.... nu am cuvinte, cred ca caut alt program de salarii, WME Salarii e ... varza!
Ce mesaj de eroare e asta ? Trec!!!!
Eroare_trec.jpg
Wme salarii, salarii in general se vor schimba in perioada urmatoare. S-a vazut si la noi necesitatea de a schimba algoritmii. Nu e perfect, nu am pretins niciodata ca ar fi, dar eu am incercat aici sa ajut cat se poate pe toata lumea. De asta am scris, ca din experienta mea, s-ar putea sa fie una din cauzele enumerate. Acum, ce pot sa fac mai mult pentru dvs pe acest forum? Cred ca v-am mai spus, sunteti client de Wme, aveti la dispozitie distribuitori care va ajuta oricand este nevoie, nu cred ca v-au refuzat vreodata, daca ei se lovesc de o problema dificila apeleaza mereu la noi, noi sunteti aici sa rezolvam. Ii voi comunica programatorului ca nu ii agreati mesajele de eroare.
Mesajul 'Trec' este un mesaj de pe un EXE DE TEST, in traducere clara, apelam la bunavointa ce dau dovada majoritatea distribuitorilor in a suplimenta testarea aplicatiei.
Prin cele peste un milion jumatate de linii de cod compilate, exista si modificari aduse in nucleul programului, pentru a tine aplicatia in pas cu modificarile din windows, precum si cu expansiunea bazelor de date,
modificari ce genereaza in cascada efecte ce nu pot fi cuantificate intotdeauna, ci doar testate.
Mesajul "Trec" a fost o scapare prin cod, este un mesaj la nivel de nucleu al listelor, trebuia sa fie un mesaj intern prin care verificam ca inca se ruleaza acel cod, dupa ce s-a transformat lista dintr-o tablela paradox intr-o tabela pe memorie, lucru care odata finalizat, ar trebui sa rezolve problemele listelor ce nu se mai pot rula din cauza dimensiunii bazei de date, si poate sa aduca si o viteza de generare.
Fiind semnalat, va fi corectat, si tot asa vor mai fi corectate multe erori pana apare un kit oficial.
Si desigur, erori vor ajunge si pe kitul oficial, nu din incompetenta, ci din faptul ca de la o saptamana la alta nu poti testa tot programul. Numai liste sunt peste 600 liste unice (a nu se lua in calcul submeniul unei liste). Si ma refer la cele care prezinta configurari predefinite.
Daca aveti exe de test de pe ftp kit test, s-ar putea sa fie nevoie de o verificare de structuri, executabilele de test nu prea dau mesaj de avertizare pentru asta. Faceti si o verificare de structuri ca sa fiti sigur
Ultima oara editat deIrina; 04 June 2020 la 12:55
In 8 ani de WME, tot cu EXE de TEST am lucrat, nu exista alceva, oare cate mesaje am scris ca nu exista versiune "verificata/testata"; m-am consolat cu ideea ca nu va exista niciodata.
Totdeauna vor exista modificari, dar ma deranjeaza superficialitatea, Versiunea "oficiala/verificata" totdeauna e depasita, nu ai cum s-o folosesti, atunci ce vorbim?
Va rog sa-mi comunicati care e versiunea oficiala acum?, e functionala pentru moment, raspunde solicitarilor? Hai sa fim seriosi, de 8 ani lucrez pe test!
Mesajul ala nu ar trebui sa apara. Nu e eroare de logica, ci e eroarea e data la citirea din campurile tabelei modifcm (Date personal).
Practic pot fi doua cauze. Fie Pointer neinitializat, ceea ce ar da dovada de eroare de programare, nu e cazul pentru ca merge le restul clientilor, nu exista ramificatii ascunse, nu e nici un if pe acolo,
fie nu ii place ce sau unde citeste. Adica structura incorecta relativ cu versiunea executabilului, ajungand fie sa vrea sa citesca coloana 59 cand sunt numai 58 coloane, fie tocmai din intercalarea
unei noi coloane aduse pe noua versiune, astfel unde te asteptai sa fie un numar, acum se afla un sir de caractere, si va da eroare de conversie.
Ideea e ca in unele locuri se ofera mesaje mai complexe, si oricum majoritatea nu le intelege si nu le citeste, in alte locuri se ofera prea putina informatie.
Am inteles ca aveti oaresce cunostinte de programare. Asta insemna pe de o parte ca intelegeti ca un mesaj complet de cele mai multe ori tot nu ajuta, pentru ca trebuie sa fii in domeniu,
iar pe de alta parte ca pentru a oferi un mesaj clar de eroare, el trebuie prins la timp.
Asta inseamna ca aplicatia ar trebui impanzita de zone de prindere a exceptiei.
De exemplu daca ai un cod care citeste din tabla A, ai mai apoi cod ce citeste din B, si la pe undeva cod ce imparte valoarea din A la B, se pot genera cel putin 3 erori.
2 din ele pot suna la fel de bine Field "X" not Found. Alta poate suna EConvertError.
Pe undeva prin cod, daca am si alte variabile, ma pot trezi si cu genericul EAccessViolation.
Acestea sunt toate exceptii aruncate de Windows sau BDE. Ca sa le customizes si sa fie friendly trebuie prinse si analizate.
Ca sa le prind se foloseste blocul try except sau try catch daca esti mai acomodat cu limbajul java.
Daca folosesc unul singur, voi primi unul din mesajele de mai sus, dar BDE-ul nu transmite ce tabla a aruncat exceptia. Doar campul.
Daca e acces violation sau divide By 0, Windowsul nu imi va spune denumirea variabilei ce a aruncat eroarea, pentru ca odata transformat in cod masina, assembler, nu e decat o adresa pe memorie.
Este ca obsufocate-ul la java.
Asa ca trebuie sa pun mai multe blocuri try catch.
Unul ce sa prinda prima tabla, altul pe a doua tabla, altul pe codul cu impartire la 0.
Ce ne facem daca apelul pe table se face intercalat? Daca am direct A.Field1 + B.Field2? E o singura linie, nu poti sa le bagi in blocuri separate, deci nu vei sti cine din A si B e gresit.
Singura solutie e sa preevaluezi intr-un bloc pe A.Field1 si apoi pe B.Field2 pentru ca, in caz de eroare sa dai mesajul cel frumos, si dupa aia executi operatia.
Astfel pentru 10 randuri ajungi sa ai nevoie de 5-6 blocuri de try catch, poate chiar mai multe, pentru ca mentorul nu se rezuma la adunat pe o linie 2 valori din 2 table, operatiile pot fi mult mai complexe.
Si acum, sa zicem ca te apuci sa dublezi codul aplicvatiei cu aceste mesaje explicite, ajungi sa iti pui intrebarea: Daca la fiecare bloc try catch pierzi la executie cate 0.4 milisecunde fata de codul fara el,
nici a 3-a parte dintr-o milisecunda, o masura de timp ignorata total, pentru ca nu o observam intr-o executie individuala,
cat timp se pierde cand ajungi sa ai vreo 50 de blocuri intr-un loop de 50.000 de inregistrari? 16 minute. Iar o lista de 50000 de inregistrari nu dureaza mai mult de un minut.
Cu alte cuvinte, daca aici a fost vorba doar de a nu incarca programul cu cod care nu ar trebui sa se execute, pentru ca diferenta de executie este redusa, la fel de bine puteati pune intrebarea asta la executia unei
liste, caz in care sa sacrifici majoritatea pentru exceptie, pt ca pe delphi au fost mai inspirati sa numeasca blocul try except, nu catch, este inadmisibil.
https://stackoverflow.com/questions/...are-not-thrown
Concluzionand,
Din experienta mea, cand am de facut o aplicatie cu 500 de linii de cod, ce nu face mare lucru, pot sa bag cate mesaje vreau pe ea, pentru ca nu va afecta timpul de executie a ceea ce fac daca nu e complex,
oricum, variabilele sunt limitate, deci poti pana la urma sa o faci perfecta, si nici nu te gandesti la timpul suplimentar alocat pentru a construi toate aceste mesaje. Pentru ca, dupa cum am explicat, nu e doar textul,
e si amplasarea codului, ce necesita planificare suplimentara, daca vrei in continuare sa optimizezi codul. Dar atunci cand complexitatea e mare, aplicatia este deja mare si pe desupra se lucreaza contra timp,
esti nevoit sa minimizezi codul de tratare a exceptiilor. Ca fapt divers, cand a aparut aplicatia Salarii in afara aplicatiei Mentor, nu a aparut din dorinta de a o izola, de a fi ceva aparte, ci din cauza ca executabilul
de mentor devenise prea mare ca sa mai ruleze pe Windows 98.