Añadir campo a formulario

Hola

A través de la modificación del UI o parámetros del formulario puedo marcar/desmarcar los campos que quiero tener, pero no veo cómo añadir uno que no esté en esa lista.

Por ejemplo en una solicitud de compras quiero añadir el CIF para que sea un campo más de introducción (puedo poner el proveedor por código o nombre) pero ese campo no figura en los disponibles.

¿Esto se puede hacer? Evidentemente hablo de campos relacionados con el documento que esté editando, como el ejemplo que he comentado.

Gracias

@tbote has probado creando campos de usuario? La ruta en SAP es Herramientas - Herramientas de personalización - campos definidos por el usuario
Allí tú puedes crear todo tipo de campos para cabeceras y detalles de los documentos, como por ejemplo en las solicitudes de compras.
En la web hay varios ejemplos y ejercicios donde te detallan como debes crear estos campos.

Después de crearlos puedes moverlos y posicionarlos con la herramienta de modificación del UI que ya conoces.

Eso no es exactamente el caso. El CIF ya existe como campo estándar, la cuestión es si puedo añadir un campo (estándar) a un formulario para usarlo como entrada, ejemplo:

Un pedido de compra se puede meter el código de proveedor o el nombre del mismo. Yo quiero que además se pueda meter el CIF, cualquiera de los tres campos debe localizarte al proveedor y continuar con el resto de campos del formulario. El UI estándar solo tiene los dos primeros.

En otros formularios he añadido campos personalizados (por ejemplo en el maestro de interlocutores comerciales) pero en este caso quiero usar uno de esos campos (o uno estándar) para localizar a ese interlocutor dentro de un documento de compra.

saludos, el cif lo puedes agregar a la transacción de proveedores y de allí obtenerlo.

Vamos a ver…

En la pestaña Finanzas ya tienes el CIF… ¿?

Que además te viene en automático al cargar el código del prorveedor…

Vamos a ver si me explico…

Cuando hacemos un documento de compra lo primero que tenemos que poner es el proveedor, éste se puede seleccionar por el código o por el nombre. Y yo quiero que además se pueda seleccionar por el CIF. Para que exista esa tercera opción tendría que modificar el formulario del documento de compra para que metiendo el código, el nombre o el CIF el documento se asocie el proveedor correspondiente.

Obviamente el campo CIF está en el interlocutor comercial, no quiero “traerlo” al formulario, quiero usarlo campo para localizar al proveedor en el documento de compra.

Y es ese el problema que tengo, que hasta donde he llegado en el UI puedo agregar campos personalizados por el usuario pero no es el caso, quiero agregar un campo que ya existe en la tabla de proveedores (OCRD) y que sirva para localizar al proveedor a quien se va a lanzar el pedido (exactamente igual que funcionan las casillas de código y nombre en el documento).

Creo que no comprendes el alcance de la solución.

Con el editor puedes modificar el diseño, disposición de campos, pero no la lógica de negocio o como el programa esta diseñado.

Para esa opción que comentas es necesario que programes un Addon que haga eso.

En todos los documentos de SAP, inicias la creación con el código o con el nombre del Interlocutor.

En tu caso lo más práctico sería que en el código del IC, colocases una búsqueda formateada que al pinchar en la lupa ejecute una consulta que busques un NIF como dato preguntado y el resultado te devuelva el código del IC en la primera columna.

Lo de la búsqueda formateada me podría valer porque al final lo que se trata es de poder localizar al proveedor por varios campos. Voy a darle una vuelta…

Disculpa mi ignorancia pero no veo cómo devolver el dato de otra columna. En la búsqueda formateada defino una consulta con dos columnas (CIF y NOMBRE), me busca bien por CIF pero me devuelve siempre esa columna, para que funcionase debería buscarme en la primera columna y devolver la segunda. O mejor, si se pudiera, buscar en cualquiera de las columnas y devolver una al seleccionar un registro.

Seguro que es sencillo pero todos los ejemplos que veo de BF son o de un campo, o buscan según lo introducido en otro, etc.

En la primera columna pon el codigo no el nif, siempre tienes que devolver el código de proveedor.
en la select sería Select Cardcode, CardName, LictradNum from OCRD where cardtype='S' and lictradnum='[%0]'

Gracias, apañado, algún tutorial/manual que explique con detalle el tema de búsquedas formateadas que me pueda servir? De momento con esto he solucionado el problema pero me gustaría conocer si hay más posibilidades en este aspecto.

Si, haz una búsqueda en el foro, creo que se han compartido enlaces y tienes varios ejemplos de ellas.

Gracias, las voy cogiendo el truco, pero ahora me he atascado en algo sencillo. Estoy haciendo una consulta que me muestra los precios cuya fecha de entrada en vigor más un tiempo de revisión establecido es inferior a la fecha actual+número de días. Esta es la consulta:

SELECT
	DISTINCT T0."CardCode",
	T1."CardName"	
FROM
	SPP1 T0
INNER JOIN OCRD T1 ON
	T0."CardCode" = T1."CardCode"
WHERE
	add_months(T0."FromDate",T1."U_Revision") < add_days(CURRENT_DATE,[%0]) and
	T0."ToDate" IS NULL

El problema es que cuando ejecuto esta consulta lo que me pregunta es una fecha (Hana debe interpretar que busco una fecha menor que…) cuando lo que quiero es que me pregunte “Días” y un número. La consulta funciona correctamente si pongo días fijos, pero me gustaría que eso fuera variable por el usuario.

¿Es posible especificar el tipo de dato que quiero que me pregunte antes de la consulta? He intentado algunas variaciones como declarar una variable como un entero, asignarle a esa variable el valor [%0] pero no funciona.

Si, claro.

Si el preguntado lo pnes en una fecha, te preguntará una fecha…

Intenta utilizar una función de datediff que te hace el calculo de días de diferencia entre la fecha del sistema y una que le pases… lo que nunca he usado es el datediff o su resultado en un preguntado.

Normalmente lo uso en el where para saber los registros de la última semana o algo así…

Es que si te fijas en la consulta yo no estoy preguntado por una fecha, pero SAP lo interpreta así.

Datediff que yo haya visto no existe en Hana pero si uso el equivalente:

DAYS_BETWEEN(add_months(T0."FromDate",T1."U_Revision"),CURRENT_DATE)< [%0] and
	

Sigue preguntado por una fecha. Si lo interprestase bien debería preguntar “Días” y un número ya que DAYS_BETWEEN dará como resultado un número y por tanto la comparativa sería contra ese número, pero como te digo, insiste en preguntarme por una fecha ya que por alguna razón considera que estoy intentando filtrar por “FromDate” cuando no es real.

Hola,

El campo que usas para el preguntado es de tipo fecha… con lo cual el preguntado siempre espera una fecha…, aunque estés haciendo una resta o cálculo de fechas, es sobre un campo de tipo fecha…

Lo único que podrías probar es a evaluar que el resultado de la resta sea visible en una columna y luego establecer un filtro sobre el resultado.

Mismo resultado, haga lo que haga me pregunta por una fecha. Creo que es una limitación de la consultas, tendré que hacerlo con un procedimiento almacenado y un reporte, voy a darle una vuelta.