Pasar variables a subrutina en sapscript

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • ongo
    Member
    • ago
    • 45

    #1

    Pasar variables a subrutina en sapscript

    Buenas tardes,

    Necesito hacer un Sapscript y para ello necesito crearme una subrutina para poder realizar varias operaciones. He creado la subrutina. El problema llega cuando quiero pasar 2 variables a la subrutina. En la subrutina me he creado un form con el siguiente código:

    form x tables in_tab structure itcsy
    out_tab structure itcsy.


    endform.

    En el sap script hago la perform con las variables que quiero pasarle a la subrutina y no me va. Solo me coge una variable.

    ¿Alguien sabe como se puede pasar en un sapscript a una subrutina 2 variables?
  • Jewel_1982
    Junior Member
    • nov
    • 20

    #2
    te creas un report con el mismo nombre q tu sapscript, lo llamas desde la ventana q sea de la siguiente manera:
    /* Obtener NIF
    /: DEFINE &V_NIF& = '-'
    /: PERFORM OBTENER_NIF IN PROGRAM Z_MEDRUCK
    /: USING &EKKO-LIFNR&
    /: CHANGING &V_NIF&
    /: ENDPERFORM

    Los campos q le pasas para obtener lo que necesitas tendran q estar rellenos en el programa de control del formulario y luego llamar a este mini report con rutinitas y operaciones

    Y en el form 'z_medruck':
    *&---------------------------------------------------------------------*
    *& Form obtener_NIF
    *&---------------------------------------------------------------------*
    * text
    *----------------------------------------------------------------------*
    * -->P_I_RETURN text
    *----------------------------------------------------------------------*
    FORM obtener_nif TABLES in_tab STRUCTURE itcsy
    out_tab STRUCTURE itcsy.
    DATA: v_prov LIKE lfa1-lifnr.

    * Leer el proveedor
    READ TABLE in_tab WITH KEY name = 'EKKO-LIFNR'.
    v_prov = in_tab-value.

    PERFORM rellenar_ceros CHANGING v_prov.


    SELECT SINGLE stcd1 INTO lfa1-stcd1 FROM lfa1 WHERE
    lifnr = v_prov.
    ** Aqui le pasas el dato cambiado o modificado q en mi caso lo dejo en el **sapscript en v_nif
    READ TABLE out_tab INDEX 1.
    MOVE lfa1-stcd1 TO out_tab-value.
    MODIFY out_tab INDEX 1.

    **si tendria otro lo pasaria en la 2ª posicion y me crearia otra v_*** en el **formulario para pasarle el segundo valor
    READ TABLE out_tab INDEX 2.
    MOVE xx_2ªdato_xx TO out_tab-value.
    MODIFY out_tab INDEX 2.

    ENDFORM. "obtener_nif

    ***Espero q te sirva***

    Comentario

    Trabajando...