Текущее время: Сб, июл 05 2025, 17:04

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Особенности абапа в версии 4.7
СообщениеДобавлено: Чт, дек 01 2005, 16:27 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Коллеги,
У кого ядро 6.20 и Уровень заплаты больше 682
Упадет ли у вас в дамп такая программа при отключенной галке Проверки юникода акт.

Code:
REPORT  ztest.
FIELD-SYMBOLS <f> TYPE glt0.
FIELD-SYMBOLS <f1> TYPE glt0-tsl01.
FIELD-SYMBOLS <f2> TYPE glt0-tsl01.

DATA:
fname1(30),
fname2(30),
i_glt0 TYPE TABLE OF glt0 WITH HEADER LINE
.
DATA:
   tmp TYPE glt0-tsl01
, res TYPE glt0-tsl01.

START-OF-SELECTION.

  SELECT * FROM glt0 INTO TABLE i_glt0 UP TO 10 ROWS
  WHERE tsl01 <> 0.
  fname1 = 'I_GLT0-TSL01'.
  fname2 = 'I_GLT0-TSL02'.
  LOOP AT i_glt0.
    ASSIGN (fname1) TO <f1>.
    ASSIGN (fname2) TO <f2>.
    PERFORM saldo.
  ENDLOOP.
  WRITE: /  res.
  ULINE.
  fname1 = '<F>-TSL01'.
  fname2 = '<F>-TSL02'.
  LOOP AT i_glt0 ASSIGNING <f>.
    ASSIGN (fname1) TO <f1>.
    ASSIGN (fname2) TO <f2>.
    PERFORM saldo.
  ENDLOOP.
  WRITE: /  res.

*---------------------------------------------------------------------*
*       FORM saldo                                                    *
*---------------------------------------------------------------------*
FORM saldo.
  DO 2 TIMES VARYING tmp FROM <f1> NEXT <f2>.
    ADD tmp TO res.
    WRITE tmp.
  ENDDO.
ENDFORM.                    "saldo


У нас ядро 6.40 Уровень заплаты 87, программы работавшие в 4.6 падают в дамп, выставили меssage, что ситуация аналогична ноте 601520, в ответ получили рекомендацию переписать программы.
Про конструкцию range напоминать не надо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 01 2005, 19:17 
Гость
ядро - 6.40. не уверен по поводу уровня ядра - вроде 14. все прекрасно работает


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 09 2005, 12:59 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Попробовал на ядре 6.40 Уровень заплаты 21
Результат - дамп.
Для тех, кому придется аврально переписывать подобные программы
код в подсказку:

Code:
report  ZTEST.
field-symbols <F> type GLT0.
field-symbols <F1> type GLT0-TSL01.
field-symbols <F2> type GLT0-TSL01.

data:
FNAME1(30),
FNAME2(30),
I_GLT0 type table of GLT0 with header line
.
data:
   TMP type GLT0-TSL01
, RES type GLT0-TSL01.

start-of-selection.
  select * from GLT0 into table I_GLT0 up to 10 rows
  where TSL01 <> 0.
  FNAME1 = '<F>-TSL01'.
  FNAME2 = '<F>-TSL02'.
  loop at I_GLT0 assigning <F>.
    assign (FNAME1) to <F1>.
    assign (FNAME2) to <F2>.
    perform SALDO.
  endloop.
  write: /  RES.

form SALDO.
  do 2 times varying TMP from <F1> next <F2> range <F>.
    add TMP to RES.
    write TMP.
  enddo.
endform.                    "saldo

Изменение: range <F>.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 09 2005, 13:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Классный код, прям загляденье!!. А поведайте, плиз (может я чего не знаю), почему нельзя было сделать вот так:
Code:
loop at I_GLT0 assigning <F>.
  do 2 times varying TMP from <F>-TSL01 next <F>-TSL02.
    add TMP to RES.
    write TMP.
  enddo.
endloop.
:!: :?: :!: :?:
Ну если уж вам обязательно надо использовать подпрограмму, то вообще-то в них можно параметры делать (если кто не знает)
Code:
FORM saldo USING p_glt0 TYPE glt0.
  do 2 times varying TMP from P_GLT0-TSL01 next P_GLT0-TSL02.
    add TMP to RES.
    write TMP.
  enddo.
ENDFORM.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 09 2005, 14:58 
Гость
2 Сергей Королев
Естественно был приведен максимально упрощенный пример, отражающий принцип разработки.
Автор исходных строк активно пользовался комбинацией ctrl c - ctrl v,
возможно не только на этом проекте.
Моя задача максимально быстро привести их в работоспособное состояние, свой вариант я привел.
Возможно кто-то тоже столкнется с такими творениями при upgrade.
За второй вариант спасибо.

P.S. лучше бы автор на абап курсы сходил, а не со своим смайликом в разделе прочие выступал :twisted:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 09 2005, 15:12 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Это был мой пост.


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

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


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

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


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

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