netsuite
Exploitation des colonnes de formules dans les recherches enregistrées
Recherche…
Introduction
Instruction Oracle SQL CASE dans une formule Netsuite
En utilisant une instruction CASE, affichez de manière conditionnelle une expression dans la colonne en fonction des valeurs trouvées dans une autre colonne, appelée «mon royaume pour un OR». Dans l'exemple, le résultat est obtenu lorsque le statut de la transaction est Pending Fulfillment
ou Partially Fulfilled
:
CASE DECODE( {status}, 'Pending Fulfillment', 1, 'Partially Fulfilled', 1, 0 )
WHEN 1 THEN
expression-1
END
Analyse d'un nom d'enregistrement hiérarchique à l'aide d'une expression régulière
À l'aide d'une expression régulière, analysez un nom d'enregistrement qui pourrait être hiérarchique. L'expression recherche le deux-points final dans le nom. Il retourne ce qui suit les deux points, ou le nom entier si aucun:
regexp_substr( {name} , '[^:]*$' )
Construire une chaîne complexe en concaténant plusieurs champs
L'exemple génère une chaîne à partir du nom de l'enregistrement parent, du nom de cet enregistrement et du mémo de cet enregistrement.
{createdfrom} || ' ' || {name} || ' ' || {memo}
Personnaliser le CSS (feuille de style) pour une colonne en insérant un élément DIV
'<div style="font-size:11pt">' ||
expression || '</div>'
Protégez les formules de chaînes contre la corruption et les attaques par injection
Dans un champ de formule de chaîne, considérez que certaines valeurs peuvent contenir des sous-chaînes qui ressemblent au navigateur HTML. À moins que cela ne soit intentionnel, il est important de protéger les valeurs de la corruption. Ceci est utile pour éviter les attaques par injection: il empêche une personne d'entrer du code HTML dans un champ de commentaire dans une commande Web qui sera interprétée ultérieurement sur le bureau du représentant du service clientèle.
htf.escape_sc(
expression )
Protéger les valeurs de champ contre la corruption lors du passage par une URL
utl_url.escape(
expression )
Tester la valeur de `mainline` dans une instruction SQL CASE
Dans une formule de recherche sauvegardée, les valeurs possibles de mainline
sont conçues pour être utiles dans un contexte HTML. Lorsque mainline
est true, la valeur de {mainline}
est la chaîne de 1 caractère *
(astérisque). Lorsque la mainline
est fausse, la valeur de {mainline}
est la chaîne de 6 caractères
(espace insécable, HTML codé comme référence d'entité de caractère). Ces valeurs de chaîne peuvent être comparées avec des littéraux de chaîne dans un contexte SQL.
CASE
WHEN {mainline} = '*' THEN
expression-when-true
WHEN {mainline} = ' ' THEN
expression-when-false
END
Exemple complexe et réaliste
L'exemple suivant combine plusieurs des techniques abordées ici. Il place un lien hypertexte dans une colonne formatée personnalisée qui, une fois cliquée, ouvre l'enregistrement de commande client associé à une ligne. Le lien hypertexte est conçu pour ouvrir l'enregistrement dans une nouvelle fenêtre ou un nouvel onglet lorsque vous cliquez dessus, et pour afficher une info-bulle lorsque vous survolez. Le champ internalid
utilisé dans l'URL est protégé du codage URL. Le nom du client, lorsqu'il est disponible, est affiché dans la même colonne, à l'abri de l'encodage HTML.
'<div style="font-size:11pt">'
||
CASE {mainline}
WHEN '*' THEN '<br>' || htf.escape_sc( regexp_substr( {name} , '[^:]*$' ) ) || '<br>'
END
||
'<a alt="" title="Open the order associated with this line." '
||
'href="javascript:void(0);" onClick="window.open('''
||
'https://system.na1.netsuite.com/app/accounting/transactions/transaction.nl?id='
||
utl_url.escape( {internalid} )
||
''' , ''_blank'' )">'
||
{number}
||
'</a>'
||
'</div>'
Compter les enregistrements avec avec et sans valeur fournie dans un champ (compter les valeurs manquantes et non manquantes)
A l'aide de la fonction NVL2()
Oracle SQL, vous pouvez créer une colonne d'affichage contenant une valeur si un champ contient des données et une autre valeur si un champ ne contient pas de données. Par exemple, dans une recherche par entité, transformez la présence d'une adresse de messagerie principale en une colonne d'affichage de texte:
NVL2( {email} , 'YES' , 'NO' )
Cela vous permet de compter les enregistrements sous-totalisés par la présence ou l'absence d'une adresse électronique:
Field: Internal ID
Summary Type: Count
Field: Formula (Text)
Summary Type: Group
Formula: NVL2( {email} , 'YES' , 'NO' )