Текущее время: Пн, июл 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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