# Else if condition is not working?

**URL:** <https://discuss.elastic.co/t/else-if-condition-is-not-working/283544>\
**Category:** Logstash\
**Created:** [September 7, 2021, 2:11pm UTC](https://discuss.elastic.co/t/else-if-condition-is-not-working/283544 "2021-09-07T14:11:19Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![padamrai](https://avatars.discourse-cdn.com/v4/letter/p/3da27b/32.png) [@padamrai](https://discuss.elastic.co/u/padamrai)\
**Post date:** [September 7, 2021, 2:11pm UTC](https://discuss.elastic.co/t/else-if-condition-is-not-working/283544/1 "2021-09-07T14:11:19Z")

</div>

I want if SubmittedOn is null then add New field with value 1 `mutate{ add_field=>{"Queue"=>1} }`

```auto
 if [SubmittedOn]{
        if [null] not in [SubmittedOn]{
            date {
                match => ["SubmittedOn", "MM/dd/yyyy hh:mm:ss a"]
                timezone => "+0500"
                target => "SubmittedOn"
            }
            ruby{
            init => "require 'time'"
            code => "event.set('SubmittedTimeInSeconds' , (event.get('SubmittedOn').to_i) - (event.get('ReceivedOn').to_i))"
            }
        }
        else if [null] in [SubmittedOn]{
            mutate{
                add_field=>{"Queue"=>1}
            }
        }
        else{
            ruby{
                code => "event.set('SubmittedTimeInSeconds' , 0)"
            }
        }
    }

```

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [September 7, 2021, 2:29pm UTC](https://discuss.elastic.co/t/else-if-condition-is-not-working/283544/2 "2021-09-07T14:29:47Z")

</div>

> [@padamrai](#):
>
> `if [null] not in [SubmittedOn]{`

That is a test whether the contents of one field are in another (either an array membership test or a substring match).

I think you want

```
if [SubmittedOn] {

```

---

<div class="post-metadata">

**Author:** ![padamrai](https://avatars.discourse-cdn.com/v4/letter/p/3da27b/32.png) [@padamrai](https://discuss.elastic.co/u/padamrai)\
**Post date:** [September 7, 2021, 2:31pm UTC](https://discuss.elastic.co/t/else-if-condition-is-not-working/283544/3 "2021-09-07T14:31:56Z")

</div>

below this main if condition I have another if condition thats why I have used if [SubmittedOn]{ then if else inside it.

---

<div class="post-metadata">

**Author:** ![padamrai](https://avatars.discourse-cdn.com/v4/letter/p/3da27b/32.png) [@padamrai](https://discuss.elastic.co/u/padamrai)\
**Post date:** [September 7, 2021, 2:33pm UTC](https://discuss.elastic.co/t/else-if-condition-is-not-working/283544/4 "2021-09-07T14:33:59Z")

</div>

Also in second if condition else if is not working

```auto
if [SubmittedOn]{
        if [null] not in [SubmittedOn]{
            date {
                match => ["SubmittedOn", "MM/dd/yyyy hh:mm:ss a"]
                timezone => "+0500"
                target => "SubmittedOn"
            }
            ruby{
            init => "require 'time'"
            code => "event.set('SubmittedTimeInSeconds' , (event.get('SubmittedOn').to_i) - (event.get('ReceivedOn').to_i))"
            }
        }
        else if [SubmittedOn] == [null]{
            mutate{
                add_field=>{"Queue"=>1}
            }
        }
        else{
            ruby{
                code => "event.set('SubmittedTimeInSeconds' , 0)"
            }
        }
    }
    if [DeliveredOn]{
        if [null] not in [DeliveredOn]{
            date {
                match => ["DeliveredOn", "MM/dd/yyyy hh:mm:ss a"]
                timezone => "+0500"
                target => "DeliveredOn"
            }
            ruby{
                init => "require 'time'"
                code => "event.set('DeliveredTimeInSecondsTest' , (event.get('DeliveredOn').to_i) - (event.get('SubmittedOn').to_i))"
            }
            ruby{
                init => "require 'time'"
                code => "event.set('LoopBackTimeInSeconds' , (event.get('DeliveredOn').to_i) - (event.get('ReceivedOn').to_i))"
            }
        }
        else if (1==2){   
        }
        else{
            ruby{
                code => "event.set('DeliveredTimeInSecondsTest' , 0)"
            }
            ruby{
                code => "event.set('LoopbackTimeInSeconds' , 0)"
            }
        }
    }

```

---

<div class="post-metadata">

**Author:** ![padamrai](https://avatars.discourse-cdn.com/v4/letter/p/3da27b/32.png) [@padamrai](https://discuss.elastic.co/u/padamrai)\
**Post date:** [September 7, 2021, 2:46pm UTC](https://discuss.elastic.co/t/else-if-condition-is-not-working/283544/5 "2021-09-07T14:46:14Z")

</div>

When SubmittedOn is null then if condition working  
if SubmittedOn is "" then through in error.

```auto
"error"=>{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse field [DeliveredOn] of type [date] in document with id 'EE38C120-590C-41B8-8C5F'. Preview of field's value: ''", "caused_by"=>{"type"=>"illegal_argument_exception", "reason"=>"cannot parse empty date"}

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [October 5, 2021, 2:46pm UTC](https://discuss.elastic.co/t/else-if-condition-is-not-working/283544/6 "2021-10-05T14:46:24Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
