Buscar..


PXSelectGroupBy y Bit Values ​​en Acumatica 5.1 y 5.2+

El método de generación de SQL a partir de las vistas de datos BQL PXSelectGroupBy<> se ha cambiado en Acumatica Framework 5.2.

Las siguientes secciones ilustran las diferencias usando el ejemplo de PXSelectGroupBy<FinYear, Aggregate<GroupBy<FinYear.finPeriods>>>.Select(graph) :

Acumatica Framework 5.2 y posteriores

SELECT Max([finyear].[year]), 
       Max([finyear].[startdate]), 
       Max([finyear].[enddate]), 
       [finyear].[finperiods], 
       -- Attention!
       CONVERT (BIT, Max([finyear].[customperiods] + 0)),
       --
       Max([finyear].[begfinyearhist]), 
       Max([finyear].[periodsstartdatehist]), 
       Max([finyear].[noteid]), 
       ( NULL ), 
       ( NULL ), 
       ( NULL ), 
       Max([finyear].[tstamp]), 
       Max([finyear].[createdbyid]), 
       Max([finyear].[createdbyscreenid]), 
       Max([finyear].[createddatetime]), 
       Max([finyear].[lastmodifiedbyid]), 
       Max([finyear].[lastmodifiedbyscreenid]), 
       Max([finyear].[lastmodifieddatetime]) 
FROM   finyear FinYear 
WHERE  ( finyear.companyid = 2 ) 
GROUP  BY [finyear].[finperiods] 
ORDER  BY Max([finyear].[year])

Acumatica Framework 5.1 y anteriores

SELECT Max([finyear].[year]), 
       Max([finyear].[startdate]), 
       Max([finyear].[enddate]), 
       [finyear].[finperiods], 
       -- Attention!
       ( NULL ), 
       --
       Max([finyear].[begfinyearhist]), 
       Max([finyear].[periodsstartdatehist]), 
       ( NULL ), 
       ( NULL ), 
       ( NULL ), 
       Max([finyear].[tstamp]), 
       ( NULL ), 
       Max([finyear].[createdbyscreenid]), 
       Max([finyear].[createddatetime]), 
       ( NULL ), 
       Max([finyear].[lastmodifiedbyscreenid]), 
       Max([finyear].[lastmodifieddatetime]) 
FROM   finyear FinYear 
WHERE  ( finyear.companyid = 2 ) 
GROUP  BY [finyear].[finperiods] 
ORDER  BY Max([finyear].[year]) 

Explicación

De forma predeterminada, el agregado Max() se aplica a todos los campos que no se mencionan explícitamente en una declaración BQL.

Sin embargo, en Acumatica 5.1 y anteriores, excluye los campos CreatedByID , LastModifiedByID y bool . Cuando se traducen a SQL, estos campos siempre serán null menos que los agrupe explícitamente.

A partir de la versión 5.2, Max() también se aplicará de forma predeterminada para ellos.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow