handle_create

in abap-sdk/ZGOOG_SDK_RECIPES/ZGOOG_SDK_BQML_RECIPE/zr_bigquery_ml_recipe.prog.abap [0:0]


  METHOD handle_create.

    DATA(lo_client) = bq_client( ).

    TRY.

        lo_client->insert_datasets(
          EXPORTING
            iv_p_projects_id = CONV #( lo_client->gv_project_id )
            is_input         = VALUE #( dataset_reference =
                                   VALUE #( dataset_id = p_dset
                                            project_id = lo_client->gv_project_id ) )
          IMPORTING
            ev_ret_code      = DATA(lv_ret_code)
            ev_err_text      = DATA(lv_err_text) ).

        IF lo_client->is_success( lv_ret_code ).
          WRITE: / |Dataset { p_dset } created|.
        ELSE.
          MESSAGE lv_err_text TYPE 'E'.
        ENDIF.


        DATA: ls_input TYPE /goog/cl_bigquery_v2=>ty_131.

        ls_input-id = p_table.
        ls_input-table_reference-dataset_id = p_dset.
        ls_input-table_reference-project_id = lo_client->gv_project_id.
        ls_input-table_reference-table_id = p_table.

        ls_input-schema-fields = VALUE #( ( name = 'date' type = 'DATE' )
                                          ( name = 'value' type = 'NUMERIC' ) ).

        lo_client->insert_tables(
          EXPORTING
            iv_p_datasets_id = p_dset
            iv_p_projects_id = CONV #( lo_client->gv_project_id )
            is_input         = ls_input
          IMPORTING
            ev_ret_code      = lv_ret_code
            ev_err_text      = lv_err_text ).

        IF lo_client->is_success( lv_ret_code ) = abap_true.
          WRITE: / |Table { p_table } created|.
        ELSE.
          MESSAGE lv_err_text TYPE 'E'.
        ENDIF.




      CATCH /goog/cx_sdk INTO DATA(lo_ex).
        MESSAGE lo_ex->get_text( ) TYPE 'E'.
    ENDTRY.