SAP Procesar según valor y procesar según solicitud de ayuda

⚡ Resumen inteligente

Process On Value-Request y Process On Help-Request son los eventos de pantalla detrás de F4 y F1 en SAP ABAP. Esta página explica ambos eventos, las sentencias FIELD que los desencadenan y los módulos de función que muestran la documentación o las posibles entradas.

  • Propósito del POH: El proceso "Solicitud de ayuda" reacciona a la tecla F1 y muestra la documentación del campo almacenada en el Diccionario ABAP.
  • 🔎 Punto de vista Propósito: El PROCESS ON VALUE-REQUEST reacciona a la pulsación de F4 y muestra las posibles entradas definidas por valores, una tabla de verificación o una ayuda de búsqueda.
  • 🧾 Regla de reserva: Cuando falta el evento POH, el sistema recurre a la documentación del elemento de datos y no muestra nada si esta también falta.
  • 🚫 Límite de transporte: La instrucción FIELD en POH no transfiere el campo de pantalla al programa, ya que solo muestra la ayuda.
  • 📚 Módulos de ayuda: HELP_OBJECT_SHOW_FOR_FIELD muestra la documentación del elemento de datos y HELP_OBJECT_SHOW muestra cualquier SAPdocumento de guión.
  • 📋 Módulos de valor: F4IF_FIELD_VALUE_REQUEST inicia la ayuda de entrada del diccionario y F4IF_INT_TABLE_VALUE_REQUEST muestra una lista creada dentro del programa.
  • ↩️ Vía de retorno: DYNPPROG, DYNPNR y DYNPROFIELD devuelven el valor seleccionado al campo de la pantalla, mientras que RETURN_TAB lo devuelve a una tabla.

SAP Proceso de Valor y Proceso de Solicitud de Ayuda

¿Qué son POH y POV?

Primero, para empezar, si no sabes nada sobre la lógica de Screen Flow y sus usos en SAP, le recomendamos que consulte nuestro tutorial sobre Programa de diálogo.

POH y POV son los dos eventos de pantalla que responden a una solicitud de ayuda del usuario. POH reacciona a la tecla F1 y explica el significado de un campo, mientras que POV reacciona a la tecla F4 y muestra los valores que acepta dicho campo. Ambos se declaran en la lógica de flujo de la pantalla, junto a PBO y PAI.

Criterios POH (Procesamiento en solicitud de ayuda) POV (Procesamiento bajo solicitud de valor)
Desencadenado por La tecla F1 La tecla F4 o el botón de posibles entradas
Propósito Explica el significado del campo Ofrece los valores que acepta el campo.
Fuente predeterminada Documentación de elementos de datos en el Diccionario ABAP Valores fijos, consultar la tabla o buscar ayuda
Transporte de datos Ninguno, el campo solo se muestra El valor seleccionado se vuelve a escribir en el campo de la pantalla.
Módulo de función típico HELP_OBJECT_SHOW_FOR_FIELD F4IF_INT_TABLE_VALUE_REQUEST

Ahora, veamos POH y POV en detalle.

Proceso de solicitud de ayuda (POH): Ayuda F1

  • Cada vez que se pulsa F1, se ejecuta el evento POH para el elemento de datos especificado.
  • Si el evento PROCESS ON HELP-REQUEST no existe en la lógica de proceso de una pantalla, se toma como base la documentación del campo en el Diccionario ABAP y se muestra la ayuda. Incluso si no existe, no se muestra ninguna ayuda.
  • Para mostrar la documentación de ayuda de campo, debe codificar la siguiente lógica de flujo de pantalla en el evento POH:
PROCESS ON HELP-REQUEST
FIELD <f> [MODULE <mod>] WITH <num>
  • Si hay documentación de elementos de datos específica de la pantalla para el campo , puede mostrarlo especificando su número .
  • El número puede ser un literal o una variable. La variable debe ser declarada y completada en el programa ABAP correspondiente.
  • Tenga en cuenta que la instrucción FIELD no transfiere el contenido del campo de pantalla al programa ABAP en el evento PROCESS ON HELP-REQUEST. Simplemente muestra documentación de ayuda. Eso es todo.

El módulo Se define en el programa ABAP como un módulo PAI normal. La lógica de procesamiento del módulo debe garantizar que se muestre la ayuda adecuada para el campo en cuestión. En lugar de llamar a una pantalla adicional con campos de texto, debe utilizar uno de los siguientes módulos de función para mostrar una ayuda adecuada. SAPdocumento de guión

HELP_OBJECT_SHOW_FOR_FIELD

  • Este módulo de funciones muestra la documentación de elementos de datos para componentes de cualquier estructura o tabla de base de datos del Diccionario ABAP.
  • Pasa el nombre del componente y la estructura o tabla a los parámetros de importación CAMPO y TABLA.

AYUDA_OBJECT_SHOW

  • Utilice este módulo de funciones para mostrar cualquier SAPdocumento de guión.
  • Debe pasar la clase de documento (por ejemplo, TX para textos generales, DE para documentación de elementos de datos) y el nombre del documento a los parámetros de importación DOKCLASS y DOKNAME.
  • Por razones técnicas, también debe pasar una tabla interna vacía con el tipo de línea T.LINE al parámetro de tablas del módulo de función.

F1 explica la categoría. El siguiente evento enumera las inscripciones permitidas.

Proceso sobre valor (POV): F4

  • Cuando el usuario elige la función Posibles entradas (F4), el sistema muestra los posibles valores de entrada para un campo (valores, tabla de verificación, código de coincidencia), siempre que hayan sido almacenados por el desarrollador.
  • El evento PROCESO EN SOLICITUD DE VALOR siempre se procesa si el usuario ha llamado “Entradas posibles”.
  • Para definir valores posibles para un campo en la pantalla, debe definir lo siguiente en el evento POV de la lógica de flujo de pantalla:
PROCESS ON VALUE-REQUEST

FIELD field name MODULE module name
  • Para valores posibles, dentro del módulo definido anteriormente, debe utilizar el módulo de función general HELP_VALUES_GET_WITH_TABLE para obtener posibles valores del Diccionario ABAP.

Hay algunas otras funciones que también se pueden utilizar como ayuda para entradas:

F4IF_FIELD_VALUE_REQUEST

  • Llama dinámicamente a la ayuda para entradas del diccionario ABAP.
  • Puede pasar los nombres de los componentes de una estructura o tabla de base de datos del Diccionario ABAP al módulo de funciones en los parámetros de importación TABNAME y FIELDNAME.
  • El módulo de funciones inicia el Diccionario ABAP ayuda de entrada para este componente. Se leen todos los campos de pantalla relevantes.
  • Si especifica los parámetros de importación DYNPPROG, DYNPNR y DYNPROFIELD, la selección del usuario regresa al campo correspondiente en la pantalla.
  • Si especifica el parámetro de tabla RETURN_TAB, la selección se devuelve a la tabla.
MODULE VALUE_CARRIER INPUT.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

TABNAME    = 'DEMOF4HELP'

FIELDNAME  = 'CARRIER1'

DYNPPROG   =  PROGNAME

DYNPNR  =  DYNNUM

DYNPROFIELD= 'CARRIER'.

ENDMODULE.

F4IF_INT_TABLE_VALUE_REQUEST

  • Este módulo de funciones muestra una lista de valores que creó en un programa ABAP.
  • La lista de valores se pasa al módulo de funciones como parámetro de tabla VALUE_TAB.
  • Si especifica los parámetros de importación DYNPPROG, DYNPNR y DYNPROFIELD, la selección del usuario regresa al campo correspondiente en la pantalla.
  • Si especifica el parámetro de tabla RETURN_TAB, la selección se devuelve a la tabla.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING

RETFIELD         =  'CONNID'
DYNPPROG         =  PROGNAME
DYNPNR           =  DYNNUM
DYNPROFIELD      =  'CONNECTION'
VALUE_ORG        = 'S'
TABLES
VALUE_TAB        = VALUES_TAB.

Eso es todo para POH y POV. Dejen sus comentarios en caso de cualquier duda.

Cómo crear una ayuda F4 a partir de una tabla interna

Dentro del programa se crea una lista de valores que no existe en el Diccionario ABAP y se le pasa a F4IF_INT_TABLE_VALUE_REQUEST. Los pasos que se describen a continuación generan una ayuda F4 funcional para un campo de pantalla.

  1. Declarar la tabla de valores: Crea una tabla interna cuya primera columna contenga el valor que se muestra en la pantalla. Rellénala en un módulo PBO o en el propio módulo de solicitud de valor.
  2. Registra el campo en la lógica de flujo: Agregue PROCESS ON VALUE-REQUEST a la pantalla y conecte el campo con FIELD … MODULE … para que el módulo se ejecute cuando se presione F4.
  3. Llamar al módulo de función: Pase RETFIELD con el nombre de la columna, DYNPROFIELD con el nombre del campo de pantalla y VALUE_ORG = 'S' porque la lista se pasa como una tabla estructurada.
  4. Devuelve el valor: DYNPPROG y DYNPNR identifican el programa y la pantalla, por lo que la fila seleccionada se escribe directamente en el campo de la pantalla sin necesidad de código adicional.
  5. Pruébalo: Active la pantalla, pulse F4 en el campo y compruebe que aparece la lista y que la selección llega al campo.
* Flow logic of the screen
PROCESS ON VALUE-REQUEST.
  FIELD spfli-connid MODULE f4_connid.

* Module in the ABAP program
MODULE f4_connid INPUT.

  DATA: lt_values TYPE STANDARD TABLE OF spfli.

  SELECT * FROM spfli INTO TABLE lt_values
    WHERE carrid = spfli-carrid.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'CONNID'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'SPFLI-CONNID'
      value_org   = 'S'
    TABLES
      value_tab   = lt_values.

ENDMODULE.

💡 Consejo: Lea el valor de otro campo de la pantalla con el módulo de función DYNP_VALUES_READ antes de completar la lista. Así es como se construye una ayuda F4 dependiente, como las conexiones para la aerolínea ya ingresada.

Preguntas Frecuentes

Ninguna de las dos. Las teclas F1 y F4 interrumpen la pantalla y ejecutan su propio evento, para luego regresar a la misma pantalla. El procesamiento PAI habitual solo se inicia cuando el usuario activa un código de función normal.

La ayuda de búsqueda asociada al elemento de datos o a la tabla de verificación ya genera la lista F4. La codificación POV solo es necesaria cuando los valores se calculan en tiempo de ejecución o dependen de otro campo de la pantalla.

Pase DYNPROFIELD con el nombre de la columna y use GET CURSOR. LINE para encontrar la fila. El módulo de función luego escribe el valor en la fila correcta del control en el siguiente PBO.

Sí. Los asistentes de IA en las herramientas de desarrollo ABAP escriben la lógica del flujo POV, la sentencia SELECT que llena la tabla de valores y la llamada a F4IF_INT_TABLE_VALUE_REQUEST con los parámetros RETFIELD y DYNPROFIELD correctos.

No. F1 sigue leyendo la documentación almacenada en el Diccionario ABAP. Asistentes de IA como SAP Joule responde a las preguntas en un lenguaje sencillo junto a la pantalla, lo que complementa la documentación de campo en lugar de sustituirla.

Resumir este post con: