|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Débuté par Alain LACLEF, 24 nov. 2018 10:58 - 29 réponses |
| |
| | | |
|
| |
Membre enregistré 82 messages |
|
Posté le 24 novembre 2018 - 10:58 |
Quelqu'un peut m'aider sous Windev en mode EDI?
1) création XML 2) Requête a effectuer pour envoyer les factures
Merci de votre aide . |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 299 messages Popularité : +16 (16 votes) |
|
Posté le 24 novembre 2018 - 15:13 |
Vous voulez faire quoi ?
Créer un XML. Quel est le modèle attendu ? A partir de quelles données ? Envoyer des factures. Comment ? Sous quel format ? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 82 messages |
|
Posté le 24 novembre 2018 - 16:12 |
Pour Chorus (https://chorus-pro.gouv.fr) : C'est le portail d'envoi de factures dématérialisées de la fonction publique. J'ai un modèle de xml factures. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 329 messages Popularité : +28 (32 votes) |
|
Posté le 24 novembre 2018 - 21:30 |
Noel approchant, y’en a qui y crois encore, on dirait bien
Plus sérieusement, si tu ne commence pas à coder et à nous montrer les bouts de codes qui te posent problème, on pourras pas faire grand chose de plus.
Pour un peu on pourrais croire que tu es un étudiant en prog qui cherche à faire par un autre l’exercice imposé par son prof…
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 82 messages |
|
Posté le 25 novembre 2018 - 08:12 |
Si tu n'as pas interfacé Chorus , tu ne pas pas m'aider, donc pas la peine de répondre n'importe quoi.
Bon Noël quand même. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 329 messages Popularité : +28 (32 votes) |
|
Posté le 25 novembre 2018 - 21:28 |
Je veux bien t’aider, encore faudrait-il voir le bout de code qui te pose problème !
-- ——————————————————————————————————— Ce qui se conçoit bien se code clairement et se débogue facilement...
- Pastiche d’une citation de Nicolas Boileau - |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 82 messages |
|
Posté le 26 novembre 2018 - 06:14 |
Problème 1 : créer un .xml complexe. Le solution semble simple avec les .xsd fournis. Mais on ne peut pas les importer dans le projet : ça plante Windev !!!! les .xsd sont là : http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/ Il y a besoin de UBL_Invoice dans maindoc et des commons .
Problème 2 : requête d'envoi : j'ai trouvé
exemple de xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="" ?> <Invoice xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2" xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:udt="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:aife="urn:AIFE:Facture:Extension"> <cec:UBLExtensions> <cec:UBLExtension> <cec:ExtensionContent> <CategoryCode>A1</CategoryCode> </cec:ExtensionContent> </cec:UBLExtension> </cec:UBLExtensions> <cbc:UBLVersionID>2.1</cbc:UBLVersionID> <cbc:ID>TSTF1004_2016001</cbc:ID> <cbc:IssueDate>2016-08-22</cbc:IssueDate> <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode> <cac:AccountingSupplierParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeName="1">00000000009545</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name>FOURNISSEURTST070</cbc:Name> </cac:PartyName> <cac:PartyLegalEntity> <cbc:RegistrationName>FOURNISSEURTST070</cbc:RegistrationName> <cac:RegistrationAddress> <cbc:StreetName>rue Tabaga</cbc:StreetName> <cbc:CityName>Arnac La Poste</cbc:CityName> <cbc:PostalZone>87016</cbc:PostalZone> <cac:Country> <cbc:IdentificationCode>FR</cbc:IdentificationCode> </cac:Country> </cac:RegistrationAddress> </cac:PartyLegalEntity> </cac:Party> <cac:AccountingContact> <cbc:Telefax>+33234567890</cbc:Telefax> <cbc:ElectronicMail>00000000009545@cpp2017.fr</cbc:ElectronicMail> </cac:AccountingContact> </cac:AccountingSupplierParty> <cac:AccountingCustomerParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeName="1">00000000009561</cbc:ID> </cac:PartyIdentification> <cac:PostalAddress> <cbc:StreetName>1 rue Test</cbc:StreetName> <cbc:CityName>Test</cbc:CityName> <cbc:PostalZone>75000</cbc:PostalZone> <cac:Country> <cbc:IdentificationCode>FR</cbc:IdentificationCode> </cac:Country> </cac:PostalAddress> </cac:Party> </cac:AccountingCustomerParty> <cac:Delivery> <cbc:ID>Z3247</cbc:ID> <cac:DeliveryLocation> <cbc:ID>Z3247</cbc:ID> <cbc:Description>Site numéro 8</cbc:Description> <cac:Address> <cbc:StreetName>2 avenue Charles de Gaulle</cbc:StreetName> <cbc:CityName>Paris</cbc:CityName> <cbc:PostalZone>75008</cbc:PostalZone> <cac:Country> <cbc:IdentificationCode>FR</cbc:IdentificationCode> </cac:Country> </cac:Address> </cac:DeliveryLocation> </cac:Delivery> <cac:PaymentMeans> <cbc:PaymentMeansCode listID="UN/ECE 4461 Subset" listAgencyID="NES" listAgencyName="Northern European Subset" listName="Payment Means">31</cbc:PaymentMeansCode> <cbc:PaymentDueDate>2016-09-21</cbc:PaymentDueDate> </cac:PaymentMeans> <cac:PaymentTerms> <cbc:Note>En cas de retard de paiement, seront exigibles, conformément à l'article L 441-6 du code de commerce, une indemnité calculée sur la base de trois fois le taux de l'intérêt légal en vigueur ainsi qu'une indemnité forfaitaire pour frais de recouvrement de 40 euros</cbc:Note> </cac:PaymentTerms> <cac:TaxTotal> <cbc:TaxAmount currencyID="USD">16.68</cbc:TaxAmount> <cac:TaxSubtotal> <cbc:TaxableAmount currencyID="USD">83.4000</cbc:TaxableAmount> <cbc:TaxAmount currencyID="USD">16.68</cbc:TaxAmount> <cbc:Percent>20</cbc:Percent> <cac:TaxCategory> <cac:TaxScheme> <cbc:TaxTypeCode>TVA DEBIT</cbc:TaxTypeCode> </cac:TaxScheme> </cac:TaxCategory> </cac:TaxSubtotal> </cac:TaxTotal> <cac:LegalMonetaryTotal> <cbc:TaxExclusiveAmount currencyID="USD">83.4000</cbc:TaxExclusiveAmount> <cbc:TaxInclusiveAmount currencyID="USD">100.0800</cbc:TaxInclusiveAmount> <cbc:PayableAmount currencyID="USD">100.0800</cbc:PayableAmount> </cac:LegalMonetaryTotal> <cac:InvoiceLine> <cbc:ID>1</cbc:ID> <cbc:InvoicedQuantity unitCode="EA">1</cbc:InvoicedQuantity> <cbc:LineExtensionAmount currencyID="USD">83.4000</cbc:LineExtensionAmount> <cac:Delivery> <cbc:ID>Z3247</cbc:ID> <cbc:ActualDeliveryDate>2016-07-22</cbc:ActualDeliveryDate> </cac:Delivery> <cac:Item> <cbc:Name>Prestation intellectuelle</cbc:Name> <cac:StandardItemIdentification> <cbc:ID>3243</cbc:ID> </cac:StandardItemIdentification> <cac:ClassifiedTaxCategory> <cbc:Percent>20</cbc:Percent> <cac:TaxScheme> <cbc:TaxTypeCode>TVA DEBIT</cbc:TaxTypeCode> </cac:TaxScheme> </cac:ClassifiedTaxCategory> </cac:Item> <cac:Price> <cbc:PriceAmount currencyID="USD">83.4000</cbc:PriceAmount> <cbc:BaseQuantity unitCode="EA">1</cbc:BaseQuantity> </cac:Price> </cac:InvoiceLine> </Invoice> |
| |
| |
| | | |
|
| | |
| |
Posté le 26 novembre 2018 - 11:21 |
ils n'annoncent pas des trucs sur la 24 pour Chorus ?
-- Roumegou Eric
--- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 940 messages Popularité : +66 (68 votes) |
|
Posté le 26 novembre 2018 - 12:09 |
Roumegou Eric a écrit :
ils n'annoncent pas des trucs sur la 24 pour Chorus ? -- Roumegou Eric --- Cet email a fait l'objet d'une analyse antivirus par AVG. http://www.avg.com bonjour Eric,
Oui La version 24 va permettre de gérer les PDF A-3 , c'est un PDF dans lequel on peu ajouter un fichier XML. Les Factur-X sont justement des fichier PDF A-3 , avec le PDF classique de la facture et en plus un fichier XML , type CII SCRDM D16B qui peu être lue et intégré dans Chorus ( ou dans d'autre système ) La version 24 permet donc d'envoyer vos factures sous ce nouveau format de fichier, mais il vous faudra quand même créer l'export XML au format CII SCRDM D16B de vos factures dans votre logiciel....
Actuellement, ont peu déjà déposer des fichiers XML type CII ou UBL avec les versions actuelle de Windev....
il y a aussi des évolutions sur les certificats... intégrer un certificat dans le WDL pour permettre de signer les factures, çà peu être intéressant... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 82 messages |
|
Posté le 26 novembre 2018 - 13:00 |
Pour Chorus les transmissions API n'ont pas besoin de pdf. Mon problème et de créer le xml. Et je ne sait pas si la 24 corrige les bug de la 23! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 940 messages Popularité : +66 (68 votes) |
|
Posté le 26 novembre 2018 - 14:14 |
rebonjour,
alors vous pouvez voir votre XML comme un simple fichier Texte. Vous découpez les différents éléments de votre XML en petit bloc de chaîne. Vous pouvez faire un prototype de chaque bloc puis utiliser la fonctione ChaineConstruit() Puis vous les concaténez. Vous déclarez une variable buffer et faite un ChaineVersUTF8() dans ce même buffer et un fSauveBuffer() pour créer le fichier XML. Pour les blocs des lignes, faudra faire une boucle sur les différentes lignes de votre facture.
Une exemple de découpage des blocs :
_entete_XML est une chaîne = [
xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2" xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:udt="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:aife="urn:AIFE:Facture:Extension"> ]
// %1 Type de dépôt _type_Facture est une chaîne = [
%1
2.1 ]
// %1 : Numéro de Facture // %2 : Date Facture AAAA-MM-JJ // %3 : Type Facture // %4 : Devise _entete_Facture est une chaîne = [ %1 %2 %3 %4 ]
// %1 : IBAN // %2 : Name // %3 : Registration Name // %4 : Rue // %5 : Ville // %6 : CP // %7 : Code Pays // %8 : Téléphone/Fax // %8 : Email _entete_fournisseur est une chaîne = [
%1
%2
%3
%4 %5 %6
%7
%8 %9
]
// %1 : IBAN // %2 : Rue // %3 : Ville // %4 : CP // %5 : Code Pays _entete_client est une chaîne = [
%1
%2 %3 %4
%5
]
// %1 : Numéro de ligne // %2 : Qte // %3 : Devise // %4 : Total HT Ligne // %5 : numéro de BL // %6 : date livraison // %7 : libelle article // %8 : code article // %9 : Taux TVA //%10 : Type TVA //%11 : Prix Unitaire HT _ligne_facture est une chaîne = [ %1 %2 %4 %5 %6 %7 %8 %9 %10 %11 1 ]
Bien finaliser votre chaine par : '</Invoice>'
_buffer est un buffer _chaine_xml est une chaîne _chaine_xml=_entete_xml
_chaine_xml+=ChaîneConstruit(_type_Facture,"A1") _chaine_xml+=ChaîneConstruit(_entete_Facture,_numero_facture,_date_facture,_type_facture,_devise) ... POUR TOUT _ligne de _lignes_facture _chaine_xml+=ChaîneConstruit(_ligne_facture,... FIN _chaine_xml+="</Invoice>"
_buffer=ChaîneVersUTF8(_chaine_xml) fSauveBuffer(monfichier.xml,_buffer) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 940 messages Popularité : +66 (68 votes) |
|
Posté le 26 novembre 2018 - 14:15 |
ah je crois que le forum n'aime pas trop les déclarations de chaine...
_entete_XML est une chaîne = [
xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2" xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:udt="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:aife="urn:AIFE:Facture:Extension"> ] |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 940 messages Popularité : +66 (68 votes) |
|
Posté le 26 novembre 2018 - 14:15 |
_type_Facture est une chaîne = [ <cec:UBLExtensions> <cec:UBLExtension> <cec:ExtensionContent> <CategoryCode>%1</CategoryCode> </cec:ExtensionContent> </cec:UBLExtension> </cec:UBLExtensions> <cbc:UBLVersionID>2.1</cbc:UBLVersionID> ]
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 940 messages Popularité : +66 (68 votes) |
|
Posté le 26 novembre 2018 - 14:16 |
_entete_Facture est une chaîne = [ <cbc:ID>%1</cbc:ID> <cbc:IssueDate>%2</cbc:IssueDate> <cbc:InvoiceTypeCode>%3</cbc:InvoiceTypeCode> <cbc:DocumentCurrencyCode>%4</cbc:DocumentCurrencyCode> ]
_entete_fournisseur est une chaîne = [ <cac:AccountingSupplierParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeName="1">%1</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name>%2</cbc:Name> </cac:PartyName> <cac:PartyLegalEntity> <cbc:RegistrationName>%3</cbc:RegistrationName> <cac:RegistrationAddress> <cbc:StreetName>%4</cbc:StreetName> <cbc:CityName>%5</cbc:CityName> <cbc:PostalZone>%6</cbc:PostalZone> <cac:Country> <cbc:IdentificationCode>%7</cbc:IdentificationCode> </cac:Country> </cac:RegistrationAddress> </cac:PartyLegalEntity> </cac:Party> <cac:AccountingContact> <cbc:Telefax>%8</cbc:Telefax> <cbc:ElectronicMail>%9</cbc:ElectronicMail> </cac:AccountingContact> </cac:AccountingSupplierParty> ]
_entete_client est une chaîne = [ <cac:AccountingCustomerParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeName="1">%1</cbc:ID> </cac:PartyIdentification> <cac:PostalAddress> <cbc:StreetName>%2</cbc:StreetName> <cbc:CityName>%3</cbc:CityName> <cbc:PostalZone>%4</cbc:PostalZone> <cac:Country> <cbc:IdentificationCode>%5</cbc:IdentificationCode> </cac:Country> </cac:PostalAddress> </cac:Party> </cac:AccountingCustomerParty> ]
_ligne_facture est une chaîne = [ <cac:InvoiceLine> <cbc:ID>%1</cbc:ID> <cbc:InvoicedQuantity unitCode="EA">%2</cbc:InvoicedQuantity> <cbc:LineExtensionAmount currencyID="%3">%4</cbc:LineExtensionAmount> <cac:Delivery> <cbc:ID>%5</cbc:ID> <cbc:ActualDeliveryDate>%6</cbc:ActualDeliveryDate> </cac:Delivery> <cac:Item> <cbc:Name>%7</cbc:Name> <cac:StandardItemIdentification> <cbc:ID>%8</cbc:ID> </cac:StandardItemIdentification> <cac:ClassifiedTaxCategory> <cbc:Percent>%9</cbc:Percent> <cac:TaxScheme> <cbc:TaxTypeCode>%10</cbc:TaxTypeCode> </cac:TaxScheme> </cac:ClassifiedTaxCategory> </cac:Item> <cac:Price> <cbc:PriceAmount currencyID="%3">%11</cbc:PriceAmount> <cbc:BaseQuantity unitCode="EA">1</cbc:BaseQuantity> </cac:Price> </cac:InvoiceLine> ]
|
| |
| |
| | | |
|
| | |
| |
Posté le 26 novembre 2018 - 17:06 |
il manque i<nvoive> non ?
merci pour le boulot, je vais essayer .
j'avais essayer avec les instructions xml windev, mais quand un regarde le fichier sauvé tout est sur une ligne. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 messages |
|
Posté le 27 novembre 2018 - 10:47 |
Bonjour,
Je travaille également aussi sur ce projet pour transmettre les factures vers CHORUS. Je crée un fichier XML en suivant la norme UBL (Universal Business Language : http://docs.oasis-open.org/ubl/os-UBL-2.1/UBL-2.1.html) Pour m'aider, j'ai pris l'un des exemples au format XML vu qu'il est impossible d'importer le XSD. Pour pouvoir générer des balises avec le préfixe "cac:" par exemple, il est nécessaire de l'ajouter manuellement dans la chaîne de description. Par exemple :
Procedure PRIVÉE GénérerNoeudXML_PartyDelivery() : xmlNoeud
objDelivery est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery" objDeliveryID est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cbc:ID" objDeliveryLocation est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation" objDeliveryLocationID est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cbc:ID" objDescription est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cbc:Description" objAddress est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cac:Address" objStreetName est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cac:Address.cbc:StreetName" objAdditionalStreetName est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cac:Address.cac:AdditionalStreetName" objCityName est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cac:Address.cbc:CityName" objPostalZone est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cac:Address.cbc:PostalZone" objCountry est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cac:Address.cac:Country" objCountryIdentificationCode est un xmlNoeud,Description="UBL-Invoice-2.1.Invoice.cac:Delivery.cac:DeliveryLocation.cac:Address.cac:Country.cbc:IdentificationCode"
objDeliveryID..Texte=NumériqueVersChaîne(:m_nPartyIdentification,"014d") Ajoute(objDelivery,objDeliveryID)
objDeliveryLocationID..Texte=objDeliveryID..Texte Ajoute(objDeliveryLocation,objDeliveryLocationID) objDescription..Texte=:m_sPartyName Ajoute(objDeliveryLocation,objDescription)
SI :m_tLignesAdresse..Occurrence>=1 _ET_ :m_tLignesAdresse[1]>"" ALORS objStreetName..Texte=:m_tLignesAdresse[1] Ajoute(objAddress,objStreetName) FIN SI :m_tLignesAdresse..Occurrence>=2 _ET_ :m_tLignesAdresse[2]>"" ALORS objAdditionalStreetName..Texte=:m_tLignesAdresse[2] Ajoute(objAddress,objAdditionalStreetName) FIN
objCityName..Texte=:m_sCityName Ajoute(objAddress,objCityName) objPostalZone..Texte=:m_sPostalZone Ajoute(objAddress,objPostalZone)
objCountryIdentificationCode..Texte=:m_sCountryCode Ajoute(objCountry,objCountryIdentificationCode) Ajoute(objAddress,objCountry)
Ajoute(objDeliveryLocation,objAddress)
Ajoute(objDelivery,objDeliveryLocation)
RENVOYER objDelivery
J'utilise un ensemble de classes faites maison pour faciliter la génération de tout ça. Je regroupe tout ça dans un objet de type xmlDocument qui est ensuite sauvegardé dans un fichier XML.
Après, la version texte de Christophe fonctionne certainement tout aussi bien comme l'objectif est uniquement de générer le XML.
La version 24 de WinDev arrivera trop tard vu que nous sommes censé le faire fonctionner dès le 1er janvier 2019.
En espérant que cela puisse aider
Bon courage ! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 82 messages |
|
Posté le 28 novembre 2018 - 12:52 |
Merci Etienne. Oui, ça va aider !!!
Etienne et Christophe Vu le boxif Chorus, j'ai commandé la 24 un compte rendu vous intéresse?
Merci pour votre aide |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 messages |
|
Posté le 28 novembre 2018 - 15:08 |
Oui Alain, c'est toujours intéressant d'avoir différents retours sur de tels projets.
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 82 messages |
| | |
|
| | |
| |
Membre enregistré 82 messages |
|
Posté le 01 décembre 2018 - 12:17 |
Merci les gars je commence à y voir plus plus clair
tous le monde : je vous tiens au courant de mes avancés avec le ST.
@Christophe J'essaye ta méthode
@Etienne Je ne suis pas familiarisé avec XML et les classes Pourrais-tu me faire un mini-projet avec tout ça ???? Ce serait cool (Bourgogne ou Bordeaux !!!!!!!!!!!!!!!!!!!!)
Un gros merci pour votre aide Message modifié, 01 décembre 2018 - 12:19 |
| |
| |
| | | |
|
| | |
| |
Posté le 13 décembre 2018 - 16:54 |
Bonjour aux développeurs de ce forum,
Merci pour votre aide qui m'a fait gagner du temps sur ce développement. Pour contourner le problème d'importation du xsd, en ce qui me concerne, j'ai importé un xml, celui-ci en l'occurence : UBL-Invoice-2.1-Example.xml (dans la doc Oasis).
Cordialement,
Greg |
| |
| |
| | | |
|
| | |
| |
Posté le 17 décembre 2018 - 18:11 |
Bonjour,
Vous vous compliquez la tâche, j'ai importé le xsd sans souci ! |
| |
| |
| | | |
|
| | |
| |
Posté le 17 décembre 2018 - 18:13 |
En 22 pas de souci avec le xsd ! |
| |
| |
| | | |
|
| | |
| |
Posté le 27 décembre 2018 - 12:45 |
| |
| |
| | | |
|
| | |
| |
Posté le 02 janvier 2019 - 16:46 |
bonjour Lorsque vous avez fait les tests, vous avez utiliser un certificat de test ou un certificat de production? si oui, vous pouvez me dire ou vous avez pris le certificat.
cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 82 messages |
|
Posté le 02 janvier 2019 - 17:50 |
| |
| |
| | | |
|
| | |
| |
Posté le 03 janvier 2019 - 09:01 |
bonjour merci Alain.
Je sais que je commence le projet tard, mais est ce que quelqu’un aurait tout le code pour convertir la facture en xml et l'exporter vers chorus.
merci d'avance. cordialement |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 82 messages |
|
Posté le 03 janvier 2019 - 10:34 |
SI OuiNon(1,"Alimenter Chorus") =2 RETOUR fSupprime(EXPRESS_Paramètres.RepChorus+"\Data\*.*",frVersCorbeille) nCptLigne est un entier wSIRET est une chaîne _MonXML est une chaîne _entete_XML est une chaîne = [ xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:udt="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cec="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:aife="urn:AIFE:Facture:Extension"> ] _type_Facture est une chaîne = [ %1 2.1 ]
_entete_Facture est une chaîne = [ %1 %2 %3 %4 %5 ]
_entete_fournisseur est une chaîne = [ %1 %2 %3 %4 %5 %6 %7 %8 %9 ] _entete_client est une chaîne = [ %1 %2 %3 %4 %5 %6 ]
_Livraison est une chaîne=[ %3 %3 %1 %2 %3 %4 FR ]
_Paiement est une chaîne=[ listAgencyID="NES" listAgencyName="Northern European Subset" listName="Payment Means">31 %1 %2 ]
_autres est une chaîne=[ %1 %2 %1 20 TVA DEBIT %1 %3 %3 ]
_ligne_facture est une chaîne = [ %1 %2 %4 %5 %6 %7 %8 %9 %10 %11 1 ] POUR iFacture = 1 _À_ TableOccurrence(TABLE_EXPRESS_Facture) SI TABLE_EXPRESS_Facture[iFacture].COL_Selectionnée=Faux CONTINUE HLitRecherche(EXPRESS_Facture,IDFacture,TABLE_EXPRESS_Facture[iFacture].COL_IDFacture) _MonXML=_entete_XML // %1 Type de dépôt _MonXML+= RC+ ChaîneConstruit(_type_Facture,"A1") // %1 : Numéro de Facture // %2 : Date Facture AAAA-MM-JJ // %3 : Type Facture // %4 : Devise // %5 : 'engagement juridique _MonXML+= RC+ ChaîneConstruit(_entete_Facture,EXPRESS_Facture.NumFact,DateVersChaîne(EXPRESS_Facture.DateFacture,"AAAA-MM-JJ"),380,"EUR",EXPRESS_Facture.NumFact) // %1 : SIRET // %2 : Name // %3 : Registration Name // %4 : Rue // %5 : Ville // %6 : CP // %7 : Code Pays // %8 : Téléphone/Fax // %8 : Email SI SociétéEXPRESS="EIS" _MonXML+= RC+ ChaîneConstruit(_entete_fournisseur,"38836792200019","EIS","","26, rue Simart","Paris","75018","FR","","") SINON _MonXML+= RC+ ChaîneConstruit(_entete_fournisseur,"50077078900021","Hygie","","122 Rue du Faubourg Saint-Honoré","Paris","75008","FR","","") FIN // %1 : ID // %2 : Rue // %3 : Ville // %4 : CP // %5 : Code Pays // %6 : Code service HLitRecherche(EXPRESS_CLIFAC$,SIRET,EXPRESS_Facture.SIRET) SI EXPRESS_CLIFAC$.Siret_facturation="" ALORS wSIRET=EXPRESS_CLIFAC$.SIRET SINON wSIRET=EXPRESS_CLIFAC$.Siret_facturation FIN _MonXML+= RC+ ChaîneConstruit(_entete_client,wSIRET,EXPRESS_Facture.Adr1+" "+EXPRESS_Facture.Adr2+" "+EXPRESS_Facture.Adr3,... EXPRESS_Facture.Ville,EXPRESS_Facture.CP,"FR",EXPRESS_CLIFAC$.CodeService) // % lieu,adresse,ville,cp _MonXML+= RC+ ChaîneConstruit(_Livraison,EXPRESS_Facture.RS,EXPRESS_Facture.Adr1,EXPRESS_Facture.Ville,EXPRESS_Facture.CP)
// %1 // %2 SI (EXPRESS_Facture.DateEcheance) <>"" ALORS _MonXML+= RC+ ChaîneConstruit(_Paiement,DateVersChaîne(EXPRESS_Facture.DateEcheance,"AAAA-MM-JJ"),"Mes Commentaires factures") SINON _MonXML+= RC+ ChaîneConstruit(_Paiement,DateVersChaîne(DateSys(),"AAAA-MM-JJ"),"Mes Commentaires factures") FIN // %1 montant taxes // %2 montant ht // %3 total TTC _MonXML+= RC+ ChaîneConstruit(_autres,EXPRESS_Facture.TVA,EXPRESS_Facture.HT,EXPRESS_Facture.TTC) HFiltre(EXPRESS_FactureLigne,IDFacture,EXPRESS_Facture.IDFacture,EXPRESS_Facture.IDFacture) HLitPremier(EXPRESS_FactureLigne,IDFacture,hBlocageNon) //HLitSuivant(EXPRESS_FactureLigne,IDFacture,hBlocageNon) TANTQUE PAS HEnDehors(EXPRESS_FactureLigne) ET EXPRESS_FactureLigne.IDFacture=EXPRESS_Facture.IDFacture nCptLigne++ // %1 : Numéro de ligne // %2 : Qte // %3 : Devise // %4 : Total HT Ligne // %5 : numéro de BL // %6 : date livraison // %7 : libelle article // %8 : code article // %9 : Taux TVA //%10 : Type TVA //%11 : Prix Unitaire HT _MonXML+= RC+ ChaîneConstruit(_ligne_facture,nCptLigne,EXPRESS_FactureLigne.Qte,"EUR",EXPRESS_FactureLigne.HT,"BL",... DateVersChaîne(EXPRESS_Facture.DateFacture,"AAAA-MM-JJ"),... EXPRESS_FactureLigne.Lib,"","20","TVA DEBIT",EXPRESS_FactureLigne.PU) HLitSuivant(EXPRESS_FactureLigne,IDFacture,hBlocageNon) FIN HDésactiveFiltre(EXPRESS_FactureLigne) _MonXML+=RC + "" _MonBuffer est un Buffer= ChaîneVersUTF8(_MonXML) fSauveBuffer(EXPRESS_Paramètres.RepChorus+"\Data\"+EXPRESS_Facture.IDFacture+".xml",_MonBuffer) FIN
fCopieFichier(EXPRESS_Paramètres.RepChorus+"\Zip\chorus*.tar.gz",EXPRESS_Paramètres.RepChorus+"\Zip\Archive\") fSupprime(EXPRESS_Paramètres.RepChorus+"\Zip\chorus*.tar.gz") ZipChorus est une zipArchive zipCrée(ZipChorus,EXPRESS_Paramètres.RepChorus+"\Zip\chorus "+DateVersChaîne(DateSys(),"AAAA-MM-JJ")+" "+HeureVersChaîne(HeureSys(),"HH-MM-SS" +".tar.gz")) liste est une chaîne=fListeFichier(EXPRESS_Paramètres.RepChorus+"\Data\*.xml",frNonRécursif) POUR TOUTE CHAÎNE sFichier DE liste SEPAREE PAR RC zipAjouteFichier(ZipChorus,sFichier,EXPRESS_Paramètres.RepChorus+"\Data\") FIN //zipAddDirectory(ZipChorus,EXPRESS_Paramètres.RepChorus+"\Data\",Faux,zipRelatif) zipFerme(ZipChorus) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 87 messages |
|
Posté le 07 janvier 2019 - 14:01 |
Bonjour Etienne,
J'utilise une méthode très similaire à la votre mais je rencontre des difficultés à ajouter des attributs dans mes nœuds.
De votre côté, comment vous-y êtes vous pris pour générer des attributs?
--
NR |
| |
| |
| | | |
|
| | |
| |
Posté le 07 janvier 2019 - 15:48 |
Bonjour
gérer tout dans un buffer ecrire dans ce buffer toutes les lignes une par une en codant avec des tabulations en début si nécessaire et des retours chariots à la fin de chaque ligne utiliser fsauvebuffer
attention d'avoir un résultat final en UTF8
bon devs |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|