ANS-0030 · RECHERCHES ENREGISTRéES ET FORMULES

Comment récupérer un champ en fonction d’un autre champ maximal dans les recherches enregistrées de NetSuite ?

Utilisez la syntaxe « keep...dense rank » dans les recherches enregistrées de synthèse NetSuite pour extraire des valeurs de champs spécifiques liées à des critères maximaux au sein des résultats regroupés.

Solution courte

Pour récupérer la valeur d’un champ en fonction d’un autre champ maximal au sein d’un groupe dans une recherche enregistrée de synthèse NetSuite, utilisez un champ de formule. Saisissez max({b}) keep(dense_rank last order by {a}) et définissez le type de synthèse du champ sur « Max ». Cela classe les enregistrements en fonction du champ « a », conserve le rang le plus élevé et renvoie la valeur maximale de « b ».

Scénario

Les utilisateurs ont souvent besoin d’extraire la valeur d’un champ spécifique à partir d’un enregistrement répondant à une condition maximale au sein d’un ensemble groupé de résultats dans une recherche enregistrée NetSuite. Par exemple, une exigence courante consiste à identifier le titre de la tâche la plus récente associée à chaque opportunité. Les fonctions de synthèse standard peuvent ne pas prendre directement en charge ce filtrage et cette récupération complexes.

Solution

Pour y parvenir dans une recherche enregistrée de type « résumé » dans NetSuite, vous pouvez utiliser un champ de formule employant la syntaxe « keep...dense rank ». Supposons que l’objectif soit de trouver la valeur du champ b pour laquelle la valeur du champ a est maximale au sein de chaque groupe. La formule suivante doit être saisie dans un champ de formule :

max({b}) keep(dense_rank last order by {a})

Le type de synthèse de ce champ doit être défini sur « Max ».

Cette syntaxe indique à la recherche, au sein de chaque groupe, de classer tous les enregistrements selon a, de ne conserver que le ou les enregistrements ayant le rang le plus élevé, puis de déterminer la valeur maximale au sein de ce groupe filtré. Il est important de noter qu’en cas d’égalité, cette opération renverra une valeur arbitraire ; il est donc recommandé d’utiliser des champs uniques.

Par exemple, pour trouver le titre de la tâche la plus récente pour chaque opportunité, la formule serait la suivante :

max({task.title}) keep(dense_rank last order by {task.startdate})

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Recherches enregistrées et formules

Parler à un consultant