Jump to content
  • 0

Update FileMaker 19.5… bugje


bigbadwolf

Question

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 to comment

10 answers to this question

Recommended Posts

  • 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!

Edited by Banach
Link to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...