Liste/Array an C#-Methode übergeben

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:
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

Re: Liste/Array an C#-Methode übergeben

14. Juli 2015 18:14

Herzlich Willkommen bei uns!

Ich weiß nicht, obs dir wirklich hilft, aber prüf doch mal das hier: http://dynamicsuser.net/blogs/waldo/arc ... tions.aspx