Yes, this can be done. We've had a number of customers implement inventory checks, budget checks, status checks, etc. using a real-time Web Services call to an external system (such as SAP) using Ariba's built-in integration channels API.
To do this, you would need to define a new Integration Event for the system object that you would be checking. From your question, it sounds like you would be using a "Requisition" system object, so we'll use that as an example. The integration event configuration step includes:
- Defining the configuration details of the new integration event for the Web Services Channel
- Defining the fields on the Requisition that will be transmitted in the request
- Defining the fields on the Requisition that will be accepted as part of the response
Once complete, the system automatically generates the WSDL file that describes the web service. Depending on the middleware solution that you are using, the WSDL file can be used to map the data from Ariba to your external system (SAP, in this case).
Once your have configured your Integration Event, you want to ensure that you're calling the event to run at the appropriate time to perform your check in the external system. Within your validity condition logic on the particular field that you would be checking, you will invoke your new Integration Event. Once invoked, the event will send a SOAP message to the external system based on how you have configured the event. Depending on how you want to interpret and handle the response from the external system, you may need to write some additional logic that would evaluate the response.
For more information, you can view Ariba Spend Management Channels Guide at Help@Ariba (accessible through Ariba Connect or directly through your Ariba application under the Help menu). This guide outlines the steps I've mentioned above in much more detail and provides some examples that you can use to get started.