4. August 2010 08:31
---------------------------
Microsoft Dynamics NAV Classic
---------------------------
Ein anderer Anwender hat den Datensatz für diese Artikel geändert, nachdem er angezeigt wurde.
Geben Sie Ihre Änderungen noch einmal in das aktualisierte Fenster ein oder nehmen Sie die unterbrochene Aktivität wieder auf.
Identifizierende Felder und Werte:
Nr.='XYZ'
---------------------------
OK
---------------------------
4. August 2010 08:41
MatthiasKönig hat geschrieben:Ich versuche dies zurzeit im OnModify Trigger der Tabelle Item zu realisieren.
4. August 2010 09:04
CompanyInformation.CHANGECOMPANY(CompanyNameText);
CompanyInformation.GET;
// nur Mandanten in dennen auch Synchronisiert wird
IF CompanyInformation."Item Synchronize" THEN BEGIN
Item.CHANGECOMPANY(CompanyNameText);
// Dieser Artikel in anderen Mandanten
IF NOT Item.GET("No.") THEN BEGIN
Item.RESET;
Item := Rec;
Item.INSERT(FALSE);
END ELSE BEGIN
Item := Rec;
Item.MODIFY(FALSE);
END;
END;
4. August 2010 09:07
MatthiasKönig hat geschrieben:Mit den Triggern ist mir bewusst :(
Item.CHANGECOMPANY(...);
Item.INSERT(FALSE);
Natalie hat geschrieben:und INSERT/MODIFY/DELETE ohne Trigger.
4. August 2010 09:29
4. August 2010 09:35
MatthiasKönig hat geschrieben:FALSE! :) der soll den inserten :D
4. August 2010 09:52
4. August 2010 09:56
woger hat geschrieben:Die Frage ist auch, was "Item.RESET" an dieser Stelle alles "resettet".
Onlinehilfe hat geschrieben:The CHANGECOMPANY function is not affected by the RESET Function (Record). You can deselect a company by making a new call to CHANGECOMPANY or by using the CLEAR Function.
4. August 2010 10:19
4. August 2010 10:26
MatthiasKönig hat geschrieben:edit: args dachte es gelöst zu haben....Fehler tritt wieder auf >.<
Natalie hat geschrieben:Außerdem gehe ich stark davon aus, dass du sicherstellst, dass CompanyNameText nicht versehentlich leer ist und so wieder im aktuellen Mandanten agierst?
4. August 2010 10:38
4. August 2010 10:44
MatthiasKönig hat geschrieben:Komisch ist, dass neu angelegte Artikel funktionieren und zuvor exisitierende nicht.
...
END ELSE BEGIN
Item.TRANSFERFIELDS(Rec);
Item.MODIFY;
END;
4. August 2010 10:53
MatthiasKönig hat geschrieben:Ich versuche dies zurzeit im OnModify Trigger der Tabelle Item zu realisieren.
MatthiasKönig hat geschrieben:Komisch ist, dass neu angelegte Artikel funktionieren und zuvor exisitierende nicht. Was könnte das nur sein?! :/
4. August 2010 11:44
Company.SETFILTER(Name, '<>%1', COMPANYNAME);
Company.FINDSET;
REPEAT
UNTIL Company.NEXT = 0;
CompanyInformation.CHANGECOMPANY(CompanyNameText);
CompanyInformation.GET;
// nur Mandanten in dennen auch Synchronisiert wird
IF CompanyInformation."Item Synchronize" THEN BEGIN
Item.CHANGECOMPANY(CompanyNameText);
// Dieser Artikel in anderen Mandanten
IF NOT Item.GET("No.") THEN BEGIN
Item2.GET("No.");
Item.RESET;
Item := Item2;
Item.INSERT(FALSE);
END ELSE BEGIN
Item2.GET("No.");
Item := Item2;
Item.MODIFY(FALSE);
END;
END;
4. August 2010 11:56
Company.RESET;
Company.SETFILTER(Name,'<>%1',COMPANYNAME);
IF Company.FINDSET THEN
REPEAT
CompanyInformation.CHANGECOMPANY(Company.Name);
CompanyInformation.GET;
IF CompanyInformation."Item Synchronize" THEN BEGIN
Item.CHANGECOMPANY(Company.Name);
IF NOT Item.GET("No.") THEN BEGIN
Item.RESET;
Item := Rec;
Item.INSERT(FALSE);
END ELSE BEGIN
Item := Rec;
Item.MODIFY(FALSE);
END;
END;
UNTIL Company.NEXT = 0;
4. August 2010 12:48
CompanyInformation.CHANGECOMPANY(CompanyNameText);
CompanyInformation.GET;
// nur Mandanten in dennen auch Synchronisiert wird
IF CompanyInformation."Item Synchronize" THEN BEGIN
Item.LOCKTABLE;
SELECTLATESTVERSION;
Item.CHANGECOMPANY(CompanyNameText);
// Dieser Artikel in anderen Mandanten
IF NOT Item.GET("No.") THEN BEGIN
Item.RESET;
Item := Rec;
Item.INSERT(FALSE);
END ELSE BEGIN
Item.TRANSFERFIELDS(Rec, FALSE);
Item."No." := Rec."No.";
Item.MODIFY(FALSE);
END;
END;
10. September 2018 10:29