Se presenta error.log al generar informe de libro diario utilizando manejador de base de datos Oracle.

Línea de Producto:

Microsiga Protheus.

Segmento:

Servicios - Mercado Internacional.

Módulo:

SIGACTB - Gestión de Contabilidad.

Rutina:

RutinaNombre Técnico
CTBR822Informe de Libro Diario

Requisito/Situación:

Al emitir el informe de Libro Diario (CTBR822) en un ambiente utilizando el manejador de base de datos Oracle se muestra error.log ya debido a que no reconoce la cláusula LEN utilizada en la sentencia (query) para obtener la información de la tabla Asientos Contables (CT2).

Error mostrado:

THREAD ERROR ([3092], rgonzalez.qro, HELP20189YCF)   07/09/2018 14:12:28

: Error : 904 - ORA-00904: "LEN": invalid identifier

 ( From tOracleConnection::GetQueryFile )

Thread ID [14691]              User [Administrador]          IO [9044]               Tables [27]           MaxTables [28]   Comment [CTBR822 - TCPIP - ThreadID(3092)] SP [ ]      Traced [No]          SQLReplay [No]  InTran [No]           DBEnv [ORACLE/MI08]    DBThread [(SID 264,57427,1)]      Started [07/09/2018 15:38:49]         IP [10.195.4.154:1236]      IDLE [ ]   InTransact [ ]        Memory [836168]                Running [ROP_QUERY]  RCV [243322]      SND [797444]      TCBuild [20171117-20180412]     

SELECT CT2_FILIAL,CT2_DATA,CT2_LOTE,CT2_DEBITO,CT2_CREDIT,CASE WHEN LEN(CT2_DEBITO) > 0 THEN SUM(CT2_VALOR) ELSE 0 END AS VALORDEB,CASE WHEN LEN(CT2_CREDIT) > 0 THEN SUM(CT2_VALOR) ELSE 0 END AS VALORCRD FROM CT2010 CT2 WHERE  CT2.D_E_L_E_T_= ' ' AND CT2_DATA BETWEEN '20180101' AND '20181231' GROUP BY CT2_FILIAL,CT2_DATA,CT2_LOTE,CT2_DEBITO,CT2_CREDIT  ORDER BY  CT2_FILIAL,CT2_DATA,CT2_LOTE,CT2_CREDIT,CT2_DEBITO on __EXECSQL(APLIB300.PRW) 31/08/2018 13:40:09 line : 134

Solución/Implementación:

En rutina de informe de Libro Diario (CTBR822) se realiza ajuste para eliminar el uso de la cláusula LEN que no es soportada por el manejador de base de datos Oracle, la cual era utilizada para validar que los campos Cta Debito (CT2_DEBITO) y Cta Credito (CT2_CREDIT) de la tabla Asientos Contables (CT2) no se encuentren vacíos, en su lugar se utiliza la condición diferente de vacío (<> ‘’).

Requisito (Issue):

DMINA-4230 (v 12.1.17)

Versión:

12.1.17