USAS SOAP Developer's Guide

Introduction

This guide describes the OECN State Software USAS SOAP service. This guide is intended for software developers interested in using SOAP to integrate with or add alternative interfaces to USAS.

This guide assumes basic familiarity with USAS and the USAS account coding scheme. It also assumes the reader is familiar with SOAP, XML and other related technologies.

Glossary

  • DAS or DA Site - Data Acquisition Sites. This term is obsolete. OECN sites are now refered to as ITC's
  • ITC - Information Technology Centers are regional data processing centers that provide computer services to member school districts. Among the services ITC's provide is hosting of the USAS application for school districts.
  • OECN - Ohio Education Computer Network
  • SSDT - State Software Development Team develops USAS, and other software, for school district on behalf of the Ohio Department of Education.
  • USAS - Uniform School Accounting system. USAS refers to both the USAS software developed by the SSDT on behalf of the Ohio Department of Education, and the USAS accounting structure defined by the Ohio Auditors of State and Ohio Department of Education.

Status of this Document

This document is updated routinely to reflect the current version of the USAS SOAP service. Links to the latest version of this document can be obtained from the SSDT Public Wiki at https://wiki.ssdt-ohio.org/display/CTD/USAS+SOAP+Developers+Guide

Resources

This document does not represent the complete documentation for the USAS SOAP service. The actual API documentation is contained in the WSDL, the USAS XML Schema and the OECN RPC XML schema.

The WSDL and Schemas are distributed by the SSDT as part of the SOAP service installation kit. Vendors should contact the school district's ITC or the SSDT for the WSDL for currently supported versions.  The latest WSDL and Schemas are available at /wiki/spaces/rtd/pages/2753089.

Schema clarification: Requisitions

The deliver to address lines on the Requisition are limited to 24 characters, not 30 as stated by the schema.  The datatype for the deliver to address on the Requisition and the delivery address on the Purchase Order are the same, so we are unable to change the schema.

Developers should only use the development version of the SOAP service for reference or to review upcoming features. Developers should always check with the ITC or the SSDT to determine which version(s) are available and supported at the ITC sites.

Developers who need background documentation on USAS may wish to refer to the USAS User and Reference Manuals. These documents are available on-line at https://mcoecn.atlassian.net/wiki/x/6oA2 .

Status of the USAS SOAP Service

The USAS SOAP service provides a limited subset of USAS functionality via a standards based SOAP service. See the WSDL for business functions supported by the service.

Standards Compliance

The SSDT believes that USAS SOAP service complies with the WS-I Basic Profile 1.0a WS-I Basic Profile 1.0a . The artifacts (definitions and messages) of the service have passed all assertions tested by the “WS-I Testing Tools v 1.0.1” provided by WS-I.

The SSDT believes that the WS-I BP 1.0a is the best solution to ensuring interoperability between various SOAP implementations. Developers wishing to use the USAS SOAP service are encouraged to use client tools that can support WS-I compliant services. Any developer detecting a WS-I compliance issue in the service artifacts is encouraged to contact the SSDT.

Test Accounts

Developers intending to integrate with USAS may not have access to a USAS server for development and testing. The SSDT can provide access to a test server for development and testing. The test server will always have the most recent released version of the web service. A user account can be provided which has access to a sample district database with limited test data.

Developers interesting in a test account should send mail to becher@ssdt-ohio.org with their request. Please include contact information, company and a brief description of your application and intended use.

USAS Service Architecture Overview

The USAS system is hosted on servers operated by individual ITC's for their member school districts. Each server hosts a USAS database for one or more school districts.

District Database Identification

Separate endpoints are used for each district.   

SOAP Service Endpoints

A separate endpoint will be provided for each school district.

ITC's will provide an HTTPS (SSL) end-point to encrypt SOAP messages on the wire. Developers are required to use HTTPS for production instances.

Authentication and Authorization

When a client connects to the service, it must provide username and password credentials for an account on the ITC server. Usernames and access rights are administered by the ITC on behalf of the member district. The access rights and functions the account can perform are limited by rights granted by the ITC and any USAS security profiles established by the district.

The account used to access the SOAP service may be a normal end-user account of a standard USAS user. A normal user account does not need special rights to use the SOAP service. This sort of access is appropriate, for example, when providing an alternative interface to USAS and the back-end service is being used for authentication (pass-through authentication).

Alternatively, the ITC may provide a specific account to be used for SOAP access by specific trusted applications. This might be appropriate for an application that has its own authentication scheme that is being integrated with USAS.

For example, an “eProcurement” application might have it’s own user accounts and authentication scheme and might be configured to use a single USAS account to post transactions. This type of access must be negotiated between the developer, ITC and school district. All parties must be aware that this access model effectively turns much of the USAS security over to the third party application. The district and ITC must determine if the developer’s product is to be trusted in this model.

A given user account on a USAS server may be granted access to one or more school district databases. Therefore, the ITC might provide a single account to access multiple districts, or a separate account for each district. If when a single account is used, the users rights in each district may vary based on the USAS profile established by the district (see USAS User Profiles below).

USAS User Profiles

The USAS SOAP service applies all business rules and security implemented by the USAS system. This includes per-district user profiles. User profiles are a feature of USAS that permit fine grained control over what functions a user is able to perform and which USAS budget accounts they can see or use in transactions. A school district can establish profiles that control what any user (including users of the SOAP service) are able to perform.

A developer need not have any special understanding of how USAS security works or how it is applied. The security is applied automatically by the server based on the security settings and profiles established on the server. However, faults can be returned if an operation is performed that the user account is not authorized to perform.

Assuming Profile of Another User

A special feature of the service allows a sufficiently privileged account to assume (or impersonate) the profile of another USAS user. If a SOAP client impersonates another profile, any operations it performs will be limited by the impersonated user’s profile.

This may be useful in situations where the client application uses a single account to access USAS, but still wishes to use USAS security features to limit what accounts can be seen or functions performed.

When posting requisitions, the username used in the impersonation call will also be used as the "requisitioner" in USAS.  This is currently true only for requisitions and not for any other data types.

Mapping Foreign Users to USAS Profiles by Convention

When assuming the role of another user, USAS does not interpret the username in any special way against a particular authentication source. USAS simply uses the profile name “as is” and looks for a corresponding profile.

Therefore, it is possible for a district to create profiles that are not traditional USAS user accounts. A third-party product and a school district could develop a convention for mapping usernames from the application to USAS profiles. This allows the district to control what the users of the third party application are permitted to do, without significant impact on the third party application.

For example, suppose an eProcurement application known as “Buy Good Stuff” (BGS) has it’s own user authentication is integrated with USAS. The BGS application could access USAS using a single username provided by the ITC. The “Buy Good Stuff” application could impersonate a USAS user profile in the form “BGS\username”, where username is the username in the BGS application.

The district can then use USAS’s security features to create profiles in the form “BGS\username” to control features available to users of the BGS application. The district can also provide a default profile that applies to all BGS users that do not have a specific profile.

In this way, a district could control what functions a given BGS user is permitted to perform or what USAS budget accounts they can see in a query. For example, suppose the user “smith” in the BGS application should only be allowed to see budget accounts that have “001” in the OPU field. The district could create a USAS profile for the user “BGS\smith” with this restriction.

The BGS application would need only to invoke assumeUserProfile for the user “BGS\smith” to cause USAS to enforce the restriction. BGS need not have any other understanding of the USAS security model.

The choice of the “BGS\” prefix in the above example is arbitrary and could be any convention agreed to by both the developer and district. The use of a convention that would not conflict with traditional USAS user accounts is strongly recommended.

USAS user profile names are currently limited to 20 characters. Therefore, the naming convention must be devised to fit within this constraint.

USAS SOAP Service Details

This section contains details of using the USAS SOAP service operations and parameters. Items in italics refer to operations (methods), parameters or element names provided used the service. See the WSDL or generated WSDL documentation for details for each operation, parameters and data types.

SOAP Sessions

The USAS SOAP service is a “statefull” service. The login _operation, upon successful authentication, establishes a new session and returns a _sessionId. The session retains a connection to the USAS server and context for subsequent invocations of the service. The client application must retain this session id and pass it as a parameter to subsequent invocations of the service.

The steps for establishing a session are:

  1. Invoke _login _operation with credentials for an account on the USAS server
  2. Optional: Invoke _getDistrictList _to return a list of districts the user as access to
  3. Optional for Redesign: Invoke _setDistrictAccess _to bind the session to a given district database
  4. Optional: Invoke assumeUserProfile to assume the profile of another user

After these steps are completed, the client may invoke any other USAS operation. The client may perform as many operations as necessary to perform its work. When the client is finished using the service, it should invoke the _logout _operation to cleanly close down the session.

After the database context is established, the client application may optionally invoke assumeUserProfile to impersonate the profile of a different USAS user. This operation will only succeed if the authenticated user is authorized to impersonate other users and if a suitable profile exists on the USAS server. The _assumeUserProfile _operation may be used multiple times for a given session.

Session Timeout

Sessions consume resources on both the SOAP server and the back-end USAS server. Therefore, inactivity timeouts apply to the SOAP sessions. The timeout interval is configurable by each ITC and defaults to approximately 45 minutes. If there is no activity for a session in during the timeout interval, the session will be deleted from the SOAP service. Any subsequent invocations using an expired sessionId will result in a fault being returned. Client applications that attempt to maintain long running connections, must be prepared to handle such faults.

Threaded Clients

The USAS SOAP service will accept multiple simultaneous requests for a given session. However, no guarantees are given regarding the order that the requests will be processed. Threaded client applications must use care if using a shared session, especially when using multiple invocations of _assumeUserProfile _with other operations.

For this reason, the SSDT recommends that threaded clients synchronize access such that only one thread performs operations for a given session. If multiple threads need to access the service simultaneously, it is preferable to have a separate session per thread, perhaps by maintaining a pool of active sessions.

XML Namespaces

Three distinct namespaces are used to define the service operations and parameters used by the service. These are described briefly below. See the SSDT web site for links to the WSDL and associated XML Schemas.

**

http://xml.ssdt.nwoca.org/usas/ws

* defines the implementation and interface for the SOAP service itself. It defines parameters and operations of the SOAP service. The type definitions for this name space are contained wholly within the WSDL document.
**

http://xml.ssdt.nwoca.org/USAS/61

* defines the USAS data model (Vendors, Requisitions, Budget Accounts, etc). An XML schema is provided that defines the complex types. For certain important USAS data types, user defined types are specified with restrictions that define the allowable content. However, the XML schema does not attempt to express all restrictions imposed by USAS. The service may reject or, in some cases, truncate values that are outside USAS’s normal limits.
**

http://xml.ssdt.nwoca.org/OECN-RPC/10

* defines complex types used generically by several SSDT products as part of the RPC (Remote Procedure Call) infrastructure. Many of the elements in this namespace are not relevant for the USAS service. The only element of any relevance for USAS developers is the response-msgs, which is used in custom faults to return additional error and warning details (See SOAP Faults below).

See #Resources for links to the schemas.

SOAP Faults

The WSDL defines custom SOAP faults for application specific errors. The faults are defined to clearly indicate the type of “normal” faults the client should be expected to handle. For example, getBudgetAccount can throw an AccountNotFoundFault.

However, not all possible faults are defined by the WSDL. All operations are capable of returning generic SOAP faults that indicate general failures. Examples of general failures include: “SessionId not found” (perhaps due to a timeout), connection failures, security violations (the user is not authorized for the operation). The client application should be written to expect and handle both application specific faults and general SOAP faults. The client must not assume that the only faults are those defined by the WSDL.

UsasGeneralFault

UsasGeneralFault is the base fault from which all other application faults are extended. The operations return either UsasGeneralfault directly or a fault message extended from it.

UsasGeneraFault messages always contain at least the standard SOAP fault elements (“faultcode” and “faultstring”). Client applications may minimally use these elements to retrieve the basic error information. Also included are several custom elements that are specific to USAS. The client may use these additional elements to retrieve detailed information about the fault.

The USAS system has the concept of “severity” when returning error conditions. Furthermore, USAS may return multiple errors for a single request. In general, multiple errors are associated with posting and update operations, but may occur for any operation.

When USAS returns multiple conditions of the same or differing severities, the messages are encapsulated in a response-msgs element and included in the fault response. The client may use this element to display to the user or for logging. A response-msgs _element, if present, will contain one or more _fatal, error, or warning elements that define the severity and contain the details of the message. Within these elements, a text element will contain the human readable error message. source, code, _or _vmsstatus elements may also appear, but are not intended for end-users. The latter elements may be useful for debugging or diagnosing problems with the SSDT.

Two other elements of UsasGeneralFault are also for convenience of clients that don’t wish to interpret the entire response-msgs _element. _UsasErrorMessage contains the text of the first message of the highest severity. Clients should use UsasErrorMessage, if only one message is to be displayed or logged. The _Severity _element is an enumerated element that contains the highest severity (Fatal, Error or Warning) of any message in the _response-msgs _element. The _Severity _can be regarded as the overall severity of the fault.

Qualified Success (Warning) Faults

In certain circumstances, USAS business rules require reporting one or more warning conditions as the result of a posting or validation operation. From a SOAP point of view, these faults are unusual because the fault does not indicate failure of the operation. Rather, the operation was successful but was qualified with warnings according to USAS business rules.

In all cases when a warning fault (e.g. PostingWarningFault) is returned, the USAS operation was completed successfully. When performing a posting operation, the client application must check for warning faults and process them as appropriate for the application. The warning might be shown the to user, logged or discarded. If the warning is displayed to the user, it must be shown in context of a successful operation.

In an interactive application, when performing a validation operation, it is recommended that messages from a warning fault be displayed to the user. A warning may contain important information that the user needs to decide whether to continue with a posting operation. For example, a warning might indicate “Available balance for account will be exceeded”, which may influence the users decision to proceed.

The SSDT choose this approach so that the reporting of both errors and warnings in a single response could be handled via the same fault structure. USAS may return a mixture of error and warning messages. Regardless of the severity of the fault, the messages will be returned in a fault derived from UsasGeneralFault and can be extracted from the message in the same manner by the client.

All cases where warning fault can occur are explicitly defined in the WSDL. A client application need only be concerned about a warning fault, if explicitly declared in the binding for the operation.

Auto-Assignment of Transaction Numbers

As of version 2.0 of the USAS SOAP service, most of the "posting" operations now support automatic assignment of transaction numbers. In previous versions, the application was required to determine the transaction number (e.g. purchase order number) before posting a new transaction.

In version 2.0, the transaction numbers are optional elements (may be omitted or empty). When the transaction number is not provided, the SOAP service will automatically assign the next available number.

Response Document

Prior to version 2.0, posting operations, such as "postNewPurchaseOrder", returned an empty ("void") response. In version 2.0, it will return the actual <PurchaseOrder> element as posted with the assigned transaction number. Therefore, the client application will be able to determine the number that was assigned to the new transaction.

The use of this new feature is optional. The client application may continue to assign transaction numbers, if desired. In either case, an instance of the posted element will be returned on "post" operations.

"Split" Items on Requisitions or Purchase Orders

USAS requisitions and purchase orders support "splitting" an item into multiple accounts, allowing it to be printed as one line on the requisition or purchase order but stored as multiple lines each charged to a separate account code.

In order for USAS to recognize a "split" item, the first item is called the "combined" item, meaning this is the line item the following items are being combined into. The rest of the items that are to be combined with the first item are called "split items".

There are 2 ways of combining items, splitting the quantity and splitting the price.

Splitting the Quantity

This type of split involves splitting the quantity of a particular item among several different account codes. The unit price must be the same for each item. For example:

Item data:

Qty !! Description !! Price !! Account Code

Reading Books

$15.00

05 001 1100 521 0000 000000 001 00 000


$15.00

05 001 1100 521 0000 000000 005 00 000


$15.00

05 001 1100 520 0000 000000 006 00 000

Resulting printed PO item:

Qty !! Description !! Price !! Total

Reading Books

$15.00

$3,750.00

Splitting the Price

This type of split involves splitting the price of a particular item among several different account codes. The quantity field must be 1 for the combined item and zero for the split items.

Item data:

Qty !! Description !! Price !! Account Code

Color Printer

$250.00

05 001 2411 740 0000 000000 060 00 000


$275.00

05 001 2421 640 0000 000000 010 00 000


$300.00

05 001 2411 740 0000 000000 030 00 000

Resulting printed PO item:

Qty !! Description !! Price !! Total

Color Printer

$825.00

$825.00

Usage of "<SplitTag>"

In the requisition or purchase order xml document, the tag <SplitFlag> is required to be included as a part of the <item> information for both the combined and split items. The following values are accepted:

<SplitFlag>Combined</SplitFlag>
<SplitFlag>Split_Price</SplitFlag>
<SplitFlag>Split_Quantity</SplitFlag>

Restrictions

There must always be a "Combined" item first, immediately followed by one or more "Split_Price" or one or more "Split_Quantity" items. There cannot be both "Split_Price" and "Split_Quantity" items associated with the same "Combined" item.

The unit price must be the same for the "Combined" and all "Split_Quantity" items.

The quantity field must be 1 for the "Combined" item and zero for all "Split_Price" items.

Appendixes

Fault Message Codes

The table below defines response message codes returned by the USAS SOAP service faults. The codes define the nature of the fault in greater detail.

For faults that contain response-msgs _elements, each message (_fatal, error or _warning _element) may contain a _code _element. Developers may use these codes to programmatically test for specific types of USAS errors.

The codes in this table are the complete set of codes that can theoretically be produced by the current OpenVMS back-end implementation of USAS. However, in practice, some codes could never be returned by the USAS SOAP service. For example, “INVALIDXMLDATA” could not be returned in a USAS fault since the SOAP service would reject XML documents that do not conform to the USAS XML Schema.



<u>Category</u><u>Code</u><u>Description</u>



Common MessagesINVALIDXMLDATAAn incorrect tag was found, or XML document not in expected format.

KEYNOTPROVIDEDThe key field is blank or zero.

ALREADYONFILEThe key is already on file.

INVALIDFUNCTIONAn invalid 'function' tag value is present.

INVALIDOPERATIONAn invalid 'operation' tag value is present

RECORDNOTFOUNDThe record or records being read or searched for were not found.

INVALIDDATEThe date is invalid or not in the correct range.

FILEOPENINPUTFAILA data file failed to open for input.

FILEOPENIOFAILA data file failed to open for I/O.

PROTVIOA protection violation occurred when trying to open a data file.


Account BalancesCASHNEGFUNDNegative fund balance for cash account.

CASHNEGREMAINNegative remaining balance for cash account.

CASHNEGBALLESSPAYNegative cash balance less payables for cash account.

APPNEGREMAINNegative remaining balance for appropriation account.

BUDNEGREMAINNegative remaining balance for budget account.

APPNEGNEXTYEARNegative next year balance for appropriation account.

BUDNEGNEXTYEARNegative next year balance for budget account.



Invalid AccountsNOACCOUNTACCESSAccess to given Account is denied.

ACCTNOTACTIVEAccount is not active.

CASHACCTNOTFOUNDCash Account was not found on file.

APPACCTNOTFOUNDAppropriation Account was not found on file.

BUDACCTNOTFOUNDBudget Account was not found on file.

REVACCTNOTFOUNDRevenue Account was not found on file.

INVALIDTRANSINDInvalid Transaction Indicator.

INVALIDFUNCTIONInvalid Function Code.

INVALIDRECEIPTInvalid Receipt Code.



Account I/OBUDACCTWRITEFAILCreation of Budget Account failed.

REVACCTWRITEFAILCreation of Revenue Account failed.

CASHACCTREWRITEFAILUpdate of Cash Account failed.

APPACCTREWRITEFAILUpdate of Appropriation Account failed.

BUDACCTREWRITEFAILUpdate of Budget Account failed.

REVACCTREWRITEFAILUpdate of Revenue Account failed.



VendorsVENDORNOTFOUNDVendor number was not found or is invalid.

VENDORNOTACTIVEVendor is not active.

VENDORISMULTIVENDORVendor is a Multi-Vendor.

VENDORREWRITEFAILUpdate of Vendor record failed.

VENDORDIFFPOVendor number provided is different from Vendor on the Purchase Order.



General TransactionITEMOVERFLOWThe maximum allowable number of items per transaction was exceeded.



RequisitionsINVALIDREQNUMBERRequisition number supplied is not valid or is already on file.

REQNOTFOUNDRequisition was not found on file.

NOASSOCIATEDITEMSThere were no item records posted for this Requisition.

REQWRITEFAILCreation of Requisition record failed.

REQDELONERECORDOnly one record is permitted when performing a delete operation.

REQACCESSDENIEDAccess is denied to the Requisition.

REQALREADYPOSTEDRequisition already converted to a Purchase Order.

REQDELETEFAILDeletion of Requisition record failed.

GENERICBADLOCATIONThe generic record type did not precede all other records in batch.



Purchase OrdersINVALIDPONUMBERThe Purchase Order number supplied is not valid or is already on file.

INVALIDDESCLINEThe Purchase Order Description line number is not valid or is already on file.

INVALIDDESCTYPEThe Purchase Order Description Type field is not valid.

PONOTFOUNDPurchase Order was not found on file.

POITEMNOTFOUNDPurchase Order Item was not found on file.

POHISTWRITEFAILCreation of POHIST record failed.

POHISTREWRITEFAILUpdate of POHIST record failed.

POHISTDELETEFAILDeletion of POHIST record failed.

POITEMWRITEFAILCreation of POAMT record failed.

POITEMREWRITEFAILUpdate of POAMT record failed.

POITEMDELETEFAILDeletion of POAMT record failed.

PODESCWRITEFAILCreation of PODESC record failed.

PODESCDELETEFAILDeletion of PODESC record failed.

PODESCREWRITEFAILUpdate of PODESC record failed.

FUTPODELETEFAILDeletion of FUTPO record failed.

ZEROQUANTITYPurchase Order item quantity must not equal zero.

NOCHANGEKEYThe key cannot be changed.



Combined ItemsQUANTITYNONZEROQuantity did not equal zero for split-price item.

PRICENOTEQUALPrice is not equal for all split-quantity items.

COMBINEDPRECEDESPL<span >IT</span>A combined item did not precede split item.

INVALIDSPLITFLAGThe Split Flag field is not valid.

QUANTITYNOTONEThe quantity does not equal one for a split-price item.

DESCEQUALDASHThe description field does not equal a dash for split items.



Change OrdersNOCHANGEDATEPRIORY<span >R</span>The Purchase Order date may not be changed on a Purchase Order from a prior fiscal year.

NOAMENDPOOnly new, partially filled or partially paid Purchase Orders may be amended.

NOCHANGEDATEAMEND<span >ED</span>The date cannot be changed on a Purchase Order that has already been amended.

NOCHANGEVENDORThe Vendor cannot be changed because there is an associated invoice or the PO status is not new.

ISSUELESSTHANPODAT<span >E</span>An item's Issue Date must not be before the Purchase Order date.

INVALIDACCTMODThe account code may not be changed on an existing Purchase Order item.

INVALIDQUANTMODThe quantity may not be changed on an existing Purchase Order item.

INVALIDPRICEMODThe price may not be changed on an existing Purchase Order item.

NOCANCELCOMBINEDYou cannot cancel a combined item without canceling all of the associated split items.

INVALIDAMENDMENTInvalid amendment record or original Purchase Order item was not found.



Purchase Order Del<span >ete</span>PODELETEONERECORDOnly one record is permitted when deleting a Purchase Order.

POSTATUSNOTNEWPurchase Order status is not new, cannot be deleted.

ASSOCINVCKNODELETEThere is an associated Invoice or Check, Purchase Order cannot be deleted.

ASSOCCANINVEXISTThere is an associated 'cancel' Invoice.



InvoicesINVALIDINVNUMBERInvoice number supplied is not valid or is already on file.

INVOICENOTFOUNDInvoice number was not found on file.

INVOICEWRITEFAILCreation of INAMT record failed.

