> For the complete documentation index, see [llms.txt](https://docs.unimarket.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.unimarket.com/documentation/troubleshooting/cancel-order-not-appearing-in-banner.md).

# Troubleshooting: Cancel Order Not Appearing in Banner

When an order is cancelled in Unimarket, a cXML message is sent to Banner to liquidate the encumbrance. If the cancellation does not reflect in Banner (e.g., the PO remains "Open" in `FPIPURR` or `FGIENCD`), follow these steps to identify and resolve the bottleneck.

## Primary Diagnostic Step: Check FZRCXML

The most reliable way to find why a cancellation failed is to check the Banner API log table.

```sql
SELECT FZRCXML_DOCUMENT_ID, FZRCXML_ERROR_MSG, FZRCXML_ACTIVITY_DATE
FROM FISHRS.FZRCXML
WHERE FZRCXML_DOCUMENT_ID = 'P0XXXXXX' -- Replace with your PO number
ORDER BY FZRCXML_ACTIVITY_DATE DESC;
```

## Common Functional Blocks

### A. Incomplete Invoices (The "Incomplete Docs" Error)

Banner will block a PO cancellation if there is an "Incomplete" purchase order or invoice associated with that PO. Even if the invoice was never finished, its existence "locks" the PO record. This error can also occur if a Change Order is associated with the PO.

* **Error Message in FZRCXML:**
  * `Document has incomplete docs: Incomplete Invoice exists against PO`
  * `Document has incomplete docs: Incomplete Change Order exists against PO`
* **Action:**
  1. Search for the PO number in Banner form **FGRIDOC** (Incomplete Document Listing) or **FAAINVE**.
  2. Delete or complete the incomplete invoice in Banner.
  3. Once the invoice is cleared, return to the PO in Unimarket, then select **More Actions > Close Message** to resend the cXML.

### B. Fiscal Year Restrictions

If the order belongs to a prior fiscal year that has already been rolled and closed, the Banner API may reject the cancellation because it cannot modify the old year's encumbrance.

* **Error Message in FZRCXML:** `Encumbrance does not exist in the fiscal year in which the transaction date falls.`
* **Action:**
  1. Verify the current Fiscal Year status in Banner.
  2. If the year is closed, your Finance team must manually liquidate the PO in the current year via **FPAEOCD**.

### C. Fully Invoiced Line Items

If all lines on the PO have been fully invoiced (even if the payment hasn't been sent), the PO is considered "exhausted" in Banner.

* **Action:** Verify the PO is closed and fully liquidated in Banner form **FGIENCD**. If it is still Open, search for an incomplete document associated with the PO.

## Technical & System Blocks

### A. Integration Queue (FZBEPRC)

Check if the cancellation message is stuck in the raw request table.

```sql
SELECT FZBEPRC_ID, FZBEPRC_STATUS, FZBEPRC_DATE_TIME
FROM FISHRS.FZBEPRC
WHERE FZBEPRC_CXML LIKE '%P0XXXXXX%' -- Replace with your PO number
ORDER BY FZBEPRC_DATE_TIME DESC;
```

* **Status = 'PENDING':** The integration listener may be down.
* **Status = 'ERROR':** The message reached Banner but the API failed (refer back to `FZRCXML`).

### B. Oracle 19c Permissions

As noted in [Unimarket-to-Banner PO Integration Errors](/documentation/troubleshooting/unimarket-to-banner-po-integration-errors.md), if you recently upgraded to Oracle 19c, the `FISHRS` user requires specific permissions to handle background jobs.

* **Requirement:** `GRANT CREATE JOB TO FISHRS;`
* **Impact:** Without this, automated retries for cancellations (especially those hitting "Deadlocks") will fail.

## Manual Resolution Process

If the integration cannot be fixed immediately and the budget needs to be released:

1. **Banner Manual Liquidation:** Use form **FPAEOCD** to manually liquidate the PO encumbrance to $0.00.
2. **Unimarket Synchronization:** Ensure the Unimarket order is marked as "Cancelled." If the integration "Resend" continues to fail after manual liquidation, contact Unimarket Support to "Force Complete" the record in the Unimarket logs to stop the retry attempts.

{% hint style="info" %}
Always check for **ORA-00060 (Deadlock detected)** in the logs. This often occurs if multiple users are trying to access the same vendor or PO record simultaneously. A simple **Resend** from Unimarket usually fixes this.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.unimarket.com/documentation/troubleshooting/cancel-order-not-appearing-in-banner.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
