[Gelöst] Mit RecordRef Tabellen kopieren

Bild Microsoft Dynamics NAV 2017

[Gelöst] Mit RecordRef Tabellen kopieren

Beitragvon flashgord77 » 25. Juli 2018 09:14

Hallo zusammen,

seit vielen Jahren lese ich in dem Forum mit und habe schon viele wertvolle Tipps erhalten. Dafür schonmal rückwirkend 1000 Dank. Nun stehe ich vor einem Problem und bin mir nicht sicher, ob ich da zu 'einfach' denke oder einen grundsätzlichen Fehler mache.

Ich möchte Datensätze von Mandant Q zu Mandant Z kopieren. Da es sich um 100 Tabellen handelt, möchte ich mit Referenzen arbeiten. Dies war meine Idee:

Code: Alles auswählen
Rref_Q.OPEN(3,FALSE,'Mandant_Quelle');
Rref_Z.OPEN(3,FALSE,'Mandant_Ziel');

MESSAGE(Rref_Q.CURRENTCOMPANY);
MESSAGE(Rref_Z.CURRENTCOMPANY);

IF Rref_Q.FINDFIRST THEN
REPEAT
  Rref_Z:=Rref_Q;
  Rref_Z.INSERT(FALSE);
UNTIL Rref_Q.NEXT=0;


Im Mandant Ziel ist die Tabelle leer. Trotzdem bekomme ich die Fehlermeldung 'Datensatz existiert schon'.
Hat jemand eine Idee?

Wir setzen Build 16177 ein.

Viele GrĂĽĂźe
Flash
Zuletzt geändert von flashgord77 am 27. Juli 2018 11:40, insgesamt 1-mal geändert.
flashgord77
 
Beiträge: 4
Registriert: 25. Juli 2018 09:01
Arbeitsort: Oldenburg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV 2017

Re: Mit RecordRef Tabellen kopieren

Beitragvon Timo Lässer » 25. Juli 2018 11:29

Durch deine Zuweisung Rref_Z:=Rref_Q; zeigt Rref_Z auf denselben Datensatz in demselben Mandanten wie Rref_Q.
Verwende stattdessen Rref_Z := Rref_Q.DUPLICATE;
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: 5279
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: Mit RecordRef Tabellen kopieren

Beitragvon flashgord77 » 25. Juli 2018 14:33

Hallo Timo,

erst einmal vielen Dank für die schnelle Antwort. Leider bekomme ich noch immer den gleichen Fehler. Habe auch noch etwas über die DUPLICATE Funktion gesucht (die kannte ich vorher nicht). Auch die scheint den Datensatz in den gleichen Mandanten zu kopieren. Alle 'Lösungen' die im Internet danach kommen sind eine weiterer Schleife mit einem Transfer für jedes einzelne Feld.

Gibt es wirklich keinen anderen Trick?

GruĂź
Flash
flashgord77
 
Beiträge: 4
Registriert: 25. Juli 2018 09:01
Arbeitsort: Oldenburg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV 2017

Re: Mit RecordRef Tabellen kopieren

Beitragvon Ted » 25. Juli 2018 14:40

https://dynamicsuser.net/nav/f/developers/25130/recordref-to-recordref

schau mal da, der macht genau das was du machen moechtest
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: Mit RecordRef Tabellen kopieren

Beitragvon elroberto » 26. Juli 2018 08:41

Hi, du musst mit dem Ziel RecRef PingPong spielen.
CLEAR oder ähnliches klappt nicht, daher wieder ein CHANGECOMPANY nach dem INSERT, da hier der RecRef noch geöffnet ist.

Habe das mit einigen Datensätzen ausprobiert. Von Quelle an Ziel und umgekehrt. Ebenfalls habe ich den Code in einem dritten Mandaten ausgeführt und so die Datensätze von Quelle nach Ziel übertragen können.


Code: Alles auswählen
RecRefQ.OPEN(3,FALSE,'Mandant_Quelle');
IF RecRefQ.FINDSET THEN BEGIN
  REPEAT
    RecRefZ := RecRefQ;
    RecRefZ.CHANGECOMPANY('Mandant_Ziel');
    RecRefZ.INSERT;
    RecRefZ.CHANGECOMPANY('Mandant_Quelle');
  UNTIL RecRefQ.NEXT = 0;
END;
Benutzeravatar
elroberto
 
Beiträge: 170
Registriert: 1. April 2009 14:56
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: [Gelöst] Mit RecordRef Tabellen kopieren

Beitragvon flashgord77 » 27. Juli 2018 11:41

Super,

vielen Dank fĂĽr die Tipps, damit hat es geklappt.

1000 Dank!

GruĂź
Flash
flashgord77
 
Beiträge: 4
Registriert: 25. Juli 2018 09:01
Arbeitsort: Oldenburg
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV 2017


ZurĂĽck zu NAV 2017

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 1 Gast