Pozdrav!
Evo deteljnijih "izvestaja"
Serveri: Win2003Srv, Oracle10.1.0.2.0, Forms 9.0.4.0.19 (webforms), JInit 1.3.1.18
Klijenti: svi su XP Prof, JInit 1.3.1.18
Mreza: domen, ActiveDir. FW (hardverski) samo filtrira "izlazni" saobracaj, u okviru mreze nema nikakvih ogranicenja. Aplikacija se ne "vidi od spolja". XP-ov FW je iskljucen na svim klijentima (Inace, sve klijentske maxine su instalirane sa istog image-a i identicna su podesavanja)
Pokusavao sam da menjam parametre u pozivu ubacujuci konstante vrednosti za tog korisnika, pokusao sam sa to_char (i ostale TO_ funkcije) da konvertujem parametre, pokusao sa tmpParam1-n da zamenim parametre u proceduri a prethodno im dodelim vrednosti, pokusao sa EXCEPTION... i nista.
Sto se tice USER-a, tu u stvari ne stoji USER, nego :BL_ELEKTRONSKI_NALOG.KORISNIK_ID... uizvin'te... moja greska jer sam postovao (copy/paste) dok sam menjao parametre i probavao... svasta ocajnom pada na pamet... :\
Aplikacija je tako napisana da ne dozvoljava nikakve brljotine u nazivima (postoji "parser" koji cisti "gluposti" iz tekstualnih polja... korisnici su mi mnogoooo dovitljivi i inovativni i sve je to spreceno) i 100% nema nikakvih nedozvoljenih simbola (%, space, ', ", itd). Inace, prilikom pokretanja prve forme, vrsi se autorizacija/autentifikacija i USER se ne koristi nigde...
Uvek pukne na sam poziv procedure... Inace imam u bazi drugu proceduru koja loguje greske prilikom rada.... i u njoj uopste nema podataka o gresci i o problematicnom korisniku... Dakle, moj zakljucak je da nista ne prosledi bazi odnosno da uopste ne pozove proceduru!!!
Parametri su u obliku:
broj naloga: NALOG_BR_1, (ime_redni_broj)
korisnik id: 330033B (6_brojeva_i_slovo)
Procedura je:
Code:
PROCEDURE elektrosnkiNalogClose (
inpBrojNaloga IN BL_ELEKTRONSKI_IZVOD.BROJ_NALOGA%TYPE,
inpKorisnik IN BL_ELEKTRONSKI_IZVOD.NALOG_ZA_KORISNIKA%TYPE,
outStanjeNaloga OUT BL_ELEKTRONSKI_IZVOD.ZATVOREN%TYPE,
outIzlaz OUT NUMERIC,
outText OUT VARCHAR2
) AS
tmpSmena NUMBER(1) := 4;-- Smena za PTT naloge je 4
tmpIznos NUMBER; -- Zbog poziva procedure za dokumenta
tmpIzlaz NUMBER; -- --------------||-----------------
tmpText VARCHAR2(1024);-- --------------||-----------------
pogonDokument BL_FINANSIJSKE_PROMENE.POGON_DOKUMENTA%TYPE;
BEGIN
-- Inicijalizacija globalnih parametara:
MODUL_GRESKE := 'Zatvaranje EL. naloga (elktrosnkiNalogClose)'; -- Naziv procedure (Za obradu gresaka)
POSTOJI_SLOG := 0; -- Trazeni slog ne postoji
outIzlaz := 0; -- Status akcije (0 uspesna)
outStanjeNaloga := 1; -- Stanje naloga je zatvoren
outText := 'Nalog broj ' || inpBrojNaloga || ' je OBRAÐEN i ZATVOREN!'; -- Propratni text akcije
...
Ukoliko se na bilo kom mestu u proceduri desi greska, upise se njen kod, mesto greske, ko je izazvao gresku i kako je izazvao u posebnu tabelu i promeni se outIzlaz na 1 i outText na nesto tipa 'Desila se greska i nalog nije zatvoren...'
PS. Da, uvek ulazi u IF... tu nije problem...
PSS. Nasao sam solomonsko resenje: otvorio coveku novi oracle nalog, "na ruke" prebacio sve njegove podatke na taj novi nalog da bi ovaj mogao da radi (i radi!!!). Ali ostaje problem jer je originalni nalog "vezan" sa Kadrovskom... i moracu za koji dan da sredim to...