Nano Hash - криптовалюты, майнинг, программирование

Элементы списка, занимающие более одной строки, не допускаются ошибка со сложным оператором IF

Я новичок в кодировании ABAP в APD. Как мне написать подобное заявление в коде ABAP?

if ((ls_source-VHMODEL == 'M1' OR ls_source-VHMODEL == 'M2') AND (ls_source-CREATE_DATE <= '2016-01-01' AND ls_source-CREATE_DATE >= '2014-01-01'))
{
// do stuff
}
else if ((ls_source-VHMODEL == 'H1' OR ls_source-VHMODEL == 'C3') AND (ls_source-CREATE_DATE <= '2015-01-01' AND ls_source-CREATE_DATE >= '2014-02-01'))
{
// do stuff
}

Я пробовал это:

  if ( ( ls_source-VHMODEL EQ 'M1' OR ls_source-VHMODEL EQ 'M2')  AND
(ls_source-CREATE_DATE > '20120122' AND ls_source-CREATE_DATE < '20120922')).
    MOVE 'Segment 2' TO ls_target-SEGMENT.
  else.
    MOVE 'Other' TO ls_target-SEGMENT.
  endif.

Но это дало мне ошибку

Синтаксическая ошибка: элементы списка, занимающие более одной строки, не допускаются.

18.01.2016

  • Я прочитал scn.sap.com/thread/1724117, но это не дает пример того, как выполнить оценку более чем 1 переменной. Я прочитал sapstack.com/abap/abap-if-statement и снова не не дайте мне пример того, как выполнить оценку более чем 1 переменной. Я попробовал if ((ls_source-VHMODEL EQ 'M1' OR ls_source-VHMODEL EQ 'M2') AND (ls_source-CREATE_DATE <= '2016-01-01' AND ls_source-CREATE_DATE >= '2014-01-01'))., но получил Syntax error: List elements that take up more than one line are not permitted., хотя все было в одной строке. 19.01.2016

Ответы:


1

Попробуй это:

if (  ( ls_source-vhmodel eq 'M1' or ls_source-vhmodel eq 'M2' ) and
      ( ls_source-create_date le '20160101' and ls_source-create_date ge '20140101' )
   ).
* Do something
elseif (
          ( ls_source-vhmodel eq 'H1' or ls_source-vhmodel eq 'C3' ) and
          ( ls_source-create_date le '20150101' and ls_source-create_date ge '20140201' )
       ).
*Do something
endif.

Помните о скобках, как они разделены в коде.

Надеюсь, поможет.

18.01.2016
  • Спасибо, но я получаю ошибку Syntax error: List elements that take up more than one line are not permitted 19.01.2016
  • Возможно ли, что вы опубликуете свой код, чтобы точно проверить, что не так, пожалуйста? 19.01.2016
  • Да, я проверил это. Ну, в моем случае вы можете видеть в моем коде, что скобки разделены пробелом, то же самое в начале между открытыми скобками и переменной. Попробуйте именно так: if ( ( ls_source-VHMODEL EQ 'M1' OR ls_source-VHMODEL EQ 'M2') AND ( ls_source-CREATE_DATE › '20120122' AND ls_source-CREATE_DATE ‹ '20120922') ). ПЕРЕМЕСТИТЕ «Сегмент 2» В ls_target-SEGMENT. еще. ПЕРЕМЕСТИТЕ «Другое» В ls_target-SEGMENT. конец 19.01.2016

  • 2

    Не могли бы вы проверить, что перед вашей скобкой стоит пробел?

    Компилятор ABAP, как известно, чувствителен к таким вещам, поскольку круглые скобки могут означать что-то еще (например, смещение в данных).

    18.01.2016

    3

    Проблема в том, что вы не оставили пробела между скобками. В отличие от других языков, ABAP требует пробела между круглыми скобками и остальной частью оператора.

    (ls_source-CREATE_DATE > '20120122' AND ls_source-CREATE_DATE < '20120922')).
    ^^^                                                                       ^^^
    
    26.05.2017

    4

    Ваша проблема заключается в скобках, а также в пробелах до и после ( и ).

    Этот код компилируется:

    if ( ls_source-vhmodel eq 'M1' or ls_source-vhmodel eq 'M2' )  and
      ( ls_source-create_date > '20120122' and ls_source-create_date < '20120922' ).
      move 'Segment 2' to ls_target-segment.
    else.
      move 'Other' to ls_target-segment.
    endif.
    
    23.01.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..