Recherche…


PXSelectGroupBy et valeurs de bits dans Acumatica 5.1 et 5.2+

La méthode de génération SQL à partir des vues de données BQL PXSelectGroupBy<> a été modifiée dans Acumatica Framework 5.2.

Les sections ci-dessous illustrent les différences à l'aide de l'exemple de PXSelectGroupBy<FinYear, Aggregate<GroupBy<FinYear.finPeriods>>>.Select(graph) :

Acumatica Framework 5.2 et versions ultérieures

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 et versions antérieures

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]) 

Explication

Par défaut, l'agrégat Max() est appliqué à tous les champs non explicitement mentionnés dans une instruction BQL.

Cependant, dans Acumatica 5.1 et les CreatedByID antérieures, il exclut les CreatedByID , LastModifiedByID et bool . Une fois traduits en SQL, ces champs seront toujours null sauf si vous les regroupez explicitement.

À partir de la version 5.2, Max() sera également appliqué par défaut.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow