netsuite
Formelspalten in gespeicherten Suchanfragen ausnutzen
Suche…
Einführung
Oracle SQL CASE-Anweisung in einer Netsuite-Formel
Verwenden Sie eine CASE-Anweisung, um einen Ausdruck in der Spalte bedingt darzustellen, der auf Werten basiert, die in einer anderen Spalte ("Mein Reich für ein ODER") gefunden werden. Im Beispiel wird das Ergebnis erhalten, wenn der Status der Transaktion " Pending Fulfillment
oder " Partially Fulfilled
lautet:
CASE DECODE( {status}, 'Pending Fulfillment', 1, 'Partially Fulfilled', 1, 0 )
WHEN 1 THEN
Ausdruck-1
END
Analysieren eines hierarchischen Datensatznamens mit einem regulären Ausdruck
Analysieren Sie mithilfe eines regulären Ausdrucks einen Datensatznamen, der möglicherweise hierarchisch ist. Der Ausdruck sucht nach dem letzten Doppelpunkt im Namen. Gibt zurück, was auf den Doppelpunkt folgt, oder den gesamten Namen, wenn keiner vorhanden ist:
regexp_substr( {name} , '[^:]*$' )
Erstellen Sie eine komplexe Zeichenfolge, indem Sie mehrere Felder verketten
Im Beispiel wird eine Zeichenfolge aus dem Namen des übergeordneten Datensatzes, dem Namen dieses Datensatzes und dem Memo dieses Datensatzes erstellt.
{createdfrom} || ' ' || {name} || ' ' || {memo}
Passen Sie das CSS (Stylesheet) für eine Spalte an, indem Sie ein DIV-Element einfügen
'<div style="font-size:11pt">' ||
Ausdruck || '</div>'
Schützen Sie Stringformeln vor Korruption und Injektionsangriffen
Beachten Sie, dass einige Werte in einem Zeichenfolgenformel Teilzeichenfolgen enthalten, die für den Browser wie HTML aussehen. Wenn dies nicht beabsichtigt ist, ist es wichtig, die Werte vor Korruption zu schützen. Dies ist nützlich, um Injektionsangriffe zu vermeiden: Es verhindert, dass jemand HTML-Code in ein Kommentarfeld in einer Webreihenfolge eingibt, die später vom Kundendienstmitarbeiter interpretiert wird.
htf.escape_sc(
Ausdruck )
Schützen Sie Feldwerte vor Beschädigungen beim Durchleiten einer URL
utl_url.escape(
Ausdruck )
Testen Sie den Wert von "mainline" in einer SQL CASE-Anweisung
In einer gespeicherten Suchformel sind die möglichen Werte von mainline
so gestaltet, dass sie in einem HTML-Kontext nützlich sind. Wenn mainline
true ist, ist der Wert von {mainline}
die 1-stellige Zeichenfolge *
(Sternchen). Wenn mainline
den Wert false hat, ist der Wert von {mainline}
der 6-stellige String
(geschützte Leerzeichen, HTML-Code als Zeichenentitätsreferenz). Diese Zeichenfolgenwerte können in einem SQL-Kontext mit Zeichenfolge-Literalen verglichen werden.
CASE
WHEN {mainline} = '*' THEN
Ausdruck-wenn-wahr
WHEN {mainline} = ' ' THEN
Ausdruck-wenn-falsch
END
Komplexes, reales Beispiel
Das folgende Beispiel kombiniert mehrere der hier behandelten Techniken. In einer benutzerdefinierten formatierten Spalte wird ein Hyperlink eingefügt, der beim Klicken den mit einer Zeile verknüpften Kundenauftragsdatensatz öffnet. Der Hyperlink soll den Datensatz in einem neuen Fenster oder auf einer neuen Registerkarte öffnen, wenn er angeklickt wird, und eine QuickInfo anzeigen, wenn er im Hover-Modus ist. Das in der URL verwendete internalid
Feld ist vor der URL-Codierung geschützt. Der Kundenname wird, sofern verfügbar, in derselben Spalte angezeigt und ist vor HTML-Kodierung geschützt.
'<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>'
Datensätze mit und ohne Wert in einem Feld zählen (Anzahl der fehlenden und nicht fehlenden Werte zählen)
Mit der NVL2()
Funktion von Oracle SQL können Sie eine Anzeigespalte erstellen, die einen Wert enthält, wenn ein Feld Daten enthält, und einen anderen Wert, wenn ein Feld keine Daten enthält. Verwandeln Sie beispielsweise bei einer Entitätssuche das Vorhandensein einer primären E-Mail-Adresse in eine Textanzeigespalte:
NVL2( {email} , 'YES' , 'NO' )
Auf diese Weise können Sie Datensätze zählen, die durch das Vorhandensein oder Nichtvorhandensein einer E-Mail-Adresse gezählt wurden:
Field: Internal ID
Summary Type: Count
Field: Formula (Text)
Summary Type: Group
Formula: NVL2( {email} , 'YES' , 'NO' )