SAP資格過去問ならSAPnavi

NoteやStripe決済で安全にSAP過去問を購入することができます。
領収書発行可能 / 即時入手可能

SAP過去問 (SAP Exam)

The POST Method

意味

クラスCL_REST_SAMPLE_CARSのメソッドIF_REST_RESOURCE〜POSTを使用して、タイプCarの新しいリソースを作成します。

例:

URI http:// myhost:4711 / sap / bc / rest_cars / Carsは、HTTP POSTコマンドで送信されると、メソッドIF_REST_RESOURCE〜POSTの呼び出しをトリガーします。リソースURIテンプレート’/CarsはクラスCL_REST_SAMPLE_CARSと一致し(「 ABAPプロセッサクラスのアタッチ」のセクションを参照)、クライアント要求にはHTTPコマンドPOSTが付属しています。

新しいリソースを作成するための有効なHTTPボディは、次のようになります。

            <?xml version="1.0" encoding="utf-8"?><asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"><asx:values><CAR><MODEL_NAME>Boxter</MODEL_NAME><MANU_ID>1</MANU_ID><PRICE>40599.98</PRICE><CURRENCY>EUR</CURRENCY><MODEL_YEAR>2010</MODEL_YEAR><IMAGE_TYPE /><IMAGE_PATH /><UPDATE_USER /></CAR></asx:values></asx:abap>         

これはPOSTメソッドの実装です。

            method if_rest_resource~post....  lo_entity = mo_request->get_entity( ).  lv_xstr = lo_entity->get_binary_data( ).  get time stamp field lv_updated.  call transformation id    source xml lv_xstr    result car = ls_db_car_in.  if ls_db_car_in is initial.    mo_response->set_status( cl_rest_status_code=>gc_client_error_bad_request ).    return.  endif.  ls_db_car_in-update_timestamp = lv_updated.  select max( id ) from r_car into ls_db_car_in-id.  add 1 to ls_db_car_in-id.    " a new ID is simply the next unused ID  insert r_car from ls_db_car_in.  if sy-subrc <> 0.    mo_response->set_status( cl_rest_status_code=>gc_server_error_internal ).    return.  endif.  call transformation id    source dealer = ls_db_car_in    result xml lv_xstr.  lo_entity = mo_response->create_entity( ).  lo_entity->set_binary_data( lv_xstr ).  ls_etag-tag = get_etag( lv_updated ).  ls_etag-weak = abap_true.  lv_etag = cl_rest_http_utils=>format_tag( ls_etag ).  mo_response->set_header_field( iv_name = if_http_header_fields=>etag iv_value = lv_etag ).  mo_response->set_status( cl_rest_status_code=>gc_success_created ).endmethod.         

  • リクエストのHTTPボディを使用して渡されたデータは、ABAPIDトランスフォーメーションを使用して逆シリアル化されます。

  • 新しいキーが生成され、永続化レイヤーに使用されます。

  • ETagの処理は、 「Getメソッド」セクションの処理と同じです。

  • 新しいリソースはXML形式のHTTP本文に設定され、戻りコードはHTTP 201(「作成済み」)に設定されます。

タイトルとURLをコピーしました