generate_sql

in src/zgoog_cl_nl2sql_cds_view.clas.abap [0:0]


  METHOD generate_sql.

    DATA(lo_ddl) = cl_dd_ddl_handler_factory=>create( ).

    TRY.
        lo_ddl->read(
          EXPORTING
            name             = iv_cds_view
            get_state        = 'M'
            withtext         = abap_true
            langu            = 'E'
          IMPORTING
            ddddlsrcv_wa     = DATA(ls_ddl_src)
            baseinfo_string  = DATA(lv_baseinfo) ).

      CATCH cx_dd_ddl_read INTO DATA(lo_ddl_read).
        RAISE EXCEPTION TYPE /goog/cx_sdk
          EXPORTING
            previous = lo_ddl_read.
    ENDTRY.

    DATA(lv_prompt) = 'Your task is to generate ABAP SQL statement for the given prompt below.' &&
                 'Only output the SQL statement without any annotations.' &&
                 'Generate a SELECT * statement by only using fields of DDL statement in where clause.' &&
                 cl_abap_char_utilities=>cr_lf &&
                 'DDL Statement : ' && ls_ddl_src-source && '.' &&
                 cl_abap_char_utilities=>cr_lf &&
                 'User Prompt: ' && iv_prompt.

    DATA(lo_response) =  go_genai_model->generate_content( lv_prompt ).

    rv_abap_sql = lo_response->get_text( ).