Sie müssen etwas für etwas Brauch entwickeln. Das Formular \Forms\DirPartyCheckDuplicate
ist für eine einzelne Partei konzipiert.
Sie können die Backing-Klasse \Classes\DirPartyCheckDuplicate
verwenden, um die Suchvorgänge durchzuführen und dann die Ergebnisse mit einem benutzerdefinierten Formular zu behandeln.
Das Problem ist, dass die Klasse auch einen DirPartyTable
Datensatz akzeptieren soll, und dann einen query
von Duplikaten zurückgeben.
Wenn Sie überall nur identifizieren möchten Dinge, die Duplikate haben, könnten Sie etwas zusammen hacken. Ich schrieb diesen schnellen Job, wo ich 2 DirPartyTable-Datensätze habe, die Duplikate zurückgeben, und ich führte den Check zweimal durch und kombinierte die Ergebnisse und gab sie aus.
static void Job3(Args _args)
{
DirPartyTable dpt = DirPartyTable::findRec(22565431216);
DirPartyTable dpt2 = DirPartyTable::findRec(22565424587);
Query targetQuery;
Query otherQuery;
QueryRun qr;
DirPartyTable dirPartyTable;
DirPartyCheckDuplicate partyCheckDuplicate;
partyCheckDuplicate = DirPartyCheckDuplicate::construct();
partyCheckDuplicate.parmPartyRecord(dpt);
partyCheckDuplicate.parmCheckName(true);
partyCheckDuplicate.run();
targetQuery = partyCheckDuplicate.getQuery();
partyCheckDuplicate = DirPartyCheckDuplicate::construct();
partyCheckDuplicate.parmPartyRecord(dpt2);
partyCheckDuplicate.parmCheckName(true);
partyCheckDuplicate.run();
otherQuery = partyCheckDuplicate.getQuery();
SysQuery::mergeRanges(targetQuery, otherQuery);
qr = new QueryRun(targetQuery);
while (qr.next())
{
dirPartyTable = qr.get(tableNum(DirPartyTable));
info(DirPartyTable.Name);
}
}
danke, das ist eine großartige Idee. Ich möchte jedoch nicht nur identifizieren, sondern auch Duplikate entfernen (ich werde das in meiner Frage beheben). Ist das mit diesen maßgeschneiderten Jobs noch möglich? Ich werde viel darüber recherchieren müssen. Soll ich Performance-Probleme beim Scannen von 10000 Datensätzen, beim Prüfen von Duplikaten für jedes, beim Kombinieren von 10000 Abfragen und schließlich beim Anzeigen des Ergebnisses der erwarteten 30% doppelten Datensätze erwarten? Was denken Sie? Ist Ihr Ansatz noch relevant, oder sollte ich nach einem anderen suchen? – Vladislav
Was Sie tun möchten, ist eine komplexe Aufgabe, die basierend auf der Logik der 'DirPartyCheckDuplicate' Klasse entwickelt werden sollte. Es könnte einige Leistungsprobleme geben, aber da es sich um eine einmalige Operation handelt, sollte dies keine Rolle spielen. Du könntest/solltest auch eine Geschichtstabelle entwickeln, um Entfernungen zu überprüfen, mach es zuerst in Dev/Test, etc. –