Problema con funcion F4_FILENAME_SERVER

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • kilofafeure
    Member
    • oct
    • 42

    #1

    Problema con funcion F4_FILENAME_SERVER

    Buenas, les comento mi problema y a ver si me pueden ayudar.

    Tengo que cargar un archivo que va a estar en el servidor, estoy utilizando la funcion F4_FILENAME_SERVER pero siempre me muestra el mismo directorio, y ya no se si es que le he puesto mal el path (he probado varias cosas) o que puede ser:

    Código:
      parameters: p_path LIKE IBIPPARMS-PATH.
    
      DATA: p_file  TYPE string.
      DATA: p_path2 LIKE IBIPPARMS-PATH.
    
      p_path = './usr/sap/tmp'.
    
      CALL FUNCTION 'F4_FILENAME_SERVER'
        EXPORTING
          pfad              = p_path
        IMPORTING
          file_name         = p_path2
        EXCEPTIONS
          no_file_on_server = 1
          OTHERS            = 2.
    he probado varias cosas poniendo en el path y no he conseguido que me liste los archivos del directorio tmp (donde tendre el archivo a ejecutar)

    p_path = './tmp/'.
    p_path = '/tmp/'.
  • henryq
    Junior Member
    • oct
    • 26

    #2
    F4_filename_server

    Hola.

    Yo, cuando necesito usar esta función, me voy a la transacción AL11 y visualizo un archivo que esté contenido en el directorio en cuestión del servidor, copio la ruta, y es ésta la que utilizo.
    Imagino que esto es lo que has hecho (pero por si acaso)

    Comentario

    • kilofafeure
      Member
      • oct
      • 42

      #3
      Originalmente publicado por henryq
      Hola.

      Yo, cuando necesito usar esta función, me voy a la transacción AL11 y visualizo un archivo que esté contenido en el directorio en cuestión del servidor, copio la ruta, y es ésta la que utilizo.
      Imagino que esto es lo que has hecho (pero por si acaso)
      Lo he puesto en el temp '/tmp', pero da igual el directorio que le habra, siempre me aparecen los mismos y no el fichero que he subido yo al /tmp para hacer las pruebas. Es decir, no aparece ningun archivo del /tmp, aparecen otros que no tengo ni idea de donde son...¿alguna idea? gracias!

      Comentario

      • kilofafeure
        Member
        • oct
        • 42

        #4
        Hola otra vez, he debugado y el p_path siempre me llega vacio, en blanco y no se porqué, por eso no me carga la carpeta que quiero, ¿ven ustedes que estoy haciendo mal? no se me ocurre nada

        Aquí lo declaro (pantalla de selección)
        Código:
        parameters: p_path LIKE IBIPPARMS-PATH.
        Código del programa
        Código:
        INITIALIZATION.
          PERFORM initialization.
        * F4 PARA SELECCION DE ARCHIVOS
        AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
          PERFORM abrir_directorio.
        *AT SELECTION-SCREEN.
        *START-OF-SELECTION. "Rellenar datos
        END-OF-SELECTION. "Actualizar y mostrar datos
          PERFORM comprobacion_datos_obtenidos.
          PERFORM tablas_t558x.
          PERFORM envio_email.
        Aquí lo inicializo
        Código:
        FORM initialization .
        p_path = '/tmp/fichero_pruebas.csv'.
        ENDFORM.                    " initialization
        Form abrir_directorio
        Código:
        FORM abrir_directorio .
          DATA: p_file  TYPE string.
          DATA: p_path2 LIKE IBIPPARMS-PATH.
          CALL FUNCTION 'F4_FILENAME_SERVER'
            EXPORTING
              pfad              = p_path
            IMPORTING
              file_name         = p_path2
            EXCEPTIONS
              no_file_on_server = 1
              OTHERS            = 2.
        
          IF sy-subrc = 1.
            PERFORM reg_error USING '' '' 'S' '05' '' 'Fichero inexistente'.

        Comentario

        • henryq
          Junior Member
          • oct
          • 26

          #5
          Archivo en servidor

          Hola.
          Tienes constancia que existe un directorio en el servidor de aplicaciones de SAP con esta nomenclatura (es decir, tu navegas hasta este directorio en la transaccion AL11).
          Además, si informas P_PATH con el valor que indicas, justo antes de la llamada a la función, ¿te muestra el directorio que quieres correctamente?
          El problema que tienes es que aunque esté informado el parametro en la pantalla de selección, cuando haces 'F4', se limpia el valor del parametro, ¿no?
          Pues es que esto siempre es así. Se supone que que si haces uso del MACHTCODE es para informar el paramentro en cuestión.
          Tendrás que usar alguna lógica adicional si quieres usar el valor del parametro para usarlo como referencia para "dirigirte" a la ruta del directorio donde seleccionas el archivo. Si mal no entiendo, ¿es esto lo que persigues?

          De todas formas no veo muy correcta esta funcionalidad.
          ¿Esta ruta, aunque la inicias en el INITIALIZATION, el usuario la puede modificar y será habitual que la modifique? ¿ó no?
          No se si he captado muy bien cual es el concepto de esta funcionalidad, viendo el código, pero creo que quizás sería mejor pensarla antes un poco más.

          Bueno además... no uses valores "hardcodeados" en código (jejeje). (Perdona pero soy muy "mijita" con estas cosas.)

          Comentario

          Trabajando...