Hallo,
hätte da zwei Fragen zur RequestData Methode vom AddIn SDK:
Die erste ist mehr ein Verbesserungsvorschlag weil ich fast sicher bin, dass es keinen Weg gibt ein Variable Length Array in Managed Code zu erstellen.
Wie man in meinem Code Snippet weiter unten sehen kann habe ich das retData Array hier mit 999999 Elementen leer initialisiert. Ich glaube es gibt keine Möglichkeit in .Net ein Array zu erstellen und zu verwenden ohne es vorher zu initialisieren. Soweit die Dokumentation und das Interface der SiDiaryNet.dll das hergeben gibt es aber auch keine Methode um vor dem Datenabruf zuerst mal nur die Anzahl der Ergebnisse abzufragen. Bleibt mir hier wirklich nur der Weg das Array einfach mit System.Int32.MaxValue Elementen zu initialisieren und jede Menge Speicher unnützerweise zu allozieren?
Meine zweite Frage bezieht sich auf das optionale "ptTypeFilter" Argument:
Aus dem retData Objekt weiß ich, dass die CGMS Werte den Typ 121 haben (steht so auch im Programm selbst wenn man weiß wo die Zahl steht).
Laut Doku ist alles > 100 user-defined und man soll in der SaveData Methode nachsehen wie der Filter aussehen muss.
Da widederrum steht, nach UDTs filtern geht nur wenn man UDT der Zahl voranstellt.
In der requestData Methode funktioniert aber weder 121 noch UDT121 als Filter auch mit Komma vorne und/oder hinten klappt's nicht.
Hatte hier eben noch geschrieben, dass es mit Komma als verpflichtendem, nutzlosen Zeichen kappt. das lag aber nur daran, dass ich einen Zeitraum gefiltert hatte, der nichts anderes als 121 enthielt.
string today = DateTime.Today.ToString();
string lastMonth = DateTime.Today.AddMonths(-1).ToString();
cAddInDataType[] retData = new cAddInDataType[99999];
int retCount = 0;
string error = "";
if (mAddInObject.RequestData(lastMonth, today, ref retData, ref retCount, ref error, "UDT121"))
{
System.Windows.Forms.MessageBox.Show("Requested Data is fine");
}
else
{
System.Windows.Forms.MessageBox.Show("Requested Data is BROKEN!");
}
Einen Filter für die "händisch" gescannten Werte scheint es nicht zu geben, dafür tauchen diese aber mit identischem Timestamp zweimal in Folge auf. So muss man zwar die ganze Liste durchgehen, aber immerhin kommen wir meinem Exportformat aus dem anderen Thread schon etwas näher