Ga naar inhoud
  • 1

record checksum


Ari

Vraag

Ik zoek een handige manier om te checken of een record gewijzigd is voordat hij gecommit is. Get ( modified fields ) gaat niet werken want die werkt pas na een commit. Ik check als een veld wordt gewijzigd met een scripttrigger. Maar stel je typt een letter in een veld en je doet daarna een backspace dan weet ik dat het veld gewijzigd is maar ik weet niet dat de oorspronkelijke waarde er weer in staat en dat wil ik nou weten..

Link naar reactie

7 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Je kan eens proberen een checksum te maken met 

GetContainerAttribute ( <inhoud velden> ; "MD5" )

deze sla je op zodra je een record opslaat. Ben je nu bezig te wijzigen en je wilt een record opslaan dan kan je met Get ( RecordOpenState ) controleren of je überhaupt moet checken of er iets is gewijzigd, voer dan voor de commit in jouw script dezelfde berekening uit en vergelijk die met de opgeslagen waarde.

Link naar reactie
  • 0
2 hours ago, menno said:

GetContainerAttribute ( <inhoud velden> ; "MD5" )

 

Dat kan werken maar 'tis nogal wat om telkens de inhoud van alle velden in een container op te slaan..

 

2 hours ago, hans erik said:

Hoeveel velden zijn het

Het gaat mij erom dat ik weet dat het record daadwerkelijk gewijzigd is dus geltd het voor elk veld. Er wordt een script getriggerd als er een willekeurig veld wordt gewijzigd (behalve globals) waarna de knoppen 'cancel' en 'save' verschijnen. Je kunt vervolgens het record alleen via de knop 'save' opslaan of via 'cancel' reverten. Heb je een veld gewijzigd en toch maar niet dan staat het record nog wel open en moet je een save of cancel actie doen terwijl dat eigenlijk niet nodig is. Beetje overdreven misschien maar als je een record checksum zou hebben kun je dat makkelijk afvangen.

Wordt waarschijnlijk toch iets scripten met globale vars..

Link naar reactie
  • 0

Werkt perfect Menno! Meteen maar even een cf van gemaakt.

Let ([
¬file            =    Get ( FileName ) ;
¬layout       =    Get ( LayoutName ) ;
¬table         =    Get ( LayoutTableName ) ;
¬fields        =    FieldNames ( ¬file ; ¬layout ) ;
¬result        =    GetContainerAttribute ( Evaluate ( ¬table &"::"& Substitute ( ¬fields  ; ¶ ; "&" & ¬table & "::"  ) ) ; "MD5" )
];
¬result
)

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