SAP凭证编号确认后还能撤销吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAP凭证编号确认后还能撤销吗相关的知识,希望对你有一定的参考价值。

只要是没有过账的预制凭证,不可以撤销,但可以删除。(用FBV0进入后,找到凭证号,在数据输入视图界面,点凭证下拉,点击删除,OK)。当然,过账后的凭证,只能做相反方向的冲销凭证了!

参考技术A 只要是没有过账的预制凭证,不可以撤销,但可以删除。

SAP的凭证编号是以年为单位的,但是中间还会出现调好的现象。有跳号是正常的,这是SAP的特色,可以通过事务代码S_ALR_87012342 GAPS IN DOCUMENT NUMBER ASSIGNMENT来查看跳掉的号码。一般来说,跳掉的号码都在里面。把这个信息打印出来,作为一个审计凭证,附在会计凭证前面,说明跳号是系统现象,审计人员会接受的。
系统自动生成的号码也可以顺序查找,有跳号的可能有两种情况,根据我的经验:一是生成凭证后没有立即过账,占了一个号,之后又忘了;二是删除一个凭证号。anyway,凭证号是可以理顺的。
参考技术B 如果你是一个用户的话,我会对你说NO,但如果你是一个顾问的话,我的答案可能会是另外一个。
你所说的凭证编号确认是什么样的动作,是指凭证生成之后的编号还是指后台配置的那个凭证编号呢?
如果是凭证生成之后的编号(无论此凭证是否已经过账或是预制状态),这个编号通常是系统自己内部给号,是不允许修改的,没有撤销的功能,而且单独撤销凭证编号也是没有意思的。如果凭证已经过账发现做错的话,需要冲销原凭证重新做凭证。

如果是你所说的凭证编号确认是指后台的配置,这个是可以修改的,但可以修改的空间不大。比如只能把当前号码往大里改,不能往小里改。虽然可以这样改,但通常没有人会这样操作,因为这实在是没有什么意思的事情。追问

本来想汇总编号的,结果操作失误了,一叠单子汇总编号就只有一个凭证编号,操作不当,变成一个单子一个编号,所以最后就有N个凭证编号了,打印也要打印N张凭证了...

追答

看问题描述我觉得你应该是用户。SAP的标准功能是没有汇总编号的功能的,你们的汇总编号应该自定义开发的程序。对于你这样的情况,通常程序应该考虑到操作失误的情况,如果你们的程序无此功能,建议给你们的顾问讲述一下修改程序允许你撤销之前的动作然后重新汇总编号。

参考技术C 凭证编号生成后都是不能撤销的,对这张凭证也不能删除或修改。如果发现错误只能做新的凭证冲销。追问

我只是忘记汇总编号了,然后一个单子就一个号码,本来汇总的话就一叠单子一个号码,这样复核的话也只能一个一个复核了吧?还有打印凭证也要一个一个了对不对?

参考技术D 不能了否则号码段就重复了 不能生产 凭证 ,归档 好像可以

sap abap 流水号设置

1.TCODE:SNRO,进入如图所示界面

技术图片

技术图片

技术图片

2.

  短文本和长文本用来说明这个编号范围对象,输入任意描述即可。     

  子对象数据元素我们这里不填。这里需要说明一下,所谓子对象,多数指一个组织结构,比如公司代码、销售组织、工厂等,这样编号就在对应的每个组织下面独立编号,最典型的例子是财务凭证,每个公司代码下的财务凭证都是独立编号的(其对应的数据表 BKPF,也必定把公司代码做为一个键字段)。而我们这个调度单对应于销售订单,销售订单没有按照组织级别分别编号,因此相应的调度单也就不需要了。      到期年标记是指编号按年度归零,每当开始一个新年度时,相应的编号也需要从头开始,比如财务凭证和物料凭证都是这样(比如表BKPF 和MKPF,都把年度做为一个键字段) ,而我们的调度单不需要对应年度,因此这里也不打勾。 

  编号长度域就填创建的域,但是一定要先激活。指定这个编号范围对象 YLBPP001的长度,我们定义域长度为 10,因此这个编号范围对象生成的编号长度也是 10 位。  无滚动是指如果编号达到最大,是否自动从头开始,勾上就不从头开始,而在获取编号的时候提示出错。我们这里应该打勾。  

   编号范围处理,属于翻译问题,实际就是编号范围的事务码,如果指定这个事务码,就可以不需要通过 SNUM 或者 SNRO 的主屏幕然后输入编号范围对象的名字来维护这个编号范围,而可以输入事务码直接进入它的号码范围维护屏幕。   

   警告百分比是指如果编号使用到一定比例,就发出系统警告,提示管理人员增大范围或者进行历史数据归档,避免编号全部用完后影响正常业务,这里我们填写 95,就是95%的时候提示。   

   主内存缓冲是指系统为了提高性能而预先取出一些编号放在应用服务器上,当程序取用编号时直接从应用服务器获取,而无需再读取数据库了。通常,如果对号码的连续性要求不高的情况下可以使用这种方式,而如果是财务凭证等要求连续的编号,则应该把主内存缓冲关闭。

 

3. 程序读取:

  

      CALL FUNCTION NUMBER_RANGE_ENQUEUE
        EXPORTING
          object           = ‘YLBPP001 "这个就是流水号对象
        EXCEPTIONS
          foreign_lock     = 1
          object_not_found = 2
          system_failure   = 3
          OTHERS           = 4.
      IF sy-subrc EQ 0.


        CALL FUNCTION NUMBER_GET_NEXT
          EXPORTING
            nr_range_nr             = 1                "这个就是维护的间隔号
            object                  = YLBPP001          "这个就是流水号对象
*           QUANTITY                = ‘1‘
*           SUBOBJECT               = ‘ ‘
*           TOYEAR                  = ‘0000‘
*           IGNORE_BUFFER           = ‘ ‘
          IMPORTING
            number                  = wa_data-zz_code           "获得的流水号
*           QUANTITY                =
*           RETURNCODE              =
          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.
* Implement suitable error handling here
        ENDIF.

*      *  ***将号码累加
        CALL FUNCTION NUMBER_RANGE_DEQUEUE 
          EXPORTING
            object           = YLBPP001
          EXCEPTIONS
            object_not_found = 1
            OTHERS           = 2.

很容易理解,首先判断是否有这个number range,如果存在的话,就获得下个序号,

最后一个函数估计是释放这个全局变量的内存(资源)。YLBPP001就是我们创建的number range。如此就可以像会计凭证编号那样每次都可以自动生成流水号了!

流水号可以在自建表中用作主键。

 

以上是关于SAP凭证编号确认后还能撤销吗的主要内容,如果未能解决你的问题,请参考以下文章

如何查看SAP不同类型凭证编号的范围

sap重置凭证之后怎么办

SAP 会计凭证

FICO系列SAP FICO 凭证错误:BKPFF$PRDCLN800在FI中达到的项目最大编号

SAP系统中入库后还能修改订单价格吗

sap号码单范围对于目标BANF不存在啥意思