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
Seite 2 von 7     12 34     Letzte »    
Mandi Nice

Registriert seit: 16. Sep 2006
46 Beiträge
 
Delphi 2006 Professional
 
#11

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

  Alt 14. Okt 2006, 20:24
Hallöchen

War ein paar Tage weg. Daher meld ich mich erst heute wieder.

Der Kunde hat halt gemeint ich soll es mit dem JavaConnector machen.
Habe aber unter Delphi ein Pech damit. Delphi ist halt kein JAVA.

Ich denke ich werde auch eine CSV-Export vorschlagen oder der Kunde soll sich den Datenimport selbst ( in JAVA )
programmieren und ich rufe das Importprogramm auf wenn ich Daten senden muss.

Und wenn er das nicht will, gibt es das zwei fertig OXC die ich verwenden könnte.

Auf jedenfall vielen Dank an alle.

hmg
Mandi
Manfred Schön
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#12

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

  Alt 14. Okt 2006, 20:38
Zitat von Mandi Nice:
Der Kunde hat halt gemeint ich soll es mit dem JavaConnector machen.
Habe aber unter Delphi ein Pech damit. Delphi ist halt kein JAVA.
Delphi kann mit Java sehr wohl zusammenarbeiten. Das Zauberwort heißt Java Native Interface(JNI).

Zitat von Mandi Nice:
Ich denke ich werde auch eine CSV-Export vorschlagen oder der Kunde soll sich den Datenimport selbst ( in JAVA )
programmieren und ich rufe das Importprogramm auf wenn ich Daten senden muss.
Wenn Du das hinbekommst ist es besser für dich. Diese Schnittstelle ist mit sicherheit auch ungefährlicher für dich das man dir die Schuld für irgendwas geben könnte wenn man SAP nicht funktioniert (Bis gestern gings noch und heute haben wir Ihr Programm zum ersten mal laufen lassen. Das evtl. an 10 anderen Stellen auch noch was an SAP gedreht wurde erfährst Du nicht).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#13

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

  Alt 14. Okt 2006, 20:50
Wir haben unsere SAP-Schnittstellen immer mit IDOC gelöst. Das bietet saubere Schnittstellendefinitionen für den Datenaustausch mit allen Systemen. Die zugrunde liegende Klasse zum Lesen und Erzeugen von IDOC-Dateien ist zum Beispiel hier enthalten (ist ein kleiner Viewer für diese Dateien). Das wird z.B. im Datenaustausch mit Varta, Bosch, Nestle u.a. eingesetzt. Ich kann Dir aber aus bisherigen Projekten eins sagen: Eine solche Schnittstelle mit mehreren Transaktionen zu programmieren, braucht ca. 20-50 MT, selbst wenn Du Dich um die reine Technik die dem zugrunde liegt nicht mehr kümmern musst. Dazu ist SAP zu flexibel, es gibt selbst innerhalb des gleichen Konzerns oft keine zwei gleichen Vorgehensweisen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Misek
Misek

Registriert seit: 19. Okt 2006
Ort: Bottrop
22 Beiträge
 
#14

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

  Alt 19. Okt 2006, 13:01
Wenn hier schon mal über SAP R/3 geschrieben wird, nutze ich mal die Gelegenheit mal was zu fragen.

Ich sitze gerade hier und weiss mal echt nicht weiter. Unzwar geht es um einen BAPI call den ich gerne ausführen möchte:
Dieser benötigt mehrere Felder als import. So weit noch verständlich....

Nun habe ich aber zwei Felder mit dem selben bezeichner, jedoch in unterschiedlichen Tabellen wie mache ich dem importParameter klar in welcher Tabelle sich dieses Feld befindet?



Ich gehe durch die RfcAPI mit der librfc.dll und rufe die RfcRecieveEx - Funktion auf
Vielen Dank im voraus
  Mit Zitat antworten Zitat
Heffalump

Registriert seit: 3. Aug 2005
278 Beiträge
 
RAD-Studio 2009 Ent
 
#15

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

  Alt 19. Okt 2006, 13:35
Wenn Du die Möglichkeit hast, schau Dir den SAP .NET Connector an. Der funktioniert zwar nur mit dem Visual Studio 2003. Aber die Unterstützung zur Einbindung von BAPI´s/RFC sind damit optimal. Ist dann natürlich .NET 1.1.
  Mit Zitat antworten Zitat
Benutzerbild von Misek
Misek

Registriert seit: 19. Okt 2006
Ort: Bottrop
22 Beiträge
 
#16

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

  Alt 19. Okt 2006, 13:56
Würde ich gerne! Die möglichkeit ist mir jedoch leider nicht gegeben.
trotzdem Besten Dank!
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#17

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

  Alt 19. Okt 2006, 14:16
Zitat von Misek:
Nun habe ich aber zwei Felder mit dem selben bezeichner, jedoch in unterschiedlichen Tabellen wie mache ich dem importParameter klar in welcher Tabelle sich dieses Feld befindet?
Du musst die Schnittstelle des BAPI anders befüllen.

Zuerstmal die Schnittstelle instanzieren:
l_func := a_SAPFunctionsObject.Add('BAPI_REPO_XYZ_F4'); Parameter füllen, die für einzelne Werte stehen:
Delphi-Quellcode:
// werte Importieren
l_func.exports('I_OBJECT_TYPE'):='GC';
l_func.exports('I_MULTIPLE_SELECTION'):='X';
Strukturierte Parameter füllen, d.h. unter dem Namen des Struktur
sind nochmal einzelne Felder ansprechbar:
Delphi-Quellcode:
// einzelnes Feld einer Struktur füllen
l_importstructur := l_func.exports('IS_STRUKTUR_MATERIAL');
l_ImportStructur.Value[1] := _matnr;
Tabellen-Parameter füllen, d.h. unter dem Namen der Tabelle
müssen Zeilen (Rows) angelegt werden, deren einzelne Felder sind ansprechbar:

Delphi-Quellcode:
  // Struktur-Tabelle auslesen
l_IT_STRUCTURE_IDS:= l_func.tables.item('IT_STRUCTURE_IDS');
// alle Einträge löschen
l_IT_STRUCTURE_IDS.rows.removeall;
/ neue Zeile anhängen
l_eintrag:=l_IT_STRUCTURE_IDS.rows.add;
// einfügen der TestID
l_eintrag.Value['STRUCTURE_ID']:=_task.TestID;
Gruß,
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von Misek
Misek

Registriert seit: 19. Okt 2006
Ort: Bottrop
22 Beiträge
 
#18

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

  Alt 19. Okt 2006, 14:57
was ist l_func für ein Typ? Kann es sein, dass du die BAPIS mit ActiveX ansteuerst?


Im Moment sieht es bei mir noch so aus:

Hier werden die Inputparameter gesetzt. Bitte nicht verwirren lassen... der name FExporting ist das, was an das SAP raus geht. trotzdem verwende ich den Namen "setRFCInputParam" als Funktionsaufruf.

Delphi-Quellcode:
procedure TSAPRFC.setRFCInputParam(paramName: string; paramlength: integer; pparamValue: pointer;
  paramType: integer);
// Setzt Eingabeparameter für den RFC
var
  i: integer;
begin
  i := 0;
  while (i < SAPRFC_Maxparameters) and (FExporting[i].name <> nil) do inc(i);
  if i = SAPRFC_Maxparameters then raise exception.create('Max params exeeded!');
  FExporting[i].name := pchar(paramName);
  FExporting[i].nlen := length(paramName);
  FExporting[i].atype := paramType;
  FExporting[i].leng := paramlength;
  FExporting[i].addr := pparamValue;
end;
Und nun wird das ganze abgeschickt mit folgendem Code...
Delphi-Quellcode:
function TSAPRFC.execute: string;
var
  funcres: integer;
begin
  result := '';
  funcRes := connection.FRfcCallReceiveEx(connection.fconnHandle, pchar(fRfcName),
    @FExporting, @FImporting, @FChanging, @FTables, @pException);
  if funcres <> 0 then begin
    result := pchar(pException);
    // Wenn wir keinen Klartext-Fehler bekommen, geben wir den Fehlercode aus
    if result = 'then result := 'Error ' + IntToStr(funcres);
  end;
end;
  Mit Zitat antworten Zitat
pertzschc

Registriert seit: 29. Jul 2005
Ort: Leipzig
305 Beiträge
 
Delphi 10.4 Sydney
 
#19

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

  Alt 19. Okt 2006, 15:40
Zitat von Misek:
was ist l_func für ein Typ? Kann es sein, dass du die BAPIS mit ActiveX ansteuerst?
ja, ich nehme das SAPFunctions.ocx. Deinen Weg bin ich noch nicht gegangen.

Delphi-Quellcode:
TSAPFunctions = class(TOleControl)
...
var
  l_func, l_IT_STRUCTURE_IDS, l_eintrag, l_resultTabelle: variant;
Gruß,
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von Misek
Misek

Registriert seit: 19. Okt 2006
Ort: Bottrop
22 Beiträge
 
#20

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

  Alt 19. Okt 2006, 15:53
Das bringt mich leider auch nicht weiter, trotzdem Danke!

Also weiterhin besteht das Problem Felder in einer Struktur mit tabellennamen von SAP genau zu identifizieren und zu setzen. Quasi den importparameter richtig zu setzen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 7     12 34     Letzte »    


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 20:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz