---
schema_version: "1"
id: c3aca0dc5c55e1692d63cb13a9cbd243fdfa5a9d8d43138fc63ef58c837ab26c
title: Data Processing Engine Template for Price Protection
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/chrm-pp-dpe-template.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.chrm-pp-dpe-template.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 038e9bdfa86318e57654ebeafb342d7f2d220d02a206832bccaec8377d890065
description: Price Protection has a Data Processing Engine (DPE) that helps you transform data that’s available in your Salesforce org and writes back the transformation results as new or updated records. You can transform the data for standard and custom objects using Data Processing Engine definitions. After you set up a Data Processing Engine, you can use a flow to run it. Each run can be tracked using Monitor Workflow Services.
products:
  - Partner Cloud
  - Cross Cloud
  - Manufacturing
release: "264"
---
# Data Processing Engine Template for Price Protection

Price Protection has a Data Processing Engine (DPE) that helps you transform data that’s available in your Salesforce org and writes back the transformation results as new or updated records. You can transform the data for standard and custom objects using Data Processing Engine definitions. After you set up a Data Processing Engine, you can use a flow to run it. Each run can be tracked using Monitor Workflow Services.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Enterprise</strong>, <strong>Professional</strong>, and <strong>Unlimited</strong> Editions with Price Protection enabled.</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
      <colgroup>
        <col style="width:50%">
        <col style="width:50%">
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d38591e61">User Permissions Needed</th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d38591e61 ">Admin User</td>

          <td class="slds-cell-wrap" style="vertical-align:top;" headers="d38591e61 ">Use Data Processing Engine</td>

        </tr>
      </tbody>
    </table>

Price Protection comes with these Data Processing Engine templates:

 
| Template | Purpose |
| --- | --- |
| Create, Update or Delete PPE/PPELI based on product-detected price changes | Process price change detection to create, update, or delete Price Protection Execution (PPE) and Price Protection Execution Line Items (PPELI), ensuring accurate inventory tracking, claim generation, and pricing adjustments based on product-detected price changes. |

## Create, Update or Delete PPE/PPELI based on product-detected price changes

Manage the creation, updation, and deletion of Price Protection Execution (PPE) and Price Protection Execution Line Items (PPELI) based on detected price changes for products. It also updates the status of ProductDetectedPriceChange entity. The steps involved are:

- Process PUI and PUIL: The system processes Partner Unsold Inventory (PUI) and Partner Unsold Inventory Ledger (PUIL) to generate corresponding PPE and PPELI, triggered by a detected price change on a product.
- Group PPELIs by Date: Multiple PPELIs are grouped together under a single PPE when they share the same date.
- Input Parameters:
    - ProductDetectedPriceChangeId (optional): An identifier for the ProductDetectedPriceChange entity
    - The default input parameter is <ProductDetectedPriceChangeId>, which processes all the ProductDetectedPriceChange entities.
- Eligibility Check for Price Protection: The system verifies whether inventory is eligible for price protection by evaluating the following parameters:
    - Remaining Quantity: Ensures the remaining inventory quantity as of the price change date qualifies for protection.
    - Price Protection Program Eligibility: Confirms that the product is eligible for a Price Protection Program.
    - Program Timelines: Ensures the price protection is created within the allowable timelines of the program.
    - Existing PPELI: Checks whether a PPELI already exists for the same date to avoid duplication.
    - Processed PriceChange: If a price change is already processed, the we should not create PPELI for the same change once the PUI is processed.
    - Handles the cases where 2 price changes are present for same product and account, then only 1 is taken up, and single PPELI is created for the PUI.
- PPELI Creation/Modification: Based on the eligibility checks, the PPELI is either created or modified as needed.
- Status Modification: Once all the PPELI corresponding to the PriceChangeDetection is completed, then we mark the status of ProductDetectedPriceChange and PPE for that date as **Completed**