Ricerca…


introduzione

Le colonne formula nelle ricerche salvate possono sfruttare molte funzionalità di Oracle SQL e HTML. Gli esempi mostrano come queste funzioni possono essere utilizzate, oltre alle insidie ​​da evitare.

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 &nbsp; (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} = '&nbsp;' 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' )


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow