2. Mai 2013 10:29
Das Thema hatten wir (so ähnlich) hier schon:
viewtopic.php?f=64&t=19551, und rein zufällig musste ich das gerade für mich auch lösen.
Entweder (wenn es nur für deine lokale Datenbank ist und nicht Teil eines Upgrade Toolkits) verwendest du OMA - das kann mit Hilfe der C/AL Historie das Feld samt Feldwerten umziehen. Der Trick ist, dass die C/AL Historie um das zusätzliche Feld ergänzt wird und das Objekt reimportiert wird. So wird das Problem mit Field.MODIFY umgangen.
Alternativ bräuchten wir eine Routine, die intern das Objekt exportiert, in der Txt-Datei die Felder ändert und das Objekt wieder reimportiert. War mir zu aufwändig.
Oder du gehts diesen Weg (so hat es für mich geklappt, weil ich ein Upgrade Toolkit basteln musste):
- Alle Objekte, die sich auf dein umzubenennendes Feld beziehen, als Text exportieren und wieder importieren. Dies setzt sie auf nicht kompiliert.
- In der Tabelle das Feld unter neuer ID hinzufügen, beim alten Feld den Namen ändern.
- Per C/AL alle Feldwerte vom alten zum neuen Feld verschieben
- Altes Feld löschen
- Objekte aus Schritt 1 kompilieren.
Edit: Ich habs Microsoft als Verbesserungsvorschlag geschickt. Hier könnt ihr dafür abstimmen:
https://connect.microsoft.com/dynamicss ... ils/786099