[GELĂ–ST] Zeichen rechts abschneiden XML Export Zeilennummer

Bild Microsoft Dynamics NAV 2015 (aka "NAV 8")

[GELĂ–ST] Zeichen rechts abschneiden XML Export Zeilennummer

Beitragvon Raban » 5. April 2018 13:22

Hallo,

stehe hier davor und soll ein XML Export durchgefĂĽhrt werden.
Dabei wird als Knoten die "Line No." aus der T111 (Sales Shipment Line) exportiert

Zur Zeit wird ja die Line No. so exportiert.

Code: Alles auswählen
<LineNumber>10000</LineNumber>
.
<LineNumber>20000</LineNumber>
.
<LineNumber>30000</LineNumber>
.
<LineNumber>40000</LineNumber>
.
<LineNumber>50000</LineNumber>
.
<LineNumber>60000</LineNumber>
.
<LineNumber>70000</LineNumber>
.
<LineNumber>80000</LineNumber>
.
<LineNumber>90000</LineNumber>
.
<LineNumber>100000</LineNumber>
.
<LineNumber>110000</LineNumber>
.
<LineNumber>120000</LineNumber>


Soll

Code: Alles auswählen
<LineNumber>1</LineNumber>
.
<LineNumber>2</LineNumber>
.
<LineNumber>3</LineNumber>
.
<LineNumber>4</LineNumber>
.
<LineNumber>5</LineNumber>
.
<LineNumber>6</LineNumber>
.
<LineNumber>7</LineNumber>
.
<LineNumber>8</LineNumber>
.
<LineNumber>9</LineNumber>
.
<LineNumber>10</LineNumber>
.
<LineNumber>11</LineNumber>
.
<LineNumber>12</LineNumber>


Ich habe mir alle String Befehle unter http://www.navision24.de/befehle/index.html angeschaut und ausprobiert.
Bin aber nicht zum gewĂĽnschten Ergebnis gekommen.

Hat jemand eine Idee oder eine kleine Lösung wie man das umsetzen könnte?

Bin fĂĽr jede Hilfe dankber

Beste GrĂĽĂźe
Robert
Zuletzt geändert von Raban am 20. April 2018 09:11, insgesamt 1-mal geändert.
Beste GrĂĽĂźe | Robert
Benutzeravatar
Raban
 
Beiträge: 154
Registriert: 7. Mai 2011 08:32
Realer Name: Robert Liess
Arbeitsort: Hannover
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC14.28 Build 14.0.47686.0

Re: Zeichen rechts abschneiden XML Export Zeilennummer

Beitragvon Timo Lässer » 5. April 2018 14:08

Du könntest natürlich die Zeilennummer einfach durch 10000 teilen und das Ergebnis exportieren.

Aber Vorsicht!
Was machst du, wenn ein Anwender eine weitere Zeile zwischen zwei bereits vorhandenen Zeilen einfĂĽgt (Strg+Einfg)?
Dann hast du eine Zeile mit Zeilennummer 15000.
Wiederholt er das, dann ergibt das die Zeilennummer 12500.

Was für eine Zeilennummer möchtest du dann exportieren?
Drei Zeilen mit Zeilennummer 1?
Zeilen mit Zeilennummer 1,25 und 1,5?

Meiner bescheidenen Meinung nach kommst du nicht um eine unabhängige Positionsnummer herum, welche du nach deinen Regeln ermitteln und ggfls. aktualisieren kannst.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5274
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Zeichen rechts abschneiden XML Export Zeilennummer

Beitragvon Ted » 5. April 2018 15:58

Wenn aus:
10000
11000
11500
12000
das werden kann:
1
2
3
4

kannst du auch einfach ein Integer pro Zeile hochzählen
GruĂź
Ted
Ted
 
Beiträge: 328
Registriert: 18. September 2014 11:16
Realer Name: Dennis Reinecke
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2015+

Re: Zeichen rechts abschneiden XML Export Zeilennummer

Beitragvon Raban » 5. April 2018 21:54

Timo Lässer hat geschrieben:Du könntest natürlich die Zeilennummer einfach durch 10000 teilen und das Ergebnis exportieren.

Aber Vorsicht!
Was machst du, wenn ein Anwender eine weitere Zeile zwischen zwei bereits vorhandenen Zeilen einfĂĽgt (Strg+Einfg)?
Dann hast du eine Zeile mit Zeilennummer 15000.
Wiederholt er das, dann ergibt das die Zeilennummer 12500.

Hallo,

ausgeben muss ich nur die Zeilen aus die Type = Item und No. nicht leer

Code: Alles auswählen

IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
  IF "Sales Shipment Line"."No." <> '' THEN BEGIN
"Sales Shipment Line"."Line No." := "Sales Shipment Line"."Line No." / 10000;
  END;
END;


sollte dann denke ich schon passen. In der gebuchten Verkaufslieferzeile werden nach der Buchung keine Zeilen mehr eingefĂĽgt.

die Zeilennummer einfach durch 10000 teilen und das Ergebnis exportieren habe ich schon probiert. Leider wird dann man meine XML Datei mehrere Gigabyte groĂź und nimmt kein Ende.
Da muss ich den NAV Dienst stoppen auf meine Testmaschine damit es aufhört.

Ohne den o. g. Code ist die XML 4-7KB groĂź
hm..fehlt mir dann noch ein Filter, oder?

GruĂź
Robert
Beste GrĂĽĂźe | Robert
Benutzeravatar
Raban
 
Beiträge: 154
Registriert: 7. Mai 2011 08:32
Realer Name: Robert Liess
Arbeitsort: Hannover
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC14.28 Build 14.0.47686.0

Re: Zeichen rechts abschneiden XML Export Zeilennummer

Beitragvon Raban » 6. April 2018 06:04

Ted hat geschrieben:Wenn aus:
10000
11000
11500
12000
das werden kann:
1
2
3
4

kannst du auch einfach ein Integer pro Zeile hochzählen


Guten Morgen,

wäre natürlich auch eine alternative. Würdest Du bitte hier eine kurze Anleitung dazu reinstellen wie man das umsetzen könnte?
Wäre Super Klasse.
Vielen Dank fĂĽr deine MĂĽhe
Beste GrĂĽĂźe
Robert
Beste GrĂĽĂźe | Robert
Benutzeravatar
Raban
 
Beiträge: 154
Registriert: 7. Mai 2011 08:32
Realer Name: Robert Liess
Arbeitsort: Hannover
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC14.28 Build 14.0.47686.0

Re: Zeichen rechts abschneiden XML Export Zeilennummer

Beitragvon Ted » 6. April 2018 09:44

Raban hat geschrieben:die Zeilennummer einfach durch 10000 teilen und das Ergebnis exportieren habe ich schon probiert. Leider wird dann man meine XML Datei mehrere Gigabyte groĂź und nimmt kein Ende.
Da muss ich den NAV Dienst stoppen auf meine Testmaschine damit es aufhört.


Wo hast du den Code denn hingeschrieben?

Ich wĂĽrde eine globale Variable 'LineNo' vom Typ Decimal anlegen diese im XMLPort hinzufĂĽgen und dann im "Export::OnAfterGetRecord()" deinen Code schreiben
Code: Alles auswählen
"Sales Shipment Line" - Export::OnAfterGetRecord()
IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
  IF "Sales Shipment Line"."No." <> '' THEN BEGIN
    LineNo := "Sales Shipment Line"."Line No." / 10000;
  END;
END;


Die von mir vorgeschlagene Lösung wäre ähnlich. Du musst nur LineNo als Integer machen und dann statt der Division einfach
Code: Alles auswählen
LineNo += 1;
GruĂź
Ted
Ted
 
Beiträge: 328
Registriert: 18. September 2014 11:16
Realer Name: Dennis Reinecke
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2015+

Re: Zeichen rechts abschneiden XML Export Zeilennummer

Beitragvon Raban » 6. April 2018 13:43

Ted hat geschrieben:
Raban hat geschrieben:die Zeilennummer einfach durch 10000 teilen und das Ergebnis exportieren habe ich schon probiert. Leider wird dann man meine XML Datei mehrere Gigabyte groĂź und nimmt kein Ende.
Da muss ich den NAV Dienst stoppen auf meine Testmaschine damit es aufhört.


Wo hast du den Code denn hingeschrieben?


Ich wĂĽrde eine globale Variable 'LineNo' vom Typ Decimal anlegen diese im XMLPort hinzufĂĽgen und dann im "Export::OnAfterGetRecord()" deinen Code schreiben
Code: Alles auswählen
"Sales Shipment Line" - Export::OnAfterGetRecord()
IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
  IF "Sales Shipment Line"."No." <> '' THEN BEGIN
    LineNo := "Sales Shipment Line"."Line No." / 10000;
  END;
END;


Die von mir vorgeschlagene Lösung wäre ähnlich. Du musst nur LineNo als Integer machen und dann statt der Division einfach
Code: Alles auswählen
LineNo += 1;


Hallo,

vielen Dank fĂĽr deine Hilfe :)

Wo hast du den Code denn hingeschrieben?


Im Abschnitt
Code: Alles auswählen
LineNumber - Export::OnBeforePassVariable()


Habe im XML Port eine globale Variable (Decimal) angelegt "LineNo"
Hier eingebunden

Code: Alles auswählen
LineNumber - Export::OnBeforePassField()

IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
  IF "Sales Shipment Line"."No." <> '' THEN BEGIN
   LineNo +=1;
  END;
END;


In der XML habe ich als Ergebnis:

Code: Alles auswählen
<Line>
        <Line-Item>
          <LineNumber />
          <EAN>4030716001042</EAN>
          <QuantityDespatched>1</QuantityDespatched>
          <UnitOfMeasure>PCE</UnitOfMeasure>
        </Line-Item>
</Line>



Knoten <LineNumber> wird nicht hochgezählt :(

Die Datei nach Export ist wieder nur 4-5Kb groĂź. Schon mal gut.

Vielen Dank fĂĽr deine MĂĽhe
Beste GrĂĽĂźe
Robert
Beste GrĂĽĂźe | Robert
Benutzeravatar
Raban
 
Beiträge: 154
Registriert: 7. Mai 2011 08:32
Realer Name: Robert Liess
Arbeitsort: Hannover
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC14.28 Build 14.0.47686.0

Re: Zeichen rechts abschneiden XML Export Zeilennummer

Beitragvon Raban » 20. April 2018 09:09

die Lösung / 10.000 ist wohl die die dazu passt.
eigentlich ganz einfach. Wenn man weiss wie ist alles einfach ....

LineNumber als Text im XML Port definiert

dann nur folgendes in "LineNumber - Export::OnBeforePassVariable()"

Code: Alles auswählen
LineNumber := '';
                 
IF "Sales Shipment Line".Type = "Sales Shipment Line".Type::Item THEN BEGIN
  IF "Sales Shipment Line"."No." <> '' THEN BEGIN
  LineNumber := FORMAT("Sales Shipment Line"."Line No." / 10000);
  END;
END;


falls jemand mitliest

Beste GrĂĽĂźe
Robert
Beste GrĂĽĂźe | Robert
Benutzeravatar
Raban
 
Beiträge: 154
Registriert: 7. Mai 2011 08:32
Realer Name: Robert Liess
Arbeitsort: Hannover
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC14.28 Build 14.0.47686.0


ZurĂĽck zu NAV 2015

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast