---
category: [Administration & Integrations, Administration & Integrations/Custom Integrations & Apps, Platform and Product Extensions, Platform and Product Extensions/Workday Extend, Platform and Product Extensions/Integration]
keyword: [Extend, Model Components, Extend BPs, Extend Business Processes, Model Business Processes, Extend BP]
nav: wcp_docs
parent_url: /wcp_docs/
title: >- 
  Concept: Business Process Steps and Page Routes
layout: subsection
---

Add page routes to business processes to specify the PMD you use to display additional data in the user interface. You can add page routes to:

-   <i>Action</i> steps.
-   <i>Approval</i> steps.
-   Details pages.
-   Revision pages.


Sample business process from the Tuition Reimbursement sample app:

```
{
 "id": 1,
 "name": "TuitionReimbursementApproval",
 "label": "Tuition Reimbursement Approval",
 "description": "Business Process Type for Tuition Reimbursement Approval",
 "targetBusinessObject": "TuitionReimbursementRequest",
 "allowsCancel": true,
 "approvalStep": {
   "actions": [
     "APPROVE",
     "DENY",
     "SEND_BACK"
   ],
   "pageRoute": "/approve/{eventId}"
 },
 "details": {
   "pageRoute": "/details/{eventId}"
 },
 "actionSteps": [
   {
     "id": 1,
     "name": "ReviewRequest",
     "label": "Review Reimbursement Request",
     "description": "Task to review reimbursement request",
     "pageRoute": "/actionStep/{eventStepId}"
   }
 ],
 "revisePageRoute": "/revise/{eventStepId}"
}
```

Each page route corresponds to the `routingPattern` of a PMD. Specify PMD task definitions and their routing patterns in the `tasks` array of the AMD of your app.

## <a id="section_f4f_jnv_h5b"></a>Action Steps

The `actionSteps` attribute of a business process is a list of <i>Action</i> steps that you can use in the business process definition. For each <i>Action</i> step in the list, the `pageRoute` specifies the routing pattern of a PMD. Example:

```
"actionSteps": [
   {
     "id": 1,
     "name": "ReviewRequest",
     "label": "Review Reimbursement Request",
     "description": "Task to review reimbursement request",
     "pageRoute": "/actionStep/{eventStepId}"
   }
]
```

The `/actionStep/{eventStepId}` page route corresponds to this sample task definition in the AMD:

```
{
 "id": "actionStep",
 "routingPattern": "actionStep/{eventStepId}",
 "page": {
   "id": "actionStep"
 }
}
```

The `{eventStepId}` path parameter indicates that the business process sends the event step ID to the `actionStep.pmd`. The business process sets the event step details to the context of the given event step ID. The PMD can reference the event step ID by using the `<% queryParams.eventStepId %>` variable.

Workday’s business process framework sends the PMD to the recipient’s Inbox, enabling the recipient to complete the step.

The PMD is an edit page that:

-   Displays information related to the <i>Action</i> step.
-   Contains data entry fields required for the business process <i>Action</i> step
-   Displays a <b>Submit</b> button that advances the business process <i>Action</i> step.


To advance the business process action step, add an outbound endpoint that submits the event step. See [Submitting the Event Step](/wcp_docs/imo1658531429808.html#section-submitting-the-event-step).

<b>Note:</b> If the business process has multiple action steps, each action step can have its own PMD.

## <a id="section_s1k_cmv_h5b"></a>Approval Steps

The `approvalStep` attribute of a business process is a list of allowed actions that are available on the business process <i>Approval</i> step. For the <i>Approval</i> step, the `pageRoute` specifies the routing pattern of a PMD. Example:

```
"approvalStep": {
   "actions": [
     "APPROVE",
     "DENY",
     "SEND_BACK"
   ],
   "pageRoute": "/approve/{eventId}"
}
```

The `/approve/{eventId}` page route corresponds to this sample task definition in the AMD:

```
{
 "id": "eaApprove",
 "routingPattern": "/approve/{eventId}",
 "page": {
   "id": "eaApprove"
 }
}
```

The `{eventId}` path parameter indicates that the business process sends the event ID to the `eaApprove.pmd`. The business process sets the event details to the context of the given event ID. The PMD can reference the event ID by using the `<% queryParams.eventId %>` variable.

Workday's business process framework automatically moves <i>Approval</i> steps forward or back in the business process. The business process framework adds buttons to the PMD that correspond to the specified allowed actions. Example: <b>Approve</b>, <b>Deny</b>, <b>Send Back</b>.

Workday recommends that you use a PMD view page to display the business process approval page. If your specific use case requires an edit page, note that:

-   The business process framework replaces the <b>Submit</b> button with the approval step buttons.
-   The edit page won't invoke any outbound endpoint in the PMD.


<b>Note:</b> If the business process has multiple approval steps, the same PMD must apply to all approval steps. To account for each approval step, render the appropriate widgets and adjust the logic on the PMD as needed.

## <a id="section_q22_jpv_h5b"></a>Details Pages

The `pageRoute` of the `details` attribute of a business process specifies a PMD that displays the business process event details. Workday renders this page whenever event details display in the tenant. Example:

```
"details": {
   "pageRoute": "/details/{eventId}"
}
```

The `/details/{eventId}` page route corresponds to this sample task definition in the AMD:

```
{
 "id": "viewRequestByEventID",
 "routingPattern": "details/{eventId}",
 "page": {
   "id": "viewRequestByEventID"
 }
}
```

The `{eventId}` path parameter indicates that the business process sends the event ID to the `viewRequestByEventID.pmd`. The business process sets the event details to the context of the given event ID. The PMD can reference the event ID by using the `<% queryParams.eventId %>` variable.

The PMD is a view page that displays the business process event details.

## <a id="section_npb_hqv_h5b"></a>Revision Pages

The `revisePageRoute` of a business process is a required attribute if you specify `SEND_BACK` as an allowed action on the `approvalStep` of the business process. The `revisePageRoute` specifies the page route for the Revise action. Example:

```
"revisePageRoute": "/revise/{eventStepId}"
```

The `/revise/{eventStepId}` page route corresponds to this sample task definition in the AMD:

```
{
 "id": "eaRevise",
 "routingPattern": "/revise/{eventStepId}",
 "page": {
   "id": "eaRevise"
 }
}
```

The `{eventStepId}` path parameter indicates that the business process sends the event step ID to the `eaRevise.pmd`. The business process sets the event step details to the context of the given event step ID. The PMD can reference the event step ID by using the `<% queryParams.eventStepId %>` variable.

The PMD is an edit page that:

-   Enables the recipient of a sent back business process to:

    -   Complete the revision directly from their Inbox.
    -   Move the business process to the next step.

-   Displays information related to the revision step.
-   Contains data entry fields required for the revision step.
-   Displays an <b>OK</b> button, which advances the revision step.

    If you want to replace the default <b>OK</b> button with a <b>Submit</b> button, you can use [editButtonBar](/wcp_docs/quu1518210430394.html).



To advance the revision step, add an outbound endpoint that submits the event step. See [Submitting the Event Step](/wcp_docs/imo1658531429808.html#section-submitting-the-event-step).

## <a id="section-submitting-the-event-step"></a>Submitting the Event Step

The `POST /eventSteps/{id}/submit` endpoint of the Workday Business Process REST service enables you to advance a business process action or revision step.

<b>Note:</b> This endpoint isn't available in the REST API Explorer on the Workday Developer Site.

To call the `POST /eventSteps/{id}/submit` endpoint, add it as an outbound endpoint to the approval or revision PMD. Because the page route of the PMD uses the `eventStepId` path parameter, you can specify `queryParams.eventStepId` in the endpoint `url`.

Example:

```
{
 "name": "submitStep",
 "baseUrlType": "WORKDAY-BP",
 "url": "<% '/eventSteps/' + queryParams.eventStepId + '/submit' %>",
 "httpMethod": "POST",
 "authType": "sso",
 "values": [
   {
     "outboundPath": "stepAction.id",
     "value": "d9e4223e446c11de98360015c5e6daf6"
   }
 ]
}
```

<b>Note:</b> In this example, `WORKDAY-BP` corresponds to this sample `dataProvider` definition in the AMD of the app:

```
{
 "key": "WORKDAY-BP",
 "value": "https://api.workday.com/businessProcess/v1/"
}
```

The `values` attribute contains the outbound request payload, which only needs the `stepAction.id` field. Specify the Workday ID of the state that you want to place the business process step in. The possible values are:

<table><thead><tr><th>Value</th><th>State</th></tr></thead><tbody><tr><td><code>d9e4223e446c11de98360015c5e6daf6</code></td><td>Submitted (Action steps and revisions)</td></tr><tr><td><code>d9e41a8c446c11de98360015c5e6daf6</code></td><td>Saved for Later (Action steps only)</td></tr></tbody></table><br/>

### Related Information

[Tutorial: Model Components: Business Processes](https://wd5.myworkday.com/workday/learning/course/8217842f19801001bb98eac6f24c0000?type=9882927d138b100019b928e75843018d)

[Add Business Processes](/wcp_docs/vua1677268560537.html)

