Projekat

Općenito

Profil

Akcije

Podrška #26589

Zatvoren

F18, 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.

Status:
Zatvoreno
Prioritet:
Odmah riješiti
Odgovorna osoba:
Saša Vranić
Početak:
09.02.2012
Završetak:
% završeno:

100%

Procjena vremena:

Opis

Problem uočen kod testiranja fiskalnih funkcija

Ako setujem broj veze, kod druge strane se izbriše taj dokument.


Povezani tiketi 4 (0 otvoreno4 zatvorenih)

korelira sa F18 - Greške #26591: semaphores fakt ažuriranjeZatvorenoSaša Vranić09.02.2012

Akcije
korelira sa F18 - Podrška #26599: F18 release 0.9.49ZatvorenoEmir Šator10.02.2012

Akcije
korelira sa F18 - Podrška #26612: Modul FIN, semafori pri ažuriranju 2 puta upišu broj naloga u tabelu semaforaZatvorenoSaša Vranić10.02.2012

Akcije
korelira sa F18 - Podrška #26620: F18 release 0.9.50ZatvorenoEmir Šator10.02.2012

Akcije
Akcije #1

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

Akcije #2

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')
Akcije #3

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 ')
Akcije #4

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     '
Akcije #5

Izmjenjeno od Ernad Husremović prije više od 14 godina

opet dobijam ovaj zapis

Akcije #6

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

Akcije #8

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'
Akcije #9

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

Akcije #10

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" 

Akcije #11

Izmjenjeno od Ernad Husremović prije više od 14 godina

postgresql uopšte ne gleda na padding space-ove kod karakternih polja

Akcije #12

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
Akcije #14

Izmjenjeno od Saša Vranić prije više od 14 godina

Rješenje pronašao u funkciji

rpad( brdok, 2, ' ' )
Akcije #15

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)

Akcije #16

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"] )
Akcije #17

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

Akcije #18

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   "}" 
Akcije #19

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    ;

Akcije #20

Izmjenjeno od Ernad Husremović prije više od 14 godina

sada imam navodnike i u ažuriranju kada sam izbacio alltrim

"{"101000560   "}" 

Akcije #21

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    ;

Akcije #22

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

Akcije #23

Izmjenjeno od Ernad Husremović prije više od 14 godina

  • % završeno promijenjeno iz 0 u 90

alltrim izbačen commit

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

Akcije #24

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

Akcije #25

Izmjenjeno od Ernad Husremović prije više od 14 godina

otvori build ticket dodijeli Emiru da i on to uradi

Akcije #26

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

Akcije #27

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

Akcije #28

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

Akcije #29

Izmjenjeno od Saša Vranić prije više od 14 godina

naravno, treba ubaciti i u KALK i FIN također one RPAD funkcije

Akcije #30

Izmjenjeno od Saša Vranić prije više od 14 godina

commit

Ubacio sam i u FIN i KALK isti fazon kao i kod FAKT-a.

Akcije #31

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 ?

Akcije #32

Izmjenjeno od Saša Vranić prije više od 14 godina

očistio sam i fakt i kalk i fin, prepravio opcije semafora commit

Akcije #33

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.

Akcije #34

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.

Akcije

Također dostupno kao Atom PDF