Bookmark and Share Subscribe You may face visibility problem if is blocked on your network

Monday, January 25, 2021

Cycle Count scheduling logic in Oracle EBS

Purpose of this document is to share the scheduling process I learned from the Cycle count process.

It starts with:

Derive number of working days in the interval

System derives number of working day base on below values of Cycle count definition

  1. Start of schedule date (say 1-Jan)

  2. Inactive date (Say 31-Dec)

  3. Calendar (5-days a week + 11 additional holidays)

  4. Frequency of schedule (say daily)

So, going with our example number of working days would be 250 (365-104-11 = 250 working day)

Derive number of parts to be scheduled per day

Now consider we have total 11,000 parts numbers of which 1000 part numbers A-Class, next 3000 part numbers are B-Class and remaining 7000 part numbers are C-Class


Number of parts

Times to be counted

Number of parts to be scheduled per day

(Number of parts x Counts per year / number of working days)



4 times a year

(1000 x 4 / 250) = 16



2 times a year




1 time a year


Based on above calculation system will scheduled 16 parts of Class A, 24 parts of class B and 28 parts of class C on one day.

On 1st day it will pick C-class 28 part of 7000, 2nd day it will pick another 28 parts from 6972, 3rd day another 28 parts from 6944 parts and so on.

Parts which need to be counted multiple times, there is a bit different logic. Oracle tried to split the counts of the same part number is different quartiles or halves. Example the part to be counted 4 times year has its one count in each of the quarter. Oracle check how many time the part is already counted and then picks it for scheduling. In our above example: 250 days will be divided into 2 halves for B class parts and one count in each half will be scheduled and for A class there is be four equal portions of the duration and each count of an part will be scheduled in each portion.

Every time system picks the part for scheduling based on algorithm; it populates that part entry in MTL_CC_SCHEDULE_REQUESTS table so that next time it will pick parts from remaining set of part numbers.

Then it checks conditions like if user want to count parts which have ZERO quantity based on ‘Count Zero Quantity’ check box in ‘Serial and Schedule; tab of Cycle count definition. If this check box is not selected, then the part is selected by scheduler for the day will be shown to user for entry only if it has on-hand available in the subinventories selected in ‘Scope and Control’ tab of Cycle count definition. 

Example: Say scheduler picks say P1, P2, P3 part numbers for today and P1 do not have any on-hand, P2 has some on-hand but not in the subinventories selected in scope and P3 has on-hand in any of the subinventories selected in scope. In such case

1. If ‘Count Zero Quantity’ check box is not selected then user will find only P3 appearing for counting today.

2. If ‘Count Zero Quantity’ check box is selected, then all three part numbers will be shown to user for counting. User may enter zero if the part has no on-hand, but he will be forced to do count and confirm.

Cycle count screenshot (Serial and Schedule tab)

We can use “Cycle count schedule requests report” to find which part numbers were picked on which date, all may not appear for Cycle count entry if ‘Count Zero Quantity’ check box is not selected. 


 Date      Source         DueDate   Item                Description                 

 --------- -------------- --------- ------------------ -------------------------

 25-JAN-21 Automatic      27-JAN-21 Z690062             VALVE,EXHAUST

 25-JAN-21 Automatic      27-JAN-21 Z996777             GASKET,CYLINDER HEAD

 25-JAN-21 Automatic      27-JAN-21 Z991960             SENSOR,PRESSURE

 25-JAN-21 Automatic      27-JAN-21 Z069661             PISTON,ENGINE

 25-JAN-21 Automatic      27-JAN-21 K600806             VALVE,EXHAUST THROTTLE

 25-JAN-21 Automatic      27-JAN-21 L621968             MANIFOLD,EXHAUST

 25-JAN-21 Automatic      27-JAN-21 P621860             TUBE,TUR OIL SUPPLY

 25-JAN-21 Automatic      27-JAN-21 J621861             TUBE,TUR COOLANT SUPPLY

 25-JAN-21 Automatic      27-JAN-21 D621862             TUBE,TUR COOLANT DRAIN

 25-JAN-21 Automatic      27-JAN-21 G622071             TUBE,PRESSURE SENSING

 Below are some of the Oracle support articles you may refer for detailed understanding and these are referred to make this article.

FAQ How Cycle Counting Works and How to Ensure that Cycle Counts are Scheduled Based on Setup Class and Frequency to Meet Audit Requirements (Doc ID 416149.1)

R12 and 11i Troubleshooting Guide for All Cycle Count issues: No Data Returned or Cycle Count Not Picking Up Enough Items (Doc ID 732843.1)

Define Cycle Count and Set Cycle Count Classes [199619.1]

Schedule and Perform Full Cycle Count [199620.1]

How To Setup and Define a Cycle Count [66634.1]

Click here for more articles on Cycle count

No comments:

Post a Comment

Please add your valuable feedback / comments


This blog is purely personal and the thoughts expressed here represent only me. The purpose of this blog is to share information and knowledge about Oracle's product which I have come across with my exposure to the product, practice and observations. The blog has been created keeping only one intention of sharing knowledge and for learning purpose. The blog has been created solely as a educational, for storing portions of the vast Oracle knowledge world. Oracle EBS is an Oracle Corp. product and you should contact Oracle directly for any specific fact or issue.

*NOTE: Few articles on this blog are not completely prepared by me, content is edited and complied after referring various sites to make visitor's job easy