一句 SQL 查询影响凭证创建

作者:斌将军 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:CO, FI, 财务
一句 SQL 查询影响凭证创建 - 封面图
一句 SQL 查询影响凭证创建 - 封面图

** _如果某件事情可能出错,那么它就一定会出错!_ **

** _—— 墨菲_ **

今日暂不分享技术文档给大家,而是把最近踩的坑,找两个出来跟大家分享一下,让大家乐呵乐呵。

**坑1:如题**

此处代码量很大,我将其缩减,将关键代码贴出,请看图:

一句 SQL 查询影响凭证创建 - 封面图
一句 SQL 查询影响凭证创建 - 封面图

** 背景: **

1.原有的程序,使用 sy -dbcn t 判断③和④处的查询结果。如果没找到数据,则要传特殊库存为K。

2.现在逻辑,需要我在②处增加查询语句,然后就掉入了陷阱。

** 原因: **

1.原逻辑中,如果移动类型为301/311,逻辑无误,但如果是其他移动类型,则sy-

dbcnt就判断不到自建表A的查询结果。该情况下便会往上追溯,追溯到①处的查询结果,而且恒等于1。恰恰这样的逻辑又正好符合业务需求,一直创建非K的凭证。此处就像一个马蜂窝,挂在枝头。

2.我在②处增加了查询逻辑,就导致⑤处的sy-dbcnt判断,追溯到②的查询结果,就导致一旦②处查询不到数据,便创建K库存凭证。

3.修改之后,不太充分的测试,未发现②为空时,创建的K库存凭证,以致于影响扩大。

这个马蜂窝终究还是砸身上了。

** 纠正: **

1.对某过程结果的判断,请紧紧跟随该过程的代码块,越多的情况判断,越要紧紧相连。

2\. **充分测试! 充分测试! 充分测试! **

**坑2:关于批导**

用户使用原有批导程序创建销售订单,修改时发现销售订单报错:日期无效。

查找原因发现,在定义Excel导入内表时,开发人员全部定义了字符类型

一句 SQL 查询影响凭证创建 - 封面图
一句 SQL 查询影响凭证创建 - 封面图

** 纠正: **

此处尽可能参考表-字段来定义

**原因1:**

当日期类字段用char去接,未做特殊处理,直接传入BAPI。当字段为空值时,便导致空字符传入标准表日期字段中,形成无效日期值

在调用修改BAPI时,也要注意,不能将空字符串传入日期字段进行置空更新,否则也会导致日期无效

一句 SQL 查询影响凭证创建 - 封面图
一句 SQL 查询影响凭证创建 - 封面图

**原因2:**

参考表-字段定义内表字段,来接收Excel数据,可以过滤一部分不规范数据,也能起到检查作用,减少错误数据进入标准表的情况

以上就是这两个坑,问题也解决了,讲出来让大家乐呵乐呵。

我就不乐啦,因为乐不出来了 一句 SQL 查询影响凭证创建 - 封面图

斌将军

关于作者:斌将军

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「一句SQL查询影响凭证创建.md」整理生成,仅用于内部技术分享与学习交流。