ABAP 功能代码示例:判断此物料是否在其对应的工厂存在,如果不存在,则报错

64 篇文章 1 订阅
LOOP AT gt_so_inf into gs_so_inf.
“物料在此工厂是否存在”
select count(*)  from marc where werks = go_so_inf-werks and matnr = gs_so_inf-matnr.
if sy-subrc ne 0.
	lv_msg = '物料'  && gs_so_inf-matnr && '在该工厂:'  && gs_so_inf-werks && '不存在!'.
	message lv_msg  type 'E'.
endif.
	message '数据正确!' type 'S'.
endloop.

此处我们从 marc 工厂中寻找 已存在的

select count(*) 查询所有marc中所有满足条件的行,看是否存在 同时与当前循环中的工厂与物料同时相等
在select 语句中,如果sy-subrc 不等于0 ,即代表没有数据,然后进行报错
(sy-subrc = 0 则代表至少有一条数据 ,sy-DBCNT 中保存着记录的个数)

如果您在使用 ABAP 代码查询工厂 1500 中不属于库存管理的物料时,程序出现报错信息 "在工厂 1500 中物料不属于库存管理 (请检查你的输入)",可能是由于以下原因: 1. 工厂号或物料类别输入错误:请检查您输入的工厂号和物料类别是否正确。如果输入错误,系统将无法找到符合条件的数据,从而出现报错。 2. 物料不属于库存管理:如果您输入的工厂号和物料类别都正确,但仍然出现报错信息,可能是因为该物料不属于库存管理。在 SAP 中,有些物料是不需要进行库存管理的,例如服务类物料、非库存物料等。如果您的查询条件包含这些物料,就会出现报错信息。 3. 数据库连接或权限问题:如果您的 ABAP 代码中包含数据库连接或权限问题,也可能导致程序出现报错信息。请检查您的 ABAP 代码是否存在这些问题,并进行相应的修改。 针对以上原因,您可以尝试以下操作: 1. 检查输入条件:请检查您输入的工厂号和物料类别是否正确。可以使用 SAP物料主数据浏览器 (MM03) 来确认该物料是否属于库存管理。 2. 修改查询条件:如果您的查询条件包含不需要进行库存管理的物料,可以修改查询条件,仅查询库存管理类别的物料。 3. 检查 ABAP 代码:请检查您的 ABAP 代码是否存在数据库连接或权限问题。可以使用 SAP 的调试器 (SE38) 对 ABAP 代码进行调试,并查找报错信息的具体原因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值