21. april 2004 - 06:48Der er
9 kommentarer og 7 løsninger
Fejl i RecId i Xal
Efter Pre-Insert tildeles en ny post en RecId. Hvordan bliver de defineret? Jeg har fået problemet, at den er gået i gang med at genbruge gamle RecId'er på OrdrePost, idet andre kartoteker bruger OrdreRecId.
Hvordan får jeg RecId til at fortsætte i en anden nummerserie? Jeg synes ikke at kunne se, at RecId er predefineret før Pre-Insert.
RecId tildeles suverænt af databasen når posten er indsat og er et internt database-løbenummer som du aldrig kan få kontrol over, så det må du glemme. Hvis du laver ting som bruger RecId, SKAL du sørge for at rydde op efter dig hvis den recid som referencer knytter sig til bliver slettet. Det gælder f.eks. notatkartoteket, som knytter sig til en post v.hj.a. kartotekets fileid og postens recid.
Desuden er det vigtigt at du på kartoteksfelter som indeholder recid referencer sætter referencekartoteket til Common og referencefeltet til RecId, ellers får du problemer når/hvis du laver en ex-/import af databasen (formindske databasen), idet der tildeles komplet nye recid's ved import!!
Og dermed har du løsningen :-) Prøv en eksport/import (husk backup). Det vil rydde op i dine RecId og mske få dig videre - det er ikke sådan at en eller anden har lavet lidt tilretninger, hvor der pilles i RecId? Set før med ret katastrofale konsekvenser.
I det konkrete tilfælde er der på een ordre lagt een linie ind og ordren afsluttes. Derfor indlægges en ny linie på en eksisterende ordre, som her får samme RecId som den linie, der blev lagt ind før.
Det kunne have været fremgangsmåden, men hvis systemet ikke kan håndtere RecId'erne mere, er det jo svært ???
Problemet fremkommer inde i en specialtilretning af ordrestyklisten.
Problemstillingen er den samme, og det er stadig fordi systemer genbruger de slettede recid's. I dette tilfælde rammer du sammen med det nummer som lige er slettet. Jeg kender godt problemet og det er meget vigtigt som dma siger, at få ryddet op i notater mv. som er tilknyttet recid.
Du siger, at vi rammer sammen med det nummer, som lige er slettet. Det var ikke det, jeg mente. Ordrelinien blev ikke slettet, men ordren afsluttet. Jeg synes, det er noget uforståeligt, at systemet ikke kan gøre det rigtigt!
Jeg ved godt at nogle af spørgsmålene måske virker lidt irriterende, men jeg bliver nødt til at spore mig lidt ind. Er ordrelinien oprettet af samme bruger på samme arbejdsstation?
Det er helt fint med mig! Det var også en overvejelse, jeg havde, og svaret er, at det er de. De er nok også blevet oprettet lige efter hinanden, fordi ordreindlæggeren sprang lidt rundt mellem 2 ordrer.
Prøv at gemme OrdrePost.Løbenummer i referenceposten også. Du skal stadig bruge RecId som reference, men du kan tjekke om løbenummeret har ændret sig. Løbenummer bliver aldrig genbrugt. Samme teknik bruges i forb. med afmærkning i lagermodulet i XAL.
Men jeg ville nok bruge OrdrePost.PostId som referencefelt i stedet for OrdrePost.RecId. PostId stammer fra LagerPost.Løbenummer og bliver derfor heller aldrig genbrugt.
Jeg beklager, at jeg ikke har accepteret svaret på dette spørgsmål. Jeg kan ikke huske, hvordan vi løste det. Sorry.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.