{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":50246,"path":"source-to-pay-operations/sourcing-and-procurement-operations/configure-pr-po-states.md","title":"Configure PR and PO Progress Tracker states","bundle":null,"doc_type":null,"release":"australia","body":"\n# Configure PR and PO Progress Tracker states\n\nConfigure which states appear in the Progress Tracker, and how they flow, by editing the PR Stage Display Config and PO Stage Display Config records—no code deployment required.\n\n## Before you begin\n\nRole required: sn\\_fin.finance\\_admin\n\n## About this task\n\nYou can customize purchase requisition \\(PR\\) and purchase order \\(PO\\) state flows without code deployment. State graphs—including happy path, terminals, deviations, and the punchout variant—are defined in configuration records rather than hardcoded in script. You can add, remove, or reorder states by editing a record's script field.\n\nConfiguration records are separate for PR and PO. The **PR Stage Display Config** record targets Purchase Requisition objects, and the **PO Stage Display Config** record targets Purchase Order objects, so you can change one independently of the other.\n\nEditing the script field directly requires familiarity with ServiceNow scripts. Work with a developer if you are not comfortable editing scripts.\n\n## Procedure\n\n1.  Navigate to **All** &gt; **Finance Common** &gt; **S2P Custom Configuration**.\n\n    \\[Omitted image \"progress-tracker-s2p-custom-config.png\"\\] Alt text: List view showing PR Stage Display Config and PO Stage Display Config records in S2P Custom Configuration table.\n\n2.  Open **PR Stage Display Config** to edit the PR state graph, or **PO Stage Display Config** to edit the PO state graph.\n\n3.  In the **Script** field, edit the following arrays to add, remove, or reorder states: **STATE**, **happyPath**, **terminals**, and **deviations**.\n\n    \\[Omitted image \"progress-tracker-pr-stage-display-config.png\"\\] Alt text: Script editor showing STATE map and happyPath array in PR Stage Display Config record.\n\n    The PR configuration also defines a punchout variant happy path \\(`state=10,20,30,40,100,45,50`—inserting Pending Supplier Confirmation before Pending Submission\\) separately from the standard happy path \\(`state=10,20,30,40,45,50`\\). For the full state reference, see the PR state model topic.\n\n    The arrays now reflect your state flow changes.\n\n4.  For the PO configuration, edit the same graph-shaped fields, plus the PO-specific schema fields: **statusField**, **variantField**, **choiceTable**, **workItemsText**, **pillsFrom**, and **headerAssigneeField** / **headerAssigneeStates**.\n\n    **Important:** The PO configuration script runs under GlideScopedEvaluator in the sn\\_fin scope. Use plain string literals for state values, field names, and table names—do not reference sn\\_shop.PurchaseOrder constants, which are not accessible in that scope.\n\n    \\[Omitted image \"progress-tracker-po-stage-display-config.png\"\\] Alt text: Script editor showing schema field documentation in PO Stage Display Config record header comment.\n\n    The PO-specific schema fields are updated.\n\n5.  Select **Update**.\n\n    State-graph definitions are cached per transaction, so your change takes effect on the next request without a manual cache clear.\n\n\n## Result\n\nThe updated state graph takes effect on the next transaction for a PR or PO record. For the current state list and happy-path order, see the PR state model and PO state model topics.\n\n## Remove Final Review from PR happy path\n\nTo remove Final Review from the PR happy path, delete its state value from the **happyPath** array in the PR Stage Display Config script.\n\nBefore:\n\n```\nhappyPath: [10, 20, 30, 40, 45, 50]\n```\n\nAfter:\n\n```\nhappyPath: [10, 20, 30, 45, 50]\n```\n\nThe stepper shows Pending Review → Pending Approval → Awaiting Task Completion → Pending Submission → Closed Complete, skipping Final Review.\n\n## What to do next\n\nThe `ProcessStateMachine` script include reads this configuration. Its output reaches the stepper UI through the get\\_pr\\_stepper\\_data data broker transform \\(PR\\) and the equivalent PO data broker. Both data brokers run under an execute ACL requiring the sn\\_shop.shopper role for the viewing user. See the configure tracker visibility topic for system-wide visibility, and the PR state model and PO state model topics for the resulting state model.\n\n**Parent Topic:**[Configure the Progress Tracker](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/source-to-pay-operations/sourcing-and-procurement-operations/configure-progress-tracker.md)\n\n**Related topics**  \n\n\n[Configure Progress Tracker visibility]()\n\n"}}