Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von mhsoftware (ForumUser / 5 / 1 / 0 ) »
Hallo zusammen,

ich habe eine interne Tabelle mit mehreren Datenzeilen. Ich loope über die Tabelle, und für jeden Eintrag rufe ich die selbe BSP-Seite auf.
Ziel ist: Die Daten jeder Zeile in HTML-Format zu lesen und dann diese als HTML-Datei herunterzuladen.
Problem ist:
der erste Aufruf (erste Durchlauf) funktioniert perfekt und liefert html-Text zurück, aber bei nächsten Aufrufen liefert die Methode http_client->response->get_cdata( ) keine Daten zurück, obwohl alles fehlerfrei gelaufen ist (response-status = 200).

ich bitte um Hilfe!

hier ist die Aufruf-Logik:

Code: Alles auswählen.


loop at it_data .....
  ......
  ......

   CALL METHOD cl_http_ext_webapp=>create_url_for_bsp_application
      EXPORTING
        bsp_application      = iv_app
        bsp_start_page       = iv_page
        bsp_start_parameters = lt_params      
      IMPORTING
        abs_url              = lv_url.

*   Create internal http client
    CALL METHOD cl_http_client=>create_internal
      IMPORTING
        client            = lr_http_client
      EXCEPTIONS
        plugin_not_active = 1
        internal_error    = 2
        OTHERS            = 3.
    IF sy-subrc <> 0.
      ev_error = abap_true.
      RETURN.
    ENDIF.

    cl_http_utility=>set_request_uri( request  = lr_http_client->request
                                                        uri      = lv_url ).

    lr_http_client->request->set_header_field( name  = '~request_method'
                                                                   value = 'GET' ).

    lr_http_client->request->set_header_field( name  = 'user-agent'
                                                                   value = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)' ). 

*   Send and recieve
    lr_http_client->send(
      EXCEPTIONS
        http_communication_failure = 1
        http_invalid_state         = 2
        http_processing_failed     = 3
        http_invalid_timeout       = 4
        OTHERS                     = 5
    ).
    IF sy-subrc = 0.
      lr_http_client->receive(
        EXCEPTIONS
          http_communication_failure = 1
          http_invalid_state         = 2
          http_processing_failed     = 3
          OTHERS                     = 4
      ).
    ENDIF.

    IF sy-subrc <> 0.
      CALL METHOD lr_http_client->get_last_error
        IMPORTING
          code    = lv_rc
          message = lv_message.
      ev_error = abap_true.
      RETURN.
    ENDIF.

    lr_http_client->response->get_status( IMPORTING code   = lv_rc
                                                                              reason = lv_reason ).
    IF lv_rc = 200.
      ev_html = lr_http_client->response->get_cdata( ).
    ELSE.
      ev_error = abap_true.
      RETURN.
    ENDIF.

    lr_http_client->close( ).
endloop.

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


Re: Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von a-dead-trousers (Top Expert / 4411 / 224 / 1184 ) »
Hi.

Punkt 1) Du kannst die lr_http_client Instanz auch öfters verwenden und musst sie nicht mit jedem Schleifen-Durchlauf neu erzeugen.
Punkt 2) Möglich, dass die Anfrage gepuffert wird. Bist du sicher, dass der Request jedes Mal bis zur BSP Applikation durchgereicht wird? Hast du das BSP schon mal gedebuggt?
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: Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von mhsoftware (ForumUser / 5 / 1 / 0 ) »
Danke für die Antwort.
Zum Punkt 1): ich habe es so angepasst, dass htp_client Instanz außerhalb der Schleife erzeugt wird (Aufruf cl_http_client=>create_internal() ), aber es hat leider auch nicht funktioniert.
Zum Punkt 2): ja ich habe es debuggt, der Request ist jedes Mal bis zur BSP-App (-Seite) durchgereicht, aber ich kann nicht verfolgen, wo die Daten danach verloren gehen!!

Re: Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von a-dead-trousers (Top Expert / 4411 / 224 / 1184 ) »
Hast du das CLOSE jetzt innerhalb oder auch außerhalb der Schleife?
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: Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von mhsoftware (ForumUser / 5 / 1 / 0 ) »
CLOSE ist außerhalb der Schleife.

Re: Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von a-dead-trousers (Top Expert / 4411 / 224 / 1184 ) »
Leider gehen mir langsam aber sicher die Ideen aus.
Worüber ich bei HTTP-Applikationen im SAP-ICF Umfeld schon öfter gestolpert bin, sind Puffer. Da aber dann, dass der Request nicht mehrmals ankommt (was du ja wiederlegen konntest) weil das ICF den gepufferten Response nochmal ausgeliefert hat. Du könntest aber trotzdem probieren einen HTTP Request Expires Header mitzuschicken. Vielleicht hilfts ja.
Andere Idee: Hast du geprüft ob es nicht am Inhalt des Requests liegt? Sprich wenn du die Sortierung deiner Datensätze für den Request änderst ob dann auch nur der erste gut geht und der zweite nicht mehr.
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: Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von mhsoftware (ForumUser / 5 / 1 / 0 ) »
Zum einen: es ist sicher und klar dass es mit der Soriterung der Datensätze nicht zu tun hat. Ich habe die Sortierung geändert, und immer nur der Erste gut geht.
Zum anderen: ich gebe dir hier den Inhalt der Header Felder von Response der beiden Datenzeilen (erste und zweite). Vielleicht wäre das hilfreich:

- Erste Datenzeile:
----------------------
~response_line HTTP/1.0 200 OK
~server_protocol HTTP/1.0
~status_code 200
~status_reason OK
set-cookie sap-appcontext=c2FwLXNlc3Npb25pZD1TSUQlM2; path=/sap(bD1kZSZjPTEwMA==)/bc/bsp/*********
content-type text/html; charset=utf-8
content-length 7929
expires -1
pragma no-cache
cache-control no-cache, no-store, private, must-revalidate

--------------------
Zweite Datenzeile:
--------------------
~response_line HTTP/1.0 200 OK
~server_protocol HTTP/1.0
~status_code 200
~status_reason OK
content-type text/html; charset=utf-8
content-length 0
expires -1
pragma no-cache
cache-control no-cache, no-store, private, must-revalidate
--------------------------

Als Unterschied fehlt es das Field SET-COOKIE bei der zweiten Datenzeile.
EXPIRES hat den Wert -1 (was soll das bedeuten?)

Re: Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von a-dead-trousers (Top Expert / 4411 / 224 / 1184 ) »
Nachdem beim zweiten Aufruf, auch keine Cookies zurückgeliefert werden, scheint es so, dass die Verarbeitung hier etwas anderes erwartet.
Ich würden den "Fehler" daher in der BSP Applikation suchen. Scheinbar wird hier eine Session gestartet und beim zweiten Aufruf werden irgendwelche Informationen aus dem ersten Aufruf (z.B. Cookies) erwartet und weil diese fehlen, wird der zweite Aufruf in der App "abgebrochen" bzw. nicht weiter verarbeitet.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
mhsoftware

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: Problem: keine Response! wenn die selbe BSP Seite mehrmals aufgerufen!!

Beitrag von mhsoftware (ForumUser / 5 / 1 / 0 ) »
Du hast Recht!
Der Fehler liegt in der BSP-App Einstellungen.
Ich habe es so angepasst:
1- BSP-Applikation Eigenschaften-> als zustandsbehaftet gesetzt.
2- BSP-Seite Eigenschaften->Lebensdauer auf 'Request' umgestellt. (das stellt fest, für welchen Zeitraum die Instanz der Seite/des Controllers erhalten bleibt.)

Es hat jetzt richtig funktioniert.
Session-ID wurde jetzt in Cookies als Response-Header-Feld bei jeden Aufruf immer gesetzt.

Danke für Deine Hilfe.
LG

Seite 1 von 1

Vergleichbare Themen

10
Antw.
3682
Views
mehrmals Eingaben auf BSP Seite möglich?
von sap_abc » 21.03.2006 11:48 • Verfasst in Web-Dynpro, BSP + BHTML
0
Antw.
1426
Views
Verbuchungsfunktionsbaustein wird nicht aufgerufen
von solyomvari » 01.11.2005 17:16 • Verfasst in ABAP® Core
1
Antw.
1768
Views
Auswertung, welche ABAP-Programme aufgerufen
von mishak » 01.12.2005 10:17 • Verfasst in Basis
19
Antw.
7297
Views
was wird aufgerufen wenn man einen Menüpunkt anklickt?
von bohne » 12.09.2006 14:15 • Verfasst in ABAP® Core
8
Antw.
5308
Views
Z-Reports die seit 2 Jahren od. mehr nicht aufgerufen wurden
von green_man7 » 28.06.2012 12:46 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor 3 Minuten von Paradasa gelöst 5 / 5984
ABAP - Mail so10 Text
vor einer Stunde von retsch 6 / 97
selection-screen comment mit icon
vor 9 Stunden von DeathAndPain 9 / 1151

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.

Aktuelle Forenbeiträge

Nach MESSAGE TYPE E Felder entsperren
vor 3 Minuten von Paradasa gelöst 5 / 5984
ABAP - Mail so10 Text
vor einer Stunde von retsch 6 / 97
selection-screen comment mit icon
vor 9 Stunden von DeathAndPain 9 / 1151

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor 4 Tagen von Manfred K. 1 / 927
BUSOBJEKT zu CMIS PHIO ermitteln
vor 3 Wochen von snooga87 1 / 2732