Buffering from number range AUFTRAG
At this moment we have the following problem:
The sequence of how processorder numbers are issued is not in
chronological sequence.
we have already implemented note 840901 for object type AUFTRAG.
Data LS_IGNORE_BUFFER type C .
if OBJECT = 'AUFTRAG'. "For process order NR
LS_IGNORE_BUFFER = 'S' . "NOTE 840901,to guarantee seq.assign
else. "FM called also with other objects
LS_IGNORE_BUFFER = ' '. "Standard value for buffering
endif.
Example:
1000098815 21-12-2006
1000098816 21-12-2006
1000098818 21-12-2006
1000098819 21-12-2006
1000098840 21-12-2006
1000098854 22-12-2006
1000098856 22-12-2006
1000098857 22-12-2006
1000098858 22-12-2006
1000098859 22-12-2006
1000098860 21-12-2006
1000098861 21-12-2006
1000098862 21-12-2006
1000098863 21-12-2006
1000098864 21-12-2006
1000098865 21-12-2006
1000098866 21-12-2006
1000098867 21-12-2006
1000098868 21-12-2006
1000098869 22-12-2006
1000098870 22-12-2006
1000098871 22-12-2006
1000098872 22-12-2006
1000098873 22-12-2006
You see above that the ordernumbers were not issued in chronlogical order.. does anyone has an idea?
Hi
some times if multiple users are working on same transaction code or in between if you have any connectivity problem like sudde log off, it may happen.
also please check SNUM transaction and check how is buffer maintained.
regards
Srinivas
Similar Messages
-
Switching off the buffering of number range for Trips (travel expenses)?
Hi,
In Tcode SNRO object RP_REINR has a buffer of 10.
If this is switched off, it could influence the performance.
Has anyone had any experience in switching off the buffering of number range for Trips (travel expenses)?
Thank you.
Kind regards,
LindaDear Linda,
I recall switching off the buffer in one of my projects. We did not encounter any problems, since it was a rare activity. Therefore, I do not expect any performance issues on this matter. Anyway, I presume, one can always switch it back.
Regards,
Eli -
Missing PRCTR from Number Range Table
Hi There,
I need to find out all the the available profit centre which not created yet ie no profit centre available in CEPC from the number range table NRIV.
I tried the FM number_get_next but nothing happened.
Details given below:
In the NRIV table I have got say following details :
Object From Number To Number etc etc
Y_PC 0000000001 0000000100
Y_PC 0000000101 0000000150
Y_PC 0000000160 0000000200
Profit Centre Created Available in CEPC say
In the no range 1 to 100
0000000001
0000000002
0000000003 (Not created)
0000000004
5 ,6 & 7 missing
0000000008
In the no range 101 to 150
0000000101
0000000102
0000000103
0000000104 (Not created)
0000000105
6,7....upto 149...(Not created)
0000000150
Similarly in other ranges few nos missing
My requirement is to read the NRIV table take all from number and to number into an internal table and for those nos find the missing nos from the CEPC table .
Appreciate your help.
Regards.
SunandaResolved by myself !!
Cheers. -
Billing Document Number saved with Preceding Number from Number range...
Hi Everybody,
I am facing with some irregular problem which is as follows :
For example, Billing Docs created in the month of January was saved with number series like 10161, 10162, 10163 .....and so on....
But the user has creatd the document in February and it got saved with number like 10121......which is a preceding number and there is only one document like this....
The number range is Internal Number Range...even though it got saved with preceding number.
Can anybody plz tell me why this has been happened ?????
Proper answer will be rewarded....
Thanks in advance....Hi Chaitanya,
Please check whether someone has changed number status in VN01 and previously 10121 was not used.
also check whether you are using ztable for number range depending upon plant.
Regards, -
Assigning sequential number from number range
Hi All,
My Zreport is updating Ztable with sequential number field assigned for each document numbers for each period. Below are the numbers assigned for period 5 in Ztable.
00001000000000000000
00001000000000000001
00001000000000000002
00001100000000000000
00001200000000000000
00001200000000000001
00001200000000000002
00001200000000000003
When I ran for period 6 the sequence number is coming as below.
00001000000000000003
00001000000000000004
00001100000000000001
00001200000000000004
00001200000000000005
00001200000000000006
It should give me the below.
00001000000000000003
00001000000000000004
00001100000000000000
00001200000000000004
00001200000000000005
00001200000000000006
I am fetching the data from Ztable and sorting in descending order. Below is the data in my internal table in debugging.
bukrs belnr blart monat numkr zsequence
2700 |1700002431 |KA |05 |03 |00001200000000000003
2700 |5100000804 |RE |05 |02 |00001100000000000000
2700 |2200000004 |P2 |05 |01 |00001000000000000002
Below is my code.
loop at t_ztable.
clear w_zsequence.
unpack t_table-zsequence to t_ztable-zsequence.
if (t_ztable-zsequence = '00001200000000000000' or
t_ztable-zsequence = '00001100000000000000' or
t_ztable-zsequence = '00001000000000000000' ).
w_zsequence = t_ztable-zsequence
else.
w_zsequence = t_ztable-zsequence + 1.
unpack w_zsequence to w_zsequence.
endif. "BK003
* shift w_zbelnr left deleting leading space.
loop at t_bkpf
where bukrs = t_ztable-bukrs
and groupnumber = t_ztable-numkr.
move-corresponding t_bkpf to t_ztable_load.
t_ztable_load-zsequence = w_zsequence.
t_ztable_load-numkr = t_ztable-numkr.
append t_ztable_load.
w_zsequence = w_zsequence + 1.
* shift w_zsequence left deleting leading space.
unpack w_zsequence to w_zsequence.
endloop.
endloop.
How to acheive this. Please help me.
Thanks,
VBKHi Haritha,
Can you show us the table t_bkpf dataon which you are looping?
Regards,
Sudeesh Soni -
Sequential numbers in non-buffered number range object
I need some help pointing in the right direction to analyze and prevent a problem with a NON-BUFFERED custom number range object.
This process works well. Once or twice however, sequences have been created with an apparent delay and are out of order. I don't know why, or where to look to diagnose the timing, etc. It's very difficult to recreate.
We have a custom number range object; ZFSEQ in SNRO that is responsible for assigning a sequential number to a series of flat files produced by number of different interfaces. Those interfaces all use the FM 'NUMBER_GET_NEXT' and then they build a file name with that sequence number. That object is not buffered.
During heavy volume of updates (where lots of these sequences are being called and created by different interfaces, the table NRIV is locked and released by each interface. During this time of heavy updates, we have an infrequent problem that has occurred where a standard sales order create created a sequence number that is greater than the sequence number generated by the delivery create. (The delivery was created a couple of minutes later than the order, yet the order created a flat file sequence number greater than that of the delivery.
I hypothesize that the flat file call for the order (using the FM 'NUMBER_GET_NEXT') was somehow delayed(because of heavy lock/usage of NRIV). The actual order document and delivery document were created normally. I also am thinking that buffering on the object would prevent this. I cannot at this time implement buffering on the object, but we are working towards that.
The order create originates from our e-commerce system through a webserive, and in SAP, flows like this:
Main webservice RFC: Z_ORDER_CREATE
Call Z_create_order_bgd IN BACKGROUND TASK
Call BAPI_SALESORDER_CREATEFROMDAT2 )
MV45AFZZ--> userexit_save_document.
call Z_FUNCTION_TO_GET_SEQUENCE
CALL FM 'NUMBER_GET_NEXT' <---- order create sequential file created
commit work.
The delivery sequential file is created in
MV50AFZ1 (the Delivery User Exit)
Where can I look to conclusively see what happened to delay our sales order sequence? What could be done to prevent it?
Thanks
Jeremy H.Just want to post the answer that we found to this issue and close it, though more comments are always welcome!
We are going to move forward with buffering the Z object for the range as studies have shown and all other consulting input seems to be that buffering will solve this problem. -
Inspection lot number ranges skipping
My inspection lot number ranges are skipping, those are std number ranges like 01 origin, 04 origin etc, what could be the reason for that.
Inspn lots are getting generated and I took UD also. But certain numbers in the range got skipped.
Eg:- Incoming inspn lot 010000000041 then it comes 010000000045
Lot numbers 01/42, 01/43, 01/44 does not exist in sytem.
Please suggest a way out
Thanks
Vineeth
Edited by: vineeth varghese on Jul 18, 2008 11:31 AMCraig,
But expert suggestion says, not to switch off buffer thru SNRO as it may affect fuctionality as you said early in this discussion.
But I believe, this is to be relooked by SAP as number range skipping is not good (My case its skipping 5-7 numbers at a time). But I am not convinced with the reply from SAP also.
Anyway thanks to you craig for your advice.
SAP Note on this matter for reference of all. Thanks
================================
Note: 62077
Summary
Symptom
Gaps (jumps) occur when allocating internal numbers.
The status of the number range interval does not match the number that was last assigned.
The number assignment does not reflect the insert sequence.
IMPORTANT: Read Notes 504875 and 678501.
Other terms
Document number, number range, number range object, buffering, current number level, trip number assignment, number interval, CO document, CO actual posting, inspection lot, material document, physical inventory document, production order number, planned order number, process order number, maintenance order number
FB01, VF01, KO88, KE21, KE11, FD01, FK01, XK01, XDN1, MB01, MB0A, MB11, MB1A, MB1B, MB1C, MB31, KANK, KB11, KB13, KB14, KB41, KB43, KB44, KB21, KB23, KB24, KB31, KB33, KB34, KB51, KB53, KB54, PR01, PR02, PR03, PR04, PR05, XD01, VD01, MK01, SNUM, SM56, SNRO, VL01, VL02, CO01, CO40, CO41, VA01, MR1M, MIRO
Reason and Prerequisites
A large number of number range objects are buffered. When the system buffers a number range object, it does not update numbers individually in the database but reserves a preset group of numbers (depending on the number range object) in the database the first time a number is requested, and makes these numbers available to the application server in question. The following numbers can then be taken directly from the application server buffer. New numbers are not used in the database until the application server buffer has been used up.
The effects described under "Symptom" are a direct consequence of this:
If an application server is shut down, the numbers that are left in the buffer (that is, that are not yet assigned) are lost. As a result, there are gaps in the number assignment.
The status of the number range interval reflects the next free number that has not yet been transferred to an application server for intermediate buffering. The current number level therefore does not display the number of the "next" object.
The current number level (for each server) can be displayed using Transaction SM56. Call transaction SM56 and choose the menu 'Goto' -> 'Entries'. In the dialog box, enter the client, the affected number range object (for example, RK_BELEG) and possibly the required subobject (corresponds to the controlling area for the object RK_BELEG).
If you use several application servers, the numerical sequence will not reflect the (chronological) insert sequence because the numbers are buffered separately on the individual hosts.
Buffering the number range objects has a positive effect on performance, because the system no longer has to access the database (number range table NRIV) for each posting. Furthermore, a serialization of this table (database locking) is prevented to a large extent so that posting procedures can be carried out in parallel.
Solution
Since number range buffering does not cause any expressly assured qualities to be lost, no correction is required.
If you still require continuous allocation, you can deactivate the number range buffering specifically for individual objects.
Proceed as follows:
- Start Transaction SNRO and enter the affected object.
- Choose 'Change'.
- Deactivate buffering: Choose 'Edit' -> 'Set Up Buffering' -> 'No Buffering'.
- If you want to change the buffer size only, enter the corresponding value in the field 'No. of numbers in buffer'.
- Save the changes.
Please note that this change is a modification. The modification is overwritten as soon as the affected number range object is redelivered - in other words, you must check the change manually each time you import a release.
In particular, read Note 678501, bearing in mind that changing the buffering type - if not explicitly recommended by SAP - constitutes a modification. For other possible solutions, refer to the following notes:
179224, 599157 and 840901.
For the the following number range objects, gaps may cause users to have doubts since they are 'expecting' a sequential numbering:
Area CO:
- RK_BELEG (CO Document)
CAUTION: Note that the problems described in Notes 20965 and 29030 may occur if you deactivate buffering.
- COPA_IST (Document number in actual posting)
- COPA_PLAN (Document number in planned posting)
- COPA_OBJ (Profitability segment number)
Area FI:
- DEBITOR (Customer master data)
- KREDITOR (Vendor master data)
Area HR:
- RP_REINR (Trip numbers)
Area PM, PP, PS
- AUFTRAG (Order number, production, process, maintenance order, network number)
- QMEL_NR (Number range - message)
Area MM:
- MATBELEG (Material documents)
- MATERIALNR (Material master)
Area QM:
- QLOSE (Inspection lots in QM)
- QMEL_NR (Number range - message)
- QMERK (Confirmation number)
- QMERKMALE (Master inspection characteristics in QSS)
- QMERKRUECK (Confirmation number of an inspection characteristic in QM results processing)
- QMETHODEN (Inspection methods in QM)
- ROUTING_Q (Number ranges for inspection plans)
- QCONTROLCH (Quality control chart)
Area Workflow:
- EDIDOC (IDocs)
Number range buffering can be activated or deactivated at any time.
Number range objects that have to be continuous due to legal specifications (for example, RF_BELEG, RV_BELEG), or due to a corresponding application logic must not be buffered using the buffering type 'Main memory buffering'. See also Notes 37844 (for RF_BELEG) and 23835 (for RV_BELEG).
Header Data
Release Status: Released for Customer
Released on: 10.07.2007 12:57:00
Priority: Recommendations/additional info
Category: Consulting
Primary Component: BC-SRV-NUM Number Range Management
Secondary Components: CA-GTF General Application Functions
BC-SRV-ASF-UOM Unit Management
CO Controlling
CO-OM-CCA Cost Center Accounting
CO-OM-CCA-A Master Data
CO-PA Profitability Analysis
FI Financial Accounting
FI-AP Accounts Payable
FI-AR Accounts Receivable
FI-GL General Ledger Accounting
FI-TV Business Trip Management
LO-MD-MM Material Master
MM Materials Management
MM-IM Inventory Management
MM-IM-PI Physical Inventory
PM Plant Maintenance
PP Production Planning and Control
QM Quality Management
QM-PT Quality Planning
QM-QN Quality Notifications
Edited by: viny on Jul 23, 2008 9:18 AM -
Production Order Number Ranges Assignment
Hello
We are facing one problem
We have internal number range for production order.
On creation System took few orders in Sequence and few it skipts and then it goes back to seq again
1st it created 1-9
then it created from 21 -26
then it created 10-15
again from 27
Request you to let me kno how we can get it sequential.
In SNUM buffer is maintained as 20.
Thanks N Regards,
Hitendra DwivediDear
This is because of user buffer, which system will allocate the number from numer range to each user so that there will not be any problem during saving, This is done by basis person. Just discuss with basis consumtant if you want to reduce the gap from one order to other.
This is not a bug, this is standard. Reason for this is the buffering of number range. You can find explaination about this bahvoir in SAP note 62077, this note descripe the behavoir in general. SAP note 456777 descripe the behavoir once again for production and process orders.
Check the above notes and explore
Regards
JH -
i have a number range 92100001-------to ...92199999 for my billing document in PRODUCTION server
here i am facing a situation where system is skipping the number while creating billing document
like,,
the first invoice which is created has a number range---92100005,,
,then 92100006, 92100007, 92100008,,,,,,,,,,,,92100011. 92100012
As written
number 92100001-921000029210000392100004-----92100009.....92100010...............
all these number are gone missing
why i am facing this unusual situation plz guide
regdsHi Rishi,
This is a problem of buffering the Number Range. Go to the transaction SNRO, selecting object RV_BELEG and check whether the number range object is buffered or not. If it is buffered you will miss the numbers and it should not be the case, because the billing documents should not skip as they have got legal complaince. if the number range is not buffered and still the number are missing, it is a bug and raise a SAP note for the same.
regards
prasad -
Missing numbers in Number Range
Hi all,
I have a requirement like this. When I do a standard process I need to generate batches depending on the cuts in the cable. I'm doing this using Number Range. After I get the batches I may save the document or may not save it. Suppose my first document generated batches 100,101,103,104. At the end if I dont save and exit for the next document the batches are coming as 105,106 ans so on. However since I didnt save earlier I need from 100. How can I do this?
Thanks&Regards,
Manjula.SI don't think so. You have to understand that number ranges take care of concurrency. Hence you can have more application servers, more users running same program and SAP guarantees that you will get each number once. So generally implementing number range with possibility of returning number is really tricky thing and you have to be careful about concurrency. As I said, common approach how to avoid wasting numbers from number range is to use temporary numbers and during saving process replace these numbers by real numbers from number range.
Good luck -
Sales order number range skipping..anyone faced this ????
Hi all ,
We have perculiar problem where Sales order document numbers are
skipping/ jumping inbetween around 200- 250. And it is recurring.
Anyone faced this problem ? Does any one has any clue on this ?
we are in ECC 5.0
Thanks in advance.
KbThis is happening due to buffering in number range. If you write the same to SAP OSS, they will let tou know the note no to be refered to, which will resolve the problem.
Regards,
Rajesh Banka -
Number Range generation failure Message no. 8I166
Dear All,
While creating subcontracting challan ( T-CODE J1IF01 ), its giving error as Number Range generation failure
Please help me out.
Regards,
Sandeep.The correct answer was copied from NUMBER RANGE GENERATION FAILURE That answer has been rejected and the points removed. Copying other people's work is not permitted.
-
Numbers skipped while creating a new position (Internal number range)
Hello,
We have internal number range set up starting with 20000001 in PROD for Positions under OM.
The last number used for position was 20000693. But while creating a new position, the end user got the new number as 20000705. I checked the t-code OONR and it shows the current number as 20000729.
I have no idea why the numbers got skipped. Can anyone please let me know why this could have happened and how to correct it?
Thanks in advance.
MadhuHi Donnie,
The solution suggested by SAP lies in the SAP OSS Note 87865 - Buffering number ranges for personnel planning.
Which says -
''During buffering of number ranges, gaps can result during number assignment. If you require a continuous number assignment, you must deactivate the buffering for the number range object 'RP_PLAN' in Transaction SNRO.
However, this can affect the performance during numberassignment.''
So the only way to get continuous number range assignment, the buffering option needs to be set to 'No Buffering'. But it can affect system performance and is considered a modification. So we decided to go ahead with the buffering option set in the standard configuration and not to deactivate the buffering for the number range objects.
Hope this helps.
Regards,
Madhu -
Must I open the system to setup number range buffering ?
Hello community,
Number range buffering is disabled for DIM IDs on most of our InfoCubes, but we would like to experiment with turning it on according to the recommendations in this SDN blog :
/people/vikash.agrawal/blog/2006/04/05/load-lots-of-data-147faster148-with-buffering-number-range
I have imported a test cube into the production system and would like to test load the same quantity of data that is normally loaded into our production cubes.
But the problem when turning on Number Range Buffering for the test cube is that the production has status 'not modifiable'
Is it necessary to open the production system for modifications each time you want to make a change to the number range buffering settings ?
If so, then this will be difficult because we transport new cubes very frequently in order to separate the data by time period.
Is there a way to change the number range buffering settings via transport, or other customization without opening the production system for modifications ?NRIV is the table that has the number range buffering info it.
http://help.sap.com/saphelp_nw04/helpdata/EN/7b/6eb2aa7aed44ea92ebb969e03081fb/frameset.htm
There appear to be a couple related tables.
Table Name Short text
NRIV Number Range Intervals
NRIVSHADOW Local NRIV for multiprocessor machines
NRIV_LOKAL Local NRIV for multiprocessor machines
NRIV_RESTE Internal numbers not assigned in conn. wit
According to the doc on one of the linked help pages, you may want to look at Tran SM56. It says it will tell you how often a load had to wait because it had to wait to get the next available number. You might find that you are not waiting in any of your loads, in which case, this effort won't bear any fruit.
Personally, absent a specific set of instructions from SAP that indicate that yes you can transport this stuff and how to do it, I don't think I would pursue it.
Not to be negtive about this idea, but from what I have seen, the nbr range buffer objects don't share the same BID####### across systems. This seems like it would be a very large obstacle to overcome. I think will end up throwing lots of hours down a rat hole trying to do this.
But, who knows, if you get it to work, you ought to blog about it.
Good luck. -
RV_BELEG - Number Range Buffering
Hi All: I implemented parallel number range buffering for my client via transaction SNUM for object RV_BELEG which includes orders, deliveries, invoices, contracts, etc. We did this because with the amount of users they have, when entering orders, they were getting short dumps upon saving orders and losing data. Changing to parallel buffering was suggested from SAP. It assigns a buffer of numbers to users as they log on or open sessions. The user groups entering orders, deliveries and invoices had no issues with these documents being out of sequence.
After we implemented this, the user group that enters contracts started to noticed that their document numbers were no longer sequencial and this is causing issues for them.
I have searched OSS and the web to find a solution so that you can stop a single number range, in our case, for the contracts, from buffering. All I have found is instructions on how to set up another number range for the same document type for certain sales orgs and then add the logic for this new number range and a custom talble in USEREXIT_NUMBER_RANGE. This does not apply where you have all contracts types being entered by multiple users accross multple sales orgs.
If anyone has any ideas, suggestions, solutions, please contact me.
Thanks,
PamHi Pam,
As a suggestion, can you not make the buffer zero? I have made the buffer zero since the client was not particular on the buffer but they were very particular on the number range being sequential. They were ok with having the buffer as zero.
So perhaps you can try talking to your client on the same lines and convince them to have a zero buffer if possible.
Regards,
Rohan Gudavalli
Maybe you are looking for
-
I have had a few minor bugs with Mavericks, and I finally got an external hard drive, so I decided to do a clean install of Mavericks. Every single tutorial I've found online has suggested making a usb-bootable drive to reinstall the os with. Howeve
-
I had my iMac setup to connect to the Internet via an AEBS that was hooked directly to my cable modem. I had lightening to strike near my house that nuked a cable modem and an AEBS. I have them replaced now and ran through the same setup I had before
-
How to combine sound with video to an AVI Using IMAQ?
I need to combine sound with video I capture and write it out as an AVI. Is there anyway in Labview to combine sound with and AVI? Or an easy to use third party product?
-
Replication For Partitioned Table
Well , I have a partitioned Table having partition on Date Field. Table Contains composite primary Key Date Field + Connection Id . Table Contains approx 30 Million Records. Now when i m goin for replication setup , created materialized view on the b
-
Hi all, Am trying to restrict (via a warining message) users from creating sales orders with less than a minimum quantity for a given material and a given customer. I read in some threads that I should use transaction VD51, but the only thing I can d