Seite 1 von 1

Sondereichen bei Exporten

Verfasst: 27. Juni 2017 10:55
von NavHummel
Hallo zusammen,

ich habe das Problem, dass die Kollegen bei der Datenpflege CRLF und TAB in Namen, Telefon, etc. in NAV kopiert haben. Bei einem Schnittstellenexport hat die Gegenstelle damit ein massives Problem. Ich würde jetzt gerne bei der Eingabe verhindern, dass diese Zeichen in NAV gespeichert werden. Dazu habe ich auch etwas gefunden, was sich wohl aber nur auf den Classic Client bezieht, nämlich dass die Funktion in Codeunit 1: MakeText (dort Aufruf der Codeunit 41) immer bei Texteingaben aufgerufen wird.

Hier der Link zu der Programmierung, die im RTC bei mir nicht funktioniert: https://community.dynamics.com/nav/b/bodos/archive/2011/08/12/nav-2009-copy-amp-paste-und-b-246-se-zeichen-in-text-und-code-feldern

Kann mir vielleicht jemand sagen, ob es beim RTC auch so eine Stelle gibt?

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 11:38
von Natalie
Die Änderung in Codeunit 1 bzw. 41 müsste noch funktionieren (ohne dass ich das jetzt selber ausprobiert hätte). Stelle sicher, dass du nach deiner Änderung den RTC neu gestartet hast (Änderungen in CU1 werden sonst nicht wirksam).

Ggf. das ganze mal dem Debugger nachvollziehen, dh. ob die verbotenen Zeichen auch wirklich nach Funktionsaufruf gelöscht sind.

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 11:47
von SilverX
Hmmm. Ich bin eigentlich der Meinung, dass die Sonderzeichen seit 2013 oder sogar schon 2009 RTC automatisch bei der Eingabe abgefangen/gelöscht werden.
Bist du sicher, dass das neue Daten sind? Oder sind die eventuell bei einer Migration übernommen worden?

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 11:52
von Natalie
SilverX hat geschrieben:dass die Sonderzeichen seit 2013 oder sogar schon 2009 RTC automatisch bei der Eingabe abgefangen/gelöscht werden.
Interessant, hast du einen Link dafür?

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 12:03
von SilverX
Nein, aber wenn ich was mit Tabs oder CR/LF in ein Feld unter 2015 oder 2017 paste, dann werden die gar nicht eingefügt. Nur die Zeichen drumrum.

Code:
Dies!TAB!ist!TAB!ein!TAB!Test!!!!CRLF!
wird zu
Code:
DiesisteinTest!!!

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 12:25
von Raik Zobel
Ich bin mir auch sicher, dass die Sonderzeichen mindestens ab 2013 R2 vom Client abgefangen werden; Denn ich hatte versucht mit der Codeunit 1 die Sonderzeichen mit einem Pipe (|) zu ersetzen um bequem einen Filter zu bauen, wenn man von z.B. Excel eine ganze Spalte ins NAV kopiert. Leider keine Chance, denn der Client schneidet alles ab dem ersten Sonderzeichen ab. Stehen bleibt nur der Wert aus der 1. Zelle.

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 12:50
von NavHummel
Ich weiß nicht genau, wie meine Kollegen das hin bekommen haben, aber ja, das CRLF ist mit dem RTC hinein kopiert worden. Was ich aber durchaus hinbekomme, ist ein TAB hinein zu kopieren, einfach 2 nebeneinander liegende Excel-Zellen kopieren und in NAV einfügen.

Den RTC habe ich neu gestartet und sogar den Dienst. Ich habe extra eine Message im MakeText der Codeunit 1 eingebaut und auch diese erscheint nicht, wenn ich z.B. im Feld "Name" beim Debitor etwas eingeben. Die Codeunit 1 ist auf jeden Fall aktuell im RTC, das habe ich auch überprüft. Scheinbar wird das MakeText nur nicht automatisch bei der Eingabe angestoßen, leider...

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 13:00
von Raik Zobel
NavHummel hat geschrieben:Den RTC habe ich neu gestartet und sogar den Dienst. Ich habe extra eine Message im MakeText der Codeunit 1 eingebaut und auch diese erscheint nicht, wenn ich z.B. im Feld "Name" beim Debitor etwas eingeben. Die Codeunit 1 ist auf jeden Fall aktuell im RTC, das habe ich auch überprüft. Scheinbar wird das MakeText nur nicht automatisch bei der Eingabe angestoßen, leider...


Probiere mal eine neue Funktion in CU1 mit Namen "MakeCode" und ID 109 (Propertie der Funktion) anzulegen. Mach dort deine Programmierung rein. Das sollte gehen, zumindest für dein TAB.

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 13:28
von NavHummel
vandyke hat geschrieben:
NavHummel hat geschrieben:Den RTC habe ich neu gestartet und sogar den Dienst. Ich habe extra eine Message im MakeText der Codeunit 1 eingebaut und auch diese erscheint nicht, wenn ich z.B. im Feld "Name" beim Debitor etwas eingeben. Die Codeunit 1 ist auf jeden Fall aktuell im RTC, das habe ich auch überprüft. Scheinbar wird das MakeText nur nicht automatisch bei der Eingabe angestoßen, leider...


Probiere mal eine neue Funktion in CU1 mit Namen "MakeCode" und ID 109 (Propertie der Funktion) anzulegen. Mach dort deine Programmierung rein. Das sollte gehen, zumindest für dein TAB.


Funktioniert leider auch nicht. Der Name ist ja auch eigentlich ein Textfeld. Scheinbar durchläuft der RTC diese Funktionen nicht automatisch.

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 14:28
von m_schneider
Kannst du den Export anpassen? Wenn ja, dann wirf doch einfach dort die Zeichen weg.

Re: Sondereichen bei Exporten

Verfasst: 27. Juni 2017 14:51
von NavHummel
m_schneider hat geschrieben:Kannst du den Export anpassen? Wenn ja, dann wirf doch einfach dort die Zeichen weg.


Das ist meine letzte Option. Denn andere Exporte wie z.B. GDPdU werden dann auch wieder auf Fehler laufen und das würde ich gerne im Keim ersticken. :wink:

Re: Sonderzeichen bei Exporten

Verfasst: 6. Juli 2017 18:56
von enh
Was Role Tailored Client bzw. Windows Client im Gegensatz zum Classic Client beim Einfügen wegwirft sind nur die Returns (z. B. am Ende eines von einer Internetseite kopierten Textes). Das sind ja auch die wesentlichen Probleme. Tabs innerhalb des kopierten Textes werden in NAV eingefügt (die machen aber i. d. R. auch weniger Probleme).

(Als Wald-affiner Mensch mag ich übrigens die Sondereichen im Betreff.)

Re: Sondereichen bei Exporten

Verfasst: 7. Juli 2017 08:45
von Raik Zobel
NavHummel hat geschrieben:
vandyke hat geschrieben:Probiere mal eine neue Funktion in CU1 mit Namen "MakeCode" und ID 109 (Propertie der Funktion) anzulegen. Mach dort deine Programmierung rein. Das sollte gehen, zumindest für dein TAB.


Funktioniert leider auch nicht. Der Name ist ja auch eigentlich ein Textfeld. Scheinbar durchläuft der RTC diese Funktionen nicht automatisch.



Mir ist gerade eingefallen, das möglicherweise ein NST Neustart nötig ist. Hattest du das nach Änderung an der CU1 auch gemacht?