| Status | Approved |
|---|---|
| Owner | SHARMA-ext, Meenakshi |
| Stakeholders | Laurence DANNET, Paulo Golinelli |
| Jira Request ID | |
| Jira Development ID | ERP-726 - Getting issue details... STATUS |
High- Level Specification
| Parameter | Value |
|---|---|
| Application System | S/4Hana ROW, S/4Hana China, S/4Hana CUI |
| Business Process Reference | 03.04.06.01. Manage Invoice Receipt 03.04.06.03. Post Invoice |
Functional Overview
A custom function module will be developed to validate incoming vendor invoices that are not associated with a Purchase Order (Non-PO invoices). The module will enforce the company’s “No PO, No Pay” policy by verifying whether the vendor is authorized to submit Non-PO invoices, allowing only limited exceptions. Non-PO invoices flagged as Vendor Not Allowed For Non-PO will be automatically rejected, except for credit memos or invoices originating from the OCR/E-Invoice channel.
Scope and Objectives
The objective of this enhancement is to implement a functional control mechanism that automatically identifies and rejects Non-PO invoices submitted by vendors who are not authorized for Non-PO invoice processing as per the Vendor Master Data settings. This will ensure adherence to company policy, improve invoice validation accuracy, and reduce manual intervention.
This functional module will have:
Validation Logic
Check all incoming invoices to determine whether they are Non-PO invoices.
Cross-reference each Non-PO invoice with the Vendor Master Data to verify if the vendor is flagged as allowed for Non-PO invoices.
Exception Handling
If the vendor is not allowed for Non-PO invoices:
The system will auto-reject the invoice.
The rejection will apply only if:
The source input channel is not OCR (Optical Character Recognition), and EDICOM
The invoice is not a credit memo.
System Behavior
For invoices meeting the exception criteria (vendor not allowed, not from OCR, and not a credit memo), the system will automatically:
Flag the invoice as “Rejected – Non-PO not allowed for vendor”.
Send rejection status to source Portal
- Terminate the workflow
Audit and Reporting
Maintain a log or report of all invoices auto-rejected under this rule, rejection reason, and timestamp, for audit and compliance purposes.
Step | Description | Comment |
|---|---|---|
| 1 | Receive Invoice Without PO Reference | Invoices without PO can be received through various input channels, including Email, Supplier Portal, SAP Business Network, IDoc, and EDICOM. |
| 2 | Check If Invoice Vendor Is Allowed For Non-PO | Validate whether the invoice vendor is authorized for Non-PO processing based on the Vendor Master Data and flag as 'Not Allowed For Non-PO' if vendor is not authorized for Non-PO. |
| 3 | Check Transaction Type and Source Channel | Validate that the flagged invoice’s source channel is neither OCR nor EDICOM, and that the transaction type is not a credit memo. |
| 4 | Trigger Auto Rejection | Trigger Auto Rejection using RTV if invoice’s source channel is neither OCR nor EDICOM, and that the transaction type is not a credit memo. |
| 5 | Manual Exception Handling | Invoice flagged as 'Not Allowed For Non-PO' will undergo manual review by Account Payable accountants if invoice’s source channel is either OCR or EDICOM, and that the transaction type is a credit memo. |
Assumptions
The reference field indicating whether an invoice is allowed for Non-PO processing will be maintained in the Vendor Master Data.
Dependencies
Return to Vendor logic enhancement which will trigger the email to vendor or status update based on the source of input channel as per following development card:
ERP-950 - Authenticate to see issue details
Security, Integrity and Controls
There is no specific security required for this enhancement.
Configuration Requirements
Configure custom business rule 'Vendor Not Allowed For Non-PO'.
Custom FM to be configured for this VIM exception.
Language Requirements
RTV email templates will be created in multiple languages in SO10 as part of the configuration. Rejection reasons will also be maintained in all required languages. During automatic rejection, the system should select the appropriate email template based on the supplier’s country to trigger the auto-rejection email. For the portal status, the logic should automatically derive the rejection reason from the table based on the supplier’s country.
Special Requirements
N/A
Design Rationale
Functional Requirements
Non-PO Invoice Validation Logic-A custom function module will be developed to validate all incoming vendor invoices that are not associated with a Purchase Order (Non-PO invoices). The purpose of this module is to enforce the company’s “No PO, No Pay” policy by ensuring that only vendors authorized for Non-PO invoicing can submit such invoices. Invoices submitted by vendors who are not permitted for Non-PO processing will be automatically rejected, with limited exceptions.
Data Validation Logic:
Identify all incoming invoices that qualify as Non-PO invoices.
Validate each Non-PO invoice against Vendor Master Data to confirm whether the vendor is authorized for Non-PO invoicing.
Exception Handling
If a vendor is not allowed for Non-PO invoices, the system shall automatically reject the invoice, except in the following cases which will be routed for manual review:
The invoice originates from the OCR or EDICOM channel
The document is a credit memo
Auto Rejections
For Non-PO invoices not meeting the exception criteria, the system shall:
Flag the invoice as “Rejected – Vendor Not Allowed For Non-PO”
Send the rejection notification/status back to the source channel
Terminate the workflow for the rejected document
Audit and Reporting
The system shall maintain a log of all automatically rejected Non-PO invoices, including:
Rejection reason
Timestamp
Proposed Technology to Use
A custom Function Module will be developed to implement the required validation logic. This Function Module will be integrated into the system through a custom business rule named "Vendor Not Allowed for Non-PO" to ensure consistent and automated enforcement of the defined controls.
Data Source Considerations
Vendor Master Record will be referred to validate vendors allowed for Non-PO or not.
| Table | Field Name | Comments/Calculation/Field Manipulation |
|---|---|---|
Data Validation Considerations
Vendor Master Record will be referred to validate vendors allowed for Non-PO or not.
| Table | Field Name | Comments/Calculation/Field Manipulation |
|---|---|---|
Custom Tables
N/A
Master Data
N/A
| Field | Description | Data Type/Length | Validation rule/ Value Help |
|---|---|---|---|
Configuration Table
N/A
| Field | Description | Data Type/Length | Validation rule/ Value Help |
|---|---|---|---|
Selection Screen Enhancement
N/A
| Field Name | Description | Select: | Data Type/Length | Default Value/ Validation rule/ Value Help | Selection Logic |
|---|---|---|---|---|---|
Processing Logic
A custom Function Module will be developed to validate all incoming vendor invoices that are not linked to a Purchase Order (Non-PO invoices). This functionality ensures compliance with the company’s “No PO, No Pay” policy by confirming that only vendors authorized for Non-PO processing can submit such invoices. When an invoice is identified as a Non-PO document, it will be checked against the Vendor Master Data to determine whether the vendor is permitted to submit Non-PO invoices. If the vendor is not authorized, the system will automatically reject the invoice unless it meets specific exception criteria. Exceptions include invoices originating from the OCR or EDICOM channels or cases where the document is a credit memo; these invoices will instead be routed for manual review. For all other unauthorized Non-PO invoices, the system will automatically reject with comments “Rejected – Vendor Not Allowed for Non-PO,” and send the rejection status to the source channel using RTV logic, and terminate the workflow.
Volumetrics
The logic is designed to execute on a per-invoice basis and is not expected to affect system performance
Performance Considerations
Failed workflow tasks, email retries, or RTV failures can increase system load if many retries occur simultaneously.
Error Handling
Ensure the Email notification fails and Supplier Portal/SAP Business Network update fails are handled. System should retry 3 times and update the status as Communication Pending and notify the actor to take actions. Application logs should help to update document history with relevant details.
Testing
How to Test
To test, send a few invoices without a purchase order via any VIM channel (Email, IDoc, Supplier Portal, SAP Business Network, via EDIWIN). The custom function should:
Mark invoice as “Vendor not allowed for Non-PO” if they are unauthorized.
Allow processing for authorized Non-PO vendors.
Auto-trigger RTV and show the correct rejection message for auto-reject cases.
Send other flagged invoices for manual review without auto-rejecting them.
Test Conditions and Expected Results
| ID | Condition | Expected Result |
|---|---|---|
| 1 | Receive a Non-PO invoice through the email channel in PDF format from a vendor who is not authorized for Non-PO processing. | The invoice should be flagged under the VIM business rule ‘Vendor Not Allowed for Non-PO’ and routed to account payable accountant for manual review to resolve the exception. |
| 2 | Receive a Non-PO invoice through IDOC channel from a vendor who is not authorized for Non-PO processing. | The invoice should be automatically rejected with the reason ‘Vendor Not Allowed for Non-PO’ using the RTV logic, and the rejection status should be sent automatically to the respective source without any human intervention. |
| 3 | Receive a Non-PO invoice through the Supplier Portal in PDF format from a vendor who is not authorized for Non-PO processing. | The invoice should be flagged under the VIM business rule ‘Vendor Not Allowed for Non-PO’ and routed to account payable accountant for manual review to resolve the exception. |
| 4 | Receive a Non-PO invoice through the SAP Business Network channel from a vendor who is not authorized for Non-PO processing. | The invoice should be automatically rejected with the reason ‘Vendor Not Allowed for Non-PO’ using the RTV logic, and the rejection status should be sent automatically to the respective source without any human intervention. |
| 5 | Receive a Non-PO invoice through the EDICOM channel from a vendor who is not authorized for Non-PO processing. | The invoice should be flagged by the VIM business rule ‘Vendor Not Allowed for Non-PO’ and routed to account payable accountant for manual review to resolve the exception. |
| 6 | Receive a Non-PO credit memo through any VIM channel from a vendor who is not authorized for Non-PO processing. | The document should be flagged under the VIM business rule ‘Vendor Not Allowed for Non-PO’ and routed to account payable accountant for manual review to resolve the exception. |
| 7 | Receive a Non-PO credit memo through any VIM channel from a vendor who is authorized for Non-PO processing. | In the simulation rules, the VIM business rule ‘Vendor Not Allowed for Non-PO’ should remain indicating green traffic signal, indicating that the check has passed successfully. |
| 8 | Receive a Non-PO invoice through any VIM channel from a vendor who is authorized for Non-PO processing. | In the simulation rules, the VIM business rule ‘Vendor Not Allowed for Non-PO’ should remain indicating green traffic signal, indicating that the check has passed successfully. |
| 9 | Receive a PO invoice through any VIM channel from a vendor who is authorized for Non-PO processing. | There should be no impact on the PO invoice flow, as the validation rule will not be applied to PO invoices. |
Test Considerations/Dependencies
N/A
Other Information
Development Details
Package
| Package Name | Parent Package |
|---|---|
Enhancement Implementation
| Enhancement Type | Standard Definition Name | Custom Implementation Name | Design Rationale Reference |
|---|---|---|---|
Other Development Objects
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
Appendix
Custom Authorization Group Naming Convention
This table is based on the Syensqo development standards document. It provides the naming conventions for authorization groups to associated with custom reports and tables to comply with security requirements.
ABAP | ZFI | ZMM | ZPS | ZCO | ZSD | ZBC | ZFI | ZCA |
|---|---|---|---|---|---|---|---|---|
| TABLES | ZFIT | ZMMT | ZPST | ZCOT | ZSDT | ZBCT | ZFIT | ZCAT |
3 Comments
SILVA-ext, Diego
SHARMA-ext, Meenakshi The FDS is validated/OK.
There is one point that maybe can be asked by the AP team during the tests is to how to identify those invoices that where auto-rejected, because in the analytics report the status will be "obsolete" for all conditions, RTV manually and Automatic. It could be possible to use the Life cycle report, because there is button where the user can click to display the comments, that maybe can be used for that. Above all, this is only if they would like to see these situations in a report.
SHARMA-ext, Meenakshi
SILVA-ext, Diego This will be reflected in the document history, indicating that the record was deleted by the system user, allowing AP to clearly identify which entries were automatically rejected.
SILVA-ext, Diego
SHARMA-ext, Meenakshi yes, this is clear, It is perfect
to check individually for each DP, I was just mentioning if they would like to see this massively in a report.