SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Ошибка в определении внутренней таблицы.



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
GazKerosin
Участник
Участник



Joined: 19 Jul 2012
Posts: 2

PostPosted: Thu Jul 19, 2012 5:19 pm    Post subject: Ошибка в определении внутренней таблицы. Reply with quote

Доброго времени суток.

Недавно при программировании на ABAP столкнулся с проблемой:
есть код:

Code:
REPORT  ZTEST_1.

tables: IFLOT, IFLOTX, IMPTT, IMRG.

types: BEGIN OF temp_type,
            TPLNR like IFLOT-TPLNR,
            PLTXT like IFLOTX-PLTXT,
            POINT like IMPTT-POINT,
            PTTXT like IMPTT-PTTXT,
            ATINN like IMPTT-ATINN,
            MDOCM like IMRG-MDOCM,
            IDATE like IMRG-IDATE,
            READG like IMRG-READG,
            CNTRR like IMRG-CNTRR,
            CDIFF like IMRG-CDIFF,
            MRNGU like IMPTT-MRNGU,
       END OF temp_type.

data: temp_data_table type temp_type occurs 100 with header line.

select-options num_TP for temp_data_table-TPLNR.
select-options num_MP for temp_data_table-POINT.
select-options ind_MP for temp_data_table-ATINN.
select-options lab_Meas for temp_data_table-MRNGU.
select-options date_DOC for temp_data_table-IDATE.

select * into corresponding fields of table temp_data_table
(36)  from temp_data_table
    where temp_data_table-TPLNR in num_TP
        and temp_data_table-POINT in num_MP
        and temp_data_table-ATINN in ind_MP
        and temp_data_table-MRNGU in lab_Meas
        and temp_data_table-IDATE in date_DOC.
LOOP AT temp_data_table.
    WRITE: / temp_data_table-EQUNR color col_key, temp_data_table-OBJNR, temp_data_table-EQKTX, temp_data_table-EQUNR, temp_data_table-MPOBJ, temp_data_table-POINT, temp_data_table-ATINN, temp_data_table-IDATE, temp_data_table-POINT.


На строке (36) возникает ошибка: "TEMP_DATA_TABLE" is not defined in the ABAP Dictionary as a table, projection view or database view.

Описывал внутреннюю таблицу согласно документации по созданию внутренних таблиц.

Кто может помочь решить проблему?
Back to top
View user's profile Send private message
alezhu
Специалист
Специалист



Joined: 29 Apr 2012
Posts: 86
Location: Spb

PostPosted: Thu Jul 19, 2012 6:51 pm    Post subject: Reply with quote

select из внутренних таблиц не выбирает - только из БД
Back to top
View user's profile Send private message
GazKerosin
Участник
Участник



Joined: 19 Jul 2012
Posts: 2

PostPosted: Fri Jul 20, 2012 2:03 am    Post subject: Reply with quote

alezhu wrote:
select из внутренних таблиц не выбирает - только из БД


А как должно быть?

Сделал немного по-другому:

Code:
REPORT  ZTEST_1.

tables: IFLOT, IFLOTX, IMPTT, IMRG.

types: BEGIN OF temp_type,
            TPLNR like IFLOT-TPLNR,
            PLTXT like IFLOTX-PLTXT,
            POINT like IMPTT-POINT,
            PTTXT like IMPTT-PTTXT,
            ATINN like IMPTT-ATINN,
            MDOCM like IMRG-MDOCM,
            IDATE like IMRG-IDATE,
            READG like IMRG-READG,
            CNTRR like IMRG-CNTRR,
            CDIFF like IMRG-CDIFF,
            MRNGU like IMPTT-MRNGU,
       END OF temp_type.

data: temp_data_table type temp_type occurs 100 with header line.

select-options num_TP for temp_data_table-TPLNR.
select-options num_MP for temp_data_table-POINT.
select-options ind_MP for temp_data_table-ATINN.
select-options lab_Meas for temp_data_table-MRNGU.
select-options date_DOC for temp_data_table-IDATE.

select TPLNR from IFLOT into corresponding fields of table temp_data_table
  where TPLNR in num_TP.
select PLTXT from IFLOTX into corresponding fields of table temp_data_table.
select POINT PTTXT ATINN MRNGU from IMPTT into corresponding fields of table temp_data_table
  where POINT in num_MP
    and ATINN in ind_MP
    and MRNGU in lab_Meas.
select MDOCM IDATE READG CNTRR CDIFF from IMRG into corresponding fields of table temp_data_table
  where IDATE in date_DOC.

select TPLNR PLTXT POINT PTTXT ATINN MDOCM IDATE READG CNTRR CDIFF MRNGU
  from temp_data_table
    where temp_data_table-TPLNR in num_TP
        and POINT in num_MP
        and ATINN in ind_MP
        and MRNGU in lab_Meas
        and IDATE in date_DOC.
LOOP AT temp_data_table.
    WRITE: / temp_data_table-TPLNR color col_key,
             temp_data_table-PLTXT,
             temp_data_table-POINT,
             temp_data_table-PTTXT,
             temp_data_table-ATINN,
             temp_data_table-MDOCM,
             temp_data_table-IDATE,
             temp_data_table-READG,
             temp_data_table-CNTRR,
             temp_data_table-CDIFF,
             temp_data_table-MRNGU.
 ENDLOOP.


Ошибка в том же месте.
Back to top
View user's profile Send private message
DiVo
Участник
Участник



Joined: 24 Sep 2009
Posts: 8

PostPosted: Fri Jul 20, 2012 9:43 am    Post subject: Reply with quote

Таблица, которую Вы указываете в предложении FROM оператора SELECT, должна обязательно существовать в словаре данных. Вы же указываете внутреннюю таблицу. Поэтому и ошибка.

Code:

select TPLNR PLTXT POINT PTTXT ATINN MDOCM IDATE READG CNTRR CDIFF MRNGU
  from temp_data_table "<- FROM DDIC-table
...
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Mon Jul 23, 2012 2:11 pm    Post subject: Reply with quote

Другими словами, для выбора данных из внутренней таблицы могут использоваться только операторы LOOP и READ TABLE.
Для выбора во внутреннюю таблицу в SELECT .. FROM нужно указывать таблицу, которая существует в БД, например IFLOT.
Посмотрите транзакцию ABAPDOCU, раздел "Язык программирования ABAP - Обработка больших массивов данных"

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.