语法err:无法将内部表用作工作区

2020-09-05 21:25发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


hii专家

报告ZMM_BUSINESS_BASE。
表格:ZMM_BUSINESS,T001W,T001L,CEPC。
选择选项:ZMM_BUSINESS-WERKS的工作方法。
* ZMM_BUSINESS-PRCTR的PRCTR。


类型: TY_FINAL的开始,
WERKS类型T001W-WERKS,
NAME1类型T001W-NAME1,
LGORT类型T001L-LGORT,
LIFNR类型T001L-LIFNR,
PRCTR类型CEPC-PRCTR,< br>

TY_FINAL的结尾。
数据:TY_FINAL的WA_FINAL类型,
TY_FINAL的IT_FINAL TYPE表。

TYPE:TY_ZMM_BUSINESS的开始,

WERKS TYPE ZMM_BUSINESS-WERKS,
LGORT类型ZMM_BUSINESS-LGORT,
PRCTR类型ZMM_BUSINESS-PRCTR,
TY_ZMM_BUSINESS的结尾。
类型:TY_T001L的开始,
IGORT类型T001L-LGORT,
WERKS类型T001L-WERKS,
LIFNR类型T001L-LIFNR,
TY_T001L的结尾。
数据:WA_T001L类型 TY_T001L,
TY_T001L的IT_T001L类型表。

类型:TY_T001W的开始,
WERKS类型T001W-WERKS,
NAME1 TYPE T001W-WERKS,
LIFNR TYPE T001W-LIFNR,
TY_T001W的结尾。
DATA:WA_T001W TY_T001W TYPE,
IT_T001W TY_T001W TYPE TABLE。



< br>类型:TY_CEPC的开始,
PRCTR类型CEPC-PRCTR,
NAME1类型CEPC-NAME1,
TY_CEPC的结尾。
数据:WA_CEPC类型TY_CEPC,
IT_CEPC类型表TY_CEPC 。


带标题标题文本001的A块的选择屏幕开始。

选择选项:T001W-WERKS的S_WERKS,T001L-LGORT的S_LGORT,< br> CEPC-PRCTR的S_PRCTR。

A块的选择屏幕末端。

从ZMM_BUSINESS选择WERKS LGORT PRCTR到表IT_ZMM_BUSINESS中S_WERKS中的位置。

IFSS_ZMM_ 不是初始的。
对于所有IT_ZMM_BUSINESS中的条目,从T001L到L_R选择LIFNR到IT_T001L,其中WERKS = IT_ZMM_BUSINESS-WERKS。
ENDIF。

如果IT_T001L不是INITIAL。
SELECT 1 从T001W到IT_T001W的LIFNR,对于IT_T001L中的所有条目,其中LIFNR = IT_T001L-LIFNR。
ENDIF。

如果IT_T001W不初始。
从CEPC中将PRCTR NAME1选择为IT_T001W中所有条目的IT_CEPC,其中NAME1 = IT_T001L-NAME1。
ENDIF。

在IT_ZMM_BUSINESS处进入WA_ZMM_ 。
WA_FINAL-WERKS = WA_ZMM_BUSINESS-WERKS。
WA_FINAL-LGORT = WA_ZMM_BUSINESS-LGORT。
WA_FINAL-PRCTR = WA_ZMM_BUSINESS-PRCTR。
ENDLOOP。

排在IT_T上 。

WA_FINAL-LIFNR = WA_T001L-LIFNR。
ENDLOOP。

将IT_CEPC放入WA_CEPC。
WA_FINAL-NAME1 = WA_CEPC-NAME1。

读取 将表IT_T001W插入具有键WERKS = WA_T001L-WERKS的WA_T001W。
* WA_FINAL-NAME1 = WA_T001L-NAME1。

将WA_FINAL追加到IT_FINAL。
WA_T001L,
WA_CEPC。
ENDLOOP。



循环AI IT_FINAL到WA_FINAL。

WRITE:/WA_FINAL-WERKS,
WA_FINAL -LGORT,
WA_FINAL-PRCTR,
WA_FINAL_NAME1,
WA_FINAL_LIFNR。

ENDLOOP。

该程序在select语句上给出错误(我们不能将内部表用作工作区)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


hii专家

报告ZMM_BUSINESS_BASE。
表格:ZMM_BUSINESS,T001W,T001L,CEPC。
选择选项:ZMM_BUSINESS-WERKS的工作方法。
* ZMM_BUSINESS-PRCTR的PRCTR。


类型: TY_FINAL的开始,
WERKS类型T001W-WERKS,
NAME1类型T001W-NAME1,
LGORT类型T001L-LGORT,
LIFNR类型T001L-LIFNR,
PRCTR类型CEPC-PRCTR,< br>

TY_FINAL的结尾。
数据:TY_FINAL的WA_FINAL类型,
TY_FINAL的IT_FINAL TYPE表。

TYPE:TY_ZMM_BUSINESS的开始,

WERKS TYPE ZMM_BUSINESS-WERKS,
LGORT类型ZMM_BUSINESS-LGORT,
PRCTR类型ZMM_BUSINESS-PRCTR,
TY_ZMM_BUSINESS的结尾。
类型:TY_T001L的开始,
IGORT类型T001L-LGORT,
WERKS类型T001L-WERKS,
LIFNR类型T001L-LIFNR,
TY_T001L的结尾。
数据:WA_T001L类型 TY_T001L,
TY_T001L的IT_T001L类型表。

类型:TY_T001W的开始,
WERKS类型T001W-WERKS,
NAME1 TYPE T001W-WERKS,
LIFNR TYPE T001W-LIFNR,
TY_T001W的结尾。
DATA:WA_T001W TY_T001W TYPE,
IT_T001W TY_T001W TYPE TABLE。



< br>类型:TY_CEPC的开始,
PRCTR类型CEPC-PRCTR,
NAME1类型CEPC-NAME1,
TY_CEPC的结尾。
数据:WA_CEPC类型TY_CEPC,
IT_CEPC类型表TY_CEPC 。


带标题标题文本001的A块的选择屏幕开始。

选择选项:T001W-WERKS的S_WERKS,T001L-LGORT的S_LGORT,< br> CEPC-PRCTR的S_PRCTR。

A块的选择屏幕末端。

从ZMM_BUSINESS选择WERKS LGORT PRCTR到表IT_ZMM_BUSINESS中S_WERKS中的位置。

IFSS_ZMM_ 不是初始的。
对于所有IT_ZMM_BUSINESS中的条目,从T001L到L_R选择LIFNR到IT_T001L,其中WERKS = IT_ZMM_BUSINESS-WERKS。
ENDIF。

如果IT_T001L不是INITIAL。
SELECT 1 从T001W到IT_T001W的LIFNR,对于IT_T001L中的所有条目,其中LIFNR = IT_T001L-LIFNR。
ENDIF。

如果IT_T001W不初始。
从CEPC中将PRCTR NAME1选择为IT_T001W中所有条目的IT_CEPC,其中NAME1 = IT_T001L-NAME1。
ENDIF。

在IT_ZMM_BUSINESS处进入WA_ZMM_ 。
WA_FINAL-WERKS = WA_ZMM_BUSINESS-WERKS。
WA_FINAL-LGORT = WA_ZMM_BUSINESS-LGORT。
WA_FINAL-PRCTR = WA_ZMM_BUSINESS-PRCTR。
ENDLOOP。

排在IT_T上 。

WA_FINAL-LIFNR = WA_T001L-LIFNR。
ENDLOOP。

将IT_CEPC放入WA_CEPC。
WA_FINAL-NAME1 = WA_CEPC-NAME1。

读取 将表IT_T001W插入具有键WERKS = WA_T001L-WERKS的WA_T001W。
* WA_FINAL-NAME1 = WA_T001L-NAME1。

将WA_FINAL追加到IT_FINAL。
WA_T001L,
WA_CEPC。
ENDLOOP。



