iamstar 发表于 2015-9-22 07:43:45

SAP系统中设定流水号

通俗的讲就是按自己定义的规则生成流水号 。下面分享一下产生流水号的步骤:      
                  1. 系统中设定流水号
使用T-Code SNRO来创建一个流水号标识对象,
http://images.cnblogs.com/cnblogs_com/weichuo/1.gif
输入Object ZLC_001,然后单击创建。
http://images.cnblogs.com/cnblogs_com/weichuo/2.gif
然后输入Short text, Long text, Number length domain在写程序的时候应该会另外创建,这里测试就使用料号的Domain MATNR来做,其他的参数使用默认值就可以了,然后保存输入的资料。
系统提示创建成功,这里还需要维护一个子对象,单击“号码范围”。

单击“间隔”,维护具体的流水号规则。
http://images.cnblogs.com/cnblogs_com/weichuo/3.gif
然后保存 ,流水号设定完成,接下来就是程序中如何取得这些流水号了。
http://images.cnblogs.com/cnblogs_com/weichuo/4.gif
2. 程序中取得流水号
         REPORTZLC_NUMBER_RANGE.

         DATA W_MATNR TYPE MATNR.

         START-OF-SELECTION.

      CALL FUNCTION 'NUMBER_RANGE_ENQUEUE'
         EXPORTING
         OBJECT         = 'ZLC_001' "Ceate with SNUM
         EXCEPTIONS
         FOREIGN_LOCK   = 1
         OBJECT_NOT_FOUND = 2
         SYSTEM_FAILURE   = 3
         OTHERS         = 4.

       CALL FUNCTION 'NUMBER_GET_NEXT'
         EXPORTING
         NR_RANGE_NR             = '00'
         OBJECT                  = 'ZLC_001'
         IMPORTING
         NUMBER                  = W_MATNR
         EXCEPTIONS
         INTERVAL_NOT_FOUND      = 1
         NUMBER_RANGE_NOT_INTERN = 2
         OBJECT_NOT_FOUND      = 3
         QUANTITY_IS_0         = 4
         QUANTITY_IS_NOT_1       = 5
         INTERNAL_OVERFLOW       = 6
         OTHERS                  = 7.

       CALL FUNCTION 'NUMBER_RANGE_DEQUEUE'
          EXPORTING
            OBJECT = 'ZLC_001'.

      IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
给屏幕字段复值:
data field (50).
field-symbols:<f1> type any,<f2> type any.
data i_no(10) type N.
clear i_no.

       CALL FUNCTION 'NUMBER_GET_NEXT'
         EXPORTING
         NR_RANGE_NR             = '00'
         OBJECT                  = 'ZLC_001'
         IMPORTING
         NUMBER                  = i_no.
field = ' i_no'.
ASSIGN (FIELD) TO <f1>.
field = '(SAPLMIGO)GOHEAD-XBLNR'."SAPLMIGO程序名;GOHEAD-XBLNR屏幕字段
assign (FIELD) to <f2>.
<F2> = <f1>.

页: [1]
查看完整版本: SAP系统中设定流水号