【NetSuite】ワークフローに「フィールド値:空白」の条件を設定する際の注意点

「フィールド値:空白」なのにワークフローが動かない原因

NetSuiteのフィールドは通常デフォルト値が空白であるため、レコード作成時に入力しなかった場合、値は原則空白となります。
そのため、ワークフローの起動やアクションについて「フィールド値:空白」を条件とする場合、フィールドが未入力の状態であれば条件を満たすことになります。

ただし、実際に値が空白であっても、ワークフロー内の条件「フィールド値:空白」の場合に発生すべき動作が生じない場合があります。

例えば、下の画像のワークフローはカスタムフィールド「部長承認必須」にチェックが入っていない場合に起動します。(※「部長承認必須」はチェックボックス型フィールドであるためFと表記されていますが、空白・nullと同様に未入力時の値であるため同様の検証結果が得られます。)

上記のワークフローをリリース済に設定のうえ、発注書レコードを作成します。

「部長承認必須」は未入力であるため条件を満たすはずですが、ワークフローは起動されていません。

原因として考えられることは何でしょうか?

作成したレコードのフォーム設定を確認すると、「部長承認必須」フィールドが表示されていないことが判明しました。(※フォームの設定を確認するには、レコードの編集画面を開き、「カスタマイズ」>「フォームをカスタマイズ」をクリックします。)

また、ワークフローの条件として設定した「部長承認必須」フィールドの設定画面を見ると、適用先レコードの設定が漏れていることが確認できました。

このように、レコードにフィールドが適用されていなかったり、フォーム上にフィールドが存在しない場合には、「フィールド値設定がワークフローの起動条件を満たしているが、それをワークフローが検知できないために起動できない」という現象が発生します。

ワークフローが条件を検知するためのフィールド設定

フィールド値が条件を満たしているかワークフローが判断できるようにするためのフィールド設定の方法を以下に記します。

まず始めに条件に設定したフィールド(ここでは「部長承認必須」)の編集画面を開きます。

「フォームに適用」ボタンを押下し、遷移先の画面にて、使用するフォームの「表示」をオンにします。

その後、「保存」ボタンを押下すると、フォーム上に「カスタム」サブリストが現れ、「部長承認必須」フィールドが表示されます。

当該フィールドが未入力の状態であることが確認できます。

この状態で「編集」ボタンを押下し、「保存」を押下すると、ワークフローが起動します。(※本ワークフローはレコードの作成時・編集時に起動する設定となっています。)

また、「適用先」タブにて対象のレコードにチェックを入れる方法もあります。(※発注書の場合、適用先として「購入」を選択します。)


こちらの方法を採る場合、フォーム上にフィールドを表示させずともワークフローがフィールド値を検知できるようになります。

まとめ

ワークフローがフィールド値を参照するには、フィールドの編集画面にて対象のレコードを適用先に割り当てる、もしくは対象レコードのフォーム上にフィールドを表示させる必要があります。

NetSuiteにはエンティティフィールドやトランザクションフィールドなど、必ずしも特定のレコードに依存しないフィールドが存在します。これらのフィールドを作成する際には、「適用先」の設定やフォーム上の表示設定に不備がないか特に注意すべきでしょう。