ABAP--如何创建和使用sap的号码范围对象
创建号码范围对象:<o:p> </o:p>
1. 使用TCODE:SNRO (Simple way to remember is SapNumberRangeObject).<o:p> </o:p>
<v:shapetype o:spt="75" coordsize="21600,21600" filled="f" stroked="f" id="_x0000_t75" path="[email protected]@[email protected]@[email protected]@[email protected]@5xe" o:preferrelative="t"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" o:connecttype="rect" gradientshapeok="t"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="WIDTH: 261.75pt; HEIGHT: 150.75pt"><v:imagedata src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/03/clip_image001.png" o:title=""></v:imagedata></v:shape><o:p> </o:p>
2. 输入号码范围对象的名称 并点击“新建”按钮.<o:p> </o:p>
3. 输入描叙和相关字段具体参见下图:<o:p> </o:p>
<v:shape id="_x0000_i1030" type="#_x0000_t75" style="WIDTH: 6in; HEIGHT: 394.5pt"><v:imagedata src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/03/clip_image003.png" o:title=""></v:imagedata></v:shape><o:p> </o:p>
Warning% à Assume that an interval is defined from 1 to 1000. If you want to issue a warning at the number 900, enter 10 (%) here.<o:p> </o:p>
4. 点击“SAVE”按纽.系统将弹出下列屏幕:<o:p> </o:p>
<v:shape id="_x0000_i1031" type="#_x0000_t75" style="WIDTH: 253.5pt; HEIGHT: 153.75pt"><v:imagedata src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/03/clip_image005.png" o:title=""></v:imagedata></v:shape> <o:p> </o:p>
5. 点击“YES”按钮,并制定对象类.<o:p> </o:p>
6. 点击“Number Ranges” .<o:p> </o:p>
<v:shape id="_x0000_i1029" type="#_x0000_t75" style="WIDTH: 349.5pt; HEIGHT: 273.75pt"><v:imagedata src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/03/clip_image007.png" o:title=""></v:imagedata></v:shape> <o:p> </o:p>
7. 点击 “Change Intervals”.<o:p> </o:p>
<v:shape id="_x0000_i1028" type="#_x0000_t75" style="WIDTH: 255pt; HEIGHT: 172.5pt"><v:imagedata src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/03/clip_image009.png" o:title=""></v:imagedata></v:shape><o:p> </o:p>
<v:shape id="_x0000_i1027" type="#_x0000_t75" style="WIDTH: 409.5pt; HEIGHT: 237pt"><v:imagedata src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/03/clip_image011.png" o:title=""></v:imagedata></v:shape> <o:p> </o:p>
8. 点击 “Insert Interval”.<o:p> </o:p>
9. 输入相应的数据值,参见下屏:<o:p> </o:p>
<v:shape id="_x0000_i1026" type="#_x0000_t75" style="WIDTH: 411pt; HEIGHT: 161.25pt"><v:imagedata src="file:///C:/DOCUME~1/PARVAT~1/LOCALS~1/Temp/msoclip1/03/clip_image013.png" o:title=""></v:imagedata></v:shape> <o:p> </o:p>
10. 点击 “Insert”,再点击保存.号码范围对象就已经成功建立. <o:p> </o:p>
测试the Number Range Object: <o:p> </o:p>
We can use the function module, NUMBER_GET_NEXT, to get the next number of any number range object. <o:p> </o:p>
Following is a test program to get the next available number of the object created above:
REPORT zsnro_test.
DATA:
NUMBER TYPE I.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = '01'
object = 'ZDEMO'
IMPORTING
NUMBER = NUMBER
EXCEPTIONS
INTERVAL_NOT_FOUND = 1
NUMBER_RANGE_NOT_INTERN = 2
OBJECT_NOT_FOUND = 3
QUANTITY_IS_0 = 4
QUANTITY_IS_NOT_1 = 5
INTERVAL_OVERFLOW = 6
BUFFER_OVERFLOW = 7
OTHERS = 8
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Write :/ 'Next available number is: ', Number.
Source URL:http://www.saptechnical.com/Tutorials/ABAP/SNRO/SNRO.htm