Mostrando entradas con la etiqueta BD Hana. Mostrar todas las entradas
Mostrando entradas con la etiqueta BD Hana. Mostrar todas las entradas

sábado, 5 de septiembre de 2020

Transaction Notification en Dirección Destino - CRD1

Hoy les muestro este TN para que no pasen por alto que los destinos en CRD1 se diferencian en la tabla CRD1 dependiendo si lo que quieres validar es la Dirección Destino (bo_ShipTo) o la Dirección fiscal (bo_BillTo), de lo contrario si omites esta especificación en tu validación estarás afectando a ambas direcciones.

El ejemplo está en HANA, que a diferencia de SQL Server que solo realiza un if para saber si cumple con la condición, HANA utiliza una variable de tipo Int (numRowsResult) para contar el número de resultados para luego saber si existen registros coincidentes con tu consulta de validación, de haberlos, entonces se dispara el error:

IF (:transaction_type = 'A' OR :transaction_type = 'U') And  :object_type = '2' THEN

SELECT COUNT(*) INTO numRowsResult

FROM "OCRD" T0 INNER JOIN "CRD1" T1 ON T0."CardCode" = T1."CardCode"

WHERE T0."CardCode" = :list_of_cols_val_tab_del

AND (T1."City" is null OR T1."City" = ' ' OR T1."City" = '')

AND T1."AdresType" = 'S';  -- Aquí decimos que la dirección es bo_ShipTo

IF :numRowsResult>0 THEN  

        error := -2001;

        Error_message := 'El campo "Ciudad" en "Destino Envío" no puede quedar vació, por favor de verificar (Socios de Negocios).';

END IF;

END IF;


Espero les sirva, saludos!.

sábado, 29 de agosto de 2020

Lob type in GROUP BY sap HANA

Hola ¿como están?,

Tratando de adecuar una consulta que no conocía tuve que agrupar algunos de sus campos para poder realizar el sum de uno ellos, la sorpresa fue que me genero al finalizar este error: Lob type in GROUP BY, para esto encontré esta publicación de la página oficial de SAP.


Como podrán ver, nos indica que entre las restricciones de un campo tipo Lob esta el poder agruparlo, por lo que la única forma de poder hacer un lado este error fue haciendo un CAST a VARCHAR, de esta forma el group by lo interpreta como tal y deja correr la consulta.

Saludos!.

domingo, 23 de agosto de 2020

2486755 - inconsistent datatype: lob type comparison

Hola de nuevo!, esta semana modificando una consulta en SAP Hana, me encontre con el siguiente error:  2486755 - inconsistent datatype: lob type comparison

Sucedía cuando construía un case anidado:


 CASE WHEN (CASE WHEN T4."CardCode" IN ('C00001', 'C00002') 
 THEN T2."Address2" 
 ELSE T0."U_Address" 
 END) is null 
 then null 
 ELSE IFNULL(T0."U_Entidad", T3."Name")

Como pueden ver era un case que validaba otro case, el cual si arrojaba un dato vació, ese dato vació era sustituido por un campo el cual se validaba para en caso de estar vacio ir por un valor de otro campo.

Yendo al grano, este error era provocado por el hecho de poner en vez de los null del Case una cadena vacía: '' ó ' ', lo cual me obligaba a colocar el null para poder correr la consulta, antes verifique que el campo no trajera cadenas vacías por supuesto si no solo valores null.

Así que ya sabemos que hacer en este caso para que el error desaparezca, espero les sirva.

martes, 28 de julio de 2020

Convertir Date a TimeStamp en DB Hana

Se me volvio un verdadero problema Convertir un dato Date que me daba un Grid de SAP B1 a TimeStamp de la base de datos SAP Hana , les dejo inicialmente lo que SAP aconseja hacer pero que no me funciono, intente de diversas maneras para terminar dandome cuenta que tenia que modificar lo aconsejado por SAP para que pudiera realizar el insert en la base de datos:

  • SAP aconseja lo siguiente:
    • select TO_TIMESTAMP ('2016-04-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS') from dummy.
  • El dato fecha del Grid de SAP es un Date con diagonales (He ahí donde se complico todo).
    • 04/04/2016
  • Tuve que terminar haciendo esto:
    • SELECT TO_TIMESTAMP(to_date('24/07/2020', 'DD/MM/YYYY') , 'YYYY-MM-DD') "to date" FROM DUMMY;
Espero les ayude a evitarse varios dolores de cabeza por esto, saludos!.