[Gelöst] CSIDE Mandant per Code umbenennen

18. November 2009 11:56

Ich möchte in einer CSIDE Datenbank den aktuellen Mandanten per Programmcode umbenennen.

Gibt es dazu z.b. eine fertige Funktion, welche ich aufrufen könnte?
Z.b.
renamecompany( oldname, newname)

Mein Versuch, den Namen in der Tabelle Company zu ändern endet mit der Fehlermeldung, dass der neue Mandant nicht vorhanden ist.
Code:
company.findfirst;
company.name='Newname';
company.modify( TRUE);


Ergebnis:
Company Name 'Newname' does not exist bzw. auf deutsch:
Mandant Name 'Newname' exisitiert nicht
Zuletzt geändert von habreli am 23. November 2009 14:34, insgesamt 1-mal geändert.

Re: CSIDE Mandant per Code umbenennen

18. November 2009 11:58

schon mal mit company.VALIDATE(Name,Newname) wersucht ?

Gruß, Fiddi

Re: CSIDE Mandant per Code umbenennen

18. November 2009 12:04

Hallo,

wenn Primärschlüsselfelder geändert werden sollen, dann funktioniert ein MODIFY nicht, sondern man benötigt den Befehl RENAME.

Darüber hinaus kann es nicht schaden, wenn man - wie fiddi schon schrieb - die neuen Feldwerte per VALIDATE in die Felder einträgt.

Wichtiger Hinweis:
Ich hoffe ja sehr stark, dass du solche Sachen zuerst auf einer physikalisch eigenständigen Datenbank ausprobierst und nicht gleich sofort in der Echtdatenbank.

P. S.: Wie häufig benennt ihr denn eure Mandanten um, dass ihr das per C/AL-Code automatisieren wollt?

Re: CSIDE Mandant per Code umbenennen

18. November 2009 13:36

Das mit RENAME wars. Da falle ich wirklich alle paar Jahre drauf rein!

Gibt es eigentlich auch eine Möglichkeit, den aktuellen Mandanten zu schließen?
Und als Tüpfelchen auf dem "i" auch noch, den neuen Mandanten zu öffnen?
---
Natürlich wird das nicht in der Echtversion gemacht.
Wir brauchen für unsere Planung eine lokale Version - zur besseren Kenntlichmachung benennen wir den Mandanten um.

Re: CSIDE Mandant per Code umbenennen

18. November 2009 14:24

habreli hat geschrieben:Gibt es eigentlich auch eine Möglichkeit, den aktuellen Mandanten zu schließen?
Ja, per SendKeys des Windows Scripting Host.
In meiner Tools-Sammlung findest du unter anderem die Codeunit "WindowsScriptHostManagement", welche die Funktion "LogOff" enthält.

habreli hat geschrieben:Und als Tüpfelchen auf dem "i" auch noch, den neuen Mandanten zu öffnen?
Dies wäre ebenfalls mittels SendKeys umsetzbar.
Als Beispiel kannst du dir die Funktion "ReLogOn" aus obiger Codeunit mal anschauen, allerdings müsstest du etwas anders durch das Menü navigieren.
Ich mache es mir da dann doch etwas einfacher, den gerade geschlossenen Mandanten wieder zu öffnen.