2016-08-05 27 views
0

Ich habe ein Problem mit einem NetSuite-Workflow, der eine SQL-Formel verwendet, um zwei benutzerdefinierte Felder zu verketten. Das Problem ist, dass bei einigen Einträgen eines dieser Felder fehlt. Die Formel, die ich verwende, istNetSuite Field Formula Problem mit Concat (SQL)

{custitem3} || ' '|| {custitemshoewidth}

Wenn "custitem3" nicht im Formular vorhanden ist, bekomme ich den Fehler "ERROR: Feld' custitem3 'Not Found" Ich habe versucht, eine bedingte IF-Anweisung und ein WHEN zu verwenden. Ich bin nicht vertraut mit SQL, so könnte es meine Syntax sein. Aber wenn jemand es empfehlen könnte, würde es sehr geschätzt werden.

EDIT:

Vielen Dank für Ihre Eingabe. Ich habe das Problem gefunden. Wenn Sie auf ein Feld verweisen, das nicht existiert, unabhängig davon, ob es tatsächlich aufgerufen wird, wird ERROR erstellt. Meine Arbeit bestand also darin, ein neues Feld zu erstellen, das auf das Matrixfeld verweist, das vorhanden sein kann oder nicht.

Referenzieren dieses Felds - das immer im Artikeldatensatz vorhanden sein wird, führt nicht dazu, dass ein FEHLER-Bericht das Feld ausfüllt, wenn es versucht, es zu verketten. Wenn das Referenzfeld einen Fehlerbericht enthält, kann es ignoriert werden. Ich habe versucht, diesen Code von dem, was YNK vorgeschlagen

Aber dies gibt einen ungültigen Ausdruck zurück. Habe ich den Code falsch eingestellt?

+0

Nach dem Überprüfen und Testen mehrerer Dinge. Es scheint, dass das größere Problem hier das Feld "custiitem3" ist, das in diesem Formular nicht existiert. Hat jemand einen Vorschlag, um das zu umgehen? – HamBeast

Antwort

0

Sie können hier CASE-Funktion anstelle von IF-Bedingung verwenden ..

So:

CASE 
WHEN {custitem3} IS NULL THEN 
    {custitemshoewidth} 
ELSE 
    {custitem3}||' '||{custitemshoewidth} 
END 

Hope this Ihnen helfen.

Danke.

+1

Danke @YYN Ich habe versucht, den Workflow mit der CASE WHEN-Anweisung auszuführen. Es hat den gleichen Fehler zurückgestoßen. FEHLER: Feld 'custitem3' nicht gefunden. Ich glaube, es hat mit dem Aufruf eines Feldes zu tun, das nicht auf diesem Formular existiert (custitem3 ist ein Matrixfeld, dieser Fehler wird auf keine Matrixelemente gefunden.) Mein Gedanke zu einer Problemumgehung erstellt ein Feld, das von der Matrix. Wenn in diesem Feld ein Fehler auftritt, kann der von Ihnen aufgelistete Code funktionieren, indem der Fehler nicht gezogen wird, nur kein Fehlertext. CASE WANN {custitemX} ISNUMERIC {custitem3} || ' '|| {custitemshoewidth} ELSE {custitemshoewidth} ENDE – HamBeast

0

Dies ist ein guter Anwendungsfall für eine der NVL Funktionen. Es gibt NVL und NVL2 Funktionen für die Behandlung von Nullwerten. Um das zu erreichen, was Sie tun, könnte ich eine Formel wie verwenden:

NVL2({custitem3}, {custitem3}||' '||{custitemshoewidth}, {custitemshoewidth})

Weitere Details zu allen verfügbaren SQL-Funktionen finden Sie in der NS-Hilfe doc dem Titel „SQL-Ausdrücke“.