Устаревшее утверждение ABAP «КОПИРОВАТЬ таблицу В таблицу»?

#abap

Вопрос:

Похоже, когда-то было такое утверждение ABAP COPY table TO table. , которое настолько устарело, что больше не упоминается в документации по ключевым словам ABAP. У кого-нибудь есть информация или примеры?

Мы пишем инструмент на Java, который анализирует и преобразует код ABAP. Поэтому у нас нет намерения писать новый код ABAP, но наш инструмент должен обрабатывать все инструкции ABAP, даже устаревшие. Кроме того, я не эксперт по ABAP.

Комментарии:

1. Я не могу вспомнить ни одного заявления о КОПИРОВАНИИ из прошлого. ABAP совместим с понижением (с некоторыми ограничениями), поэтому, если оператор КОПИРОВАНИЯ когда-либо существовал, он также должен быть упомянут в справке ABAP. Если об этом утверждении нет ни единого слова, я предполагаю, что его никогда не существовало.

2. Есть ли у вас где-нибудь упоминание об этом неизвестном COPY table TO table , или это просто миф или городская легенда?

3. Наш инструмент работает для различных версий ABAP, некоторые из которых больше не поддерживаются SAP — клиенты все еще используют их. Таким образом, эта команда, возможно, больше не поддерживается сейчас, но, возможно, когда-то поддерживалась.

4. Я спрашиваю об этой команде, потому что наш инструмент принимает ее — с комментарием «что это за команда?». Этот комментарий к коду был добавлен коллегой, который давно покинул компанию. Итак, я предполагаю: в какой-то момент инструмент out обнаружил такое утверждение, поэтому оно было добавлено в анализатор. Но даже в то время это не упоминалось в документации по ключевым словам ABAP.

5. @UlrichScholz Возможно ли, что кто-то определил макрос с именем COPY , и ваш инструмент ошибочно подумал, что это ключевое слово?

Ответ №1:

Язык ABAP следует философии дизайна, согласно которой старые языковые конструкции могут быть объявлены устаревшими или могут быть незаконными в сочетании с новыми функциями. Например, когда было введено объектно-ориентированное программирование, многие старые операторы стали незаконными, если они использовались в методе класса.

Но группа по разработке языков ABAP в SAP всегда придерживалась кредо, что программа, которая когда-то была законной, всегда будет законной.

Даже ключевые слова, которые устарели на века, все еще можно найти в документации, на случай, если кому-то придется работать с устаревшим кодом, который все еще использует эти языковые функции. Но COPY в алфавитном указателе нет ключевого слова. Существует только <tt:copy> узел для преобразований XML, но, похоже, это не то, что вы ищете.

Поэтому мне кажется, что этого ключевого слова никогда не существовало.

Возможно, вы путаете его с устаревшим MOVE ключевым словом?

 MOVE table1 TO table2.
 

что является архаичной формой письма

 table2 = table1.
 

Комментарии:

1. Не совсем уверен в следующем: «Даже ключевые слова, которые устарели на века, все еще можно найти в документации». Хотя упоминается много устаревших частей языка, это может быть не 100% всех принятых устаревших конструкций. Например, у нас только что был случай, когда строки начинались с <R2> (если я правильно помню). Интересно, сколько им может быть лет? К настоящему времени я не нашел этого в документации по ключевым словам ABAP.

2. @UlrichScholz Может быть, вы имеете в виду директивы #r2 и #r3 препроцессора? Эти действительно, похоже, не имеют документов. Но на самом деле это все еще действующий код, который можно активировать и выполнить. КОПИИ нет. Что заставляет меня поверить, что этой инструкции никогда не существовало, задокументировано это или нет.

3. @UlrichScholz Но если вы можете показать мне фрагмент кода ABAP, который использует эту COPY a TO b конструкцию и который все еще может быть активирован, это убедит меня в том, что я ошибаюсь.