今天碰到这样一个需求,判断物料是否满足DBG这3个视图创建了。要知道DBG 代表什么可以用事务码MM50查看,或者看下面的解释。
V:Sales
E:Purchasing
D:MRP
P:Forecast
A:WorkScheduling
L:General Plant Data
S:WareHouse
Q:QM
B:Accounting
G:Costing
处理代码如下:
loop at itab1.
CLEAR itab2.
move-CORRESPONDING itab1 to itab.
READ TABLE itab2 with key matnr = itab1-matnr.
if sy-subrc = 0 and itab2-pstat cp '*D*' AND itab2-pstat cp '*B*' AND itab2-pstat cp '*G*'.
itab-remark = 'X'.
itab-wstlnr = itab2-stlnr.
itab-wplnnr = itab2-plnnr.
endif.
append itab.
ENDLOOP.
说明
CO
操作字符串1中每个字符都在操作字符串2中存在,则表达式为true,反之为false.表达式为true时sy-fdpos = 操作字符串1的长度,为false时,sy-fdpos = 操作字符串1中不在操作字符串2中的字符所在作字符串1中第一个位置。
CN
操作字符串1中不是每个字符都在操作字符串2中存在,则表达式为true,反之为false.表达式为false时sy-fdpos = 操作字符串1的长度,为true时,sy-fdpos = 操作字符串1中不在操作字符串2中的字符所在作字符串1中第一个位置。
CA
操作字符串1中任意字符在操作字符串2中存在,则表达式为true,sy-fdpos = 第一个出现在操作字符串2中的字符所在操作字符串1中的第一个位置。反之为false ,sy-fdpos = 操作字符串1长度。
NA
操作字符串1中任意字符在操作字符串2中不存在,则表达式为true,sy-fdpos = 操作字符串1长度。反之为false ,sy-fdpos = 第一个出现在操作字符串2中的字符所在操作字符串1中的第一个位置。
CS
操作字符串1中任意字符串在操作字符串2中存在,则表达式为true,sy-fdpos = 第一个出现在操作字符串2中的字符串的第一个字符所在操作字符串1中的第一个位置。反之为false ,sy-fdpos = 操作字符串1长度。如果操作字符串1为空操作字符串2不空则表达式为false,sy-fdpos = 0.
NS
操作字符串1中任意字符串在操作字符串2中不存在,则表达式为true,sy-fdpos = 操作字符串1长度。反之为false ,sy-fdpos = 第一个出现在操作字符串2中的字符串的第一个字符所在操作字符串1中的第一个位置。
CP
操作字符串1与操作字符串2中字符完全匹配,操作字符串2中输入通配符 “*”代表任意字符串,“+”任意字符。如果匹配则表达式为true,sy-fdpos = 操作字符串1中与操作字符串2中除操作通配符外的第一个字符位置。反之为false ,sy-fdpos =操作字符串1的长度。
NP
操作字符串1与操作字符串2中字符不完全匹配,操作字符串2中输入通配符 “*”代表任意字符串,“+”任意字符。如果匹配则表达式为true,sy-fdpos =操作字符串1的长度。反之为false ,sy-fdpos = 操作字符串1中与操作字符串2中除操作通配符外的第一个字符位置。