INVOICEREWRITEFAILUpdate of INAMT record failed.

INVPAYNOTFOUNDINVPAY record was not found on file.

INVPAYWRITEFAILCreation of INVPAY record failed.

INVPAYDELETEFAILDeletion of INVPAY record failed.

AMOUNTSBOTHNEGORP<span >OS</span>Remaining encumbered amount and invoice amount must be both negative or both positive.

INVALIDINVSTATUSInvalid Invoice status.

CANCELEXCEEDSENCThe canceled amount exceeds the remaining encumbrance amount.

POITEMCOMPFILLEDInvoice cannot be posted because Purchase Order item is already completely filled.



ChecksINVALIDCHECKNUMBERCheck number supplied is not valid or is already on file.

CHECKWRITEFAILCreation of Check record failed.

CHECKREWRITEFAILUpdate of Check record failed.

CHECKITEMWRITEFAILCreation of Check Item failed.

NEGATIVECHECKThe check to be created will be a 'negative check'.

NOUPDATEHIGHCHECKThe highest Check number on file was not updated.

NOPOSTPAYWITHOUTPOCannot post a payroll check without posting Purchase Order.

NOPOSTCHECKWOUTPO<span >INV</span>Cannot post a check without posting Purchase Order and Invoice.

NOPOSTCHECKINVCCannot post a check when the Invoice status is 'Canceled'.

FINALMONTHCLOSEFinal month closed, but fiscal year is not.

NOPENDINGINVOICENo associated pending invoice was found for selection.

NOSELECTIONSMADENo invoices were selected for processing.

COLLAPSESETPROMPTThe collapse check items flag is set to 'prompt', instead of Y or N.



ReceiptsINVALIDRCPTNUMBERReceipt number supplied is not valid or is already on file.

RECEIPTWRITEFAILCreation of Receipt record failed.

RECEIPTREWRITEFAILUpdate of Receipt record failed.

RECEIPTDELETEFAILDeletion of Receipt record failed.

NOITEMSNo items associated with Receipt record.


Other I/OUSASDATREWRITEFAILUpdate of USASDAT record failed.

INVENTWRITEFAILCreation of INVENT record failed.



Invalid DatesINVALIDPODATEPurchase Order date is invalid or not in proper processing period.

INVALIDPAYDATEPayroll date is invalid or not in proper processing period.

INVALIDINVDATEInvoice date is invalid or not in proper processing period.

INVALIDPAYDUEDATEPayment Due date is invalid or not in proper processing period.

INVALIDCHECKDATECheck date is invalid or not in proper processing period.

INVALIDISSUEDATEIssue Date is invalid or not in proper processing period.

INVALIDRCVDDATEReceived date is invalid or not in proper processing period.

INVALIDRCPTDATEReceipt date is invalid or not in proper processing period.

INVALIDREQDATERequisition date is invalid or not in proper processing period.

INVALIDDELDATEDelivery date is invalid.



AUTOPOST GeneralNOTALLFILESAVAILNot all USAS files were available for exclusive access.

NORECORDSINBATCHNo batch records were found in the batch.

RECNUMNOTNUMERICRecord number is not numeric.

REFNUMNOTNUMERICReference number is not numeric.



Inconsistent DataINCONSISTENTVENDORVendor number field is not consistent.

INCONSISTENTPOFLAGPurchase Order posting flag is not consistent.

INCONSISTENTCHECKFL<span >G</span>Check posting flag is not consistent.

INCONSISTENTREFDATERefund date field is not consistent.

INCONSISTENTCREATECheck create flag is not consistent.

INCONSISTENTCHECKCheck number is not consistent.

INCONSISTENTCHECKDTCheck date is not consistent.



Invalid NumericsPOITEMNOTNUMERICPurchase Order item number is not numeric.

QUANTNOTNUMERICQuantity field is not numeric.

PRICENOTNUMERICPrice field is not numeric.

INVAMTNOTNUMERICInvoice Amount field is not numeric.

AMOUNTNOTNUMERICAmount is not numeric.

INVALIDNUMERICField is not numeric.
<span ></span><span ></span><span ></span>