pai

in src/zgoog_data_cluster_editor.prog.abap [0:0]


  METHOD pai.

    CASE sy-ucomm.
      WHEN 'BACK' OR 'UP' OR 'EXIT'.
        SET SCREEN 0.
        LEAVE SCREEN.
      WHEN 'SAVE'.

        DATA: lv_xstring TYPE xstring.

        lv_xstring = go_editor->get_xstring( ).

        DATA: lo_serial TYPE REF TO object.
        DATA: lr_data TYPE REF TO data.

        FIELD-SYMBOLS:
          <lv_data> TYPE any.

        IF gs_config-class IS NOT INITIAL.
          ASSIGN lo_serial TO <lv_data>.
        ELSE.
          CREATE DATA lr_data TYPE (gs_config-data_type).
          ASSIGN lr_data->* TO <lv_data>.
        ENDIF.


        CALL METHOD zgoog_cl_data_cluster=>json_to_abap
          EXPORTING
            iv_json_xstring = lv_xstring
          IMPORTING
            ev_data         = <lv_data>.

        DATA: lv_count TYPE i.
        CALL METHOD zgoog_cl_data_cluster=>export_data
          EXPORTING
            iv_table    = gs_config-cluster_table
            iv_area     = gs_config-relid
            iv_id       = gs_config-srtfd
            iv_data     = <lv_data>
            iv_format   = if_sxml=>co_xt_json
          IMPORTING
            ev_db_count = lv_count.

        IF lv_count > 0.
          MESSAGE 'Data saved successfully' TYPE 'S'.
        ENDIF.

    ENDCASE.