SAP ABAP VARIOS
From SapWiki
Contents
UUID ver nota 935047 - Creating and using GUIDs (UUIDs)
FORM generar_iddocumento_2 CHANGING p_resultado. DATA lcl_request_id TYPE guid_32. TRY. lcl_request_id = cl_system_uuid=>create_uuid_c32_static( ). CATCH cx_uuid_error. ASSERT 1 = 0. ENDTRY. MOVE lcl_request_id TO p_resultado. ENDFORM.
Grabar XSTRING en equipo como Binario(XML,PDF,etc.)
CONCATENATE ls_dir_d '\' i_vbeln '.xml' INTO ls_fullpath.
CALL METHOD cl_faa_tenv_services=>gui_download_xstring EXPORTING id_fullpath = ls_fullpath id_xstring = i_xml.
IF sy-subrc <> 0.
ENDIF.
Obtener Texto según Valor de dominio
FORM get_domvalue USING p_domname p_value CHANGING p_text. DATA: l_domvalue TYPE dd07v-domvalue_l, l_ddtext TYPE dd07v-ddtext. l_domvalue = p_value. CALL FUNCTION 'DOMAIN_VALUE_GET' EXPORTING i_domname = p_domname i_domvalue = l_domvalue IMPORTING e_ddtext = l_ddtext EXCEPTIONS not_exist = 1 OTHERS = 2. IF sy-subrc = 0. MOVE l_ddtext TO p_text. ELSE. CLEAR p_text. ENDIF. ENDFORM. "get_domvalue
Bajar tabla en formato CSV (función hr_cl_if_prvd_generate_file)
FUNCTION hr_cl_if_prvd_generate_file. *"---------------------------------------------------------------------- *"*"Local Interface: *" TABLES *" IT_DATA TYPE STANDARD TABLE *"---------------------------------------------------------------------- FIELD-SYMBOLS: <f_source>. TYPES data_c(4096) TYPE c. TYPES t_data_c TYPE data_c OCCURS 0. CONSTANTS: c_field_separator TYPE c VALUE ';', c_darl_number(12) TYPE c VALUE '1234567890 '. DATA: lt_data_csv TYPE t_data_c, l_struc_index TYPE syindex, l_len_string TYPE i, l_max_field TYPE data_c, l_struc_raw_data TYPE data_c, l_start_string TYPE i, l_len_field_sep TYPE i, l_type, l_date_extern(30) TYPE c, l_help_id LIKE tline-tdline, l_tabix TYPE sytabix. l_len_field_sep = STRLEN( c_field_separator ). LOOP AT it_data. CLEAR: l_struc_index, l_len_string, l_struc_raw_data, l_start_string. DO. ADD 1 TO l_struc_index. CLEAR l_len_string. ASSIGN COMPONENT l_struc_index OF STRUCTURE it_data TO <f_source>. IF sy-subrc <> '0'. EXIT. ELSE. * * special processing when field is type data DESCRIBE FIELD <f_source> TYPE l_type. CASE l_type. WHEN 'P'. WRITE <f_source> TO l_date_extern. CATCH SYSTEM-EXCEPTIONS conversion_errors = 4. IF sy-subrc <> '0'. MESSAGE e899(ux) WITH l_type <f_source> l_help_id l_tabix RAISING conversion_failed. ENDIF. ENDCATCH. ASSIGN l_date_extern TO <f_source>. WHEN 'X'. ASSIGN COMPONENT l_struc_index OF STRUCTURE it_data TO <f_source> TYPE 'C'. WRITE <f_source> TO l_date_extern. ASSIGN l_date_extern TO <f_source>. WHEN 'T'. CLEAR l_date_extern. l_date_extern(2) = <f_source>(2). l_date_extern+2(1) = ':'. l_date_extern+3(2) = <f_source>+2(2). l_date_extern+5(1) = ':'. l_date_extern+6(2) = <f_source>+4(2). ASSIGN l_date_extern TO <f_source>. WHEN 'D'. CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL' EXPORTING date_internal = <f_source> IMPORTING date_external = l_date_extern EXCEPTIONS OTHERS = 4. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING conversion_failed. ELSE. ASSIGN l_date_extern TO <f_source>. ENDIF. WHEN 'F'. CALL FUNCTION 'FLTP_CHAR_CONVERSION' EXPORTING input = <f_source> IMPORTING flstr = l_date_extern EXCEPTIONS OTHERS = 4. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING conversion_failed. ELSE. ASSIGN l_date_extern TO <f_source>. ENDIF. WHEN OTHERS. ENDCASE. * remember der seperation character! IF l_struc_index <> 1. l_max_field+l_len_string(l_len_field_sep) = c_field_separator. l_len_string = l_len_field_sep. ENDIF. IF <f_source> CO c_darl_number. CONDENSE <f_source> NO-GAPS. ELSE. CONDENSE <f_source>. ENDIF. l_max_field+l_len_string = <f_source>. l_len_string = STRLEN( l_max_field ). CHECK l_len_string <> '0'. l_struc_raw_data+l_start_string(l_len_string) = l_max_field. l_start_string = l_start_string + l_len_string. ENDIF. ENDDO. IF NOT l_struc_raw_data IS INITIAL. APPEND l_struc_raw_data TO lt_data_csv. ENDIF. ENDLOOP. CALL FUNCTION 'HR_99S_DOWNLOAD' EXPORTING p_initial_directory = 'C:\' p_filename = 'PREVIRED.txt' p_filetype = 'ASC' p_write_lf = 'X' p_trunc_blanks_eol = 'X' p_trunc_blanks = ' ' TABLES data_tab = lt_data_csv EXCEPTIONS file_save_dialog = 1 file_write_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 unknown_error = 6 wrong_tab_format = 7 OTHERS = 8. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDFUNCTION.
Leer archivo CSV
REPORT ytest_csv. TYPE-POOLS truxs. TYPES: BEGIN OF ty_data, col01(100), col02(100), col03(100), col04(100), col05(100), col06(100), col07(100), col08(100), col09(100), col10(100), col11(100), col12(100), col13(100), col14(100), col15(100), col16(100), col17(100), col18(100), col19(100), col20(100), col21(100), col22(100), col23(100), col24(100), col25(100), col26(100), col27(100), col28(100), col29(100), END OF ty_data. DATA gt_data TYPE TABLE OF ty_data WITH HEADER LINE. DATA : rawdata TYPE truxs_t_text_data. *--------------------------------------------------------------------* * *--------------------------------------------------------------------* PARAMETERS: p_file TYPE string LOWER CASE. *--------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. *--------------------------------------------------------------------* CALL FUNCTION 'GUI_FILE_LOAD_DIALOG' IMPORTING FULLPATH = p_file . *--------------------------------------------------------------------* START-OF-SELECTION. *--------------------------------------------------------------------* PERFORM get_data. *--------------------------------------------------------------------* END-OF-SELECTION. *--------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form get_data *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM get_data. DATA ld_filename TYPE string. ld_filename = p_file. CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = ld_filename filetype = 'ASC' TABLES data_tab = rawdata EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 bad_data_format = 8 header_not_allowed = 9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 OTHERS = 17. IF sy-subrc <> 0. EXIT. ENDIF. DATA ls_rawdata LIKE LINE OF rawdata. CALL FUNCTION 'TEXT_CONVERT_CSV_TO_SAP' EXPORTING i_field_seperator = ';' i_tab_raw_data = rawdata TABLES i_tab_converted_data = gt_data EXCEPTIONS conversion_failed = 1 OTHERS = 2. BREAK-POINT. ENDFORM. "get_data
Crear Datos SFLIGHT
Sap provee de un modelo de datos, basado en aerolineas, para sus programas demo o training, para generar datos usar programa SAPBC_DATA_GENERATOR