[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    30

    DDE Datenaustausch zwischen VARPG und Excel

    Hallo zusammen,

    ich habe größere Probleme mit dem DDE Protokoll um Daten aus einer VARPG-Anwendung an Excel zu schicken.

    Mein Programm läuft so:
    VARPG ruft ein Programm auf der AS/400 auf und übergibt einen Parameter.
    Das AS/400 Programm sucht auf Grund des Parameters per SQL einige Datensätze.
    Bei jedem weiteren Aufruf übergibt es einen Datensatz zurück an das VARPG Programm.
    Das VARPG startet EXCEL und übergibt jeweils den gerade erhaltenen Satz per DDE an Excel.
    Anschließend ruft es wieder das AS/400 Programm auf, um sich einen neuen Datensatz zu holen.

    So weit, so gut.

    Leider bricht mein VARPG Programm nach ca. 650 Sätzen ab und gibt mir die Fehlermeldung aus: "1408 Es sind nicht genügend Ressourcen zum Beenden der Operation vorhanden."

    Selbst wenn diese Meldung nicht kommt, übergibt das VARPG zwar brav die Daten an Excel, doch ca. ab Zeile 350 schreibt Excel nichts mehr, oder macht ganz komische Dinge, z.B. fängt es nicht mehr in Spalte 1, sondern z.B. in Spalte 3 mit den Einträgen an.

    Ich habe als Test mal versucht ganz stupide 10000 mal das Wort 'Test' untereinander in die Spalte 'A' zu schreiben, also keine Kommunikation zwischen AS400 und VARPG sondern nur zwischen VARPG und EXCEL. Auch hier bricht er nach ca.7000 Sätzen mit der "Ressourcen...." - Meldung ab.

    Ich könnte noch mehr abstruse Ereignisse aufzählen, allerdings denke ich nicht, daß sie sich kategorisieren lassen, sondern einfach zeigen, daß bei der DDE Kommunikation nicht alles so stabil läuft.

    Abschließend kann ich noch sagen, daß mich das Debuggen auf keinen neuen Weg gebracht hat. Innerhalb des VARPG sieht alles klasse aus, nur das Ergebnis in Excel fängt von einer auf die nächste Zeile urplötzlich an zu spinnen.

    Hat hier irgendjemand Erfahrung. Bin für jeden Hinweis dankbar.
    Email:andreas.weikl@ils-gmbh.net

    Nicht weil es schwierig ist, wagen wir es nicht, sondern weil wir es nicht wagen ist es schwierig. (Sokrates)

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.258
    DDE ist für Massendaten dieser Art auch eher nicht geeignet.
    Das Problem hierbei ist, dass die Resourcen, die durch DDE (interner Speicher) belegt werden, auch wieder freigegeben werden müssen. Passiert das (wie in deinem Fall) nicht, kommt es halt zum Resourcenengpass.
    Lass die lieber eine andere Kommunikation (z.B. Ausgabe in CSV-Datei und Einlesen über Excel) einfallen. Oder löse das Ganze gleich mit einem Excel-VBA-Makro.

    Sowohl VARPG als auch DDE sind da eher nicht auf dem neuesten Stand der Technik.

    Kann VARPG vielleicht mit ActiveX (CreateObjekt) umgehen ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Feb 2005
    Beiträge
    30

    Schade

    Das ist nicht ganz die Antwort, die ich mir erhofft hatte, allerdings befürchtet hatte ich sowas. Naja, dann laß ich mir was anderes einfallen.

    Danke für die Antwort
    Email:andreas.weikl@ils-gmbh.net

    Nicht weil es schwierig ist, wagen wir es nicht, sondern weil wir es nicht wagen ist es schwierig. (Sokrates)

  4. #4
    Registriert seit
    Jan 2001
    Beiträge
    835

    Thumbs up

    Hallo Spoldo,


    der DDE Datenaustausch sollte wirklich nur für kleinere
    Datenmengen benutzt werden. Du kannst aber sehr einfach
    eine TAB separierte Exceldatei schreiben.
    Ist von der Performance wesentlich besser.
    Gruss
    Michael

    PS: VARPG kann auch Active X Komponenten benutzen. Damit
    kenn ich mich aber nicht aus.

  5. #5
    Registriert seit
    Feb 2005
    Beiträge
    30
    Kannst Du mir zu Tab-oder CSV einen Link mit Codebeispielen sagen, dann wurschtel ich mich schon rein.
    Email:andreas.weikl@ils-gmbh.net

    Nicht weil es schwierig ist, wagen wir es nicht, sondern weil wir es nicht wagen ist es schwierig. (Sokrates)

  6. #6
    Registriert seit
    Jan 2001
    Beiträge
    835

    Thumbs up

    Hallo,

    hier ein kleines Beispiel:
    Tabulator
    d Tab c x'09'

    dann kannst Du einfach die Felder mit einer Datenstruktur
    oder mit den O Bestimmungen schreiben
    opc eadd xlsline
    o Feld
    o tab

    Als Dateiname kannst Du z.B: excelfile.xls verwenden.
    Excel öffnet die Datei dann automatisch.

    Zu beachten ist noch das Du die numerischen Felder z.B. mit einer Schablone schreiben solltest.

    Gruss
    Michael


    PS: Wir haben auch eine deutschsprachige Newsgroup bei Yahoo.
    http://de.groups.yahoo.com/group/VARPGDE/
    Jeder ist willkommen

  7. #7
    Registriert seit
    Feb 2005
    Beiträge
    30
    Na gut, dann mach ich mich mal dran.
    Das mit der Schablone hab ich auch schon mal probiert, hat aber nicht so überzeugend funktioniert. Ich habs aber mit

    H DECEDIT('0,') und
    .... Poke = %editc(variable:'4')

    hingekriegt. Vielleicht kriegs ja bei einer lokalen Excel-Datei mit der Schablone auf die Reihe.

    Lieben Dank für die Informationen
    Email:andreas.weikl@ils-gmbh.net

    Nicht weil es schwierig ist, wagen wir es nicht, sondern weil wir es nicht wagen ist es schwierig. (Sokrates)

Similar Threads

  1. EXCEL, PDF, ZIP, IDEA, e-mail, alles auf iSeries
    By Kilianski in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 22-11-06, 15:23
  2. Datum überlebt ODBC Transfer auf Excel nicht
    By jjagi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 07-07-06, 08:29
  3. MiDViSiON Ausstellerprofil: Excel Data Deutschland AG
    By Kirsten Steer in forum Archiv NEWSboard Events
    Antworten: 0
    Letzter Beitrag: 15-06-06, 07:46
  4. VARPG - Excel starten
    By Spoldo in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 19-04-05, 15:32
  5. Datenaustausch zwischen 2 iSeries
    By CaddyMajor in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 29-01-05, 13:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •