Oracle Cloud offers a broad portfolio of software as a service applications, platform as a service, and social capabilities, all on a subscription basis. Oracle Cloud delivers instant value and productivity for end users, administrators, and developers alike through functionally rich, integrated, secure, enterprise cloud services.
 Get a Free Magzine ...Profit:The Executive's Guide to Oracle Applications

Subscribe to the OracleAppsHub to receive notifications when there are new posts:

 get RSS feed
 Oracle Fusion Applications (OFA) is a portfolio of next generation suite of software applications from Oracle Corporation. It is distributed across various product families; including financial management, human capital management, customer relationship management, supply chain management, procurement, governance, and project portfolio management
 Get a Free Magzine ...Profit:The Executive's Guide to Oracle Applications

Where is my Missing Transaction Numbers?

Posted on April 25th, 2009 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

Have you tried OracleappsHub in ipad/iphone/smart Phone? Don't wait. try it today

Lets revisit some Basic things

  • Invoice Numbers/Transaction Number : These are Numbers generated and controlled by the Source definition. Oracle Reference column is TRX_NUMBER.
  • Document Numbers : This you need to define a Sequence & assign it to the Document Category which is the AR Transaction Type. Oracle Reference column is DOCUMENT_SEQUENCE_VALUE.

dgreybarrow Why Transaction Number sequence is so important

As far as I know, some of European Countries(Italy) and some of APAC(Taiwan, Singapore) Countries have to maintain the Transaction number in sequence. Any Jump in the transaction number may be subject to audit issue with auditors. Therefore its very important to alter the underline seeded sequence definition.

dgreybarrow Why Oracle gives some jump in number

The reason is cache value which comes with seeded sequence .

If you have "caching" enabled on the sequences. This is a feature that is meant to speed up retrieval of heavily used sequences. If the sequence isn't used for a while the cache "ages out" and those numbers that were in the cache get skipped.

Most of Oracle seeded sequence come with Default 20 values.

dgreybarrow Technical note on Oracle Sequence

Based out of Robert Vollman note in his blog. Basically there are 2 potential issues with Oracle sequences

  1. The sequence number may "jump", that is 1,2,3,5,6,8,... with number 4 and 7 missing. One reason is if you do a transaction with NEXTVAL and then rollback, the sequence doesn't roll back to where you started.
  2. By default, the sequence caches the 20 next values for faster retrieval. Thats the reason why most of seeded Oracle sequence have value 20. If there is a system failure, we will lost the cached values upon system recovery. Thus you end up with a gap of up to 20. One way to avoid this is to use NOCACHE command when creating the sequence. And of course you lose the benefit cache brings as well.

dgreybarrow Step to alter the Seeded sequence

1) Query up your invoice source , which user have reported Jump in number.

Navigate>Setup>Invoice>Source

2) Execute the following script using your source as in step 1.

  1.  
  2. SELECT batch_source_id, org_id, name FROM ra_batch_sources_all WHERE name LIKE '<source>';
  3.  

or use this query if you have access from database.

  1.  
  2. SELECT 'alter sequence AR.'||seq.sequence_name||' nocache;' FROM
  3. name bsname, org_id org,
  4. 'RA_TRX_NUMBER_'||BATCH_SOURCE_ID||'_'||org_id||'_S' seqname
  5. FROM RA_batch_sources_all) src,
  6. dba_sequences seq
  7. WHERE src.seqname=seq.sequence_name
  8. AND seq.cache_size;
  9. ORDER BY org
  10. /
  11.  
  12.  

3) Using the batch_source_id from the above query , execute the followingscript:

  1.  
  2. SELECT sequence_owner, sequence_name, cache_size
  3. FROM all_sequences
  4. WHERE sequence_name LIKE 'RA_TRX_NUMBER%1146%';
  5.  
  6.  

4) Execute the following:

  1.  
  2. ALTER sequence SEQUENCE_NAME increment BY 1 nocache;
  3.  
  4.  

Example, if your sequnce is RA_TRX_NUMBER_1146_1166_S

then script would be

  1.  
  2. ALTER sequence RA_TRX_NUMBER_1146_1166_S increment BY 1 nocache;
  3.  

dgreybarrow Few Tips

1.When you create a source and attach a sequence, Oracle will create a sequence like RA_TRX_NUMBER_<batch_id>_<org_id>_S
2. Sequence RA_TRX_NUMBER_<batch_id>_<org_id> _S as is owned by AR.

dgreybarrow How to handle those missing Number

If you have identified in early stage, and missing numbers are very less in count, than create another source with non-automatic number sequence and tell user to use those number which havn't used by Oracle earlier. Once you used all missing number than end date the source.

Related Posts

Posted in Oracle Receivable | 1 Comment »Email This Post Email This Post | Print This Post Print This Post

Have you tried OracleappsHub in ipad/iphone/smart Phone? Don't wait. try it today
One Response
  1. Durga Reddy Says:

    Thanks for ur greate post Sanjit jeeeee

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.