| |
Membro registado 123 mensagems |
|
Publicado em abril, 21 2021 - 3:30 PM |
Bonjour
J'ai une classe hybride, c-à-d une classe serveur et navigateur. Du coté serveur je sais parfaitement la sérialiser dans une chaîne. Du coté navigateur je sais parfaitement la désérialiser...
Par contre, du côté navigateur je n'arrive pas à la sérialiser de nouveau. En utilisant la syntaxe suivante coté navigateur (aucune erreur de compilation):
SerBuf is Buffer Serialize(NewMOList,SerBuf,psdJSON) AJAXExecute(ajaxUpdateControls+ajaxSynchronizeServerVariables,MediaObjectAdd,SerBuf)
Je reçois l'erreur suivante pendant l'execution dans Chrome:
Donc le type buffer dans le navigateur semble être le problème... En changeant "SerBuf is Buffer" en "SerBuf is String" j'ai une erreur de compilation sur la syntaxe sérialise...
Qui à pu faire de la sérialisation coté navigateur? Qu'est-ce que je ne vois pas?
Merci d'avance !
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Membro registado 1.603 mensagems |
|
Publicado em abril, 21 2021 - 4:54 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 12:23 PM |
Bonjour François
Merci pour ton retour... OK, j'ai compris que le type buffer n'est pas une option. Alors j'ai relis la doc sur Sérialise en code navigateur et là il est indiqué que dans le code navigateur le paramètre pour Sérialise doit être une chaine.
https://doc.pcsoft.fr/fr-FR/?3013065&name=Serialise
Donc, j'ai changé le code en ce qui-est ci-dessous et maintenant le compilateur me donne une erreur...
SerBuf is string Sérialise(NewMOList,SerBuf,psdJSON) AJAXExecute(ajaxUpdateControls+ajaxSynchronizeServerVariables,MediaObjectAdd,SerBuf)
Un peu bizarre, non?
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 22 2021 - 1:48 PM |
bizarre uniquement si ton code est bien dans une zone de compilation conditionnelle code navigateur. La syntaxe étant différente entre les cotés serveur et navigateur, il faut obligatoirement un <compile if...> pour séparer les cas, autrement, le compilateur te dit à juste titre que ta syntaxe n'est pas compatible avec tous les cas que tu recouvres dans du code mixte |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 2:47 PM |
Argus a écrit :
bizarre uniquement si ton code est bien dans une zone de compilation conditionnelle code navigateur. La syntaxe étant différente entre les cotés serveur et navigateur, il faut obligatoirement un <compile if...> pour séparer les cas, autrement, le compilateur te dit à juste titre que ta syntaxe n'est pas compatible avec tous les cas que tu recouvres dans du code mixte
Merci Argus de réfléchir ensemble avec moi mais, c'est bien le navigateur, non?
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Membro registado 949 mensagems |
|
Publicado em abril, 22 2021 - 2:56 PM |
Coucou,
ChaîneVersJSON ?
https://doc.pcsoft.fr/?1000024531&name=chaineversjson_fonction --- #lapiraterienestjamaisfinie |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 22 2021 - 3:42 PM |
haa...
donc le code en question n'est PAS dans la classe hybride...
Autre possibilité : est ce que ton projet est en UNICODE par défaut ? Si oui, il faut déclarer la chaine buffer en ANSI, d'après la doc SerBuf is string la déclarerait en unicode |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 4:01 PM |
Charly CANDO a écrit :
Merci Charly mais il faut faire la sérialisation de la classe navigateur...
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 4:13 PM |
Hello,
J'ai aussi ouvert un ticket auprès le support avec référence ST/G068145 car selon la doc cela devrait fonctionner. Il serait quand même impossible que je suis le seul qui veut sérialiser des choses en code navigateur?
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 5:06 PM |
Bref, j'ai trouvé le soucis. ==> Un bug de WX en effet...
- Tous mes projets sont en Unicode (quel développeur sérieux fait encore des nouveaux projets en ANSI depuis 10 ans?) - La fonction Sérialise ne fonctionne qu'avec des chaînes ANSI en code navigateur - Du côté navigateur il est impossible de déclarer une chaîne ANSI, juste une chaîne standard (en unicode si la config est unicode) - Donc pour des projets en mode Unicode (c-à-d tous les projets modernes) la fonction Sérialise n'est pas disponible, quoi...
- L'erreur de syntaxe invalide du compilateur sur la fonction Sérialise dans le code navigateur ne s'affiche qu'en mode unicode du projet
Ceci devrait être un bug ! Aujourd'hui pour le développement web on ne peut pas y arriver sans serialisation/desérialisation côté nav et côté serveur pour faire des échanges d'objets, structures etc...
Incroyable...
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 5:58 PM |
Hello,
Le "workaround" que j'ai trouvé (mais qui n'est pas le plus beau) c'est de déclarer une chaine de travail en ANSI dans la section de déclaration de la page et d'utiliser celle là dans la procédure navigateur. Je n'aime pas le 'scoping' de ce variable car il est vraiment local à la procédure navigateur...
Procedure SomePageName(*) GLOBAL TMPSerialiseString is ANSI string
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 5:59 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 6:00 PM |
Ce forum enlève l'attribut [browser synchronised]... Donc:
TMPSerialiseString is ANSI string, browser synchronized
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 6:10 PM |
Et merci à aArgus pour me mettre sur le bon pied... |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 22 2021 - 6:26 PM |
Hello tous
Par contre, je n'arrive pas à le faire fonctionner avec un projet web awp en mode Unicode... Même avec la chaîne déclaré en ANSI string dans la déclaration de la fenêtre et synchronisé avec le navigateur en exécution il y a une erreur du 'WB runtime' du navigateur...
systdem*
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 23 2021 - 9:59 AM |
- Tous mes projets sont en Unicode (quel développeur sérieux fait encore des nouveaux projets en ANSI depuis 10 ans?)
Merde !!! on n'est pas sérieux !!!
sans rire ... j'ai voulu tenter plusieurs fois mais j'ai eu de tels avertissements notamment sur le code de mes classes partagées partout que j'ai laissé tomber.
j'avoue que je mesure mal les incidences et les effets de bord si je voulais quand même le faire
surtout pour quels bénéfices ?
Vos réponses bien sûr m'interessent.
-- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 23 2021 - 10:28 AM |
Roumegou a écrit :
- Tous mes projets sont en Unicode (quel développeur sérieux fait encore des nouveaux projets en ANSI depuis 10 ans?)
surtout pour quels bénéfices ? Vos réponses bien sûr m'interessent.
--
Hello Roumegou
Bénéfices? --> Ouverture à une échelle globale sans contraintes --> Multi-plateforme (Mobile = Unicode car le ANSI n'existe pas) --> Développement Web (UTF8/Unicode est le standard) --> Dévelopement en architecture moderne 'Orientée Service' (SOA) et intégrations de parties en cloud --> Aucune de mes solutions sont des solutions isolées mais s'intègrent avec des plateformes existantes dont tous sont en Unicode (La plupart d'entre eux a migré entre 2000 et 2010 en unicode). Il n'y a que du vieux brol qui se limite au monde latin/anglophone qui est encore fait en ANSI. --> La plupart de mes solutions sont utilisés dans trois continents, donc aussi avec de charactères chinois, coréen, etc...
Food for thought
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Publicado em abril, 23 2021 - 2:31 PM |
Roumegou a écrit :
- Tous mes projets sont en Unicode (quel développeur sérieux fait encore des nouveaux projets en ANSI depuis 10 ans?)
Ceux qui font des projets pour un marché précis (USA uniquement ou France uniquement par exemple) et qui ne veulent pas doubler toutes les tailles de chaines partout pour rien, que ce soit dans les Bases ou dans les communications. > |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 23 2021 - 3:13 PM |
aArgus a écrit :
Ceux qui font des projets pour un marché précis (USA uniquement ou France uniquement par exemple) et qui ne veulent pas doubler toutes les tailles de chaines partout pour rien, que ce soit dans les Bases ou dans les communications.
Beaucoup d'éditeurs connus de systèmes d'exploitation, de bases de données et systèmes de communications utilisent des standard de compression pour Unicode (comme BOCU-1 ou SCSU) (https://en.wikipedia.org/wiki/Binary_Ordered_Compression_for_Unicode / https://en.wikipedia.org/wiki/Standard_Compression_Scheme_for_Unicode) ce qui veut dire que si ton système unicode utilise pour 99% des caractères à un octet, la sauvegarde et les transferts de données sera pour 99% identique à celui d'un système d'encodage à un octet comme le ANSI...
Mais des que tu intègres des solutions mobiles dans tes projets je ne vois aucun intérêt à rester sur de l'ANSI car là tu n'as simplement pas de choix et même pour le web et les web services rester sur de l'ANSI me ne semble pas une bonne idée afin d'être 'future proof'.
Mais hein, ce n'est que mon opinion bien sûre... Just my 2 cents
-- Peter Holemans www.mcs2.eu www.pixontri.eu |
| |
| |
| | | |
|
| | |
| |
Membro registado 123 mensagems |
|
Publicado em abril, 30 2021 - 4:56 PM |
Support Technique a écrit :
Merci pour ce projet, qui produit bien des erreurs avec la commande Sérialise() en code navigateur. Ces erreurs de compilation sont abusives, car tout est fait pour un fonctionnement correct en exécution. Le problème a bien été pris en charge par les développeurs. Dans l'attente d'un correctif, une solution consiste à encapsuler l'appel de la commande Serialise() dans une procédure. Dans ce cas, cela compile. Voici un exemple de code navigateur mettant en application ce contournement. Vous pourrez le tester dans un bouton Navigateur : // code navigateur wlangage - version 2 EXTERN console myStruct is Structure t is string n is int END st1 is myStruct st1 . t = "Some text" st1 . n = 1 stemp is string __SérialiseJSON ( st1 , stemp ) console . log ( stemp ) PROCEDURE INTERNE __SérialiseJSON ( o , s ) Sérialise ( o , s , psdJSON ) FIN
Solution temporaire fourni par le ST.
Bon WE !
Peter Holemans |
| |
| |
| | | |
|
| | |