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( ).