Podrška #26589
ZatvorenF18, update_rec_server_and_dbf, ne osvježava podatke kroz semafore, sql padding
Dodano od Saša Vranić prije više od 14 godina. Izmjenjeno prije više od 14 godina.
100%
Opis
Problem uočen kod testiranja fiskalnih funkcija
Ako setujem broj veze, kod druge strane se izbriše taj dokument.
Povezani tiketi 4 (0 otvoreno — 4 zatvorenih)
Izmjenjeno od Jasmin Beganović prije više od 14 godina
my_use table:fakt_doks / rdd: SEMAPHORE alias: FAKT_DOKS exclusive: .T. new: .F.
qry: SELECT idfirma,idtipdok,brdok,partner,datdok,dindem,iznos,rabat,rezerv,m1,idpartner,idvrstep,datpl,idpm,dok_veza,oper_id,fisc_rn,dat_isp,dat_otpr,dat_val FROM fmk.fakt_doks WHERE (idfirma || idtipdok || brdok) IN ('101000048/S ') ORDER BY idfirma, idtipdok, brdok LIMIT 15000 OFFSET 0
fakt_doks synchro cache: 0.01
my_use table:fakt_doks / rdd: SEMAPHORE alias: FAKT_DOKS exclusive: .T. new: .F.
qry: SELECT idfirma,idtipdok,brdok,partner,datdok,dindem,iznos,rabat,rezerv,m1,idpartner,idvrstep,datpl,idpm,dok_veza,oper_id,fisc_rn,dat_isp,dat_otpr,dat_val FROM fmk.fakt_doks WHERE (idfirma || idtipdok || brdok) IN ('101000048/S ') ORDER BY idfirma, idtipdok, brdok LIMIT 15000 OFFSET 0
fakt_doks synchro cache: 0.01
Izmjenjeno od Ernad Husremović prije više od 14 godina
ovaj where radi:
SELECT ('#' || idfirma || idtipdok || brdok || '#'), idfirma,idtipdok,brdok,partner,datdok,dindem,iznos,rabat,rezerv,m1,idpartner,idvrstep,datpl,idpm,dok_veza,oper_id,fisc_rn,dat_isp,dat_otpr,dat_val FROM fmk.fakt_doks where (idfirma || idtipdok || brdok) IN ('101000048/S')
Izmjenjeno od Ernad Husremović prije više od 14 godina
a sa space-ovima na kraju ne radi:
... WHERE (idfirma || idtipdok || brdok) IN ('101000048/S ')
Izmjenjeno od Ernad Husremović prije više od 14 godina
ovo međutim radi
select brdok || '#' from fmk.fakt_doks where brdok = '00048/S '
iako daje brdok bez bez space padding-a
select brdok || '#' from fmk.fakt_doks where brdok = '00048/S '
čak iako dodam viška space-ova
select brdok || '#' from fmk.fakt_doks where brdok = '00048/S '
Izmjenjeno od Ernad Husremović prije više od 14 godina
interesantno je kako će se ponašati u slučaju da stavim
select brdok || '#' from fmk.fakt_doks where brdok = '00048'
daće mi samo zapis 00048, neće 00048/S što je za nas dobro
Izmjenjeno od Ernad Husremović prije više od 14 godina
Izmjenjeno od Ernad Husremović prije više od 14 godina
hmmm rpad je jedino rješenje.
Samo sa njim možemo biti sigurni da ćemo string željene dužine:
select rpad(idfirma,2) || rpad(idtipdok,2) || rpad(brdok,8) || '#' from fmk.fakt_doks where brdok = '00048'
Izmjenjeno od Ernad Husremović prije više od 14 godina
izgleda da samo char(x) radi padding http://wiki.postgresql.org/wiki/FAQ
VARCHAR(n) varchar size specifies maximum length, no padding CHAR(n) bpchar blank-padded to the specified fixed length TEXT text no specific upper limit on length
Izmjenjeno od Ernad Husremović prije više od 14 godina
ali ni to
create table test (id char(10), naz char(20));
insert into test(id, naz) values('a', 'anaz');
insert into test(id, naz) values('b ', 'bnaz ');
select id || naz from test;
select spaja stringove
"aanaz" "bbnaz"
Izmjenjeno od Ernad Husremović prije više od 14 godina
postgresql uopšte ne gleda na padding space-ove kod karakternih polja
Izmjenjeno od Ernad Husremović prije više od 14 godina
- Naslov promijenjeno iz F18, update_rec_server_and_dbf, ne osvježava podatke kroz semafore u F18, update_rec_server_and_dbf, ne osvježava podatke kroz semafore, sql padding
Izmjenjeno od Saša Vranić prije više od 14 godina
Rješenje pronašao u funkciji
rpad( brdok, 2, ' ' )
Izmjenjeno od Ernad Husremović prije više od 14 godina
Saša Vranić je napisao/la:
Rješenje pronašao u funkciji
[...]
dovoljno je rpad(brdok, 2)
Izmjenjeno od Ernad Husremović prije više od 14 godina
na fakt_azuriranje imamo alltrim:
_tmp_id := record["id_firma"] + record["id_tip_dok"] + ALLTRIM( record["br_dok"] )
Izmjenjeno od Ernad Husremović prije više od 14 godina
ima/nema navodnika:
"{101000045,"101000045 ","101000044/S ","101000044 ",101000045/S,"101000045/S ",101000047,"101000047 ",101000048,"101000048 ",101000047/S,"101000047/S ",101000048/S,"101000048/S ",101000049,101000050,"101000050 ","101000049 ",101000050/S,"101000050/S "}"
u azur nema
u update_rec ... pravi navodnike
Izmjenjeno od Ernad Husremović prije više od 14 godina
isti dokument 00559 prvo je napravio azur, pa onda update_rec_server_and_dbf:
"{"101000017 ",101000558,101000559,"101000559 "}"
Izmjenjeno od Ernad Husremović prije više od 14 godina
ažuriram dokument:
hernad@macan:~/github/F18_knowhow$ cat F18.log | grep ids
push ids: fakt_doks / (array): 1 / 101000560 ; push ids: fakt_doks2 / (array): 1 / 101000560 ; push ids: fakt_fakt / (array): 1 / 101000560 ;
Izmjenjeno od Ernad Husremović prije više od 14 godina
sada imam navodnike i u ažuriranju kada sam izbacio alltrim
"{"101000560 "}"
Izmjenjeno od Ernad Husremović prije više od 14 godina
nakon c-V ispravka broja fiskalnog računa:
push ids: fakt_doks / (array): 1 / 101000560 ;
Izmjenjeno od Ernad Husremović prije više od 14 godina
i dalje je isti broj:
"{"101000560 "}"
zato što je i funkcija ažuiranja i update_rec proslijedila identičan ids. tako i treba
Izmjenjeno od Ernad Husremović prije više od 14 godina
- % završeno promijenjeno iz 0 u 90
vsasa mi je preko telefona rekao da sumnja na sql_where_block funkciju ....
ta funkcija se koristi za formiranje SQL where izraza kod odabira polaj. taj izraz nema direktnu vezu sa formiranjem ids-ova
Izmjenjeno od Saša Vranić prije više od 14 godina
bildao jutros f18 zadnju verziju za windows i postavio kod željke, dobila je sve jučerašnje dokumente
Izmjenjeno od Ernad Husremović prije više od 14 godina
otvori build ticket dodijeli Emiru da i on to uradi
Izmjenjeno od Ernad Husremović prije više od 14 godina
Saša Vranić je napisao/la:
bildao jutros f18 zadnju verziju za windows i postavio kod željke, dobila je sve jučerašnje dokumente
poseban ticket treba biti
Izmjenjeno od Ernad Husremović prije više od 14 godina
Ernad Husremović je napisao/la:
Saša Vranić je napisao/la:
bildao jutros f18 zadnju verziju za windows i postavio kod željke, dobila je sve jučerašnje dokumente
poseban ticket treba biti
sve one operacije što su juče rađene mogle su i trebale ići na taj ticket
Izmjenjeno od Ernad Husremović prije više od 14 godina
Ernad Husremović je napisao/la:
Saša Vranić je napisao/la:
bildao jutros f18 zadnju verziju za windows i postavio kod željke, dobila je sve jučerašnje dokumente
poseban ticket treba biti
ova informacija nema veze sa ovim ticketom
Izmjenjeno od Saša Vranić prije više od 14 godina
naravno, treba ubaciti i u KALK i FIN također one RPAD funkcije
Izmjenjeno od Saša Vranić prije više od 14 godina
Ubacio sam i u FIN i KALK isti fazon kao i kod FAKT-a.
Izmjenjeno od Saša Vranić prije više od 14 godina
Gledam sada ažuriranje finanasija...
Nakon što sam ažurirao dokument u semaforu dobijam ovo:
"{101400000065,"101400000065 1"}"
prvi put bez navodnika a drugi put sa navodnicima - pa čak ima i redni broj (ovo je tabela fin_suban) ?!??
Zašto 2 puta ?
Izmjenjeno od Saša Vranić prije više od 14 godina
očistio sam i fakt i kalk i fin, prepravio opcije semafora commit
Izmjenjeno od Saša Vranić prije više od 14 godina
Sada je update u semafore svuda ok u ovim modulima.
Treba testirati povlačenje na drugoj strani.
Izmjenjeno od Saša Vranić prije više od 14 godina
- Status promijenjeno iz Novo u Zatvoreno
- % završeno promijenjeno iz 90 u 100
Ovo je testirano u petak, testirao sam između vzeljka i vsasa user-a. Sada je ok.