[Gelöst]XML-Port Fehlermeldung "darf nicht '' sein"

17. November 2016 16:21

Hallo,

ich brauche wieder mal Eure Hilfe. Ich habe einen XML-Port für die Verkaufszeile (37) geschrieben. Ich möchte damit Verkaufszeilen aus einem externen Tool importieren. Bei Artikelzeilen alles o.k., nur bei Textzeilen bekomme ich immer die Fehlermeldung, "'Art' darf in 'Verkaufszeile' nicht ' ' sein: ..." . Auch wenn ich Verkaufszeilen der Art '', also Textzeilen, exportiere und diese dann wieder importieren möchte, bekomme ich die selbe Fehlermeldung. Zeilen der Art "ARTIKEL" werden einwandfrei importiert. Ich habe es auch schon mit dem Format CSV probiert, das selbe negative Ergebnis. Auch wenn ich beispw. ein Leerzeichen oder die "0" einfüge, bekomme ich die Fehlermeldung.

Hier der Ausschnitt aus der Export-XML:
Tag der Textzeile:
<Type> </Type>

Ich weiss mir jeztzt echt keinen Rat mehr und bin für jeden Tip dankbar!
Zuletzt geändert von FJS am 18. November 2016 16:24, insgesamt 1-mal geändert.

Re: XML-Port Fehlermeldung "darf nicht '' sein"

17. November 2016 16:32

Kannst du nicht in dem Fall die Art (Type) programmiert zuweisen beim Import?
Import::OnBeforeInsertRecord

Re: XML-Port Fehlermeldung "darf nicht '' sein"

17. November 2016 17:08

enh hat geschrieben:Kannst du nicht in dem Fall die Art (Type) programmiert zuweisen beim Import?
Import::OnBeforeInsertRecord


Hallo enh,

Danke für Deine schnelle Antwort. Da steh ich aber auf`m Schlauch. Leider bin ich Anwender mit sehr beschränkten Programmierkenntnissen. Welchen Code soll ich Deiner Meinung nach wohin schreiben?

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 09:36

Hallo,

Beim Feld Art ist die erste Option ein Leerzeichen.

Code:
 ,G/L Account,Item,Resource,Fixed Asset,Charge (Item)


Also vor dem ersten Komma befindet sich ein Leerzeichen. Sendest du an dieser Stelle auch ein Leerzeichen. Wenn ja, dann wird er anscheinend nicht vom XML-Port erkannt. Kannst du nicht an dieser Stelle den Optionswert, also eine 0 senden?

Gruß

Michael

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 10:20

Hallo Michael,

ich hab`s schon mit Leerzeichen und mit 0 probiert. Immer die selbe Fehlermeldung: "'Art' darf in 'Verkaufszeile' nicht ' ' sein:..." Ich hab auch die Art schon an die verschiedenen Stellen gestellt (am Ende, in der Mitte). Wenn ich die Art an die erste Position stelle, kommt die Fehlermeldung, dass Belegnr nicht '' sein darf.

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 10:30

Hallo,

versuchs mal mit '&nbsp' für das Leerzeichen.

Gruß Fiddi

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 11:10

Hallo,

kann es sein, dass du eine Leerzeile in der Textdatei hast?

Gruß

Michael

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 11:43

Hallo Fiddi,

Danke, damit bekomme ich jetzt zumindest eine andere Fehlermeldung, in Abhängigkeit der Schreibweise:

<Type>'&nbsp;'</Type> Verweis auf die nicht deklarierte Entität 'nbsp'. Zeile 8, Position 11.
<Type>&nbsp;</Type> Verweis auf die nicht deklarierte Entität 'nbsp'. Zeile 8, Position 10.
<Type>'&nbsp';</Type> Unerwartetes Token '''. Erwartet wurde das Token ';'. Zeile 8, Position 15.
<Type>&nbsp</Type> Unerwartetes Token '<'. Erwartet wurde das Token ';'. Zeile 8, Position 14.
<Type>"&nbsp"</Type> Unerwartetes Token '"'. Erwartet wurde das Token ';'. Zeile 8, Position 15.
<Type>"&nbsp;"</Type> Verweis auf die nicht deklarierte Entität 'nbsp'. Zeile 8, Position 11.
<Type>"&nbsp";</Type> Unerwartetes Token '"'. Erwartet wurde das Token ';'. Zeile 8, Position 15.
<Type>'&nbsp'</Type> Unerwartetes Token '''. Erwartet wurde das Token ';'. Zeile 8, Position 15.

was könnte ich noch probieren bzw. wie ist die richtige Schreibweise?

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 12:30

Code:
<Type>&#x20;</Type>


wäre noch ein Versuch.

Gruß Fiddi

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 12:48

Hallo Fiddi,

bei
Code:
  <Type>&#x20;</Type>

kommt wieder die erste Fehlermeldung, dass Art nicht ' ' sein darf.

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 12:51

Hallo,

das versuch es statt des XML-Ports mal mit einer Codeunit, und schau dazu die Funktionen der CU 6224 an.

Gruß Fiddi

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 13:37

Hallo Fiddi,

das mit der CU überfordert mich!

Ich hab jetzt mal einen ganz anderen Ansatz probiert. in den Properties der table 37 habe ich für ' ' (0) 'Text' als Option eingetragen. Beim XML-Export kommt dann folgender Ausdruck:
Code:
<Type>Text</Type>


Aber beim Import der selbigen XML-Datei kommt die Fehlermeldung "'Art' darf in 'Verkaufszeile' nicht 'Text' sein:..."

Da ist doch irgend etwas anderes Faul, oder?

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 13:45

Vielleicht würde es helfen, den Importvorgang zu debuggen, dann würde man die Stelle im Code sehen, die den Fehler bringt, denn es ist bestimmt ein TESTFIELD, welcher in Abhängigkeit von irgendwelchen Kriterien ausgeführt wird (sieht man dann alles im Programmcode). Ich vermute, in den einzulesenden Zeilen mit dem Typ=leer sind z.B. Menge oder Preis oder Betrag oder sonst welche Felder gefüllt, welche beim leeren Zeilentyp leer sein müssen, was dann per TESTFIELD in Programmierung abgefangen wird.
Alternativ kann man im XML-Port die Validierun der einzelnen XML-Port-Felder deaktivieren (Property FieldValidate=No setzen), das aber mit allen daraus folgenden Konsequenzen --> der Programmcode des OnValidate-Trigges des Feldes in der Verkaufszeile wird dann nicht ausgeführt.

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 14:33

Hallo Jupiter,

der Debugger bleibt hier stehen:
Code:
Update Amounts()
IF CurrFieldNo <> FIELDNO("Allow Invoice Disc.") THEN
-->TESTFIELD(Type);


Sowohl bei "Ja" als auch bei "Nein" kommt die Fehlermeldung.

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 15:20

Dann füge ganz am Anfang der Funktion UpdateAmounts (diese ist in der Tabelle 37 "Sales Line" zu finden) als erste Zeile folgende Code-Zeile ein:
Code:
IF Type=Type::" " THEN EXIT;
Natürlich zunächst im Testsystem :!:
In den Zeilen mit dem leeren Zeilentyp macht das Ausführen der Funktion UpdateAmounts (diese berechnet den Zeilenbetrag usw.) wenig Sinn, denn solche Zeilen sind meistens Beschreibungszeilen.

Re: XML-Port Fehlermeldung "darf nicht '' sein"

18. November 2016 16:24

Hallo Jupiter,

Danke, das war`s!