Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Abap 选择进入内部表和数据类型兼容错误_Abap - Fatal编程技术网

Abap 选择进入内部表和数据类型兼容错误

Abap 选择进入内部表和数据类型兼容错误,abap,Abap,我在SE11中创建了一个包含以下列的结构: column name type (data element) ----------- ------------------- mandt mandt itemdesc arktx quantity lfimg tweight gsgew 我在SE11中创建了一个表类型ZPACK\u DETAIL,其线型与上面的结构相同 然后,我使用下面的代码声明了一个内部表

我在SE11中创建了一个包含以下列的结构:

column name      type (data element)
-----------      -------------------
mandt            mandt
itemdesc         arktx
quantity         lfimg
tweight          gsgew
我在SE11中创建了一个表类型
ZPACK\u DETAIL
,其线型与上面的结构相同

然后,我使用下面的代码声明了一个内部表,并用数据库表中的数据填充它:

DATA : dresult TYPE zpack_detail .

SELECT arktx lfimg ntgew 
    FROM lips AS detail LEFT JOIN marm AS material
    ON detail~matnr = material~matnr
    LEFT OUTER JOIN vbak
    ON detail~vgbel = vbak~vbeln
    INTO TABLE dresult
WHERE detail~vbeln = '001'.
激活报告此警告消息:

DRESULT的组件ITEMDESC的数据类型与LFIMG的数据类型不兼容


谁能给我一个提示怎么了?我声明内部表的方式有问题吗?

事实上,您的代码有几个问题

您必须将变量声明为内部表
ZPACK_DETAIL
是一个结构表,而不是表类型

DATA: dresult TYPE STANDARD TABLE OF zpack_detail WITH EMPTY KEY.

其次。您不应该使用
MANDT
字段,因为您的查询不是独立于客户端的。从您的结构中删除此字段,或使用
进入表格的相应字段
,并将投影调整为
选择arktx作为项目描述lfimg作为数量ntgew作为tweight

我编辑了您的问题以使其连贯:如果您收到此消息,则意味着
zpack_detail
是表格类型(如果它是一个结构,你会得到另一条消息:
dresult不是一个内部表
)。此外,在ABAP 7.52中,它是一个警告,而不是一个错误。要么我是正确的,要么你真的有一个错误,因为可能在7.52之前的系统中它仍然是一个错误。请澄清以下两点:)zpack_detail是一个透明表,而不是一个结构。对于ABAP版本,我不知道如何检查它。但是ABAP平台版本是1809,SAP用户界面版本是753。这与透明表的问题相同,
DATA-dresult-TYPE-zpack\u-detail
将声明一个结构,而不是一个内部表(这正是ABAP的工作方式),因此您仍然会得到错误
dresult不是一个内部表
。1809是最近的,所以它一定是7.52。您是否尝试过在专用程序中显示的代码,以确保错误是您指示的错误?是一个相关的问题。我更新了下面的代码,使用dresult作为smartforms的导入参数,尝试处理时出错<代码>数据:zpack_详情的dresult类型标准表,带空键,调用函数fm_name exporting zdetail=dresult错误代码是
在“zdetail”下只能指定特定类型的字段。字段“dresult”此处指定的字段类型不同。
问题中有一个问题,我请OP澄清(要么
zpack_detail
是一种结构,错误消息不同,要么
zpack_detail
是一种表类型,或者实际代码是zpack_detail的
DATA dresult type表,消息就是所示的).Thx.我用空键更新了类似于
DATA:dresult TYPE zpack_detail的标准表的代码。从lips中选择arktx lfimg ntgew作为detail LEFT JOIN marm作为detail上的材料~matnr=material~matnr LEFT outer JOIN vbak on detail~vgbel=vbak~vbeln到表dresult中detail~vbeln=packo的相应字段中。
并收到错误消息“work area DRESULT不包含任何相应的组件”。您还需要更改投影以选择arktx作为itemdesc lfimg作为quantity ntgew作为tweight。我的回答中提到了这一点。或者,您可以从结构/透明表类型中删除MANDT字段,并将
保留在表中。