#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
конструкцию и который все еще может быть активирован, это убедит меня в том, что я ошибаюсь.