想要把response table變成HTML的table,即想達到下面這種的話
<table boarder="1" style="width:100%; boarder-collapse: collapse; text-align:left">
<tr>
<th>Customer</th>
<th>Date</th>
<th>Debit Amount</th>
<th>Payment Amount</th>
<th>Remain Balance</th>
</tr>
<tr>
<td>40000446</td>
<td>20250501</td>
<td>17227.80</td>
<td>0.00</td>
<td>17227.80</td>
</tr>
<tr>
<td>40000446</td>
<td>20250515</td>
<td>54.52</td>
<td>0.00</td>
<td>54.52</td>
</tr>
</table>
可以這樣子開發:
??METHOD?if_http_extension~handle_request.
DATA:?lv_jsonbody?????TYPE?string,
lv_xstring??????TYPE?xstring,
lv_html_string??TYPE?string.
"get?Request?Body:?JSON->ABAP
lv_jsonbody?=?server->request->get_cdata(?).
CALL?METHOD?/ui2/cl_json=>deserialize
EXPORTING
json?????????=?lv_jsonbody
pretty_name??=?/ui2/cl_json=>pretty_mode-none
assoc_arrays?=?abap_true
CHANGING
data?????????=?ms_req.
**********************************************************************
CALL?METHOD?me->pre_requisition.
CALL?METHOD?me->business_logic.
**********************************************************************
lv_html_string?=?'<table?boarder?=?"1"?style?=?"width:100%;?boarder-collapse:?collapse;?text-align:left">'.
lv_html_string?=?lv_html_string?&&?'<tr><th>Customer</th><th>Date</th><th>Debit?Amount</th><th>Payment?Amount</th><th>Remain?Balance</th></tr>'.
LOOP?AT?mt_resp?ASSIGNING?FIELD-SYMBOL(<resp>).
lv_html_string?=?lv_html_string?&&?'<tr>'.
lv_html_string?=?lv_html_string?&&?'<td>'?&&?<resp>-customer?&&?'</td>'.
lv_html_string?=?lv_html_string?&&?'<td>'?&&?<resp>-date?&&?'</td>'.
lv_html_string?=?lv_html_string?&&?'<td>'?&&?<resp>-debit_amount?&&?'</td>'.
lv_html_string?=?lv_html_string?&&?'<td>'?&&?<resp>-payment_amount?&&?'</td>'.
lv_html_string?=?lv_html_string?&&?'<td>'?&&?<resp>-remain_balance?&&?'</td>'.
lv_html_string?=?lv_html_string?&&?'</tr>'.
ENDLOOP.
lv_html_string?=?lv_html_string?&&?'</table>'.
**********************************************************************
CALL?METHOD?server->response->set_content_type(?if_rest_media_type=>gc_text_html?).
CALL?METHOD?server->response->set_cdata(
EXPORTING
data?=?lv_html_string?).
CALL?METHOD?server->response->set_status(
EXPORTING
code???=?201
reason?=?'Executed'?).
ENDMETHOD.