billion написал(а):
одна проблема:
в таблице wa0009 три записи с причиной (massg=05):
50020104 ЦТП БригадаПоРемВнешГазоп
50020104 ЦТП БригадаПоРемВнешГазоп
50020104 ЦТП БригадаПоРемВнешГазоп
а вот r_massg->count показывает "1" всегда.
Я таки чуток набокопорил

. Но это радует: если свеженаписанная программа при первом же запуске работает, как следует, это не к добру...
Попробуйте заменить:
Code:
READ TABLE r_final->t_massg REFERENCE INTO r_massg WITH KEY massg = r_pp0001->massg.
IF sy-subrc <> 0.
APPEND INITIAL LINE TO r_final->t_massg REFERENCE INTO r_massg. " тут, возможно, мизерная потеря в производительности
r_massg->massg = r_pp0001->massg.
r_massg->count = r_massg->count + 1.
add 1 to r_massg->count.
ENDIF.
на
Code:
READ TABLE r_final->t_massg REFERENCE INTO r_massg WITH KEY massg = r_pp0001->massg.
IF sy-subrc <> 0.
APPEND INITIAL LINE TO r_final->t_massg REFERENCE INTO r_massg. " тут, возможно, мизерная потеря в производительности
r_massg->massg = r_pp0001->massg.
ENDIF.
r_massg->count = r_massg->count + 1.
Примечание. add 1 to r_massg->count. - то же самое, что r_massg->count = r_massg->count + 1.
billion написал(а):
.... всё исковырял... не могу найти причину.
??? Ошибка очень простая.