Текущее время: Пн, июл 28 2025, 18:41

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Чтение тектостов к позиции фактуры (сбыт)
СообщениеДобавлено: Вт, янв 25 2011, 14:43 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
Доброго всем времени суток.
Помогите, пожалуйста, разрешить небольшую проблему. есть код который считывает текст к позиции фактуры. Все работает если текст к позиции заполнен, соответственно (по умолчанию в фактуре) есть и язык - он RU. Так вот суть проблемы если в параметрах экспорта язык не ставить, тексты не считываются, если оставить RU то программа возвращает ошибку в случае если текста к позиции нет. Как изменить код, таким образом чтобы при не заполненном тексте к позиции возвращалась не ошибка а пустое значение.
Code:
DATA nameID(70).
DATA: lt_tab TYPE TABLE OF tline WITH HEADER LINE.
CONCATENATE VBRP-VBELN VBRP-POSNR INTO nameID.
CALL FUNCTION 'READ_TEXT'
EXPORTING
  ID       = 'ZVNB'
  LANGUAGE = sy-langu
  NAME     = nameID
  OBJECT   = 'VBBP'
TABLES
  LINES = lt_tab
* EXCEPTIONS
*   ID                            = 1
*   LANGUAGE                      = 2
*   NAME                          = 3
*   NOT_FOUND                     = 4
*   OBJECT                        = 5
*   REFERENCE_CHECK               = 6
*   WRONG_ACCESS_TO_ARCHIVE       = 7
*   OTHERS                        = 8
  .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT lt_tab WHERE tdline IS NOT INITIAL.
  bill_facturasd = lt_tab-tdline.
  EXIT.
ENDLOOP.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Чтение тектостов к позиции фактуры (сбыт)
СообщениеДобавлено: Вт, янв 25 2011, 14:58 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Если правильно понял, может просто раскоментировать блок EXCEPTIONS?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение тектостов к позиции фактуры (сбыт)  Тема решена
СообщениеДобавлено: Вт, янв 25 2011, 15:03 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
userID написал(а):
Доброго всем времени суток.
Помогите, пожалуйста, разрешить небольшую проблему. есть код который считывает текст к позиции фактуры. Все работает если текст к позиции заполнен, соответственно (по умолчанию в фактуре) есть и язык - он RU. Так вот суть проблемы если в параметрах экспорта язык не ставить, тексты не считываются, если оставить RU то программа возвращает ошибку в случае если текста к позиции нет. Как изменить код, таким образом чтобы при не заполненном тексте к позиции возвращалась не ошибка а пустое значение.

Исключительные ситуации следует обрабатывать, а не искать магические комбинации параметров.
Что мешает раскоментарить секцию EXCEPTIONS или просто написать
EXCEPTIONS OTHERS = 4. ???
userID написал(а):
Code:
DATA nameID(70).
DATA: lt_tab TYPE TABLE OF tline WITH HEADER LINE.
CONCATENATE VBRP-VBELN VBRP-POSNR INTO nameID.
CALL FUNCTION 'READ_TEXT'
EXPORTING
  ID       = 'ZVNB'
  LANGUAGE = sy-langu
  NAME     = nameID
  OBJECT   = 'VBBP'
TABLES
  LINES = lt_tab
* EXCEPTIONS
*   ID                            = 1
*   LANGUAGE                      = 2
*   NAME                          = 3
*   NOT_FOUND                     = 4
*   OBJECT                        = 5
*   REFERENCE_CHECK               = 6
*   WRONG_ACCESS_TO_ARCHIVE       = 7
*   OTHERS                        = 8
  .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT lt_tab WHERE tdline IS NOT INITIAL.
  bill_facturasd = lt_tab-tdline.
  EXIT.
ENDLOOP.

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение тектостов к позиции фактуры (сбыт)
СообщениеДобавлено: Вт, янв 25 2011, 15:05 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
Besa написал:
Если правильно понял, может просто раскоментировать блок EXCEPTIONS?

пробовал, раскомментировал EXCEPTIONS в части LANGUAGE. Однака не помогает.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Чтение тектостов к позиции фактуры (сбыт)
СообщениеДобавлено: Вт, янв 25 2011, 15:09 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
userID написал(а):
Besa написал:
Если правильно понял, может просто раскоментировать блок EXCEPTIONS?

пробовал, раскомментировал EXCEPTIONS в части LANGUAGE. Однака не помогает.

А в части NOT_FOUND?

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение тектостов к позиции фактуры (сбыт)
СообщениеДобавлено: Вт, янв 25 2011, 16:08 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, май 05 2010, 11:22
Сообщения: 69
Цитата:
или просто написать
EXCEPTIONS OTHERS = 4. ???

в таком варианте все заработало может я в цифирьках не понимаю что они означают? от 1 до 8 это что? возврат кода ошибки sy-subrc для каждого параметра или что?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Чтение тектостов к позиции фактуры (сбыт)
СообщениеДобавлено: Вт, янв 25 2011, 16:21 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Нажмите F1 на операторе CALL FUNCTION. В справке все подробно описано ;)

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение тектостов к позиции фактуры (сбыт)
СообщениеДобавлено: Вт, янв 25 2011, 16:26 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
userID написал(а):
Цитата:
или просто написать
EXCEPTIONS OTHERS = 4. ???

в таком варианте все заработало может я в цифирьках не понимаю что они означают? от 1 до 8 это что? возврат кода ошибки sy-subrc для каждого параметра или что?

А что F1 не доступно?
Цитата:
Addition 5
... EXCEPTIONS exc1 = n1 exc2 = n2 ...


Addition 6
... error_message = n_error


Addition 7
... OTHERS = n_others


Effect
Using EXCEPTIONS, return values can be assigned to non-class-based exceptions exc1, exc2, ... Syntax and meaning of the addition are the same as for CALL METHOD - with the exception that a predefined exception error_message can be specified here. If no exception occurs, a function module call sets sy-subrc to 0.

If the error_message addition is specified after EXCEPTIONS, all MESSAGE statements that are executed during the processing of the function module and do not have the RAISING addition are affected as follows:

Messages of the type S, I, or W are not sent but are noted in the log background processing.


Messages of the type E and A trigger the exception error_message and set sy-subrc to n_error. The message class, message type, message number, and the contents of possible placeholders for the MESSAGE statement are in the fields sy-msgid, sy-msgno, sy-msgty, and sy-msgv1, ... , sy-msgv4. With messages of the type A, the ROLLBACK WORK statement is also explicitly executed.


Messages of the type X are not influenced. As always, they cause program termination with a short dump.

If the RAISING statement is specified in a MESSAGE statement within the function module and a return value is assigned to the corresponding exception exc1, exc2, ... sy-subrc is set to this value. If no return value is assigned to the exception after RAISING, the message is influenced, as described above, by the error_message addition.

As of Release 6.10, function modules can pass on class-based exceptions if exception classes are specified in the Function Builder. In this case, the EXCEPTIONS addition must not be specified

_________________
"После" - не значит "вследствие"


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB