C# - SAP Net Connector - Ergebnis ist verwirrend

ABAP, Java, BSP, etc.
5 Beiträge Seite 1 von 1
5 Beiträge Seite 1 von 1

C# - SAP Net Connector - Ergebnis ist verwirrend

Beitrag von Hellfire (ForumUser / 9 / 0 / 0 ) » 8. Jun 2012 19:17

Ich muss mit Hilfe von C# einige Daten per RFC aus dem SAP ziehen. Hierzu habe ich mir eine kleine Demo Applikation gemacht, die Kundendetails zum Kunden 100000 auslesen soll.

Das Kuriose ist, dass ich über den Test des RFC Bausteins BAPI_CUSTOMER_GETDETAIL2 in der SE38 ein Ergebnis zurück bekomme - über mein kleines Programm aber nicht. Der RFC Aufruf und der Connect klappt allerdings !

Mein C# Programm bekommt die Rückmeldung (Code 502): "Debitor 100000 ist nicht vorhanden". Schaue ich über den NWBC in die Debitorenliste, dann gibt es den Debitoren 100000. Das einzige was ich mir vorstellen könnte ist, dass ich die Connection Details im SAP Net Connector evtl falsch angegeben habe (?). Kann mir da einer einen Tip geben ?

Ein Ausschnitt vom wichtigsten Teil:

Code: Alles auswählen.

         RfcConfigParameters rfc = new RfcConfigParameters();
         rfc.Add(RfcConfigParameters.Name, "LGT");
         rfc.Add(RfcConfigParameters.SystemID, "LGT");
         rfc.Add(RfcConfigParameters.AppServerHost, "192.168.1.170");
         rfc.Add(RfcConfigParameters.Client, "100");
         rfc.Add(RfcConfigParameters.User, "username"); 
         rfc.Add(RfcConfigParameters.Password, "passw"); 
         rfc.Add(RfcConfigParameters.SystemNumber, "00");
         rfc.Add(RfcConfigParameters.Language, "DE");
         rfc.Add(RfcConfigParameters.PoolSize, "5");
         rfc.Add(RfcConfigParameters.IdleTimeout, "600");

         RfcDestination rfcDest = RfcDestinationManager.GetDestination(rfc);
         RfcRepository rfcRep = rfcDest.Repository;


             IRfcFunction myfun = null;
             myfun = rfcRep.CreateFunction("BAPI_CUSTOMER_GETDETAIL2");
             myfun.SetValue("CUSTOMERNO", "100000");
             myfun.SetValue("COMPANYCODE", "1000");
             myfun.Invoke(rfcDest);

             IRfcStructure structure = myfun.GetStructure("CUSTOMERADDRESS");

             Logfile("NAME: " + myfun.GetStructure("CUSTOMERADDRESS").GetString("NAME"));
             Logfile("NAME2: " + myfun.GetStructure("CUSTOMERADDRESS").GetString("NAME_2"));
             Logfile("NAME3: " + myfun.GetStructure("CUSTOMERADDRESS").GetString("NAME_3"));
             Logfile("NAME4: " + myfun.GetStructure("CUSTOMERADDRESS").GetString("NAME_4"));
             Logfile("CITY: " + myfun.GetStructure("CUSTOMERADDRESS").GetString("CITY"));
             Logfile("RESULT NUM: " + myfun.GetStructure("RETURN").GetString("NUMBER"));
             Logfile("RESULT MSG: " + myfun.GetStructure("RETURN").GetString("MESSAGE"));
Die Verbindungsdetails im klassischen SAP Gui sehen wie folgt aus:

Bild

Ich wäre über jede Hilfe dankbar !


Re: C# - SAP Net Connector - Ergebnis ist verwirrend

Beitrag von Hellfire (ForumUser / 9 / 0 / 0 ) » 8. Jun 2012 19:49

Ich habe wirklich seit heute Morgen nach dem Fehler gesucht und habe ihn gefunden. Um leidgeplagten zu helfen die hierher über Google finden, möchte ich die Lösung mit euch teilen.

Lösung:
Die Kundennummer ist Char(10) und muss mit führenden Nullen gefüllt sein. Anstatt Kundennummer "100000" muss "0000100000" übergeben werden. Dann kommen auch Werte zurück !

Re: C# - SAP Net Connector - Ergebnis ist verwirrend

Beitrag von Tron (Top Expert / 1048 / 9 / 213 ) » 9. Jun 2012 10:56

Moin,
das ist kaum verwunderlich, da Schlüsselfelder immer vollständig ausgerichtet werden müssen.
Bei einem SELECT im Abap muß das ja auch so sein. :wink:

gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: C# - SAP Net Connector - Ergebnis ist verwirrend

Beitrag von Hellfire (ForumUser / 9 / 0 / 0 ) » 9. Jun 2012 11:38

Hi Jens,

ja - mir war das nicht klar. Ich hatte es zwar mit "Blanks" probiert, nicht aber mit führenden Nullen. Das hätte ich auch früher probieren können, aber manchmal sieht man ja den besagten Wald vor lauter Bäumen nicht :-)

Die Warenwirtschaft die wir aktuell benutzen ist da komplett anders. Das sind halt erste Erfahrungen mit SAP. Mit Abap werde ich auch noch anfangen, aber erstmal eines nach dem anderen.

Ich finde es aber dann irritierend, dass wenn man über die SE37 den RFC fähigen Baustein ausprobiert, dass man die Daten nicht gleich "richtig" eingeben muss. Dort reicht auch eine 100000 ohne führende Blanks. Muss man wissen ....

Re: C# - SAP Net Connector - Ergebnis ist verwirrend

Beitrag von a-dead-trousers (Top Expert / 3242 / 82 / 818 ) » 11. Jun 2012 08:24

hi!

Zur Erklärung:
Bei diesem Feld ist vermutlich das Konvertierungsexit ALPHA hinterlegt.
Das bewirkt bei einer Eingabe die nur Zahlen enthält, dass diese rechtsbündig mit führenden Nullen aufbereitet wird.
Alle Eingabemasken im SAP-System berücksichtigen diese Aufbereitungsart, sowohl bei der Eingabe als auch bei der Ausgabe.
Sprich in SAP wirst du immer linksbündig ohne führende Nullen sehen und eingeben können, aber auf der Datenbank landet alles rechtbündig mit führenden Nullen.
Leider werden diese Aufbereitungen auch nur bei Eingabemasken berücksichtigt.
Wenn man also selber in einem SAP-Programm Daten verarbeiten möchte, muss man die spezielle Aufbereitung ebenfalls berücksichtigen.
z.b. mit WRITE ... INTO ... USING EDIT MASK ... oder durch Aufruf des jeweiligen FuBa CONVERSION_EXIT_*_INPUT.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Seite 1 von 1

Aktuelle Forenbeiträge

HTTP Request
vor 22 Stunden von a-dead-trousers 4 / 73
Verfügbarkeitsprüfung
Gestern von deejey 2 / 60
Verwaltung
Gestern von deejey 2 / 50
BSP-Seiten als Service - Problem bei HTTP-Request
vor 2 Tagen von Xilukarim 1 / 49

Unbeantwortete Forenbeiträge

BSP-Seiten als Service - Problem bei HTTP-Request
vor 2 Tagen von Xilukarim 1 / 49
CCS Bonusabrechnung
vor 3 Tagen von SAP_ENTWICKLER 1 / 31
At Selection-Screen
vor 3 Tagen von L0w-RiDer 1 / 49
SP01 Verweildauer
vor einer Woche von SAP_ENTWICKLER 1 / 102
Transaktion OMT3B Subscreens in Dynpros einhängen
vor einer Woche von SAP_ENTWICKLER 1 / 69