Buenas noches compañeros. Actualmente estoy adentrándome en Sap b1 Hana. Por lo que estoy tratando de hacer una consulta formateada que me traiga la multiplicación del precio unitario por el tipo de cambio del día, dependiendo de la moneda de la orden de venta, si la orden de venta es en dólares tendría que hacerme la multiplicación y si es en la otra moneda se tendría que mantener con el valor de esa moneda. Todo esto En las filas (apuntes) de la orden de venta.
La consulta basica que he hecho es esta pero entiendo que es sumamente básica y no se acopla a lo que estoy necesitando. Podrían echarme una mano?
SELECT T0.“Price” * T0.“Rate” as “Precio cambio”, T1.“DocNum” FROM RDR1 T0 INNER JOIN ORDR T1 ON T0.“DocEntry” = T1.“DocEntry” WHERE T0.“Currency” = ‘US$’
Actualmente me pone la lupa en el campo para yo seleccionar pero esa no es la idea, la idea es que después de poner el precio unitario en la moneda de dólares me traiga el precio al tipo de cambio en la otra moneda.
Buenas. El asunto es que donde le asignaste la búsqueda formateada a ese campo, le actives el checkbox de “Actualización automática”
(Tu versión puede ser algo diferente)
Después seleccionas el campo que quieres usar como trigger (en tu caso el precio unitario), y que quieres que se “dispare” la búsqueda cuando haya modificaciones en él (Importante que no selecciones la opción de “Actualizar regularmente” o hará que se dispare automáticamente cada vez que veas un documento, provocando que SAP se crea que hiciste alguna modificación en él).
Hola, gracias por responder. He probado pero me trae el mismo número en todas las filas y no es la multiplicación de ninguna de las filas. Sabes cómo podría indicarle que me vaya multiplicando según el precio del ítem por cada línea?
Lo de la lista de precio lo probé con anterioridad pero nosotros trabajamos en base a dólares, si el dólar sube o baja la otra moneda de la lista de precios se mantiene igual no cambia con respecto al dólar. No se si me dejo entender.
El problema lo tienes en el Price. Estás accediendo a datos de la tabla, no del formulario que tienes abierto.
Tienes que cambiar la parte en la que “lees” el T0.“Price” por una consulta de array (ésta sólo la podrás probar desde dentro del documento en cuestión)
SELECT $[$object:type.column.NUMBER] FROM DUMMY
Substituye:
object_type por 17 (List of object types h_tps://blogs.sap.com/2017/04/27/list-of-object-types/)
column por el número de columna que te muestra SAP al poner el cursor sobre la línea de precio teniendo visible la información del sistema(ahora no recuerdo de memoria)
Lo que necesitas es:
1 el tipo de cambio usado en el documento
2 el numero de documento
3 el precio (en este caso yo utilice “Precio Bruto después del descuento” (tendrás que adaptarlo)
variables:
1 = $[RDR1.“Rate”.Number] (acá estas tomando el tipo de cambio usado en la línea del articulo)
2= $[ORDR.“DocNum”] (aca estas usando el numero de documento)
3=$[$38.20.number] esta es la columna para el precio que yo estoy usando
entonces el codigo te queda de la siguiente forma:
SELECT
case when $[RDR1."Rate".Number] = 0 then $[$38.20.number] *1 else $[$38.20.number] *$[RDR1."Rate".Number] end || $[ORDR."DocNum"]
FROM dummy;
y la búsqueda formateada la configure como en la imagen:
el resultado es el valor multiplicado por el tipo de cambio, concatenando el numero de documento al final ( no se porque lo quieres de esa forma) espero te sirva.