CSVファイルからAX(GEACAccounts)のカスタムテーブルに一部の値をインポートしようとしています。Microsoft Dynamics AX 2012 X ++レコードを挿入できません。レコードが既に存在するエラー
テーブルに既に存在するGEACaccount(コンテナアイテム#3)番号を含むCSVファイルを読み込もうとすると、以下のコードはのように動作します(を除く)。この場合、AXは "レコードをテーブルに挿入中にエラーが発生しました。レコードは既に存在します。
テーブルに重複値を許可しないテーブルがいくつか設定されているため、このエラーが発生しています。 GEACAccountフィールドも別のテーブルに関連していますが、これが私のエラーなどを引き起こす可能性がありますか?
また、この設定がどのようなものかわかりません。この機能は正しいです。このテーブルに許可されているGEACAccountのユニークな値は1つだけです。これはどこから制御できるのか不思議です。
次は、どこに見えるかについてアドバイスをいただければ幸いです。
以下のコード。
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");
}
}
おかげで、
フィル
それはそうでしょう。 助けてくれてありがとう! –