HTTP Request

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

HTTP Request

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

ich muss zum ersten mal ein Eventhandler programmieren. der Handler soll aus dem bereich Änderungsdienst Daten lesen und zurück bekommen.
Der SICF Knoten wird von einer WEB ablikation gerufen.

http://<SAP-SYSTEM>/ecn/pdvecn?ecn=O04711UU

die geschriebene Klasse schaut so aus.

Code: Alles auswählen.

 data:
       l_string type string,
       it_ECN_DATA type  TIHTTPNVP.

  l_string = server->request->GET_CDATA( ).

  server->request->GET_FORM_FIELDS(
*  exporting
*    FORMFIELD_ENCODING = 0    " CO_FORMFIELD_ENCODING_RAW / _ENCODED
*    SEARCH_OPTION      = 3    " CO_BODY_BEFORE_QUERY_STRING or others
    changing
      FIELDS             =   it_ECN_DATA  " Form-Felder
  ).

  DATA: lv_change_no      TYPE AENNR.
  DATA: lt_change_header  TYPE  AENR_API02.
  FIELD-SYMBOLS <wa_ECN_DATA>     LIKE LINE OF it_ECN_DATA.
*FIELD-SYMBOLS <wa_change_header>  LIKE LINE OF lt_change_header.



* ECN Nummer wird gelesen
  LOOP AT it_ECN_DATA ASSIGNING <wa_ECN_DATA>.
    lv_change_no = <wa_ECN_DATA>-VALUE.
  ENDLOOP.


  CALL FUNCTION 'CCAP_ECN_HEADER_READ'
    EXPORTING
      CHANGE_NO       = lv_change_no
    IMPORTING
      CHANGE_HEADER   = lt_change_header
    EXCEPTIONS
      NO_RECORD_FOUND = 1
*     ERROR           = 2
*     OTHERS          =        3
    .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

und nun muss ich die Daten aus " lt_change_header" wieder per get zurück senden. Das liefern der daten sollte wenn möglich als xml oder json erfolgen.
Ich weiß an dieser Stelle gar nicht ob dies machbar ist.

Der Code funktioniert so weit erst mal, aber ich schaffe es nicht die Daten zurück zu senden. Wie muss ich die Methode erweitern. Ich wäre über Hilfe sehr dankbar.

Gruß

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: HTTP Request

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Rückmeldungen laufen doch nicht über den GET Mechanismus 🧐
Sondern über den sogenannten Response und den findest du in

Code: Alles auswählen.

server->response.
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.18
Basis: 7.50

Re: HTTP Request

Beitrag von carlie (ForumUser / 49 / 0 / 2 ) »
Hallo,

danke für deinen Tipp.
Ich habe das jetzt mal so gelöst. Ich packe alles in einen String und arbeite dannach wie aufgeführt weiter.

Code: Alles auswählen.


*String wird in XString umgewandelt.
  CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
    EXPORTING
      TEXT     = l_resp
*     MIMETYPE = ' '
*      ENCODING = 'utf-8'
    IMPORTING
      BUFFER   = l_respx
    EXCEPTIONS
      FAILED   = 1
      OTHERS   = 2.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.

* Binär XString senden.
  server->response->set_status( code = 200 reason = 'OK').
  server->response->set_data( l_respx ).

Einzig die UTF-8 Codierung geht nicht. Da bekomme ich immer eine fehlermeldung. Da muss ich nochmals schauen was hier das Problem ist. Wäre dennoch über erneutes Feedback glücklich, ob das alles so richtig ist.

Gruß

Re: HTTP Request

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Vielleicht hilft dir die Klasse cl_abap_conv_out_ce weiter.
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.18
Basis: 7.50

Re: HTTP Request

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Das sieht für mich vielversprechend aus .

Code: Alles auswählen.

 DATA conv TYPE REF TO cl_abap_conv_in_ce.
  DATA buffer(4) TYPE x.
  DATA text(100) TYPE c.
  buffer = '41424332'. "bytes represent ABC2 in UTF-8
  conv = cl_abap_conv_in_ce=>create(
        encoding = 'UTF-8' ).
  conv->convert(
        EXPORTING input = buffer
        IMPORTING data = text ).
  ASSERT text = `ABC2`.
gruß Jens
https://wiki.scn.sap.com/wiki/display/A ... CONV_IN_CE
<:: 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.

Seite 1 von 1

Vergleichbare Themen

6
Antw.
8927
Views
HTTP Request
von vagans » 20.10.2011 11:11 • Verfasst in ABAP® Core
0
Antw.
1750
Views
ABAP HTTP-Request
von tohe » 05.02.2015 10:38 • Verfasst in ABAP® für Anfänger
0
Antw.
2602
Views
ArchiveLink Fehler bei HTTP Request
von Sascha4SAP » 12.06.2008 17:36 • Verfasst in Basis
3
Antw.
3786
Views
BSP-Seiten als Service - Problem bei HTTP-Request
von Xilukarim » 23.08.2019 13:04 • Verfasst in Web-Dynpro, BSP + BHTML
4
Antw.
7751
Views
SAP als HTTP-Server
von Z_Sven » 14.03.2012 12:02 • Verfasst in Web Application Server

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1610
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8216