AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi von Delphi 2006 aus Datensätze zu SAP R/3 senden
Thema durchsuchen
Ansicht
Themen-Optionen

von Delphi 2006 aus Datensätze zu SAP R/3 senden

Offene Frage von "Misek"
Ein Thema von Mandi Nice · begonnen am 10. Okt 2006 · letzter Beitrag vom 5. Apr 2007
Antwort Antwort
kalmi01
(Gast)

n/a Beiträge
 
#1

Re: von Delphi 2006 aus Datensätze zu SAP R/3 senden

  Alt 19. Mär 2007, 11:50
hi Christoph
Zitat von pertzschc:
Zitat von kalmi01:
Bei einer aktuellen Aufgabenstellung, ergab sich mir die Frage:
wie transferiere ich TABELLEN gleichzeitig hin/zurück ?
Du initialisierst alle benötigten Tabellen vor dem Aufruf.
Dann bestückst Du die "Import"-Tabellen mit den notwendigen Werten und machst Deinen RFC-Aufruf.
Anschließend nimmst Du Dir die "Export"-Tabellen und liest wenn Werte vorhanden diese aus.
Vielen Dank für den Tip.
Soweit, so gut.
Bei der Gelegenheit dachte ich mir, machste doch gleich ne Klasse draus.
Um die Strukturen dynamisch halten zu können, hab ich mir Array's als Container angelegt, welche
die Initialisierungparameter in Records beinhalten.
Meine Überlegung ging dahin, die für den RFC-Call benötigten Strukturen erst kurz vor dem
Call zu realisieren, um bei der Parameteranzahl flexibel zu bleiben.
Delphi-Quellcode:
    function TSAP.CallRFC(Name : string) : boolean;
      var
        tmpImport,
        tmpExport,
        tmpChange : array [0..10] of TRfcParam; // array of TRfcParam;
        tmpTables : array [0..10] of TRfcTable; // array of TRfcTable;
        tmpTableRow : TTableRow;
        TableNames : string;
        
        pException,
        iTab : pointer;
        FuncRes : integer;

        i, j : integer;
      begin
      // SetLength(tmpImport, Length(FImport) + 1);
        for i := 0 to Length(FImport) - 1
        do begin
             tmpImport[i].name := PChar(FImport[i].Name);
             tmpImport[i].nlen := Length(FImport[i].Name);
             tmpImport[i].atype := FImport[i].Typ;
             tmpImport[i].leng := Length(FImport[i].Wert);
             tmpImport[i].addr := PChar(FImport[i].Wert);
           end;
        tmpImport[Length(FImport)].name := nil;
Seltsamer weise funktioniert obiges.
Delphi-Quellcode:
        tmpChange : array of TRfcParam;
        tmpTables : array of TRfcTable;
lege ich die Array's dynamisch an und setze die Länge mitSetLength(tmpImport, Length(FImport) + 1); kommt nur Mist bei rum.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz