Code: Alles auswählen.
method IF_HTTP_EXTENSION~HANDLE_REQUEST.
DATA: lt_indata TYPE TABLE OF ZTZ_CHB_ROH,
lt_ever TYPE TABLE OF EVER,
lv_string TYPE string.
Field-Symbols: <fs_ever> TYPE EVER,
<fs_indata> TYPE ZTZ_CHB_ROH.
* Body-Daten von JSON als String holen
lv_string = server->request->get_cdata( ).
CONCATENATE '[' lv_string ']' INTO lv_string.
* Empfangene Daten in die benötigte Struktur umwandeln
TRY .
/ui2/cl_json=>deserialize(
EXPORTING
json = lv_string
* pretty_name = /ui2/cl_json=>pretty_mode-camel_case
CHANGING
data = lt_indata ).
ENDTRY.
*Tabelle EVER in interne Tablle hinzufügen
SELECT * FROM EVER INTO TABLE lt_ever.
*Einkommendes Datensatz Vertragsnummer in EVER heraussuchen
LOOP AT lt_ever ASSIGNING <fs_ever>
WHERE Vertrag = <fs_indata>-Vertragsnummer.
ENDLOOP.
** Postleizahl wie Vertragsnummer abgleichen. Hängt mit Vertragsnummer zusammen.
* SELECT POST_CODE1
* FROM EVER
* INNER JOIN FKKVKP ON EVER-VKONT = FKKVKP-VKONT
* INNER JOIN BUT020 ON FKKVKP-GPART = BUT020-PARTNER
* INNER JOIN ADRC ON BUT020-ADDRNUMBER = ADRC-ADDRNUMBER
* INTO CORRESPONDING FIELDS OF TABLE
* WHERE EVER-Vertrag = Vertrag.
*
** Zählerstand übermitteln
* CALL FUNCTION ' '
* EXPORTING
*
* IMPORTING
endmethod.
http://www.beginners-sap.com/what-is-odata/Open Data Protocol (OData) is an open protocol which allows the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way initiated 2007 by Microsoft. https://en.wikipedia.org/wiki/Open_Data_Protocol
A RESTful API is an application program interface (API) that uses HTTP requests
to GET, PUT, POST and DELETE data.
A RESTful API , also referred to as a RESTful web service , is based on representational state transfer (REST) technology, an architectural style and approach to communications often used in web service development.
A RESTful API explicitly takes advantage of HTTP methodologies defined by the RFC 2616 protocol. They use GET to retrieve a resource; PUT to change the state of or update a resource, which can be an object, file or block; POST to create that resource; and DELETE to remove it.
Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
thinkpad-94
Danke erstmal für das schnelle Antwort. OData Services ist mir auch schon in den Sinn gekommen, aber leider konnte ich keine ausführliche "Anleitung" finden, womit ich OData Services verstehe und implementieren kann. Ich suche aber mal weiterhin danach. Falls es dazu Tipps mit einem Link gibt wäre ich dankbar!Tron hat geschrieben:Moin.
Untersuche doch eimal, ob Du nicht einen ODATA Webservice einsetzten kannst.
http://www.beginners-sap.com/what-is-odata/Open Data Protocol (OData) is an open protocol which allows the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way initiated 2007 by Microsoft. https://en.wikipedia.org/wiki/Open_Data_Protocol
A RESTful API is an application program interface (API) that uses HTTP requests
to GET, PUT, POST and DELETE data.
A RESTful API , also referred to as a RESTful web service , is based on representational state transfer (REST) technology, an architectural style and approach to communications often used in web service development.
A RESTful API explicitly takes advantage of HTTP methodologies defined by the RFC 2616 protocol. They use GET to retrieve a resource; PUT to change the state of or update a resource, which can be an object, file or block; POST to create that resource; and DELETE to remove it.
Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
thinkpad-94
Folgende Benutzer bedankten sich beim Autor wreichelt für den Beitrag:
thinkpad-94
In SICF fehlt es mir an keinen Berechtigungen.Tron hat geschrieben:... hatte ich auch mal. Da war es eine fehlende Berechtigung (SICF).
Starte doch mal SU53.
gruß Jens
Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
thinkpad-94
Code: Alles auswählen.
method IF_HTTP_EXTENSION~HANDLE_REQUEST.
DATA: lt_indata TYPE TABLE OF ZTZ_CHB_ROH,
lt_ever TYPE TABLE OF EVER,
lt_data TYPE ZTZ_CHB_ROH,
lv_string TYPE string.
Field-Symbols: <fs_ever> TYPE EVER,
<fs_indata> TYPE ZTZ_CHB_ROH.
* Body-Daten von JSON als String holen
lv_string = server->request->get_cdata( ).
CONCATENATE '[' lv_string ']' INTO lv_string.
* Empfangene Daten in die benötigte Struktur umwandeln
TRY .
/ui2/cl_json=>deserialize(
EXPORTING
json = lv_string
* pretty_name = /ui2/cl_json=>pretty_mode-camel_case
CHANGING
data = lt_indata ).
ENDTRY.
*Tabelle EVER mit Vertragsdaten in interne Tablle hinzufügen
SELECT * FROM EVER INTO TABLE lt_ever.
*Einkommendes Datensatz Vertragsnummer in EVER heraussuchen
LOOP AT lt_ever ASSIGNING <fs_ever>
WHERE Vertrag = <fs_indata>-Vertragsnummer.
ENDLOOP.
* Potleizahl überprüfen
SELECT POST_CODE1
FROM EVER
INNER JOIN FKKVKP ON EVER~VKONTO = FKKVKP~VKONT
INNER JOIN BUT020 ON FKKVKP~GPART = BUT020~PARTNER
INNER JOIN ADRC ON BUT020~ADDRNUMBER = ADRC~ADDRNUMBER
INTO CORRESPONDING FIELDS OF lt_data
WHERE EVER~Vertrag = <fs_indata>-Vertragsnummer.
ENDSELECT.
** Zählerstand übermitteln
* CALL FUNCTION 'BAPI_MTRREADDOC_UPLOAD'
* EXPORTING
* TABLES
* BAPIEABLU = .
* IMPORTING
endmethod.