Liste/Array an C#-Methode übergeben
Verfasst: 14. Juli 2015 17:28
Hallo zusammen,
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:
Danke im Voraus und viele Grüße,
Chris
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:
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