Текущее время: Вт, июл 15 2025, 22:23

Часовой пояс: 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 часа


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

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


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

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