NEWS by Erich Stähli |
SwissSalary 365 | Ignorer e-mail du 10.11.2019 08:00
Veuillez ignorer le courrier d'essai du dimanche matin, 10.11.2019 08:00
Full story
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
Full story
NEWS by Patric Lehmann |
SwissSalary 365 - Mise à jour 15 au 16 mars 2019
Mise à jour de SwissSalary 365 y compris les ajustements ESS
Full story
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
Full story
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
Full story
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.
Full story
NEWS by Erich Stähli |
IncaMail - Version 4.6
IncaMail a publié la nouvelle version 4.6
Full story
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
Full story
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
Full story
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
Full story
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
Full story
NEWS by Erich Stähli |
Dynamics NAV 2018 | SwissSalary NAV est prêt
Les objets SwissSalary NAV pour NAV 2018 sont disponibles.
Full story
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
Full story
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?
Full story
NEWS by Erich Stähli |
Allocations familiales et barèmes impôt à la source 2018
État le 22.12.2017
Full story
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).
Full story
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
Full story
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.
Full story
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
Full story
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
Full story
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.
Full story
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
Full story
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
Full story
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.
Full story
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.
Full story
NEWS by Stephan Grossenbacher |
Envoi des données de l'IS exclusivement avec ELM
IS seulement possible avec ELM, ISEL n'est plus soutenu.
Full story
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'
Full story
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!
Full story

Tech

27 posts

Last post : 10/08/2018

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