---
category: [Administration & Integrations, Administration & Integrations/Custom Integrations & Apps, Platform and Product Extensions, Platform and Product Extensions/Integration]
keyword: [Extend, Orchestration Builder, Orchestrate, Orchestration]
nav: wcp_docs
parent_url: /wcp_docs/
title: >- 
  Concept: Optimizing Create Values Performance
layout: subsection
---

A <b>Create Values</b> step can execute faster when its key/value pairs are independent of each other.

Consider the data in this table. Suppose the key/value pairs here are created in the same <b>Create Values</b> step. Note the values' dependence on each other. The value of the `fullName` key depends on the values associated with the `firstName` and `lastName` keys. In turn, the value of the `normalizedName` key depends on the value of `fullName`, and so on.

<table><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody><tr><td><code>firstName</code></td><td><code>data.RequestData.firstName</code></td></tr><tr><td><code>lastName</code></td><td><code>data.RequestData.lastName</code></td></tr><tr><td><code>fullName</code></td><td><code>data.CreateValues.firstName + " " + data.CreateValues.lastName</code></td></tr><tr><td><code>normalizedName</code></td><td><code>data.CreateValues.fullName.lowerCase()</code></td></tr><tr><td><code>emailPrefix</code></td><td><code>data.CreateValues.firstName.substring(0, 1).lowerCase() + data.CreateValues.lastName.lowerCase()</code></td></tr><tr><td><code>emailAddress</code></td><td><code>data.CreateValues.emailPrefix + "@workday.com</code></td></tr><tr><td><code>welcomeMessage</code></td><td><code>Welcome + data.CreateValues.fullName + "! Your email is: " + data.CreateValues.emailAddress</code></td></tr><tr><td><code>messageLength</code></td><td><code>data.CreateValues.welcomeMessage.length()</code></td></tr></tbody></table><br/>

Because of the dependencies, Orchestrate must create these key/value pairs in sequence. Example: it can't assign a value to the `emailAddress` key until it has assigned one to `emailPrefix`.

Sequential processing like this incurs a performance cost when the orchestration runs.

By contrast, suppose the key/value pairs in the second table are created in the same <b>Create Values</b> step. None of the values here depend on any of the others. Their independence from each other means that Orchestrate may create the key/value pairs in parallel rather than sequentially.

<table><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody><tr><td><code>customerEmail</code></td><td><code>data.RequestData.firstName.lowerCase() + "." + data.RequestData.lastName.lowerCase() + "@company.com</code></td></tr><tr><td><code>totalPrice</code></td><td><code>data.RequestData.unitPrice * data.RequestData.quantity</code></td></tr><tr><td><code>isActiveCustomer</code></td><td><code>data.RequestData.status.contains("active")</code></td></tr><tr><td><code>currentDate</code></td><td><code>date.now().toString()</code></td></tr><tr><td><code>messageLength</code></td><td><code>data.RequestData.message.length()</code></td></tr><tr><td><code>categoryCode</code></td><td><code>data.RequestData.category.substring(0, 3).upperCase()</code></td></tr><tr><td><code>hasData</code></td><td><code>!empty(data.RequestData.items)</code></td></tr></tbody></table><br/>

In order to maximize performance, then, you should group the creation of independent key/value pairs separately from dependent values.

The extent of the associated performance gain varies based on the number of independent key/value pairs grouped. This table provides a broad guide to expected gains.

<table><thead><tr><th>Impact Level</th><th>Number of Independent Key/Value Pairs</th><th>Typical Performance Improvement</th></tr></thead><tbody><tr><td>High</td><td>100+</td><td>Up to 4X faster</td></tr><tr><td>Medium</td><td>50-99</td><td>1.5-2X faster</td></tr><tr><td>Low</td><td>Below 50</td><td>Minimal or no improvement</td></tr></tbody></table><br/>

### Related Information

[Reference: Create Values](/wcp_docs/GUID-73a42af6-fc9b-43cb-b95e-f18ed575ed25.html)

