Objekt ID ändern

2. November 2012 11:32

Hallo,

in NAV 2013 habe ich einen Job gebastellt, der die Object-Tabelle durchläuft und bestimmte Tabellen umnummeriert.

Code:
OnPostReport()
  MESSAGE('Der Job wurde ausgeführt');
 
Object - OnPreDataItem()
  IF GETFILTER(ID) = '' THEN
    ERROR('Bitte geben Sie einen ID Filter an!');
 
  IF NewID = 0 THEN
    ERROR('Bitte geben Sie eine Start ID an!');
 
Object - OnAfterGetRecord()
  IF NOT NewObject.GET(Type,"Company Name",ID) THEN
    CurrReport.SKIP;
  NewObject.RENAME(Type,"Company Name",NewID);
  NewID += 1;


Dabei bekomme ich folgende Fehlermeldung:

---------------------------

Microsoft Dynamics NAV
---------------------------

Das Feld 'ID' kann nicht geändert werden.
---------------------------
OK
---------------------------

Kann jemand von Euch erkennen, was genau das Problem ist?

Gruß

Michael

Re: Objekt ID ändern

2. November 2012 12:17

In NAV 2013 ist die Objetct- Tabelle ReadOnly

Gruß, Fiddi

Re: Objekt ID ändern

2. November 2012 12:45

Hallo,

danke für die rasche Antwort. Gibt es eine Möglichkeit den Rename per Job durchzuführen?

Gruß

Michael

Re: Objekt ID ändern

2. November 2012 14:21

Im Textexport gibt es diverse Tools, die das Renumbering beherrschen. z.B. das Merge- Toolkit oder der Object- Manager Advanced.

Gruß, Fiddi

Re: Objekt ID ändern

18. Juli 2013 16:28

fiddi hat geschrieben:In NAV 2013 ist die Objetct- Tabelle ReadOnly

Das scheint nicht zu stimmen, löschen geht.
Das Upgrade Toolkit verwendet folgende Funktion, um Objekte (außer Tabellen) zu löschen:
Code:
WITH object DO BEGIN
  SETFILTER(Type,'%1|%2|%3|%4|%5|%6|%7',
    Type::Form,Type::Report,Type::Dataport,Type::XMLport,Type::Codeunit,Type::MenuSuite,Type::Page);
  DELETEALL;
END;

Und folgende Funktion, um Tabellen samt Inhalt zu löschen:
Code:
ObjectTranslations.SETRANGE(ObjectTranslations."Object Type",
ObjectTranslations."Object Type"::Table);
ObjectTranslations.SETRANGE(ObjectTranslations."Object ID",ObjID);
ObjectTranslations.DELETEALL;
WITH Permissions DO BEGIN
  SETFILTER("Object Type",'%1|%2',"Object Type"::Table,"Object Type"::"Table Data");
  SETRANGE("Object ID",ObjID);
  DELETEALL;
END;
IF Obj.GET(Obj.Type::Table,'',ObjID) THEN
  Obj.DELETE;

Re: Objekt ID ändern

25. Juli 2013 09:00

Hallo Natalie,

das Löschen der Tabellen scheint zu funktionieren. Das Umbenennen leider nicht. Da bekomme ich die Meldung:

Microsoft Dynamics NAV
---------------------------

Das Feld 'ID' kann nicht geändert werden.
---------------------------
OK
---------------------------

Gruß

Michael

Re: Objekt ID ändern

25. Juli 2013 09:09

MichaelK hat geschrieben:das Löschen der Tabellen scheint zu funktionieren. Das Umbenennen leider nicht.

Habe ich ja auch nicht behauptet ;-)
Verwendest du den IDYN Object Manager? Dort kannst du dir abgucken, wie du eine Tabelle samt Inhalt umnummerieren kannst - oder noch einfach anwenden.