* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZTMP_CL_JSON_TEST->CREATE_JSON_FROM_STC
* +-------------------------------------------------------------------------------------------------+
* | [<-()] DURATION TYPE DECFLOAT34
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD CREATE_JSON_FROM_STC.
STC1-ELEMENT1 = '1'.
STC1-ELEMENT2 = '22'.
SELECT * FROM MARA INTO TABLE @DATA(MARA_TMP) UP TO 100 rows.
SELECT * FROM MSEG INTO TABLE @DATA(MSEG_TMP) UP TO 100 rows.
APPEND LINES OF MARA_TMP TO STC1-MARAS.
APPEND LINES OF MSEG_TMP TO STC1-MSEGS.
GET RUN TIME FIELD DATA(STARTTIME).
JSON_STR = /UI2/CL_JSON=>SERIALIZE( EXPORTING DATA = STC1 ).
GET RUN TIME FIELD DATA(ENDTIME).
DURATION = CONV DECFLOAT34( ENDTIME - STARTTIME ).
ENDMETHOD.
METHOD JSON_TO_STC.
GET RUN TIME FIELD DATA(STARTTIME).
/UI2/CL_JSON=>DESERIALIZE(
EXPORTING
JSON = JSON_STR
CHANGING
DATA = STC2
).
GET RUN TIME FIELD DATA(ENDTIME).
DURATION = CONV DECFLOAT34( ENDTIME - STARTTIME ).
ENDMETHOD.
ENDCLASS.
CLASS zjson_cl_mssql_plm DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS:BEGIN OF c_stat,
success TYPE char1 VALUE 'S',
warning TYPE char1 VALUE 'W',
error TYPE char1 VALUE 'E',
END OF c_stat.
TYPES: BEGIN OF gty_status,
status TYPE char1,
status_text TYPE char200,
END OF gty_status.
TYPES: BEGIN OF gty_cas,
id TYPE char100,
cdate TYPE char100,
jdoc TYPE string,
msegs TYPE string,
maras TYPE string,
END OF gty_cas,
gty_t_cas TYPE TABLE OF gty_cas.
DATA: cass TYPE gty_t_cas.
METHODS read_all_data
RETURNING VALUE(status) TYPE gty_status.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS: c_conname TYPE dbcon-con_name VALUE 'MSSQL'.
ENDCLASS.
CLASS ZJSON_CL_MSSQL_PLM IMPLEMENTATION.
* <SIGNATURE>---------------------------------------------------------------------------------------+
* | Instance Public Method ZJSON_CL_MSSQL_PLM->READ_ALL_DATA
* +-------------------------------------------------------------------------------------------------+
* | [<-()] STATUS TYPE GTY_STATUS
* +--------------------------------------------------------------------------------------</SIGNATURE>
METHOD read_all_data.
DATA: exref TYPE REF TO cx_root.
TRY .
DATA: id TYPE char100,
cdate TYPE char100,
msegs TYPE string,
maras TYPE string,
jdoc TYPE string.
EXEC SQL.
CONNECT to :c_conname
ENDEXEC.
"Get Data
EXEC SQL.
OPEN dbcur FOR
select
id
,cdate
,jdoc
,JSON_QUERY(jdoc, '$.MSEGS') as MSEGS
,JSON_QUERY(jdoc, '$.MARAS') as MARAS
from CAS
ENDEXEC.
"Fetch data
DO.
CLEAR:id ,cdate ,msegs, maras, jdoc.
EXEC SQL.
fetch next dbcur into :id, :cdate ,:jdoc ,:msegs ,:maras
ENDEXEC.
IF sy-subrc <> 0.
EXIT.
ENDIF.
APPEND VALUE #( id = id cdate = cdate jdoc = jdoc msegs = msegs maras = maras ) TO cass.
ENDDO.
"Close db cursor
EXEC SQL.
close dbcur
ENDEXEC.
EXEC SQL.
disconnect :c_conname
ENDEXEC.
status-status = c_stat-success.
CATCH cx_root INTO exref.
status-status = c_stat-error.
status-status_text = exref->get_text( ).
ENDTRY.
ENDMETHOD.
ENDCLASS.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |