Invalid Transaction Reject Reason - A valid currency must be provided

Document ID : KB000039345
Last Modified Date : 14/02/2018
Show Technical Document Details

Problem: 

We created some financial transactions using XOG.  After running the 'Post Transactions to Financials' job, the new transactions are rejected with a reason that a valid currency must be provided.  The rate in the Matrix is specified with a USD currency.  What is causing this error message?

 

Cause: 

This issue is caused by the fact that when the XOG transaction was created, the input file is specifying a billing rate without specifying the currency code.  If you do not specify the rate or actual cost, then the 'Post Transactions to Financial' job will pick up the rate and currency in the matrix.  However, if your XOG XML input file specifies the 'billRate' or 'actualCostRate', you need to be sure to include the associated currency code 'billRateCurrency' and/or 'actualCostRateCurrency' in both single currency and multi-currency implementations.  

XOG Example - Using 'billRate' without 'billRateCurrency' 

If your XOG XML input file uses a 'billRate' and does not provide a valid currency code,

the Reject Reason = When specifying a rate a valid currency must be provided

When specifying a rate a valid currency must be provided

The XOG transaction was created with the 'billRate' attribute, but it did not have the 'billRateCurrency' attribute.

 

XOG Example - Using 'actualCostRate' without 'actualCostRateCurrency' 

If your XOG XML input file uses a 'billRate' and does not provide a valid currency code,

the Reject Reason = When specifying a cost a valid currency must be provided 

When specifying a cost a valid currency must be provided

The XOG transaction was created with the 'actualCostRate' attribute, but it did not have the 'actualCostRateCurrency' attribute.  

 

Resolution: 

To resolve this issue, you will need to first need to remove the rejected record from the system.  You won't be able to update this record directly.  You will delete the record from the Invalid Transaction list and then update your XOG XML input file and import the data as a new transaction with the correct attributes.

The 'rate' and 'currency' attributes are not required.  If you want the transaction to use the Matrix associated with the project, leave them out of the XOG XML input file.  But if you do elect to use the 'rate' attribute(s) you need to use the associated 'currency' attribute(s). You MUST use both the 'rate' and 'currency' attributes together regardless if the system is using single currency or multi-currency configuration.

Resolution Steps:

  1. From Administration, Invalid Transactions, locate the 'Rejected' transactions with this status
  2. Select/check the box for the specific rejected transactions
  3. Click 'Delete' button
  4. Update your XOG XML input file to have both the rate and the currency attributes if you want to specify the amount to override what is in the matrix, then perform the XOG write action and the transaction should no longer be rejected for this reason  
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_transaction.xsd">
      <Header action="write" externalSource="NIKU" objectType="transaction" version="14.3.0.298"/>
      <Transactions>
        <Transaction chargeCode="billable" chargeable="1" inputTypeCode="billable" projectID="MY_PROJECT" 
resourceID="exp_resource1" roleID="exp_role1" taskID="5064007" externalID="ABC_EXT_ID"
transactionDate="2016-03-03" transactionType="X" units="375" 
groupId="123" voucherNumber="ABCVDD" 
billRate="100" billRateCurrency="USD"  
                actualCostRate="10" actualCostRateCurrency="USD"  >
        </Transaction>
      </Transactions>
 
    </NikuDataBus>