Ayuda SAP

Obligar a rellenar selección libre en F110

Buenos días.
Resulta que tenemos una petición del usuario del programa de pagos, en la cual nos pide que sea obligatorio rellenar con un campo y un valor para ese campo en la pestaña de “Selección libre”.

¿alguien ha hecho algo parecido alguna vez?
Gracias.

Hasta donde sé no se puede, entonces no sería selección libre eh??

De todas formas siempre hay trucos oscuros, debe de haber algún BTE para F110 que cumpla requisitos.

jajaja, es verdad que no sería muy libre, pero el cliente es el que manda y a veces piden cosas imposibles, entonces lo que quería es saber es si es imposible lo que pide o es posible y no se como hacerlo.

He estado buscando BTEs pero no encuentro ninguna que se ajuste a lo solicitado porque la mayoría están involucradas con la contabilización del documento pero esto sería incluso antes de grabar los parámetros de la propuesta.

Ahora mismo estoy algo apretado en el trabajo y no puedo realizar el ejercicio, aquí te dejo que haría yo:

Puedes intentar usando Validations en la transacción OB28, agrega una entrada con la sociedad, evento(esto es si el campo que quiere validar es de cabecera, posicion o que pedo), das doble clic y adentro es donde se hace la magia, revisa si tu campo que quieres validar está ahi disponible, si está disponible creale una regla donde la transacción sea igual F110 y no sé que cosa más, y que tu campo no esté vacio, si está vacío lanzar error.

Ojo; Debes delimitar bien porque esto funciona para todas las tcodes de FI que usen el campo.

Espero te sirva de guía.

1 me gusta

Gracias @Haden_Yasser_,
pero esta validación también es para cuando se está contabilizando, y necesito algo para cuando simplemente se están registrando los parámetros de la propuesta.

Porque si es en la contabilización, le dejo al usuario grabar la propuesta y en la propia ejecución del pago sería cuando saldría el error en el log. Creo que no debería dejarle ni grabar parámetros, ni grabar la propuesta ni mucho menos ejecutarla si al final es cuando le voy a dar el error que se ha podido detectar antes.

De todas formas es también una solución :grinning:

No lo he revisado, pero no te fijaste si podes usar el conocimiento aplicado de este tuto?

Sé que el tuto es para materiales, pero capaz podes usar la misma lógica?

Hola @Salco,

No conozco muy bien la F110 pero te puedo decir que en el 90 % de los casos yo hago una variante de pantalla, y se la activo a la transacción. Cuando guardas la variante X campo puedes dejarlo obligatorio.

Cordial Saludo,
William Neira

Pues esa también es una buena opción, y no la he llegado a probar porque según he leído en el scn y mundosap etc justo para la pestaña de selección libre no funciona.

He encontrado una solución, que puede no sea la mejor pero es seguro que funciona:

debugueando la F110 encontré un INCLUDE que tenía un FORM que estaba vacío en el que parecía que se podía verificar un ok code de usuario.
Entonces intenté hacer un enhacement y bingo! además tenía acceso a las estructuras de datos de la pestaña de selección libre.
Al enhacement lo llamé ZF110_LIST1_NONULL cuya jerarquía final es:

Y el código en cuestión es tan sencillo como:

FORM OKCOD_SEL.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1 ) Forma OKCOD_SEL, Inicio                                                                                                                      D
*$*$-Start: (1 )--------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZF110_LIST1_NONULL.    "active version
* A petición de tesorería, se quiere obligar a rellenar con al menos
* un campo la selección libre. Por si se olvidan de hacerlo para que
* no seleccione todo lo pendiente.
  DATA: lv_criterio type flag.
  IF FLDTAB[] is INITIAL.
    MESSAGE s000(Z44_FIGL) WITH
    'Debe indicar un criterio se seleccion'.
    LEAVE TO SCREEN 200.
  ENDIF.
  LOOP AT fldtab.
    IF NOT fldtab-list1 IS INITIAL.
      lv_criterio = 'X'.
      EXIT.
    ENDIF.
  ENDLOOP.
  IF lv_criterio IS INITIAL.
    MESSAGE s000(Z44_FIGL) WITH
    'Debe indicar un valor en criterio se seleccion'.
        LEAVE TO SCREEN 200.
  ENDIF.
ENDENHANCEMENT.
*$*$-End:   (1 )--------------------------------------------------------------------------------$*$*
ENDFORM. 
2 Me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.