Ga naar inhoud
  • 0

Update FileMaker 19.5… bugje


bigbadwolf

Vraag

We zijn eigenlijk allemaal wel gewend dat we in live data wijzigingen maken… en dat is meestal ook geen enkel probleem.

Als  je echter de update naar 19.5 doet is er wel een puntje waar je rekening mee moet houden.

Bij het aanpassen van de database is het op eieren lopen als je onder macOS werkt en er een gebruiker in de tabel zit die jij wilt bijwerken. Normaal krijg je een melding dat je moet wachten tot de gebruiker uit de tabel gaat… in dit geval laat FileMaker de waarschuwing achterwege en crashed.

Wanneer dit gebeurd, laat de gebruiker(s) controleren of het record waar ze bezig waren wel goed bewaard is.

Programmeer je onder Windows heb je ook een keer een voodeel… daar heb je er geen last van.

Link naar reactie

10 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Zojuist getest en geconstateerd dat dit inderdaad het geval is. Voor de duidelijkheid het is de client waarmee je in de database manager bezig bent welke crasht, niet de server. Er is dan ook geen data verlies voor de gebruikers.

Voorlopig dan nog even versie 19.4.36 hiervoor gebruiken, die heeft deze bug niet.

Dank voor het melden!

aangepast door Banach
Link naar reactie
  • 0

Er is nog een ernstiger bugje: de Quote-functie is gewijzigd. Nou denk je misschien, dat die functie niet belangrijk is of nooit wordt gebruikt, maar dat klopt helaas niet. Ik gebruik deze functie heel vaak (middels een CF, dus indirect) om gegevens in variabelen te stoppen.

Eerst even de bug: De Quote-functie zet tekst in dubbele aanhalingtekens en "escaped" tekens die daarbij voor problemen zorgen, zoals bijvoorbeeld aanhalingekens door daar een backslash ( \ ) voor te zetten. Op een later moment pak je die waarden weer op door de te evalueren met Evaluate() of door de gecreëerde variabele uit te lezen.

Je verwacht dan dat de tekstwaarde exact overeenkomt met datgene dat je er in hebt gestopt. Lijkt logish toch? Helaas geldt dat niet voor CRLF (ook wel Char(10) & Char(13)), want daar wordt na omzetten met Quote() en weer terug met Evaluate() LFLF van gemaakt.

Als je bijvoorbeeld met documenten en base64 encoderen bezig bent, zoals bij het maken van een mime-file om e-mail met html-encodering te versturen, dan wordt met "Base64Encode ( Container )" de binairy omgezet naar de RFC5322 conforme waarde van een base64-string met elk maximaal 80 characters, waarvan de laatste 2 CR en LF zijn. Stop je die nu in een script-result die je vervolgens in een ander script uitleest, dan klopt de inhoud van je bericht niet meer en bij versturen mislukt het plaatsen van de inhoud.

Ter illustratie kan je de volgende formule even proberen:

Let ( [ 
	base64data = Base64Encode ( Container )
] ; 
	base64data = Evaluate ( Quote ( base64data ) )
)

Alle versies t/m 19.4.1 geven als resultaat een 1   ......    19.5.1 geeft een 0

In de Claris Community zijn er diverse topics aan de gewijzigde Quote-functie gewijd. E.e.a. heeft ertoe geleid dat Claris nu versie 19.5.2 snel wil uitrollen.

Zij hebben iets anders willen fixen met deze aanpassing (gaat over het opslaan van een veld met tekst voor een add-on. Dit staat in de ETS lijst, dus ik kan daar helaas geen link naartoe maken), maar hebben daar nogal wat toepassingen mee gecompromiteerd.

Hoe dan ook: mocht je dezelfde soort technieken gebruiken als ik, dus gebruikmaken van Quote(), voor het maken/rondsturen/uitlezen van variabelen met tekst, waar ¶, base64 etc in voorkomt, dan zou ik 19.5.1 even voorbij laten gaan.

Link naar reactie
  • 0
8 hours ago, Marsau said:

Denk je dat deze bug zich ook in de script engine onder FMS 19.5 voordoet? Jouw FMS-monitor gebruikt de Quote-functie ook rijkelijk.

Ja FMS heeft hetzelfde probleem.

Mijn FMS-monitor gebruikt Quote() inderdaad nogal kwistig, maar voor zover ik heb kunnen zien doet alles het gewoon. Het grootste probleem treedt op wanneer de combi Char(10) & Char(13), wordt gebruikt/gmaakt zoals bij base64encode()

Ik zou echter toch wachten op 19.5.2, want er staan nog een paar andere fixes op de rol die daarmee óók worden opgelost. Bijvoorbeeld: importeer maar eens een custom-function met 19.5.1, ik hoop dat die met 19.5.2 wordt opgelost. Dus dat is al 3 major bugs

Link naar reactie
  • 0
Op 29-6-2022 om 22:58, menno zei:

Mijn FMS-monitor gebruikt Quote() inderdaad nogal kwistig, maar voor zover ik heb kunnen zien doet alles het gewoon. Het grootste probleem treedt op wanneer de combi Char(10) & Char(13), wordt gebruikt/gmaakt zoals bij base64encode()

Is er een workaround denkbaar?

(en dan niet downgraden naar 19.4)

Link naar reactie
  • 0

Ik liep tegen problemen aan bij het maken van een mime-bestand om via smtp een html-mailtje te versturen. Mijn uiteindelijk oplossing was om de base64 encoded gegevens in een global te zetten ipv in een variabele in te pakken. Dat werkt voor mij prima.

In de Claris Community kwam Alex Zuiev ergens in 25 e reactie ook met een mooie fix:

Quote
  1. List (
  2.  
  3. Get ( ApplicationVersion ) ;
  4.  
  5. "¶bug:" ;
  6. Quote ( Base64Encode ( 10^80-1 ) ) ;
  7.  
  8. "¶fix:" ;
  9. Substitute (
  10. Quote (
  11. Substitute (
  12. Base64Encode ( 10^80-1 ) ;
  13. Char(10) ; Char(1)
  14. )
  15. ) ;
  16. Char(1) ; Char(10)
  17. )
  18.  
  19. )
  20.  
  21. /* Result:
  22.  
  23. Pro 19.5.1
  24.  
  25. bug:
  26. "OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5¶¶OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk=¶¶"
  27.  
  28. fix:
  29. "OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5¶
  30. OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk=¶
  31. "
  32.  
  33. */

 

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...