REPORT zactivate.
PARAMETERS: purl TYPE char32 OBLIGATORY LOWER CASE.
DATA: lv_content TYPE string,
lt_node TYPE zcl_jerry_tool=>tt_sorted_node,
lv_number TYPE int4,
lv_size TYPE int4,
lv_total_size TYPE int8,
lv_from TYPE char32,
lv_index TYPE int4 VALUE 1,
lt_pic TYPE string_table.
CONSTANTS: folder TYPE string VALUE 'C:\Users\i042416\Pictures\pic\clipboard',
postfix TYPE string VALUE '>
INITIALIZATION.
GET PARAMETER ID 'ZNOTE_ID' FIELD lv_from.
IF lv_from IS NOT INITIAL.
purl = lv_from.
ENDIF.
START-OF-SELECTION.
DATA: lv_url TYPE string.
lv_url = 'http://note.youdao.com/yws/public/note/' && purl && '?keyfrom=public'.
SET PARAMETER ID 'ZNOTE_ID' FIELD purl.
DATA(lv_post_len) = strlen( postfix ).
lv_content = zcl_crm_cm_tool=>get_text_by_url( lv_url ).
CALL METHOD zcl_jerry_tool=>parse_json_to_internal_table
EXPORTING
iv_json = lv_content
IMPORTING
et_node = lt_node
ev_node_number = lv_number.
ASSERT lv_number = 1.
READ TABLE lt_node ASSIGNING FIELD-SYMBOL() WITH KEY attribute = 'tl'.</div><div> ASSERT sy-subrc = 0.</div><div> READ TABLE lt_node ASSIGNING FIELD-SYMBOL(<node>) WITH KEY attribute = 'content'.</div><div> ASSERT sy-subrc = 0.</div><div> SPLIT <node>-value AT space INTO TABLE DATA(lt_result).</div><div> LOOP AT lt_result ASSIGNING FIELD-SYMBOL(<entry>) WHERE table_line CS 'src='.</div><div> lv_number = strlen( <entry> ) - 6.</div><div> DATA(url) = <entry>+5(lv_number).</div><div> REPLACE ALL OCCURRENCES OF `"` IN url WITH space.</div><div> CONDENSE url.</div><div> DATA(lv_url_len) = strlen( url ) - lv_post_len.</div><div> url = url+0(lv_url_len).</div><div> APPEND url TO lt_pic.</div><div> ENDLOOP.</div><div> WRITE: / 'ok'.</div><div> DATA(lv_total) = lines( lt_pic ).</div><div> LOOP AT lt_pic ASSIGNING FIELD-SYMBOL(<pic>).</div><div> DATA(lv_name) = folder && lv_index && '.png'.</div><div> DATA(lv_text) = 'Downloading file: ' && lv_name.</div><div> CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'</div><div> EXPORTING</div><div> percentage = lv_index * 100 / lv_total</div><div> text = lv_text.</div><div> DATA(binary) = zcl_crm_cm_tool=>get_data_by_url( <pic> ).</div><div> zcl_crm_cm_tool=>download_locally( iv_local_path = lv_name iv_binary = binary ).</div><div> lv_total_size = lv_total_size + xstrlen( binary ).</div><div> ADD 1 TO lv_index.</div><div> ENDLOOP.</div><div> WRITE: / 'totally ', lv_total, ' pictures downloaded successfully!' COLOR COL_NEGATIVE.</div><div> DATA: ls_note TYPE crmd_prod_note.</div><div> CALL FUNCTION 'GUID_CREATE'</div><div> IMPORTING</div><div> ev_guid_16 = ls_note-note_guid.</div><div> ls_note-note_title = <title>-value.</div><div> ls_note-pic_size = lv_total.</div><div> ls_note-download_date = sy-datum.</div><div> ls_note-download_time = sy-timlo.</div><div> ls_note-total_size = lv_total_size.</div><div> INSERT crmd_prod_note FROM ls_note.</div>