Consulta Formateada - Precio unitario

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”

image
(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).

1 me gusta

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?

el qry no tiene la instrucción $ que se debe asignar a los datos temporales, ya que el registro aún no ha sido grabado, en la tabla RDR1

SELECT $[RDR1.Precio] FROM DUMMY…

Pero no sería mejor manejar la moneda adicional de la Listas de Precios ?

Hola Compañero, gracias probaré lo que mencionas.

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.

Disculpa, no me di cuenta de que había ese error.

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)

Ya me perdí, en el objetivo de tu consulta.

Si lo que quieres es tener el precio de acuerdo al dólar, entonces te propongo el siguiente escenario:

  1. Lista de precios en USD$ (estándar de SAP B1)
  2. actualizar todos los días la TRM para la moneda USD en tu Pais (estándar de SAP B1)
  3. Luego en los documentos, trabajas con ese dato, y presentas el precio convertido a la TRM del día.

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.