MayaLabs Discussion Area

Suomeksi (Finnish only) => MLInvoiceen liittyvä keskustelu => Topic started by: mixakoo on 29.10.20 - klo:10:35

Title: XML ja Postita.fi
Post by: mixakoo on 29.10.20 - klo:10:35
Hei!

Verkkolaskujen lähetys pitäisi ottaa käyttöön.
MLInvoicen asetuksissa valitsin tulostusmallin Finvoice sekä Finvoice tyylillä käyttöön.
Napin painaminen aiheuttaa seuraavan sivun latautumisen:

Result XML validation failed:

Fatal 32(3) at 1:43: Unsupported encoding ISO-8859-15

Error 1872(2) at -1:0: The document has no document element.



XML:

1   <?xml version="1.0" encoding="ISO-8859-15"?>
2   <Finvoice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="2.01" xsi:noNamespaceSchemaLocation="Finvoice2.01.xsd">
3     <SellerPartyDetails>
4       <SellerPartyIdentifier>

Mitähän tälle asialle pitäisi tehdä? Olettaakseni siis tämän pitäisi tarjota ladattavaksi .XML tiedostoa?

Kun tämä saadaan toimimaan, mikä on kätevin tapa siirtää lasku verkkolaskuksi Postita.fi palveluun?
Nyt yritin kopioida tuosta sivulta nuo kaikki "oleelliset" kentät eli riviltä 1. alkaen poistaen rivinumerot ja tallentaen dokumentin lasku.xml nimellä, mutta postita.fi ei hyväksy sitä ladattavaksi palvelimelle.

Kiitos paljon neuvoista ja vinkeistä etukäteen!
Title: Re: XML ja Postita.fi
Post by: Ere Maijala on 01.11.20 - klo:13:26
Hei!

MLInvoice yrittää tarkistaa tuotetun XML-tiedoston, jotta se on varmasti Finvoice-määrityksen mukainen. Ongelmia voi tulla esim. puuttuvista tai liian pitkistä kentistä, joten tämä on tärkeä vaihe Finvoice-sanoman luonnissa. Ilmeisesti käytössä olevan järjestelmän libxml2-kirjasto ei tue Finvoicessa käytettävää ISO-8859-15 -merkistökoodausta. Mikähän käyttöjärjestelmä mahtaa olla? En nyt äkkiseltään keksi mitään tapaa kiertää ongelmaa. Validoinnin voi toki koodia muokkaamalla poistaa käytöstä, mutta sitä en suosittele. ISO-8859-15 on ainoa Finvoice-sanomissa sallittu merkistö, joten siihen ei pysty vaikuttamaan.

Sitten kun Finvoice toimii, niin ohje Postita.fi:n käyttöönottoon löytyy tuolta MLInvoicen ohjeista: https://www.labs.fi/mlinvoice_usage.php#postitafi
Title: Re: XML ja Postita.fi
Post by: mixakoo on 04.11.20 - klo:09:41
Kyselen siis asiaa tuolta palveluntoimittajan puolelta merkistön suhteen.

Olisiko Ere mahdollista laittaa tuo luotu virheellinen XML sähköpostilla, jos kykenisit tulkitsemaan siitä, missä kentässä teen virheen?
Title: Re: XML ja Postita.fi
Post by: mixakoo on 04.11.20 - klo:12:51
Voisin myös testimielessä koittaa tuota validoinnin poistamista, se voisi helpottaa virheenhakua.
Missä tämä tehdään?
Title: Re: XML ja Postita.fi
Post by: Ere Maijala on 04.11.20 - klo:22:38
Tarkennetaan vielä, ettei XML:ssä välttämättä ole mitään vikaa, vaan käyttöjärjestelmän XML-kirjasto ei vaan pysty tarkistamaan sitä, koska se ei tue ISO-8859-15 -merkistöä.

Saat validoinnin pois muuttamalla invoice_printer_finvoice.php:sta rivin 51, joka näyttää tältä:

        parent::transform('create_finvoice.xsl', 'Finvoice.xsd');

muotoon:

        parent::transform('create_finvoice.xsl');

Tuon jälkeen pitäisi Finvoice-xml:n luonnin onnistua.
Title: Re: XML ja Postita.fi
Post by: mixakoo on 02.12.20 - klo:14:16
No joo, ohitin tuon validoinnin, niin xml tulostui, ja sen sai siirrettyä postita.fi palveluun sellaisenaan. Oli täysin toimiva, mutta tosiaan ääkköset menivät sellaisina erikoisina kaksimerkkisinä palikkoina. Eli tämän kun onnistuisi nyt sitten vielä ratkaisemaan
Title: Re: XML ja Postita.fi
Post by: Ere Maijala on 01.01.21 - klo:12:04
Periaatteessa olisi mahdollista tehdä tuo niin, että MLInvoice muodostaa Finvoice-sanoman UTF-8 -merkistöllä, jonka pitäisi olla tuettuna kaikkialla, ja konvertoisi sitten lopputuloksen tuohon vaadittavaan ISO-8859-15 -muotoon. Konversio ei vaan ole ihan niin suoraviivainen, että haluaisin alkaa sitä tekemään ilman allaolevan PHP/XML-toteutuksen tarjoamaa tukea. Saatko mistään selville, tukeeko palvelu PHP:ssa iconv-moduulia? Jos et, niin voin tehdä pienen testiskriptin, jolla voidaan kokeilla toimivuutta.