Ich versuche, einige Werte in eine benutzerdefinierte Tabelle in AX (GEACAccounts) aus einer CSV-Datei zu importieren.Microsoft Dynamics AX 2012 X ++ Datensatz kann nicht eingefügt werden. Datensatz existiert bereits Fehler
Nun wird der Code funktioniert wie unten außer erwartet, wenn ich versuche, eine CSV-Datei zu laden, die eine GEACaccount enthält (Container Element # 3) Nummer, die bereits in der Tabelle vorhanden ist. In diesem Fall gibt AX einen Fehler mit der Meldung "Fehler beim Einfügen des Datensatzes in Tabelle. Datensatz ist bereits vorhanden.
Es scheint mir, dass dieser Fehler auftritt, da es einige Einstellungen für die Tabelle gibt, die doppelte Werte in einer Tabelle nicht zulassen, aber ich bin nicht sicher, was diese Einstellung sein könnte. Ein anderes Feld als Primärschlüssel (RecID) gesetzt. Das GEACAccount Feld auch zu einer anderen Tabelle verknüpft ist. könnte dies sonst mein Fehler oder etwas sein, was?
auch , diese Funktionalität ist korrekt, es sollte nur ein eindeutiger Wert von GEACAccount in dieser Tabelle erlaubt sein.Ich frage nur, da ich neugierig bin, wo dies gesteuert werden könnte.
Irgendwelche Ratschläge, wohin Sie als nächstes schauen sollten, wären sehr willkommen.
Code unten.
static void Job11(Args _args)
{
TextIo ioReader;
FileIOPermission fioPermission;
str sTempPath;
GEACAccounts Accounts;
container readCon;
try
{
info("Begin reading file " +'C:\\\\testload.txt');
fioPermission = new FileIOPermission('C:\\\\testload.txt',"RW");
fioPermission.assert();
ioReader = new TextIo('C:\\\\testload.txt',"R");
ioReader.inFieldDelimiter(num2char(44));
ioReader.inRecordDelimiter('\n');
readCon = ioReader.read();
if(ioReader)
{
//readCon = ioReader.read();
// i++;
while(ioReader.status() == IO_Status::Ok)
{
i++;
info(conPeek(readCon,1));
info(conPeek(readCon,2));
info(conPeek(readCon,3));
info(conPeek(readCon,4));
ttsBegin;
accounts.clear();
accounts.initValue();
accounts.GEACAccountGroup = 5637144826;
accounts.AddlSecType = conPeek(readCon,1);
accounts.CashflowMovement = conPeek(readCon,2);
accounts.GEACAccountNumber = conPeek(readCon,3);
accounts.GEACFlipSign = 0;
accounts.SecurityGroup = conPeek(readCon,4);
accounts.insert();
ttsCommit;
readCon = ioReader.read();
}
}
}
catch(Exception::Error)
{
info("caught exception");
}
}
Danke,
Phil
Das wäre es. Danke für die Hilfe! –