---
schema_version: "1"
id: 86fea1b208a4e015b87364edab5c62b3ede19fd014946a1d899fb45e12a2d3b7
title: WaveRecipe
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_waverecipe.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_waverecipe.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: dbb0953976157c1af5b194eb16275286a55a917d9bad4c32d39770b70b656fb3
description: Represents the WaveRecipe type in an Analytics application. A recipe is a saved set of steps to perform on a specific source dataset or connected data. This type extends the MetadataWithContent metadata type and inherits its content and fullName fields.
---
# WaveRecipe

Represents the WaveRecipe type in an Analytics application. A recipe is a saved set of steps to perform on a specific source dataset or connected data. This type extends the MetadataWithContent metadata type and inherits its content and fullName fields.

![Important](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/images/icon_note_important.png)

#### Important

Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.

## File Suffix and Directory Location

WaveRecipe components have the suffix .wdpr and are stored in the wave folder.

## Version

WaveRecipe components are available in API version 41.0 and later.

## Fields

<table class="featureTable sort_table" summary="">



          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d1017398e93">Field Name</th>

              <th class="featureTableHeader  " id="d1017398e96">Field Type</th>

              <th class="featureTableHeader  " id="d1017398e99">Description</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d1017398e93" data-title="Field Name"><span class="keyword parmname">application</span></td>

              <td class="entry" headers="d1017398e96" data-title="Field Type">string</td>

              <td class="entry" headers="d1017398e99" data-title="Description">The internal name of the application.</td>

            </tr>

            <tr>
              <td class="entry" headers="d1017398e93" data-title="Field Name"><span class="keyword parmname">dataflow</span></td>

              <td class="entry" headers="d1017398e96" data-title="Field Type">string</td>

              <td class="entry" headers="d1017398e99" data-title="Description">Required. The dataflow ID for the Analytics recipe.</td>

            </tr>

            <tr>
              <td class="entry" headers="d1017398e93" data-title="Field Name"><span class="keyword parmname">format</span></td>

              <td class="entry" headers="d1017398e96" data-title="Field Type">string</td>

              <td class="entry" headers="d1017398e99" data-title="Description">The format of the current recipe definition. Valid values are: <ul class="ul bulletList">
                  <li class="li">
                    <samp class="codeph nolang">R2</samp> - recipes created with Data Prep
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">R3</samp> - recipes created with Data Prep (API
                    version 49.0)
                  </li>

                </ul>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d1017398e93" data-title="Field Name"><span class="keyword parmname">masterLabel</span></td>

              <td class="entry" headers="d1017398e96" data-title="Field Type">string</td>

              <td class="entry" headers="d1017398e99" data-title="Description">Required. The recipe name that appears in the user interface.</td>

            </tr>

            <tr>
              <td class="entry" headers="d1017398e93" data-title="Field Name"><span class="keyword parmname">securityPredicate</span></td>

              <td class="entry" headers="d1017398e96" data-title="Field Type">string</td>

              <td class="entry" headers="d1017398e99" data-title="Description">A filter condition that defines row-level access to records in a
                recipe.</td>

            </tr>

            <tr>
              <td class="entry" headers="d1017398e93" data-title="Field Name"><span class="keyword parmname">targetDatasetAlias</span></td>

              <td class="entry" headers="d1017398e96" data-title="Field Type">string</td>

              <td class="entry" headers="d1017398e99" data-title="Description">The name of the dataset the recipe saves data results into.</td>

            </tr>

            <tr>
              <td class="entry" headers="d1017398e93" data-title="Field Name"><span class="keyword parmname">templateAssetSourceName</span></td>

              <td class="entry" headers="d1017398e96" data-title="Field Type">string</td>

              <td class="entry" headers="d1017398e99" data-title="Description">Links the recipe to the template used to create it. Null for assets not created
                from a template.</td>

            </tr>

          </tbody>

        </table>

## Declarative Metadata Sample Definition

The following is an example of a WaveRecipe component.

<?xml version="1.0" encoding="UTF-8"?>
<WaveRecipe xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    <content xsi:nil="true"/>
    <dataflow\>02KB0000000b5c7MAA</dataflow\>
    <format\>R3</format\>
    <masterLabel\>recipe1</masterLabel\>
    <securityPredicate\>'UserId' == "$User.Id"</securityPredicate\>
    <targetDatasetAlias\>Dataset One</targetDatasetAlias\>
</WaveRecipe\>

## Deleting a WaveRecipe Component

Use a simple destructiveChanges.xml file with only the WaveRecipe component declared. This deletes the WaveRecipe and any related WaveDataflow components. For more information, see [Delete Components from an Organization.](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_deploy_deleting_files.htm "To delete components, perform a deployment with the deploy() call by using a destructive changes manifest file that lists the components to remove from your organization. You can perform a deployment that only deletes components, or a deployment that deletes and adds components. In API version 33.0 and later, you can specify components to delete before and after other components are added or updated. In earlier API versions, if deletions and additions are specified for the same deployment, the deploy() call performs the deletions first.")

## Wildcard Support in the Manifest File

This metadata type supports the wildcard character \* (asterisk) in the package.xml manifest file. For information about using the manifest file, see [Deploying and Retrieving Metadata with the Zip File](https://developer.salesforce.com/docs/atlas.en-us.264.0.api_meta.meta/api_meta/file_based_zip_file.htm).

![Note](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/images/icon_note.png)

#### Note

Use of the wildcard character doesn’t return the recipe’s associated dataflows.