Tuesday, August 3, 2010

AIA Error Codes

I was working on AIA error handling and found very weird thing about how AIA was handling its error codes and description. Error codes are pretty much sporadic in .bpel or .xsl files, and aia:getErrorMessage is used to get error description for the error code.

AIA gets error messages from following file:
$oracle_home/bpel/system/classes/oracle/apps/aia/core/eh/i18n/EHResourceBundle.class


Error Code

Error Message

AIA_ERR_AIAINF_1001 Input log level for IsLoggingEnabled function is incorrect
AIA_ERR_AIAINF_1002 No corrective action string specified for the given corrective action code
AIA_ERR_AIAINF_1003 No error message has been specified for the input key
AIA_ERR_AIACOMBMPI_0001 Maxitems requested is less than the Threshold/Number of records returned from the billing system
AIA_ERR_AIACOMBMPI_0002 Account/Billing Profile being sent is not synced to the billing system
AIA_ERR_AIACOMCMPI_0001 EBMHeader/Sender/ID is required
AIA_ERR_AIACOMCMPI_0002 EBMHeader/Target/ID is required
AIA_ERR_AIACOMCMPI_0003 Account Sequence Error: Pay-From Accounts and Billing Profiles must appear before dependent/subordinate Accounts and Billing Profiles
AIA_ERR_AIACOMCMPI_0004 Subordinate account cannot have multiple parent accounts
AIA_ERR_AIACOMCMPI_0005 Ambiguous subordinate bill profile update: There are multiple distinct Pay-From-Party Billing Profile references associated with a single Prior Pay-From-Party Billing Profile reference
AIA_ERR_AIACOMCMPI_0006 All existing subordinate bill profiles are not included in the move account request
AIA_ERR_AIAINF_2001 Error message for getErrorMessage XPath verification
AIA_ERR_AIAO2C2_1001 Timeout while waiting for a response from the InterfaceCustomerToFulfillmentEBF service.
AIA_ERR_AIAO2C2_1002 Timeout while waiting for a response from the InterfaceSalesOrderToCustomerEBFV2 service.
AIA_ERR_AIAO2C2_1003 Timeout while waiting for a response from the CreateSalesOrder EBS service operation.
AIA_ERR_AIAO2C2_1004 Timeout while waiting for a response from the UpdateSalesOrder EBS service operation.
AIA_ERR_AIAO2C2_1005 This order has already been synced.
AIA_ERR_AIAO2C2_1006 Account could not be queried. Please make sure the Account exists in the system
AIA_ERR_AIAO2C2_1007 Timeout while waiting for a response from the SyncCustomerPartyList EBS service operation.
AIA_ERR_AIAO2C2_1008 Credit Check failed. Please contact your System Administrator.
AIA_ERR_AIAMDM_1001 Timeout while waiting for a response from the SyncCustomerPartyList EBS service operation.
AIA_ERR_AIAMDM_1002 Timeout while waiting for a response from the FetchCustomerPartyEBF service.
AIA_ERR_AIAMDM_1003 Invalid QueryCode. Valid values are: MATCH_PERSON or MATCH_ORGANIZATION.
AIA_ERR_AIAMDM_1004 Invalid QueryCode. Valid values are: FETCH_PERSON or FETCH_ORGANIZATION.
AIA_ERR_AIAMDM_1005 Cross-Reference ID lookup failed or returned no associated IDs
AIA_ERR_AIARTL2PSFT_1001 Invalid Requesting System; Requesting Systems must be RESA
AIA_ERR_AIARTL2PSFT_1002 Invalid Set Of Books Id; Set Of Books Id must in BUSINESS_UNIT DVM
AIA_ERR_AIARTL2PSFT_1003 Invalid Currency Conversion Type Code; Currency Conversion Type Code is not in CURRENCYEXCHANGE_CONVERSIONTYPECODE DVM
AIA_ERR_AIACOMOMPI_0001 Dates Validation Falied : Either one of the Purchase Date/Cycle Start Date/ Usage Start Date should be set to future
AIA_ERR_AIACOMOMPI_0002 Date Validation Falied : Purchase Date should be set to future
AIA_ERR_AIACOMOMPI_0003 Purchased promotion instance does not exist for a promotion that was previously purchased.\240\240 A data upgrade script was not run.
AIA_ERR_AIACOMOFMPI_0001 Data Insufficient for Trouble Ticket Creation. Order Originating System Code not available
AIA_ERR_AIACOMOFMPI_0002 Data Insufficient for Trouble Ticket Creation. Order ID not available
AIA_ERR_AIAAGILEJDEE1_0001 For additional information go to /agile/ais/fileResult and review the following file:
AIA_ERR_AIAAGILEJDEE1_0002 There are branch plants in the input message that do not have a mapped value in the AGILE_TARGET_SITE_MAPPING DVM
AIA_ERR_AIAAGILEJDEE1_0003 None of the items selected have been integrated
AIA_ERR_AIAAGILEJDEE1_0004 None of the engineering change orders selected have been integrated
AIA_ERR_AIAAGILEJDEE1_0005 Unable to find a Agile Site to branch plant mapping. Ensure all of the sites for the items on the Change are properly mapped or a default is set in AGILE_SITE_TARGET_MAPPING DVM
AIA_ERR_AIAAGILEJDEE1_0006 Invalid Batch Quantity: All Bill of Materials Batch Quantity must be equal to Zero.
AIA_ERR_AIAAGILEJDEE1_0007 Invalid Bill Of Materials Type: All Bill of Materials Type must be equal to 'DEFAULT_BOM_TYPE' AIA Configuration Property value.
AIA_ERR_AIAAGILEJDEE1_0008 Invalid Bill Of Materials Input: Multiple Bill of Materials for the same Parent Item is not allowed when 'MULTISITE_ENABLED' property is set to 'FALSE'.
AIA_ERR_AIAAGILEJDEE1_0009 Invalid Bill Of Materials Input: Bill Of Materials Components with 'Non-Stock' Stocking type is not allowed when 'MULTISITE_ENABLED' property is set to 'TRUE'.
AIA_ERR_AIAAGILEJDEE1_0010 Failed
AIA_ERR_AIAAGILEJDEE1_0011 Release ECO SDK Execution Failed:
AIA_ERR_AIAAGILEJDEE1_0012 Could not find Change Order workflow:
AIA_ERR_AIAAGILEJDEE1_0013 File does not exist:
AIA_ERR_AIAAGILEJDEE1_0014 None of the Items selected have associated Branch Plants
AIA_ERR_AIAAGILEJDEE1_0015 The Change Order Not found -
AIA_ERR_AIAAGILEJDEE1_0016 Invalid Item Revision Level: Make sure 'ITEM_REVISION_LEVEL' Property in AIA Configuration Properties is not Blank
AIA_ERR_AIAEBSI_0001 Failed to fetch the Sales Representative Resource ID. Please make sure the Sales Representative email addresses are identical in both systems


It was quite disappointing to see that all error codes and error messages are defined in a Java class instead of a property file. if someone needs to change error message or add new error code and error message, it is impossible unless you hack the Java code and recompile it.

It does makes sense to create a custom framework to store all your error codes and error messages so that you don’t get bound to the AIA boundaries.