循环AI IT_FINAL到WA_FINAL。

WRITE:/WA_FINAL-WERKS,
WA_FINAL -LGORT,
WA_FINAL-PRCTR,
WA_FINAL_NAME1,
WA_FINAL_LIFNR。

ENDLOOP。

该程序在select语句上给出错误(我们不能将内部表用作工作区)

付费偷看设置
发送
4条回答
葫芦娃快救爷爷
1楼-- · 2020-09-05 21:55

嗨,

ABAP代码检查器清楚地给出了正确的错误。

似乎在选择查询(SELECT * INTO TABLE)中缺少TABLE关键字。

因此,IT_T001L,IT_T001W ....被视为工作区,您不能循环到工作区。

请再次检查代码。

关于。

Nir深蓝
2楼-- · 2020-09-05 21:58

几点

  1. TABLES已过时。 不要使用它
  2. 您应该使用编辑器中的"代码"按钮来发布代码
  3. 您已获得未使用结果的READ
  4. 如果您使用的是READ,则应该有一个HASHED表而不是STANDARD,并带有READ ... TABLE KEY ...
  5. 您应该加入而不是加入所有条目。
  6. 您有四个选择语句。 哪一个造成了麻烦?
  7. 您已经成功地解决了其中之一。 我建议您仔细阅读所有四个内容,并尝试找出差异。 但是您仍然应该使用上面的第5点。
半个程序猿
3楼-- · 2020-09-05 21:54

对象1:

表格:ZMM_BUSINESS,T001W,T001L,CEPC。

类型:TY_ZMM_BUSINESS的开始,
WERKS类型ZMM_BUSINESS-WERKS,
LGORT类型ZMM_BUSINESS-LGORT,
PRCTR类型ZMM_BUSINESS-PRCTR,
END TY_ZMM_BUSINESS。

要修复:

代替数据表使用数据元素

类型:TY_ZMM_BUSINESS的开始,
WERKS类型WERKS_D,
LGORT类型LGORT_D,
PRCTR类型PRCTR,
TY_ZMM_BUSINESS的结尾。

错误1:

从T001W到IT_T001W中将WNAMES NAME1 LIFNR选择为IT_T001L中的所有条目,其中LIFNR = IT_T001L-LIFNR。

修复:

从T001W的WERKS NAME1 LIFNR到表IT_T001W中,为IT_T001L中的所有条目选择LIFNR = IT_T001L-LIFNR。

错误2:

从T001W到IT_T001W中将WNAMES NAME1 LIFNR选择为IT_T001L中的所有条目,其中LIFNR = IT_T001L-LIFNR。

修复:

从T001W的WERKS NAME1 LIFNR到表IT_T001W中,为IT_T001L中的所有条目选择LIFNR = IT_T001L-LIFNR。

错误3:

从CEPC中将PRCTR NAME1选择为IT_T001W中名称为IT_T001L-NAME1的所有条目的IT_CEPC。

修复:

从CEPC中将PRCTR NAME1选择到表IT_CEPC中,以获取IT_T001W中名称为1的所有条目IT_T001W-NAME1。


错误4:

LOOP AI IT_FINAL进入WA_FINAL。

修复:

在IT_FINAL进入WA_FINAL。

我通过查看代码获得了快照,此处功能ping出现了其他错误

SAP浪
4楼-- · 2020-09-05 21:59

我们使用FOR ALL ENTESES从各个表中获取详细信息,因此每次 我们使用FOR FOR ENTRIES将值填充到Table中。

在上面的select语句中,您使用了FOR ALL ENTRIES,但未使用INTO TABLE IT_T001L语句,而是使用了INTO IT_T001L。

像这样替换您的代码。

如果IT_ZMM_BUSINESS []不初始化。

从T001L选择LGORT WERKS LIFNR到表IT_T001L中,查找IT_ZMM_BUSINESS中的所有条目,其中WERKS = IT_ZMM_BUSINESS-WERKS。

ENDIF。

谢谢

Nikita N。

一周热门 更多>