/AWS1/IF_GLU=>SEARCHTABLES()¶
About SearchTables¶
Searches a set of tables based on properties in the table metadata as well as on the parent database. You can search against text or filter conditions.
You can only get tables that you have access to based on the security policies defined in Lake Formation. You need at least a read-only access to the table for it to be returned. If you do not have access to all the columns in the table, these columns will not be searched against when returning the list of tables back to you. If you have access to the columns but not the data in the columns, those columns and the associated metadata for those columns will be included in the search.
Method Signature¶
METHODS /AWS1/IF_GLU~SEARCHTABLES
IMPORTING
!IV_CATALOGID TYPE /AWS1/GLUCATALOGIDSTRING OPTIONAL
!IV_NEXTTOKEN TYPE /AWS1/GLUTOKEN OPTIONAL
!IT_FILTERS TYPE /AWS1/CL_GLUPROPERTYPREDICATE=>TT_SEARCHPROPERTYPREDICATES OPTIONAL
!IV_SEARCHTEXT TYPE /AWS1/GLUVALUESTRING OPTIONAL
!IT_SORTCRITERIA TYPE /AWS1/CL_GLUSORTCRITERION=>TT_SORTCRITERIA OPTIONAL
!IV_MAXRESULTS TYPE /AWS1/GLUPAGESIZE OPTIONAL
!IV_RESOURCESHARETYPE TYPE /AWS1/GLURESOURCESHARETYPE OPTIONAL
!IV_INCLUDESTATUSDETAILS TYPE /AWS1/GLUBOOLEANNULLABLE OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_glusearchtablesrsp
RAISING
/AWS1/CX_GLUINTERNALSERVICEEX
/AWS1/CX_GLUINVALIDINPUTEX
/AWS1/CX_GLUOPERATIONTIMEOUTEX
/AWS1/CX_GLUCLIENTEXC
/AWS1/CX_GLUSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Optional arguments:¶
iv_catalogid TYPE /AWS1/GLUCATALOGIDSTRING /AWS1/GLUCATALOGIDSTRING¶
A unique identifier, consisting of
account_id.
iv_nexttoken TYPE /AWS1/GLUTOKEN /AWS1/GLUTOKEN¶
A continuation token, included if this is a continuation call.
it_filters TYPE /AWS1/CL_GLUPROPERTYPREDICATE=>TT_SEARCHPROPERTYPREDICATES TT_SEARCHPROPERTYPREDICATES¶
A list of key-value pairs, and a comparator used to filter the search results. Returns all entities matching the predicate.
The
Comparatormember of thePropertyPredicatestruct is used only for time fields, and can be omitted for other field types. Also, when comparing string values, such as whenKey=Name, a fuzzy match algorithm is used. TheKeyfield (for example, the value of theNamefield) is split on certain punctuation characters, for example, -, :, #, etc. into tokens. Then each token is exact-match compared with theValuemember ofPropertyPredicate. For example, ifKey=NameandValue=link, tables namedcustomer-linkandxx-link-yyare returned, butxxlinkyyis not returned.
iv_searchtext TYPE /AWS1/GLUVALUESTRING /AWS1/GLUVALUESTRING¶
A string used for a text search.
Specifying a value in quotes filters based on an exact match to the value.
it_sortcriteria TYPE /AWS1/CL_GLUSORTCRITERION=>TT_SORTCRITERIA TT_SORTCRITERIA¶
A list of criteria for sorting the results by a field name, in an ascending or descending order.
iv_maxresults TYPE /AWS1/GLUPAGESIZE /AWS1/GLUPAGESIZE¶
The maximum number of tables to return in a single response.
iv_resourcesharetype TYPE /AWS1/GLURESOURCESHARETYPE /AWS1/GLURESOURCESHARETYPE¶
Allows you to specify that you want to search the tables shared with your account. The allowable values are
FOREIGNorALL.
If set to
FOREIGN, will search the tables shared with your account.If set to
ALL, will search the tables shared with your account, as well as the tables in yor local account.
iv_includestatusdetails TYPE /AWS1/GLUBOOLEANNULLABLE /AWS1/GLUBOOLEANNULLABLE¶
Specifies whether to include status details related to a request to create or update an Glue Data Catalog view.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_glusearchtablesrsp /AWS1/CL_GLUSEARCHTABLESRSP¶
Domain /AWS1/RT_ACCOUNT_ID Primitive Type NUMC
Examples¶
Syntax Example¶
This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.
DATA(lo_result) = lo_client->searchtables(
it_filters = VALUE /aws1/cl_glupropertypredicate=>tt_searchpropertypredicates(
(
new /aws1/cl_glupropertypredicate(
iv_comparator = |string|
iv_key = |string|
iv_value = |string|
)
)
)
it_sortcriteria = VALUE /aws1/cl_glusortcriterion=>tt_sortcriteria(
(
new /aws1/cl_glusortcriterion(
iv_fieldname = |string|
iv_sort = |string|
)
)
)
iv_catalogid = |string|
iv_includestatusdetails = ABAP_TRUE
iv_maxresults = 123
iv_nexttoken = |string|
iv_resourcesharetype = |string|
iv_searchtext = |string|
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_token = lo_result->get_nexttoken( ).
LOOP AT lo_result->get_tablelist( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_namestring = lo_row_1->get_name( ).
lv_namestring = lo_row_1->get_databasename( ).
lv_descriptionstring = lo_row_1->get_description( ).
lv_namestring = lo_row_1->get_owner( ).
lv_timestamp = lo_row_1->get_createtime( ).
lv_timestamp = lo_row_1->get_updatetime( ).
lv_timestamp = lo_row_1->get_lastaccesstime( ).
lv_timestamp = lo_row_1->get_lastanalyzedtime( ).
lv_nonnegativeinteger = lo_row_1->get_retention( ).
lo_storagedescriptor = lo_row_1->get_storagedescriptor( ).
IF lo_storagedescriptor IS NOT INITIAL.
LOOP AT lo_storagedescriptor->get_columns( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_namestring = lo_row_3->get_name( ).
lv_columntypestring = lo_row_3->get_type( ).
lv_commentstring = lo_row_3->get_comment( ).
LOOP AT lo_row_3->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
lv_locationstring = lo_storagedescriptor->get_location( ).
LOOP AT lo_storagedescriptor->get_additionallocations( ) into lo_row_5.
lo_row_6 = lo_row_5.
IF lo_row_6 IS NOT INITIAL.
lv_locationstring = lo_row_6->get_value( ).
ENDIF.
ENDLOOP.
lv_formatstring = lo_storagedescriptor->get_inputformat( ).
lv_formatstring = lo_storagedescriptor->get_outputformat( ).
lv_boolean = lo_storagedescriptor->get_compressed( ).
lv_integer = lo_storagedescriptor->get_numberofbuckets( ).
lo_serdeinfo = lo_storagedescriptor->get_serdeinfo( ).
IF lo_serdeinfo IS NOT INITIAL.
lv_namestring = lo_serdeinfo->get_name( ).
lv_namestring = lo_serdeinfo->get_serializationlibrary( ).
LOOP AT lo_serdeinfo->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT lo_storagedescriptor->get_bucketcolumns( ) into lo_row_7.
lo_row_8 = lo_row_7.
IF lo_row_8 IS NOT INITIAL.
lv_namestring = lo_row_8->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_storagedescriptor->get_sortcolumns( ) into lo_row_9.
lo_row_10 = lo_row_9.
IF lo_row_10 IS NOT INITIAL.
lv_namestring = lo_row_10->get_column( ).
lv_integerflag = lo_row_10->get_sortorder( ).
ENDIF.
ENDLOOP.
LOOP AT lo_storagedescriptor->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
lo_skewedinfo = lo_storagedescriptor->get_skewedinfo( ).
IF lo_skewedinfo IS NOT INITIAL.
LOOP AT lo_skewedinfo->get_skewedcolumnnames( ) into lo_row_7.
lo_row_8 = lo_row_7.
IF lo_row_8 IS NOT INITIAL.
lv_namestring = lo_row_8->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_skewedinfo->get_skewedcolumnvalues( ) into lo_row_11.
lo_row_12 = lo_row_11.
IF lo_row_12 IS NOT INITIAL.
lv_columnvaluesstring = lo_row_12->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_skewedinfo->get_skewedcolumnvaluelocmaps( ) into ls_row_13.
lv_key_1 = ls_row_13-key.
lo_value_1 = ls_row_13-value.
IF lo_value_1 IS NOT INITIAL.
lv_columnvaluesstring = lo_value_1->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_boolean = lo_storagedescriptor->get_storedassubdirectories( ).
lo_schemareference = lo_storagedescriptor->get_schemareference( ).
IF lo_schemareference IS NOT INITIAL.
lo_schemaid = lo_schemareference->get_schemaid( ).
IF lo_schemaid IS NOT INITIAL.
lv_glueresourcearn = lo_schemaid->get_schemaarn( ).
lv_schemaregistrynamestrin = lo_schemaid->get_schemaname( ).
lv_schemaregistrynamestrin = lo_schemaid->get_registryname( ).
ENDIF.
lv_schemaversionidstring = lo_schemareference->get_schemaversionid( ).
lv_versionlongnumber = lo_schemareference->get_schemaversionnumber( ).
ENDIF.
ENDIF.
LOOP AT lo_row_1->get_partitionkeys( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_namestring = lo_row_3->get_name( ).
lv_columntypestring = lo_row_3->get_type( ).
lv_commentstring = lo_row_3->get_comment( ).
LOOP AT lo_row_3->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
lv_viewtextstring = lo_row_1->get_vieworiginaltext( ).
lv_viewtextstring = lo_row_1->get_viewexpandedtext( ).
lv_tabletypestring = lo_row_1->get_tabletype( ).
LOOP AT lo_row_1->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
lv_namestring = lo_row_1->get_createdby( ).
lv_boolean = lo_row_1->get_isregedwithlakeformation( ).
lo_tableidentifier = lo_row_1->get_targettable( ).
IF lo_tableidentifier IS NOT INITIAL.
lv_catalogidstring = lo_tableidentifier->get_catalogid( ).
lv_namestring = lo_tableidentifier->get_databasename( ).
lv_namestring = lo_tableidentifier->get_name( ).
lv_namestring = lo_tableidentifier->get_region( ).
ENDIF.
lv_catalogidstring = lo_row_1->get_catalogid( ).
lv_versionstring = lo_row_1->get_versionid( ).
lo_federatedtable = lo_row_1->get_federatedtable( ).
IF lo_federatedtable IS NOT INITIAL.
lv_federationidentifier = lo_federatedtable->get_identifier( ).
lv_federationidentifier = lo_federatedtable->get_databaseidentifier( ).
lv_namestring = lo_federatedtable->get_connectionname( ).
lv_namestring = lo_federatedtable->get_connectiontype( ).
ENDIF.
lo_viewdefinition = lo_row_1->get_viewdefinition( ).
IF lo_viewdefinition IS NOT INITIAL.
lv_nullableboolean = lo_viewdefinition->get_isprotected( ).
lv_arnstring = lo_viewdefinition->get_definer( ).
lv_tableversionid = lo_viewdefinition->get_viewversionid( ).
lv_hashstring = lo_viewdefinition->get_viewversiontoken( ).
lv_refreshseconds = lo_viewdefinition->get_refreshseconds( ).
lv_lastrefreshtype = lo_viewdefinition->get_lastrefreshtype( ).
LOOP AT lo_viewdefinition->get_subobjects( ) into lo_row_14.
lo_row_15 = lo_row_14.
IF lo_row_15 IS NOT INITIAL.
lv_arnstring = lo_row_15->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_viewdefinition->get_subobjectversionids( ) into lo_row_16.
lo_row_17 = lo_row_16.
IF lo_row_17 IS NOT INITIAL.
lv_tableversionid = lo_row_17->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_viewdefinition->get_representations( ) into lo_row_18.
lo_row_19 = lo_row_18.
IF lo_row_19 IS NOT INITIAL.
lv_viewdialect = lo_row_19->get_dialect( ).
lv_viewdialectversionstrin = lo_row_19->get_dialectversion( ).
lv_viewtextstring = lo_row_19->get_vieworiginaltext( ).
lv_viewtextstring = lo_row_19->get_viewexpandedtext( ).
lv_namestring = lo_row_19->get_validationconnection( ).
lv_nullableboolean = lo_row_19->get_isstale( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_nullableboolean = lo_row_1->get_ismultidialectview( ).
lv_nullableboolean = lo_row_1->get_ismaterializedview( ).
lo_tablestatus = lo_row_1->get_status( ).
IF lo_tablestatus IS NOT INITIAL.
lv_namestring = lo_tablestatus->get_requestedby( ).
lv_namestring = lo_tablestatus->get_updatedby( ).
lv_timestamp = lo_tablestatus->get_requesttime( ).
lv_timestamp = lo_tablestatus->get_updatetime( ).
lv_resourceaction = lo_tablestatus->get_action( ).
lv_resourcestate = lo_tablestatus->get_state( ).
lo_errordetail = lo_tablestatus->get_error( ).
IF lo_errordetail IS NOT INITIAL.
lv_namestring = lo_errordetail->get_errorcode( ).
lv_descriptionstring = lo_errordetail->get_errormessage( ).
ENDIF.
lo_statusdetails = lo_tablestatus->get_details( ).
IF lo_statusdetails IS NOT INITIAL.
lo_table = lo_statusdetails->get_requestedchange( ).
IF lo_table IS NOT INITIAL.
lv_namestring = lo_table->get_name( ).
lv_namestring = lo_table->get_databasename( ).
lv_descriptionstring = lo_table->get_description( ).
lv_namestring = lo_table->get_owner( ).
lv_timestamp = lo_table->get_createtime( ).
lv_timestamp = lo_table->get_updatetime( ).
lv_timestamp = lo_table->get_lastaccesstime( ).
lv_timestamp = lo_table->get_lastanalyzedtime( ).
lv_nonnegativeinteger = lo_table->get_retention( ).
lo_storagedescriptor = lo_table->get_storagedescriptor( ).
IF lo_storagedescriptor IS NOT INITIAL.
LOOP AT lo_storagedescriptor->get_columns( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_namestring = lo_row_3->get_name( ).
lv_columntypestring = lo_row_3->get_type( ).
lv_commentstring = lo_row_3->get_comment( ).
LOOP AT lo_row_3->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
lv_locationstring = lo_storagedescriptor->get_location( ).
LOOP AT lo_storagedescriptor->get_additionallocations( ) into lo_row_5.
lo_row_6 = lo_row_5.
IF lo_row_6 IS NOT INITIAL.
lv_locationstring = lo_row_6->get_value( ).
ENDIF.
ENDLOOP.
lv_formatstring = lo_storagedescriptor->get_inputformat( ).
lv_formatstring = lo_storagedescriptor->get_outputformat( ).
lv_boolean = lo_storagedescriptor->get_compressed( ).
lv_integer = lo_storagedescriptor->get_numberofbuckets( ).
lo_serdeinfo = lo_storagedescriptor->get_serdeinfo( ).
IF lo_serdeinfo IS NOT INITIAL.
lv_namestring = lo_serdeinfo->get_name( ).
lv_namestring = lo_serdeinfo->get_serializationlibrary( ).
LOOP AT lo_serdeinfo->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT lo_storagedescriptor->get_bucketcolumns( ) into lo_row_7.
lo_row_8 = lo_row_7.
IF lo_row_8 IS NOT INITIAL.
lv_namestring = lo_row_8->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_storagedescriptor->get_sortcolumns( ) into lo_row_9.
lo_row_10 = lo_row_9.
IF lo_row_10 IS NOT INITIAL.
lv_namestring = lo_row_10->get_column( ).
lv_integerflag = lo_row_10->get_sortorder( ).
ENDIF.
ENDLOOP.
LOOP AT lo_storagedescriptor->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
lo_skewedinfo = lo_storagedescriptor->get_skewedinfo( ).
IF lo_skewedinfo IS NOT INITIAL.
LOOP AT lo_skewedinfo->get_skewedcolumnnames( ) into lo_row_7.
lo_row_8 = lo_row_7.
IF lo_row_8 IS NOT INITIAL.
lv_namestring = lo_row_8->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_skewedinfo->get_skewedcolumnvalues( ) into lo_row_11.
lo_row_12 = lo_row_11.
IF lo_row_12 IS NOT INITIAL.
lv_columnvaluesstring = lo_row_12->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_skewedinfo->get_skewedcolumnvaluelocmaps( ) into ls_row_13.
lv_key_1 = ls_row_13-key.
lo_value_1 = ls_row_13-value.
IF lo_value_1 IS NOT INITIAL.
lv_columnvaluesstring = lo_value_1->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_boolean = lo_storagedescriptor->get_storedassubdirectories( ).
lo_schemareference = lo_storagedescriptor->get_schemareference( ).
IF lo_schemareference IS NOT INITIAL.
lo_schemaid = lo_schemareference->get_schemaid( ).
IF lo_schemaid IS NOT INITIAL.
lv_glueresourcearn = lo_schemaid->get_schemaarn( ).
lv_schemaregistrynamestrin = lo_schemaid->get_schemaname( ).
lv_schemaregistrynamestrin = lo_schemaid->get_registryname( ).
ENDIF.
lv_schemaversionidstring = lo_schemareference->get_schemaversionid( ).
lv_versionlongnumber = lo_schemareference->get_schemaversionnumber( ).
ENDIF.
ENDIF.
LOOP AT lo_table->get_partitionkeys( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_namestring = lo_row_3->get_name( ).
lv_columntypestring = lo_row_3->get_type( ).
lv_commentstring = lo_row_3->get_comment( ).
LOOP AT lo_row_3->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
lv_viewtextstring = lo_table->get_vieworiginaltext( ).
lv_viewtextstring = lo_table->get_viewexpandedtext( ).
lv_tabletypestring = lo_table->get_tabletype( ).
LOOP AT lo_table->get_parameters( ) into ls_row_4.
lv_key = ls_row_4-key.
lo_value = ls_row_4-value.
IF lo_value IS NOT INITIAL.
lv_parametersmapvalue = lo_value->get_value( ).
ENDIF.
ENDLOOP.
lv_namestring = lo_table->get_createdby( ).
lv_boolean = lo_table->get_isregedwithlakeformation( ).
lo_tableidentifier = lo_table->get_targettable( ).
IF lo_tableidentifier IS NOT INITIAL.
lv_catalogidstring = lo_tableidentifier->get_catalogid( ).
lv_namestring = lo_tableidentifier->get_databasename( ).
lv_namestring = lo_tableidentifier->get_name( ).
lv_namestring = lo_tableidentifier->get_region( ).
ENDIF.
lv_catalogidstring = lo_table->get_catalogid( ).
lv_versionstring = lo_table->get_versionid( ).
lo_federatedtable = lo_table->get_federatedtable( ).
IF lo_federatedtable IS NOT INITIAL.
lv_federationidentifier = lo_federatedtable->get_identifier( ).
lv_federationidentifier = lo_federatedtable->get_databaseidentifier( ).
lv_namestring = lo_federatedtable->get_connectionname( ).
lv_namestring = lo_federatedtable->get_connectiontype( ).
ENDIF.
lo_viewdefinition = lo_table->get_viewdefinition( ).
IF lo_viewdefinition IS NOT INITIAL.
lv_nullableboolean = lo_viewdefinition->get_isprotected( ).
lv_arnstring = lo_viewdefinition->get_definer( ).
lv_tableversionid = lo_viewdefinition->get_viewversionid( ).
lv_hashstring = lo_viewdefinition->get_viewversiontoken( ).
lv_refreshseconds = lo_viewdefinition->get_refreshseconds( ).
lv_lastrefreshtype = lo_viewdefinition->get_lastrefreshtype( ).
LOOP AT lo_viewdefinition->get_subobjects( ) into lo_row_14.
lo_row_15 = lo_row_14.
IF lo_row_15 IS NOT INITIAL.
lv_arnstring = lo_row_15->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_viewdefinition->get_subobjectversionids( ) into lo_row_16.
lo_row_17 = lo_row_16.
IF lo_row_17 IS NOT INITIAL.
lv_tableversionid = lo_row_17->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_viewdefinition->get_representations( ) into lo_row_18.
lo_row_19 = lo_row_18.
IF lo_row_19 IS NOT INITIAL.
lv_viewdialect = lo_row_19->get_dialect( ).
lv_viewdialectversionstrin = lo_row_19->get_dialectversion( ).
lv_viewtextstring = lo_row_19->get_vieworiginaltext( ).
lv_viewtextstring = lo_row_19->get_viewexpandedtext( ).
lv_namestring = lo_row_19->get_validationconnection( ).
lv_nullableboolean = lo_row_19->get_isstale( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_nullableboolean = lo_table->get_ismultidialectview( ).
lv_nullableboolean = lo_table->get_ismaterializedview( ).
" Skipping lo_statusdetails->get_requestedchange( ) to avoid recursion
ENDIF.
LOOP AT lo_statusdetails->get_viewvalidations( ) into lo_row_20.
lo_row_21 = lo_row_20.
IF lo_row_21 IS NOT INITIAL.
lv_viewdialect = lo_row_21->get_dialect( ).
lv_viewdialectversionstrin = lo_row_21->get_dialectversion( ).
lv_viewtextstring = lo_row_21->get_viewvalidationtext( ).
lv_timestamp = lo_row_21->get_updatetime( ).
lv_resourcestate = lo_row_21->get_state( ).
lo_errordetail = lo_row_21->get_error( ).
IF lo_errordetail IS NOT INITIAL.
lv_namestring = lo_errordetail->get_errorcode( ).
lv_descriptionstring = lo_errordetail->get_errormessage( ).
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.