netsuite
Sfruttare le colonne formula nelle ricerche salvate
Ricerca…
introduzione
Istruzione SQL SQL CASE in una formula di Netsuite
Usando un'istruzione CASE, visualizza condizionatamente un'espressione nella colonna in base ai valori trovati in un'altra colonna, ovvero "il mio regno per un OR". Nell'esempio, il risultato si ottiene quando lo stato della transazione è Pending Fulfillment
o Partially Fulfilled
:
CASE DECODE( {status}, 'Pending Fulfillment', 1, 'Partially Fulfilled', 1, 0 )
WHEN 1 THEN
espressione-1
END
Analisi di un nome di record gerarchico mediante un'espressione regolare
Utilizzando un'espressione regolare, analizzare un nome del record che potrebbe essere gerarchico. L'espressione cerca i due punti finali nel nome. Restituisce ciò che segue i due punti, o l'intero nome se non lo è:
regexp_substr( {name} , '[^:]*$' )
Costruisci una stringa complessa concatenando più campi
L'esempio crea una stringa dal nome del record padre, il nome di questo record e il memo di questo record.
{createdfrom} || ' ' || {name} || ' ' || {memo}
Personalizza il CSS (foglio di stile) per una colonna inserendo un elemento DIV
'<div style="font-size:11pt">' ||
espressione || '</div>'
Proteggi le formule di stringa dagli attacchi di corruzione e iniezione
In un campo formula stringa, considera che alcuni valori potrebbero contenere sottostringhe che guardano al browser come HTML. A meno che non sia intenzionale, è importante proteggere i valori dalla corruzione. Questo è utile per evitare attacchi di iniezione: impedisce a qualcuno di inserire HTML in un campo di commento in un ordine web che verrà poi interpretato sulla scrivania del rappresentante del servizio clienti.
htf.escape_sc(
espressione )
Proteggi i valori dei campi dalla corruzione quando si passa attraverso un URL
utl_url.escape(
espressione )
Prova il valore di `mainline` in un'istruzione SQL CASE
In una formula di ricerca salvata, i possibili valori della mainline
sono progettati per essere utili in un contesto HTML. Quando mainline
è true, il valore di {mainline}
è la stringa di 1 carattere *
(asterisco). Quando la mainline
è falsa, il valore di {mainline}
è la stringa di 6 caratteri
(spazio non frazionato, HTML codificato come riferimento all'entità carattere). Questi valori di stringa possono essere confrontati con stringhe letterali in un contesto SQL.
CASE
WHEN {mainline} = '*' THEN
espressione-quando-vero
WHEN {mainline} = ' ' THEN
espressione-quando-falsa
END
Esempio complesso e realistico
L'esempio seguente combina diverse tecniche qui trattate. Mette un collegamento ipertestuale in una colonna formattata personalizzata che, quando viene cliccato, apre il record dell'ordine di vendita associato a una riga. Il collegamento ipertestuale è progettato per aprire il record in una nuova finestra o scheda quando si fa clic e per visualizzare un suggerimento quando si passa il mouse. Il campo internalid
utilizzato nell'URL è protetto dalla codifica URL. Il nome del cliente, quando disponibile, viene visualizzato nella stessa colonna, protetto dalla codifica 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>'
Conta i record con e senza un valore fornito in un campo (conteggio dei valori mancanti e non mancanti)
Utilizzando la funzione NVL2()
Oracle SQL, è possibile creare una colonna di visualizzazione che contiene un valore se un campo contiene dati e un altro valore se un campo non contiene dati. Ad esempio, in una ricerca Entità, trasforma la presenza di un indirizzo e-mail primario in una colonna di visualizzazione del testo:
NVL2( {email} , 'YES' , 'NO' )
Ciò ti consente di contare i record in subtotale in base alla presenza o all'assenza di un indirizzo email:
Field: Internal ID
Summary Type: Count
Field: Formula (Text)
Summary Type: Group
Formula: NVL2( {email} , 'YES' , 'NO' )