i debug into the code,and find that at first it creates a belnr number by using a function
the table has only one line,and the value of the field 'BELNR_I' is '$ 1',the generated belnr is in field 'BELNR_E'
and then loop table 'mt_acdoc_projected' to get generated belnr by matching field 'BELNR_I'
as you can see,the value in table 'mt_acdoc_projected' is '% 1' and '& 1',but in table 'mt_acdoc_number' there is only one line with value '& 1',so the sy-subrc return 4 when read table with key .
i don't know what happened with it,maybe there are some error in item table?