ich möchte Daten aus einer NAV-Tabelle in eine MongoDB-Collection übertragen.
Mit einzelnen Datensätzen hat es bereits funktioniert.
Aber mit der Nutzung einer Generic List, um viele Datensätze gleichzeitig zu übertragen, habe ich leider meine Probleme.
In meiner C#-Methode erwarte ich eine System.Collections.Generic.List<BsonDocument> und diese wird mit der InsertManyAsync-Methode in die MongoDB eingespielt, was prinzipiell funktioniert.
Das Problem ist von NAV bekomme ich scheinbar in der Liste immer nur das letzte BsonDocument bzw. die Werte davon geliefert, obwohl ich die einzelnen Datensätze jeweils per Add der Liste hinzufüge.
Ist es nicht möglich eine Liste vom Typ BsonDocument in NAV zu erstellen und diese an eine C#-Methode zu übergeben?
Hier der entsprechende Codeteil:
- Code: Alles auswählen
IF DataOutbound_l.FIND('-') THEN BEGIN
Arr := Arr.CreateInstance(GETDOTNETTYPE(Type),1);
Arr.SetValue(GETDOTNETTYPE(BsonDocument),0);
Type := GETDOTNETTYPE(Dict);
Type := Type.MakeGenericType(Arr);
Dict := Activator.CreateInstance(Type);
REPEAT
Counter_l := 1;
RecRef_l.GETTABLE(DataOutbound_l);
BsonDocument.Clear;
BsonString := BsonString.BsonString(FORMAT(DataOutbound_l."Item No_"+'_'+DataOutbound_l.Variant_Code+'_'+DataOutbound_l.Supplier_No_));
BsonDocument.Add('_id',BsonString);
WHILE FieldNo_l[Counter_l]>0 DO
BEGIN
FieldRef_l := RecRef_l.FIELD(FieldNo_l[Counter_l]);
BsonString := BsonString.BsonString(FORMAT(FieldRef_l.VALUE));
BsonDocument.Add(FieldRef_l.NAME,BsonString);
Counter_l += 1;
END;
Dict.Add(BsonDocument);
UNTIL DataOutbound_l.NEXT=0;
MongoNAV.InsertMany2MongoDB(DataSetup_p.Database,DataSetup_p.Table,Dict);
END;
Danke im Voraus und viele GrĂĽĂźe,
Chris