Errore SDI 200

di il
21 risposte

Errore SDI 200

Non capisco questo errore:

<ListaErrori>
<Errore>
<Codice>00200</Codice>
<Descrizione>File non conforme al formato (nella descrizione del messaggio Ú riportata l’indicazione puntuale della non conformità) : Errore nella parse del file (idSdi 274533724 ): The entity name must immediately follow the '&amp;' in the entity reference.</Descrizione>
<Suggerimento>Verificare che il file inviato sia conforme al formato previsto</Suggerimento>
</Errore>
</ListaErrori>

21 Risposte

  • Re: Errore SDI 200

    Hai messo caratteri non standard dentro le descrizioni delle righe?
  • Re: Errore SDI 200

    Sono degli incompetenti colossali!
    Impongono di usare la codifica UTF-8 ma solo con un sottoinsieme povero dei caratteri ASCII
    e poi nei loro stessi messaggi sbagliano completamente la codifica!

    Se interpreto bene nel campo c'è un "&" (che loro, sbagliando, traducono con '&amp;') ma questo è sbagliato perché quel carattere va usato SOLAMENTE per inserire i caratteri "strani" usanto la codifica HTML (che pare essere supportata).
  • Re: Errore SDI 200

    nicolap ha scritto:


    Sono degli incompetenti colossali!
    Impongono di usare la codifica UTF-8 ma solo con un sottoinsieme povero dei caratteri ASCII
    e poi nei loro stessi messaggi sbagliano completamente la codifica!

    Se interpreto bene nel campo c'è un "&" (che loro, sbagliando, traducono con '&amp;') ma questo è sbagliato perché quel carattere va usato SOLAMENTE per inserire i caratteri "strani" usanto la codifica HTML (che pare essere supportata).
    Che dire? ogni volta che vedo
    della non conformitÃÂ
    mi scappa da ridere.
    L'ipotesi indicata sopra mi sembra assolutamente probabile.
  • Re: Errore SDI 200

    +m2+ ha scritto:


    Hai messo caratteri non standard dentro le descrizioni delle righe?
    Non capisco a quale tag faccia riferimento.
    Io pulisco tutte le stringhe (se non me ne è sfuggita una) da caratteri strani.
    non so come intervenire.

    Che vuol dire entity name?
    quale entity?
  • Re: Errore SDI 200

    jug ha scritto:


    +m2+ ha scritto:


    Hai messo caratteri non standard dentro le descrizioni delle righe?
    >non so come intervenire.

    mi rispondo da me:
    farò una ricerca di quel carattere & (la e commerciale)
    nel file xml
  • Re: Errore SDI 200

    Ho risolto.

    Si trattava di una & commerciale inserita in una anagrafica.

    Recentemente ho fatto modifiche per una grossa ditta che richiede un codice
    e una ragione sociale dei destinatari merce (che sono molti per ogni fattura)
    per ogni riga ddt, inserito nel campo altridatigestionali, riferimento testo.

    La segnalazione di errore dello sdi in questo caso è molto generica.
    non da nè la riga nè la colonna e nemmeno il nome del tag xml.
  • Re: Errore SDI 200

    jug ha scritto:


    non da nè la riga nè la colonna e nemmeno il nome del tag xml.
    per il futuro,
    installa xml notepad, ed apri il file xml con lo stesso,
    ti dirà riga e colonna appena trova un carattere "strano".
  • Re: Errore SDI 200

    [Neapolis] ha scritto:


    jug ha scritto:


    non da nè la riga nè la colonna e nemmeno il nome del tag xml.
    per il futuro,
    installa xml notepad, ed apri il file xml con lo stesso,
    ti dirà riga e colonna appena trova un carattere "strano".
    Si ma va installato presso il cliente, oppure mi faccio spedire il file XML.
    il problema è che certi messaggi d'errore sono incomprensibili per l'utente finale
    e sono difficilmente comprensibili per noi.
    Credo poi che nessuno li abbia tradotti, arrivano da Sdi in quel
    modo per tutti : via pec o via Hub.
  • Re: Errore SDI 200

    Non riesco a capire come mai oggi (19/02/2019) col programma verifica fattura da AE mi dia l'errore 0200 sul carattere € quando nel file XML esce correttamente. In altri casi, invece, non mi dava errore. Per altri caratteri (compresi quelli in tedesco) tutto OK.

    <DettaglioLinee>
    <NumeroLinea>3</NumeroLinea>
    <Descrizione>articolo di prova 43 x € 0.30</Descrizione>
    <PrezzoUnitario>12.90</PrezzoUnitario>
    <PrezzoTotale>12.90</PrezzoTotale>
    <AliquotaIVA>22.00</AliquotaIVA>
    </DettaglioLinee>

    A occhio la conversione dovrebbe essere corretta (COBOL): &#8364
    **********
    IF ELTE-01(IND-1) = "€"
    MOVE "&" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "#" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "8" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "3" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "6" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "4" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE ";" TO ELTE-02(IND-2)
    END-IF
    **************
    A qualcuno è capitato?
  • Re: Errore SDI 200

    mstatus ha scritto:


    Non riesco a capire come mai oggi (19/02/2019) col programma verifica fattura da AE mi dia l'errore 0200 sul carattere € quando nel file XML esce correttamente. In altri casi, invece, non mi dava errore. Per altri caratteri (compresi quelli in tedesco) tutto OK.

    <DettaglioLinee>
    <NumeroLinea>3</NumeroLinea>
    <Descrizione>articolo di prova 43 x € 0.30</Descrizione>
    <PrezzoUnitario>12.90</PrezzoUnitario>
    <PrezzoTotale>12.90</PrezzoTotale>
    <AliquotaIVA>22.00</AliquotaIVA>
    </DettaglioLinee>

    A occhio la conversione dovrebbe essere corretta (COBOL): &#8364
    **********
    IF ELTE-01(IND-1) = "€"
    MOVE "&" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "#" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "8" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "3" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "6" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "4" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE ";" TO ELTE-02(IND-2)
    END-IF
    **************
    A qualcuno è capitato?
    Strano che tu abbia avuto questo problema solo ora !!!

    per la conversione sembra tutto ok,
    immagino che tu abbia in ELTE-01 la stringa in input, e ELTE-02 quella convertita,
    ed IND-1 l'indice di input, IND-2 quello di output,

    hai messo solo un pezzo di codice, quindi capire per bene, non è facile !!!
  • Re: Errore SDI 200

    Strano che tu abbia avuto questo problema solo ora !!!

    per la conversione sembra tutto ok,
    immagino che tu abbia in ELTE-01 la stringa in input, e ELTE-02 quella convertita,
    ed IND-1 l'indice di input, IND-2 quello di output,

    hai messo solo un pezzo di codice, quindi capire per bene, non è facile !!!
    [/quote]

    Sono le stringhe in input e output (fa il test sul singolo carattere, e eventualmente lo converte). L'XML mi esce corretto col simbolo € (altrimenti non me lo aprirebbe e darebbe errore già in fase di visualizzazione). L'errore 0200 testando col programma AE me lo dà proprio sul carattere €. Boh! Per il momento ho risolto (scritto EURO), e me lo passa (c'erano anche altri caratteri speciali e me li passava). Resta la curiosità.

    WORKING-STORAGE SECTION

    03 IND-1 PIC 9(4) COMP-5.
    03 IND-2 PIC 9(4) COMP-5.
    03 IND-3 PIC 9(4) COMP-5.
    03 ELTE. *> CONVERSIONE TESTO PER CARATTERI SPECIALI
    05 ELTE-01 PIC X OCCURS 1400.
    03 ELTF.
    05 ELTE-02 PIC X OCCURS 1400.
    ---------------
    e la conversione

    CONV-T.
    MOVE "TEXT" OF DB-GR2 TO ELTE

    MOVE 1 TO IND-1 MOVE 0 TO IND-2 IND-3
    PERFORM UNTIL IND-1 > 1400 *> 1400

    *** TOGLIE DOPPIO SPAZIO
    IF ELTE-01(IND-1) = SPACE
    MOVE IND-1 TO IND-3
    ADD 1 TO IND-3

    IF ELTE-01(IND-3) = SPACE
    ADD 1 TO IND-1
    END-IF

    END-IF
    **************************************
    ADD 1 TO IND-2
    MOVE ELTE-01(IND-1) TO ELTE-02(IND-2)

    IF ELTE-01(IND-1) = "&"
    MOVE "&" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "a" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "m" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "p" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE ";" TO ELTE-02(IND-2)
    END-IF

    IF ELTE-01(IND-1) = "Ü"
    MOVE "&" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "#" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "2" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "2" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE "0" TO ELTE-02(IND-2)
    ADD 1 TO IND-2
    MOVE ";" TO ELTE-02(IND-2)
    END-IF
    [.... ecc. per i vari caratteri]
    ******************************************************************
    ADD 1 TO IND-1
    END-PERFORM
    ---------------------------------
  • Re: Errore SDI 200

    Un paio di considerazioni:

    1) Ho visto che hai preferito testare tutti i caratteri strani convertendoli. Io ho preferito la strada opposta, ovvero stabilire quali sono i caratteri validi cosi da farli passare. Questo perchè alcuni miei clienti, eseguono dei "copia ed incolla" su ragione sociale, indirizzi, di clienti esteri, e mi sono trovato in anagrafica caratteri non italiani, e quindi, difficilmente individuabili.

    2) Perchè elimini il "doppio spazio" ? Ti da noia ?

    3) La stringa di output potrebbe essere piu grande di quella di input, mi sembra che non controlli la grandezza di output ( potresti teoricamente superare i 1400 caratteri)
  • Re: Errore SDI 200

    Il doppio spazio l'ho tolto perché altrimenti se hai una descrizione con doppio spazio (capita che abbiano inserito qualcosa con doppio spazio), nell'XML ti taglia tutto ciò che c'è oltre (il doppio spazio). Se provi a farne una col programma di generazione di AE e metti doppio spazio, poi te lo riportano convertito con uno. Me ne sono accorto con una descrizione che aveva un doppio spazio e poi nella riga dell'XML spariva un pezzo. Ho messo 1400 in quanto la stringa che richiedono sulla descrizione ha un max di 1000 caratteri (comunque hai ragione).
  • Re: Errore SDI 200

    Scusate se riporto in superficie questa discussione, ma ho bisogno di uno sfogo.
    Come qualcuno ha scritto più su, sono degli incompetenti e qualcuno dovrebbe trovare il modo di farglielo sapere.

    Ecco come ho perso il mio tempo oggi.

    Fattura:
    
    RIGA | CONTENUTO DEL FILE
    -----+-------------------------
    001  | <?xml version="1.0" encoding="UTF-8"?>
    002  | <p:FatturaElettronica versione="FPR12" ...>
        ...
    102  | <Descrizione>... bla bla bla ... perchè ... bla bla bla</Descrizione>
        ...
    184  | </p:FatturaElettronica>
    
    Messaggio d'errore da parte dello SDI:
    Invalid character in the given encoding. Line 451, position 42.;
    Sono in smart working, non ho a disposizione tutti gli strumenti del mio PC in ufficio. Ma se almeno i messaggi di errore non dessero informazioni palesemente errate, magari il lavoro sarebbe più semplice.
Devi accedere o registrarti per scrivere nel forum
21 risposte