Tengo un campo de usuario que es para valores válidos:
en éste campo debe ir el resultado de la BF:
La idea es que cuando se selecciona la unidad de medida para la fc me divida el total de la linea por el total de esa unidad de medida
SI = M ENTONCES LINETOTAL/MTSTOTALES
SI = M2 ENTONCES LINETOTAL/MTS2TOTALES
SI = KG ENTONCES LINETOTAL/KGTOTALES
SI = U ENTONCES LINETOTAL/CANTIDAD
los campos de totales por unidad de medida son:
$[38.U_MtsL.NUMBER] para metros
[38.58.NUMBER] para kilogramos
[38.U_Mts2.NUMBER]
Cómo sería la query?
de ver por el foro llegué a ésto, pero venía de una consulta de SQL y yo estoy trabajando en hana
SELECT CASE WHEN $[38.U_UMFC.0] = "Metros" THEN [38.21.NUMBER]/[$38.UMtsL.NUMBER] FROM INV1 T0
Claramente no me funciona
Agradezco los aportes como siempre
Abrazo
@Juan_Pablo_Ti
Debes quitarle el FROM INV1 T0. ten en cuenta que la información todavía no esta en la base de datos, solo existe en el formulario.
Te recomiendo revisar el tema de unidades de medida, te evitas todos esos problemas.
claro, el tema es que me sumaron a éste proyecto ya finalizando la configuración, tienen el live el 02/01/2019 y ya no se puede cambiar nada. se han configurado de manera erronea todas las unidades de medida, grupos de unidades, etc… y no tienen tiempo de cambiar todo ya que cuentan con un addon también de producción.
tenemos que emparchar por el momento y luego ir cambiando toda la cfg de unidades y grupos de unidades.
Alguien que me pueda ayudar con la sintaxis para HANA del doc activo y de qué manera poder llegar al resultado esperado?
Cuando se cambia el campo UM para FC tiene que desencadenar lo siguiente:
SI U_UMFC = M entonces Total linea / U_MtsL SI U_UMFC = M2 entonces Total linea / U_Mts2 SI U_UMFC = KG entonces Total linea / TOTAL KG
TOTAL LINEA = $[38.21.NUMBER]
TOTAL KG = $[38.58.NUMBER]
Por favor aquella persona que me pueda explicar cómo hacer la sintáxis se lo agradezco de antemano!
@andresramirez le quité el FROM pero sigue arrojando “Se ha producido un error interno”
consulta, tengo éstas búsquedas formateadas que me funcionan bien
Select ($[$38.53.NUMBER]$[$38.11.NUMBER]) FROM INV1 T0
Select (($[$38.53.NUMBER]$[$38.54.NUMBER])*$[$38.11.NUMBER]) FROM INV1 T0
si les pongo FROM INV1 T0 o FROM DUMMY me funciona de igual manera
pero con ésta no hay forma de dar en la tecla
SELECT CASE WHEN $[$38.U_UMFC.0] = “M” THEN $[$38.21.NUMBER]/$[$38.UMtsL.NUMBER]
le puse FROM INV1 T0
también le puse FROM DUMMY
en ningún caso funcionó, creo que es algo de base en la sintaxis.
Buenas Ricardo, estoy usando “M” @andresramirez no se te ocurre cómo puedo resolver ésta consulta?
sigo rompiendome la cabeza pero sólo sale el error SE HA PRODUCIDO UN ERROR INTERNO (3006) MENSAJE …
@Juan_Pablo_Ti, no puedes tener un campo de usuario con el nombre U_MtsL y en la busqueda formateada llamarlo UMtsL, claramente son distintos. adicionalmente los campos en las consultas sobre HANA deben utilizar comillas como te escribí anteriormente.
SQL Server:SELECT $[ORDR.DocDate] SAP HANA:SELECT $[ORDR.“DocDate“] FROM DUMMY
Lo otro es que no puedes mesclar los 2 maneras de realizar la búsqueda.
O utilizas el esquema SELECT $[Tabla.Campo] o SELECT $[$Item.Column.Tipo_de_dato], pero no una combinacion de los 2.
Te recomiendo estudiar mas sobre búsquedas formateadas.
h_tp://www.qualityinfosolutions.com/crear-busquedas-formateadas-en-sap-business-one/
En relación a ésto me faltó (de tantas veces que modifiqué la query) el _ entre la U y MtsL
Eso lo tenía claro pero ya no sabía qué más agregarle y probar.
Mi query original es así:
SELECT $[$38.U_UMFC.0] CASE WHEN = “M” $[$38.21.NUMBER]/$[$38.U_MtsL.NUMBER] FROM DUMMY
También le puse el END pero sigue con error.
Entiendo lo que me comentás del SELECT, pero necesito resolver el CASE
Ese video y link que me pasas lo leí varias veces, estuve en páginas de sintaxis de SQL y SQL HANA, pero no logro dar en la tecla con el CASE.
repito, mi query original no mezcla ésto:
utilizo sólo campo activo
sigo buscando info a ver si doy en la tecla y les comento.
se está volviendo frustrante.
muchas gracias a todos por el tiempo.
slds.
Al fin funciona mil gracias @andresramirez, era la comilla simple!!! =(
SELECT CASE WHEN $[$38.U_UMFC.0] = ‘M’ THEN $[$38.21.NUMBER]/$[$38.U_MtsL.NUMBER] END FROM INV1 T0
y acá dejo la query completa dónde me trae el cálculo correcto para cada uno de los 3 posibles valores.
SELECT CASE WHEN $[$38.U_UMFC.0] = ‘M’ THEN $[$38.21.NUMBER]/$[$38.U_MtsL.NUMBER] WHEN $[$38.U_UMFC.0] = ‘M2’ THEN $[$38.21.NUMBER]/$[$38.U_Mts2.NUMBER] WHEN $[$38.U_UMFC.0] = ‘KG’ THEN $[$38.21.NUMBER]/$[$38.58.NUMBER] END FROM INV1 T0