NAV 2013 uses Unicode internally - but what does this mean for us developers?

mai 22, 2014, 15:27 by Yanik Fahrni

The newest version of Microsoft Dynamics NAV 2013 supports and uses Unicode internally. But what does this mean for our daily live? In this article I want to share with you our experiences and pitfalls when developing SwissSalary for NAV 2013.

Unicode in general

Unicode is the mainly standard today for seamless support for all possible and impossible characters on this planet. From arabic letters to chinese to cidllic to western, unicode eats everything without complaining. So if you need a report containig arabic and japanese characters, unicode is what you want. But of course it is also very usefull for databases. If a database collection is unicode, it supports different languages in the same database. This was not possible before unicode. 

Unicode in NAV 2013

In versions before NAV 2013, the internal encoding was ASCII - a very limited character set, especially for non-western characters. With NAV 2013, the internal encoding is Unicode. This means, if NAV reads a record from the database into the memory, it is stored as Unicode in the memory. This is very important to know!

So, if we use a string value from the memory in an way the encoding matters, we must be aware of the fact that it is Unicode, not ASCII anymore.

Pitfalls

If you have this Code:

MyChar := 'ü';
MyInteger := MyChar; // gets the integer value of the character
MESSAGE(FORMAT(MyInteger));

In Versions prior NAV 2013, you got the Number xxx as the result. This was the ASCII value for the character 'ü'.

In NAV 2013, the same code gives you the number yyy as a result. This is the Unicode value for the letter 'ü'.

In SwissSalary, we need to create a lot of different import/export files with ANSI or UTF8 encoding. We had convertion functions like this:

IntegerValue := InChar;

CASE IntegerValue OF
  255: ConvertedChar := 134;
  256...
END;

EXIT(ConvertedChar);

(Of course, there where COM automations for convertion available before, but we avoided as mutch external components as possible to provide a painless installation of SwissSalary.)

Because NAV 2013 now returns the Unicode Integer Value (and not the ASCII Integer value like in previous versions) our conversion functions do not work anymore: The convertions will be wrong, if the character is converterted at all.

First, we tried to rewrite the function to support the new Unicode values. But hey, Unicode is not limited at all in terms of maximal numbers of characters, and it get's updated every month or two. Do we want to update this for the rest of our developer live by hand? Certainly not.

As NAV2013  supports the .NET framework for all avalable clients (at least server side) we can now take advantage of the convertion functionalities .NET provides. And based on the fact that NAV 2013 is built completly on the .NET framework, we can be shure that it is available and can use ist without worries.

The solution

With the .NET component StreamReader we now can convert Unicode much simpler in NAV 2013. The following code shows how to import a ANSI encode file in NAV:

You can download the demo here.

Conclusion

Unicode in NAV 2013 is a good thing for sure and long overdue. But you have to know what changed inside NAV to get your functions work, escpecially when writing/reading files or streams.

Btw: In XMLPorts, you can define the Encoding in the Properties, so you don't have to use a convertion function.

<screenshot>

And because ASCII and UTF8 are subsets of Unicode, we don't even need to convert those anymore when importing a file!

http://cagle.com/working/080213/singer.gif

http://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/Unicode_logo.svg/220px-Unicode_logo.svg.png



NEWS by Erich Stähli |
La SUVA paie la prime assurance-accidents professionnels pendant la réduction de l'horaire de travail
Réduction de l'horaire de travail: la SUVA verse la prime AAP
plus
NEWS by Pascal Lüthi |
Travail à domicile – nous sommes là pour vous!
Toute l'équipe de SwissSalary travaillera à domicile jusqu'au 19 avril
plus
NEWS by Patric Lehmann |
Réduction de l’horaire de travail
Note sur le manuel Réduction de l’horaire de travail
plus
NEWS by Patric Lehmann |
Nouveaux tarifs: Impôt à la source canton SO
Nouveaux tarifs: Impôt à la source canton SO rétroactivement 01.01.2020
plus
NEWS by Patric Lehmann |
Date de sortie 29 février 2020
Informations importantes sur le fait de sortir à la fin du mois de février d'une année bissextile
plus
NEWS by Erich Stähli |
Impôt à la source canton de Zurich | corrections mineures dans le tarif 2014 (tarif A)
Corrections mineures à l'ancien tarif 2014 du canton de Zurich
plus
NEWS by Erich Stähli |
Impôt à la source Canton du Tessin | Nouveaux barèmes 2020
Nouveaux taux d'imposition à la source pour le canton du Tessin
plus
NEWS by Patric Lehmann |
Clôturer l'année 2019/2020
plus
NEWS by Erich Stähli |
Tarif de l'impôt à la source 2020 sont disponible
Les nouveaux tarifs de l'impôt à la source 2020 sont disponibles dans une première version depuis le 19.12.2019.
plus
NEWS by Erich Stähli |
KLE | SwissSalary transmet le premier rapport d'accident
KLE Management sera mis à votre disposition immédiatement après l'achèvement de la phase pilote.
plus
NEWS by Patric Lehmann |
Nouveaux taux d'imposition à la source canton SH (avec effet rétroactif au 01.01.2019)
Nouveaux taux d'imposition à la source pour les cantons SH et NW avec effet rétroactif au 1er janvier 2019
plus
NEWS by Patric Lehmann |
SwissSalary 365 - Mise à jour 15 au 16 mars 2019
Mise à jour de SwissSalary 365 y compris les ajustements ESS
plus
NEWS by Erich Stähli |
Hotfix 5053.002 | Enquête sur la structure des salaires (ESS 2018)
HOTFIX 5053.002 - Ajustements et corrections à la mise à jour principale 5053.000
plus
NEWS by Erich Stähli |
Dynamics 365 Business Central on-premise - 1ère version SwissSalary disponible
SwissSalary est prêt pour Dynamics 365 Business Central on-premise
plus
NEWS by Patric Lehmann |
Le traitement de fin d'année en 2018 | Le premier traitement de salaire en 2019
Remarques sur le traitement de fin d'année après le dernier traitement de salaires en 2018 et avant le premier traitement de salaire en 2019.
plus
NEWS by Erich Stähli |
IncaMail - Version 4.6
IncaMail a publié la nouvelle version 4.6
plus
NEWS by Erich Stähli |
SwissSalary BAU | Développements pour Dynamics NAV 2018
SwissSalary BAU | Mises à jour techniques de la dernière version NAV 2018 à l'automne 2018
plus
NEWS by Erich Stähli |
Impôt à la source 2018 | Extension des tarifs canton AR
Amélioration des taux d'imposition à la source canton AR
plus
NEWS by Erich Stähli |
Informations préliminaires | Mise à jour pour EasyRapport le 01.03.2018 en soirée
Mise à jour printanière pour SwissSalary EasyRapport
plus
NEWS by Erich Stähli |
SwissSalary Ltd. | Temporairement non disponible par téléphone depuis 14:50
Interruption de téléphone depuis jeudi, le 01.02.2018 14:50
plus
NEWS by Erich Stähli |
Dynamics NAV 2018 | SwissSalary NAV est prêt
Les objets SwissSalary NAV pour NAV 2018 sont disponibles.
plus
NEWS by Erich Stähli |
SwissSalary Hotfix 5052.002 disponible
Correctif pour les employeurs avec des employées soumis impôt à la source du canton GE
plus
NEWS by Erich Stähli |
Êtes-vous prêt pour le premier paiement de salaire en janvier 2018?
Dans les prochains jours, vous effectuerez le premier paiement de salaire pour janvier 2018. Avez-vous ajusté les pourcentages 2018 pour l'assurance sociale suivante?
plus
NEWS by Erich Stähli |
Allocations familiales et barèmes impôt à la source 2018
État le 22.12.2017
plus
NEWS by Erich Stähli |
ISO 20022 | pain.001 | nouvelle interface pour paiement des salaires
SwissSalary est prêt pour le nouveau paiement standard ISO 20022 (pain.001).
plus
NEWS by Erich Stähli |
Enquête structure de salaire ESS | Réaction de OFS
Enquêtre structure de salaire ESS - Nous sommes en train de faire des analyse concernant des erreurs possibles
plus
NEWS by Erich Stähli |
Les barèmes de l'impôt à la source 2017 sont disponibles!
Nous vous prions de vérifier sur notre page d'accueil si il aura des changements dans les prochaines semaines.
plus
NEWS by Erich Stähli |
Impôt à la source canton VD | Communication de tarifs (retour des infos) ELM
Communication de tarifs par ELM - nouvelle façon du retour des infos
plus
NEWS by Stephan Grossenbacher |
Canton Vaud: Augmentation d'allocations familiales dès 1er septembre 2016
Augmentation d'allocations familiales du Canton VD dès 1er septembre 2016
plus
NEWS by Erich Stähli |
Manuel pour Clôturer l'année et ELM sont disponible | ELM-FAQ
Nous sommes en train de mettre à jour le manuel 'ELM'. Entre-temps vous pouvez prendre en aide les manuels précédents.
plus
NEWS by Michela De Feo |
SwissSalary est certifié pour Microsoft Dynamics NAV 2016
CfMD certification (Certified for Microsoft Dynamics) est terminée avec succès pour SwissSalary NAV 2016
plus
NEWS by Yanik Fahrni |
IMPORTANT | il y a changé le barème de l'IS pour SH rétroactif au 01.01.2015
Le canton SH a modifié le 15.07.2015 le barème de l'IS 2015 valable rétroactivement au 01.01.2015
plus
NEWS by Erich Stähli |
MISE À JOUR: Barèmes impôt à la source 2015 sont disponibles
Les barèmes de l'impôt à la source pour 2015 sont disponibles! Nous vous prions de vérifier sur notre page d'accueil si il aura des changements dans les prochaines semaines.
plus
NEWS by Erich Stähli |
Allocations familiales et fonds 2015 | disponible
Il y a plusieurs modifications concernant les allocations familiales et les contributions cantonales CAF-employeur. Dans la zone protégée de notre page d'accueil vous trouvez tous les documents.
plus
NEWS by Stephan Grossenbacher |
Envoi des données de l'IS exclusivement avec ELM
IS seulement possible avec ELM, ISEL n'est plus soutenu.
plus
NEWS by Stephan Grossenbacher |
Mémento concernant la livraison des donées de l'impôt à la source avec la version de swissdec 4.0
Téléchargement du 'mémento concernant la livraison des données selon le système Salaire Standard CH et impôt à la source'
plus
NEWS by Stephan Grossenbacher |
SwissSalary est certifié avec la version 4.0 de swissdec!
Nous sommes heureux de vous annoncer que SwissSalary Ltd. est maintenant certifié avec la version 4.0 de swissdec!
plus