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

Использование/неиспользование проверки при ASSIGNING



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



Joined: 01 Nov 2011
Posts: 29

PostPosted: Wed Apr 25, 2012 4:53 pm    Post subject: Использование/неиспользование проверки при ASSIGNING Reply with quote

Добрый день! Возник вот такой вопрос. В программе имеется 2 ASSIGNING:

1) READ TABLE gt_out ASSIGNING <fs_out>
WITH KEY wbillnr = ls_out-wbillnr.
IF <fs_out> IS ASSIGNED.
...
ENDIF.

2) LOOP AT gt_equnr ASSIGNING <fs_out>.
...
ENDLOOP.

Вопрос такой: почему в 1-ом случае(т.е. при ASSIGNING в READ) нужна проверка IS ASSIGNED, а в случае LOOP она не нужна? В чём причина?
Back to top
View user's profile Send private message
Armann
Модератор
Модератор



Joined: 01 Jan 2008
Posts: 422
Location: Moscow

PostPosted: Wed Apr 25, 2012 7:22 pm    Post subject: Reply with quote

Если вы попали внутрь LOOP - то <fs_out> будет всегда assigned, без вариантов. Следовательно и проверка внутри цикла не нужна
Back to top
View user's profile Send private message Blog
Кодер
Участник
Участник



Joined: 11 Apr 2012
Posts: 27

PostPosted: Fri May 04, 2012 7:54 pm    Post subject: Reply with quote

2 Hanna_89: маленькое дополнение, не стоит после READ TABLE проверять ASSIGNING, лучше использовать проверку sy-subrc. Проверять таким образом лучше, т.к. если у вас, к примеру, выполняется READ TABLE в цикле, и вы забыли сделать UNASSIGN перед READ TABLE, то у вас field-symbol может иметь привязку к предыдущей прочитанной строке. А это уже будет ошибкой.
Back to top
View user's profile Send private message
dump
Участник
Участник



Joined: 09 Nov 2007
Posts: 7

PostPosted: Sat May 12, 2012 12:49 pm    Post subject: Reply with quote

надо проверять IS ASSIGNED потому что SY-SUBRC меняется КОРРЕКТНО только в случае если

ASSIGN mem_area TO <fs> casting_spec range_spec

The return value is set only for the dynamic variants of mem_area.

а здесь статический
Back to top
View user's profile Send private message
Кодер
Участник
Участник



Joined: 11 Apr 2012
Posts: 27

PostPosted: Mon May 14, 2012 9:05 am    Post subject: Reply with quote

2 dump: А Вы сообщение мое читали? Я писал про то, что sy-subrc нужно проверять при READ TABLE.
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.