在SAP的FICO模块中,经常会遇到会计凭证跳号问题。 当我还是一个新手的时候,还是很害怕发生这样的恐怖事件。束手无策。 跳号问题分为三种级别:青铜、钻石、王者。 青铜: 这种跳号就是一个普通ST22的DUMP,通过跟踪函数NUMBER_GET_NEXT,设置好断点后调试, 查看到OBJECT 参数名字,然后到SNRO中和对应的表里如BKPF,BSEG找到对应的最大值,修改成MAX+1即可。 钻石: 有的时候是SCC1系统拷贝产生的大规模大批量的跳号。 挨个挨个打断点已经无法解决大集团下几百个公司的跳号囧境。这个时候就可以用到神器程序: RFVBER00 查找出跳号的会计凭证 RFBNUM00N 看是否有间隙。 有了1和2,凭证的跳号号码段都会被系统认真分析出来。免去了人工匹配各种VLOOK UP和EXCEL透视图的痛苦。 王者: 在曾经的S4/HANA升级之战中,F-02发生过奇怪的事情 出现了DUMP DBSQL_DUPLICATE_KEY_ERROR CX_SY_OPEN_SQL_DB SAPLKAUP CO-OM 出错表为COBK. 之所以是王者跳号dump是因为这个凭证的可怕之处是进行了“数值”到“字母”的转换。 调用方法:CL_FINS_ACDOC_AUXILIARY_DOCNO=》GET_AUXILIARY_DOCNO TRANSFORM_NUM12_TO_CHAR08 表COBK的凭证是A开头的。但是NUMBER RANGE里面是配置编号。 找到了这个规则之后,我们调用SNRO,查看对象ACDOCA_AUX。 修改成合理的凭证编号之后,万事大吉~成功生成了相关的凭证~ 附NUMBER RANGE报错处详细代码: METHOD get_auxiliary_docno. DATA: lv_number TYPE num12, lv_quantity TYPE inri-quantity, lv_returncode TYPE inri-returncode, ls_prima_nota TYPE gs_ty_prima_nota, ls_buffer_aux_docno TYPE gs_ty_aux_docno. * Pre-Condition: At least AWREF in Prima Nota must be filled ASSERT iv_awref IS NOT INITIAL. * Read Buffer ls_prima_nota-awtyp = iv_awtyp. ls_prima_nota-awsys = iv_awsys. ls_prima_nota-aworg = iv_aworg. ls_prima_nota-awref = iv_awref. READ TABLE gt_aux_docno INTO ls_buffer_aux_docno WITH TABLE KEY prima_nota = ls_prima_nota. IF sy-subrc = 0. rv_aux_docno = ls_buffer_aux_docno-aux_docno.