|
| Iniciado por Alain LACLEF, 24,nov. 2018 10:58 - 29 respuestas |
| |
| | | |
|
| |
Miembro registrado 82 mensajes |
|
| Publicado el 24,noviembre 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 . |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 299 mensajes |
|
| Publicado el 24,noviembre 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 ? |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 82 mensajes |
|
| Publicado el 24,noviembre 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. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 334 mensajes |
|
| Publicado el 24,noviembre 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 - |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 82 mensajes |
|
| Publicado el 25,noviembre 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. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 334 mensajes |
|
| Publicado el 25,noviembre 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 - |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 82 mensajes |
|
| Publicado el 26,noviembre 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> |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,noviembre 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 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 26,noviembre 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... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 82 mensajes |
|
| Publicado el 26,noviembre 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! |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 26,noviembre 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) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 26,noviembre 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"> ] |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 26,noviembre 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> ]
|
| |
| |
| | | |
|
| | |
| |
Miembro registrado 953 mensajes |
|
| Publicado el 26,noviembre 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> ]
|
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,noviembre 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. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2 mensajes |
|
| Publicado el 27,noviembre 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 ! |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 82 mensajes |
|
| Publicado el 28,noviembre 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 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2 mensajes |
|
| Publicado el 28,noviembre 2018 - 15:08 |
Oui Alain, c'est toujours intéressant d'avoir différents retours sur de tels projets.
Merci  |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 82 mensajes |
| | |
|
| | |
| |
Miembro registrado 82 mensajes |
|
| Publicado el 01,diciembre 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  Mensaje modificado, 01,diciembre 2018 - 12:19 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 13,diciembre 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 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 17,diciembre 2018 - 18:11 |
Bonjour,
Vous vous compliquez la tâche, j'ai importé le xsd sans souci ! |
| |
| |
| | | |
|
| | |
| |
| Publicado el 17,diciembre 2018 - 18:13 |
| En 22 pas de souci avec le xsd ! |
| |
| |
| | | |
|
| | |
| |
| Publicado el 27,diciembre 2018 - 12:45 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 02,enero 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 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 82 mensajes |
|
| Publicado el 02,enero 2019 - 17:50 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 03,enero 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 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 82 mensajes |
|
| Publicado el 03,enero 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) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 87 mensajes |
|
| Publicado el 07,enero 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 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 07,enero 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 |
| |
| |
| | | |
|
| | | | |
| | |
|