PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Désérialise Chorus pro
Désérialise Chorus pro
Iniciado por OR, nov., 19 2019 4:20 PM - 1 resposta
Membro registado
8 mensagems
Publicado em novembro, 19 2019 - 4:20 PM
Bonjour à tous,
Je travaille actuellement sur la solution de dématérialisation Chorus pro et je cherche à récupérer des factures (en-tête et lignes de facture).





J’ai intégré la bibliothèque de JSON de Chorus et je récupère les données mais je n’arrive pas à désérialiser les tableaux en niveau 3 (ligne poste correspondant à la ligne de facture). Exemple JSON "consulterfacturepar recipiendaire_M8_V0_ouput".

J’ai toujours l’anomalie : le variant n’est pas un objet sur la ligne :
bufRésultat=ResultatAPI.facture.lignesDePoste.lignePoste

Si je limite le buffer à lignesDePoste, je ne peux pas désérialiser et donc envoyer les données dans Windev. Le programme ne retrouve pas les données de ligne.
bufRésultat=ResultatAPI.facture.lignesDePoste







Mon code
ResultatAPI est un JSON <Description="ConsulterFactureParRecipiendaire_M8_V0_outPut">
ResultatAPI = Crestreponse.Contenu
Info(Crestreponse.Contenu)
bufRésultat est un Buffer
bufRésultat=ResultatAPI.facture.lignesDePoste

stListefacture est une structure
lignePosteDenomination est une chaîne
lignePosteMontantHTApresRemise est un monétaire
lignePosteMontantRemiseHT est un monétaire
lignePosteMontantttcApresRemise est un monétaire
lignePosteMontanttva est un monétaire
lignePosteMontantUnitaireHT est un monétaire
lignePosteNumero est un entier
lignePosteQuantite est un numérique
lignePosteReference est une chaîne
lignePosteTauxTvaManuel est un numérique
lignePosteUniteCode est un numérique
lignePosteUniteLibelle est une chaîne
nbResultatsParPageLignesPoste est un numérique
pageCouranteLignesPoste est un numérique
pagesLignesPoste est un numérique
totalLignesPoste est un numérique
FIN

stUnFacture est un stListefacture

tabFacture est un tableau de stListefacture

Désérialise(tabFacture,bufRésultat,psdJSON)

POUR TOUT stUnFacture de tabFacture
TableAjouteLigne(TABLE_LIGNE,stUnFacture.lignePosteNumero,stUnFacture.lignePosteQuantite,stUnFacture.lignePosteMontantttcApresRemise)
FIN


Merci à tous pour votre aide.

Olivier.
Membro registado
6 mensagems
Publicado em janeiro, 27 2020 - 5:32 PM
Bonjour,
j'espère que vous avez réussit à trouver une solution à votre problème.
En fait, je vais entamer très bientôt l'intégration de l'API chorus pro dans mon logiciel de facturation. Là je suis encore un peu perdue vu le flux important des informations un peu partout sur CHORUS, PISTE et PcSoft.
Du coup, je vous serez très reconnaissante si vous pouvez me donner votre adresse Email pour que je puisse vous contacter et savoir de vos retours sur ce travail.
Merci à l'avance et bon courage!