During depreciation posting(AFAB), sometimes, the error AA003 will be raised when you want to posting some transactions.
Firstly, the system’s behavior is correct! it’s designed to avoid some inconsistence.
To check this point, please check the program RAPOST2000:
* Company Code Lock to avoid inconsistencies
CALL FUNCTION ‘ENQUEUE_ET093C’
BUKRS = p_bukrs
_SCOPE = ‘1’
OTHERS = 1 .
IF sy-subrc <> 0.
WRITE sy-uname TO v2 LEFT-JUSTIFIED.
WRITE p_bukrs TO v1 LEFT-JUSTIFIED.
USING ‘A’ ‘AA’ ‘064’ v1 v2 c_space c_space.
For update run of AFAB, we can only use the background mode. Hence, it’s hard to reproduce this issue.
General, for background job debugging, we can do it like below:
Refer to note 573128.
Select a job in transaction SM37. In addition, set a breakpoint at
the point in the source code that you want to analyze when
debugging. In SM37, enter JDBG in the OK code field, and choose
ENTER. The selected job is now started in debug mode, and the
debugger initially stops in a system program. Choose F8 to continue
the job up to the next breakpoint.
Caution: Although the job still appears in SM37 in the previous
status after debugging, the entire job (or, more specifically, a
copy of it) has run during debugging and possible database changes
are effective as a result of the job.
With this way, we can set a break-point at the line after ENQUEUE.
Then, debug the background job, now, all of the asset under the company code P_BUKRS is blocked.
then try to post something for asset under this company code. error AA003 will be raised.