Extraction from HANA code
Extraction from HANA code
Select:
SELECT
"AIRCRAFT_TYPE",
"SOURCE_TYPE",
"SOURCE_ID",
"AMM_HIERARCHY",
"AMM_INV_HIERARCHY",
"AMM_TASK_SOLUTION_ID",
"AMM_TASK_INV",
"AMM_TASK_SOL_DESCRIPTION",
"AMM_TASK_SOL_TYPE",
"LEVEL",
"ITEM_TYPE",
"ITEM",
"DESIGNATION",
"QUANTITY",
"APPLICABILITY",
"STATUS",
"CLASSIFICATION",
"WAY",
"ITEM_INV",
"PART_NUMBER",
"MANUF_NUMBER",
"PN_DESIGNATION",
"PN_MATERIAL_GROUP",
"AMM_FIN",
"AMM_FIN_FAMILY",
"CSN",
"FIGURE_INV",
"FIGURE_SOL_REFERENCE",
"FIGURE_SOL_DESCRIPTION",
"AMM_HIERARCHY_FATHER",
"OBJ_HIERARCHY",
"EFFECTIVITY",
"FIN_LIST",
"IS_AMM_TASK_0",
"CSN_COUNT",
"AMM_FIN_COUNT",
"NHA",
"ITEM_SYMMETRY"
FROM
"_SYS_BIC"."airbus.cs.DM04-PNR_List.ENGINE-V2.REPORTING/CV_OUTPUT_CALC_SRC_
COUNT" WHERE ( ( AIRCRAFT_TYPE = 'A320') AND ( SOURCE_TYPE = 'MPD') AND
( SOURCE_ID = '200001-01') )
REPORT ztestr_1.
DATA:
lo_rs TYPE REF TO cl_sql_result_set,
lo_con TYPE REF TO cl_sql_connection,
lo_sqlerr TYPE REF TO cx_sql_exception,
lo_hdm_exc TYPE REF TO zcx_hdm_exception,
* lw_query TYPE string,
lw_message TYPE string,
lw_field(50000) TYPE c,
lw_counter(5) TYPE n,
lw_line TYPE string,
lw_start_line TYPE c,
lw_row_package TYPE i,
lw_row_all TYPE i.
FIELD-SYMBOLS:
<ls_calcul> TYPE any,
<lw_field> TYPE any,
<fs_table> TYPE ANY TABLE.
DATA: lo_hdm_model_appl_para TYPE REF TO zcl_hdm_model_appl_para,
lo_tref TYPE REF TO data.
TRY.
* Create Connection
RETURN.
ENDTRY.
* CSV formatting
LOOP AT <fs_table> ASSIGNING <ls_calcul>.
* Prepare target line
CLEAR lw_line.
CLEAR lw_start_line.
* Build line
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE <ls_calcul> TO <lw_f
ield> .
IF sy-subrc <> 0.
EXIT.
ENDIF.
WRITE <lw_field> TO lw_field.
REPLACE ALL OCCURRENCES OF ';' IN lw_field WITH ' '.
IF lw_start_line = space.
lw_line = lw_field.
lw_start_line = 'X'.
ELSE.
lw_line = lw_line && ';' && lw_field.
ENDIF.
ENDDO.
* CLEAR GS_HANA
** TRANSFER lw_line TO p_file.
** IF sy-subrc <> 0.
** MESSAGE 'File transfer error'(e01) TYPE 'E'.
** ENDIF.
ENDLOOP.
CLEAR <fs_table>.
lw_counter = lw_counter + 1.
* MESSAGE i016(38) WITH 'Package' lw_counter.
* $ $ $ $
ENDDO.
lo_rs->close( ).
CATCH cx_sql_exception INTO lo_sqlerr.
"Do nothing, connection have to be close at the end
WRITE: / 'error close cx_sql_exception'(e02),
lo_sqlerr->db_error,
lo_sqlerr->sql_code,
lo_sqlerr->sql_message.
ENDTRY.
ENDIF.
"close connection
IF lo_con IS BOUND.
TRY.
lo_con->close( ).
CATCH cx_sql_exception INTO lo_sqlerr.
WRITE: / 'error close cx_sql_exception'(e02),
lo_sqlerr->db_error,
lo_sqlerr->sql_code,
lo_sqlerr->sql_message.
ENDTRY.
ENDIF.