• No se han encontrado resultados

F007-TemplateABMdeServer.docx

N/A
N/A
Protected

Academic year: 2020

Share "F007-TemplateABMdeServer.docx"

Copied!
7
0
0

Texto completo

(1)

Template de programa para Subir, Bajar,

Borrar y mostrar Archivos del server.

REPORT  zprog06.

* PANTALLA SELECCION

SELECTION-SCREEN BEGIN OF BLOCK sel00 WITH FRAME TITLE text-000. PARAMETERS: p_down   RADIOBUTTON GROUP uno USER-COMMAND usr. "Bajar

PARAMETERS: p_up     RADIOBUTTON GROUP uno.      "Subir a Server PARAMETERS: p_del    RADIOBUTTON GROUP uno.      "Borrar de Serv er

PARAMETERS: p_show   RADIOBUTTON GROUP uno.      "Mostrar archiv os del server

SELECTION-SCREEN ULINE /1(77).

PARAMETERS: nombre(1024)  DEFAULT 'archivo.txt',

      server(1024)  DEFAULT 'C:\usr\sap\mindsap',       local(1024)   DEFAULT 'C:\'.

SELECTION-SCREEN END OF BLOCK sel00. CONSTANTS: c_sepl VALUE '\'.

CONSTANTS: c_seps VALUE '\'.

* TABLA INTERNA

DATA: BEGIN OF ti_entrada OCCURS 0,       campo(8000),

      END OF ti_entrada.

* VARIABLES GLOBALES

DATA: w_location_s TYPE dxlocation,       w_location_d TYPE dxlocation,       ofile TYPE string,

(2)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR local.   PERFORM get_local CHANGING local.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR server.   PERFORM get_server CHANGING server.

*************************** START-OF-SELECTION.

***************************

  IF p_up = 'X'.

    PERFORM subir_a_server.   ENDIF.

  IF p_down = 'X'.     PERFORM bajar_a_pc.   ENDIF.

* Opcion Oculta   IF p_del = 'X'.

    PERFORM borrar_del_server.   ENDIF.

  IF p_show = 'X'.     SUBMIT rswatch0.   ENDIF.

*&---* *&  Include       ZBPRE_016_SERVER_FRM

*&---*

*&---* *&      Form  SUBIR_A_SERVER

*&---* FORM subir_a_server .

  IF nombre IS INITIAL.

    MESSAGE 'Ingrese el Nombre del Archivo a Subir' TYPE 'I'.     EXIT.

  ENDIF.

  IF local IS INITIAL.

    MESSAGE 'Ingrese la ubicacion del archivo a Subir' TYPE 'I'.     EXIT.

  ENDIF.

  IF server IS INITIAL.

    MESSAGE 'Ingrese la ubicacion del server donde quiere subir el archivo' 

(3)

  CLEAR ofile.

  CONCATENATE local c_sepl nombre INTO  ofile.

  CALL FUNCTION 'GUI_UPLOAD'

    EXPORTING

      filename      = ofile       filetype      = 'ASC'

     has_field_separator       = ' '

     header_length       = 0

     read_by_line      = 'X'      dat_mode      = ' '      codepage      = ' ' *   IGNORE_CERR       = ABAP_TRUE      replacement       = '#'      check_bom       = ' '      no_auth_check       = ' ' * IMPORTING *   FILELENGTH      = *   HEADER      =     TABLES       data_tab      = ti_entrada    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.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.   ENDIF.

  CONCATENATE server c_seps nombre INTO server.   TRANSLATE server TO LOWER CASE.

  OPEN DATASET server FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

  LOOP AT ti_entrada.

(4)

  ENDLOOP.

  CLOSE DATASET server.

  MESSAGE 'Los datos fueron grabados en el server' TYPE 'S'. ENDFORM.      " SUBIR_A_SERVER

*&---* *&      Form  BAJAR_A_PC

*&---* FORM bajar_a_pc .

  IF nombre IS INITIAL.

    MESSAGE 'Ingrese el Nombre del Archivo a Bajar' TYPE 'I'.     EXIT.

  ENDIF.

  IF local IS INITIAL.

    MESSAGE 'Ingrese la ubicacion Local para bajar el archivo' TYPE 'I'.     EXIT.

  ENDIF.

  IF server IS INITIAL.

    MESSAGE 'Ingrese la ubicacion del server donde esta el archivo a bajar' 

TYPE 'I'.     EXIT.   ENDIF.

  CLEAR dest_file.

  CONCATENATE server c_seps nombre INTO server.   TRANSLATE server TO LOWER CASE.

  CONCATENATE local c_sepl nombre INTO dest_file.   TRANSLATE dest_file TO LOWER CASE.

  OPEN DATASET server FOR INPUT IN TEXT MODE ENCODING DEFAULT.   IF sy-subrc = 0.

    DO.

      READ DATASET server INTO ti_entrada.       IF sy-subrc <> 0.

        EXIT.       ELSE.

        APPEND ti_entrada.         CLEAR ti_entrada.       ENDIF.

    ENDDO.

    CALL FUNCTION 'GUI_DOWNLOAD'

      EXPORTING

*       BIN_FILESIZE      =

(5)

        filetype      = 'ASC'

      TABLES

        data_tab      = ti_entrada *       FIELDNAMES      =

      EXCEPTIONS

        file_write_error        = 1         no_batch      = 2         gui_refuse_filetransfer = 3         invalid_type      = 4         no_authority      = 5         unknown_error       = 6         header_not_allowed      = 7         separator_not_allowed   = 8         filesize_not_allowed    = 9         header_too_long         = 10         dp_error_create         = 11         dp_error_send       = 12         dp_error_write      = 13         unknown_dp_error        = 14         access_denied       = 15         dp_out_of_memory        = 16         disk_full       = 17         dp_timeout      = 18         file_not_found      = 19         dataprovider_exception  = 20         control_flush_error     = 21         OTHERS      = 22.     IF sy-subrc <> 0.

      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.     ENDIF.

    CLOSE DATASET server.   ELSE.

*    MESSAGE 'No se puede abrir el archivo' TYPE 'I'.   ENDIF.

ENDFORM.      " BAJAR_A_PC

*&---* *&      Form  BORRAR_DEL_SERVER

*&---* FORM borrar_del_server .

  IF nombre IS INITIAL.

    MESSAGE 'Ingrese el Nombre del Archivo a Borrar del server' TYPE 'I'.     EXIT.

  ENDIF.

  IF local IS INITIAL.

    MESSAGE 'Ingrese la ubicacion del archivo a borrar' TYPE 'I'.     EXIT.

  ENDIF.

(6)

    MESSAGE 'Ingrese la ubicacion del server de donde se quiere borrar el ar chivo' TYPE 'I'.

    EXIT.   ENDIF.

  CONCATENATE server c_seps nombre INTO server.   TRANSLATE server TO LOWER CASE.

  DELETE DATASET server.

ENDFORM.      " BORRAR_DEL_SERVER

*&---* *&      Form  VER_ARCHIVOS

*&---* *       text

*---* *  -->  p1        text

*  <--  p2        text

*---*

*&---* *&      Form  GET_LOCAL

*&---* *       text

*---* *      <--P_LOCAL  text

*---* FORM get_local  CHANGING p_local.

  DATA: aux TYPE string.

  aux = p_local.

  CALL METHOD cl_gui_frontend_services=>directory_browse     EXPORTING

      window_title         = 'Elegir Directorio Local'

      initial_folder       = 'C:\'

    CHANGING

      selected_folder      = aux     EXCEPTIONS

      cntl_error       = 1       error_no_gui         = 2       not_supported_by_gui = 3       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.   ENDIF.

  p_local = aux.

ENDFORM.      " GET_LOCAL

*&---* *&      Form  GET_SERVER

(7)

*       text

*---* *      <--P_SERVER  text

*---* FORM get_server  CHANGING p_server.

  CONSTANTS:

        c_dir_serv      TYPE fileintern VALUE 'C:\usr\sap\mindsap',         c_loc_serv      LIKE dxfields-location      VALUE 'A'.   DATA:

       l_location LIKE dxfields-location,        l_path     LIKE dxfields-longpath.

  l_location = c_loc_serv.   l_path = c_dir_serv.

  CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'

    EXPORTING

      i_location_flag = l_location       i_server        = ' '

      i_path      = l_path     IMPORTING

      o_path      = l_path     EXCEPTIONS

      rfc_error       = 1       error_with_gui  = 2       OTHERS      = 3.   IF sy-subrc <> 0.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.   ENDIF.

Referencias

Documento similar

Requisitos para el almacenamiento a largo plazo de colecciones de archivos y bibliotecas (norma actualizada en 2015)... Requisitos para el almacenamiento a largo plazo de

Editar ajustes; podemos cambiar el nombre del curso, fechas del curso, formato, tamaño de los archivos que pueden subir los alumnos,…..

Yo entiendo a lo que te refieres, despues del parto una quisiera enseguida ponerse a lo suyo, puedes empezar a hacer ejercicio pero no te recomiendo que dejes de darle el pecho, veo

823.961.0901 En tu caso puedes adelgazar pero necesito saber cuanto pesas Soy estudiante medico, yo te puedo ayudar se tratar estos casos tomar 2lts de agua diarios realizar de

Nuestro “AFTER” se encuentra ubicado en el 2º piso de la propiedad equipada y adaptada totalmente para los servicios que ofrece. Los niños deberán subir y o bajar una escala de

no hay mucho que redactar aquí pues para bajar de peso obviamente hay que entrar en una buena dieta, cuando me refiero a dieta no es a que dejar de comer si no que bajes el consumo

Porque si sabés entonces no queda claro que no te salga ni una sola línea del programa Y si lo que no sabés Para programar en C, Rebote empezar por Sin eso y recién después

- Quién fuera tu mano para poderte subir y bajar el zipper papacito - Cosita necesito llave para mi candado. - Rey si así está el camino ya me imagino