# Scripted upsert issues

**URL:** <https://discuss.elastic.co/t/scripted-upsert-issues/261808>\
**Category:** Logstash\
**Created:** [January 21, 2021, 3:05pm UTC](https://discuss.elastic.co/t/scripted-upsert-issues/261808 "2021-01-21T15:05:12Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dede\_Pessu](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dede_pessu/32/44473_2.png) [@Dede\_Pessu](https://discuss.elastic.co/u/Dede_Pessu)\
**Post date:** [January 21, 2021, 3:05pm UTC](https://discuss.elastic.co/t/scripted-upsert-issues/261808/1 "2021-01-21T15:05:12Z")

</div>

I am currently trying to do calculations based on correlating field values from different documents and decided achieve this by using scripted\_upsert method to update and create the documents based on the document id but for some reason the new documents are not getting generated Here's my conig.

```auto
output {
  elasticsearch {
    index => "%{metric_type}_alias"
    user => "user"
    password => "password"
    hosts => ["https://xxx.xxx.xx.xx:9200"]
    ssl => true
    ssl_certificate_verification => true
    cacert => '/path/to/cacert'
    keystore => 'path/to/keystore'
    keystore_password => "password}"
  }
  if [metric_type] == "tx_metric" {
   stdout { codec => rubydebug }
   elasticsearch {
      action => "update"
      index => "tx_calculated_alias"
      user => "user"
      password => "password"
      hosts => ["https://xxx.xxx.xx.xx:9200"]
      ssl => true
      ssl_certificate_verification => true
      cacert => '/path/to/cacert'
      keystore => '/path/to/keystore'
      keystore_password => "password"
      document_id => "%{[tx_uuid]}"
      scripted_upsert => true
      script => '
        if ("create".equals(ctx.op)) {
          if (params.event.get("status") == "SUBMITTED") {
            ctx._source = [
              "tx_uuid": params.event.get("tx_uuid"),
              "submitted_time": params.event.get("status_time"),
              "uuid": params.event.get("uuid"),
              "metric_type": params.event.get("metric_type"),
              "source_server": params.event.get("server"),
              "metric_count": 1
            ]
          } else (params.event.get("status") == "COMPLETE") {
            ctx._source = [
              "tx_uuid": params.event.get("tx_uuid"),
              "completed_time": params.event.get("status_time"),
              "uuid": params.event.get("uuid"),
              "metric_type": params.event.get("metric_type"),
              "destination_server": params.event.get("server"),
              "metric_count": 1
            ]
          }
        } else {
           if (params.event.get("status") == "SUBMITTED") {
             ctx._source.source_server = params.event.get("server");
             ctx._source.submitted_time = params.event.get("status_time");
           } else (params.event.get("status") == "COMPLETE") {
             ctx._source.destination_server = params.event.get("server");
             ctx._source.completed_time = params.event.get("status_time");
           }

           if (ctx._source.containsKey("submitted_time") && ctx._source.containsKey("completed_time")) {
             ctx._source.tx_duration = ctx._source.completed_time - ctx._source.submitted_time;
           }
        }
      '
    }
  }
}

```

Not sure what the issue is here

---

<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:** [February 18, 2021, 3:05pm UTC](https://discuss.elastic.co/t/scripted-upsert-issues/261808/2 "2021-02-18T15:05:19Z")

</div>

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