BC 14 - Steuerzeichen im String beim Einfügen in BC

7. Juni 2021 09:00

Guten Tag,

dadurch, dass viele Felder mit Hilfe der Copy & Paste Variante gefüllt werden, werden teilweise für BC unbekannte Zeichen mit eingefügt.
Diese Steuerzeichen werden dann zwar nicht angezeigt, aber sie sind vorhanden. Weiterergehend führt das dann zu einem Problem bei der Verarbeitung der Daten mit zum Beispiel SQL.

Aktuell bin ich auf der Suche nach einem Weg Steuerzeichen direkt beim Einfügen herauszufiltern, konnte aber bei meiner bisherigen Recherche nicht auf passende Ergebnisse stoßen.
Ich hoffe, dass mir hier eventuell jemand helfen kann.

Vielen dank im Voraus!

Mit freundlichen Grüßen,
Marcel

Re: BC 14 - Steuerzeichen im String beim Einfügen in BC

7. Juni 2021 09:19

hi,

das hier sollte helfen:
https://dynamicsuser.net/nav/f/developers/50363/delete-all-the-special-characters-from-a-string

Re: BC 14 - Steuerzeichen im String beim Einfügen in BC

7. Juni 2021 14:37

Danke für die Lösung, das wäre ja schon ein Ansatz. Allerdings brauche ich sehr viele Sprachen, sodass eine Whitelist sehr lang werden würde.
Gibt es eventuell etwas aus dem Standard? Vielleicht eine Feldeigenschaft, eine Funktion oder etwas ähnliches für das Problem?

Re: BC 14 - Steuerzeichen im String beim Einfügen in BC

7. Juni 2021 16:07

Hallo,

grundsätzlich sollten Sonderzeichen mit Cut&Paste in den neueren NAV/BC- Versionen kein Problem mehr bedeuten, wohl aber, wenn sie von NAV5 oder NAV2009 CC her aktualisiert wurden.

Daher brauchst du wahrscheinlich eher ein Tool wie FieldCheck(Mibuso) um die vorhandenen Felder zu prüfen und zu korrigieren.

Um das generell zu unterbinden, gibt es für die alten Versionen einen Hack, der in Codeunit 1 das einfügen von Sonderzeichen unterbindet http://www.msdynamics.de/viewtopic.php?f=68&t=37354&p=144363#p144363 (Danke an Timo)
evtl. kann man das auch in den neuen Versionen anpassen, falls es doch noch nötig sein sollte.

Gruß Fiddi

Re: BC 14 - Steuerzeichen im String beim Einfügen in BC

8. Juni 2021 09:23

fiddi hat geschrieben:Um das generell zu unterbinden, gibt es für die alten Versionen einen Hack, der in Codeunit 1 das einfügen von Sonderzeichen unterbindet http://www.msdynamics.de/viewtopic.php?f=68&t=37354&p=144363#p144363 (Danke an Timo)
evtl. kann man das auch in den neuen Versionen anpassen, falls es doch noch nötig sein sollte.

Die Funktion MakeText ist von der Codeunit 1 in die Codeunit 41 gewandert, somit könnte man zumindest in allen Textfeldern die unerwünschten Zeichen löschen.
Wie man der Codeunit 41 auch eine Funktion MakeCode beibringt, die dann auch automatisch bei allen Codefeldern angesprochen wird, ist mir bisher noch nicht bekannt.