Após suar mto a camisa, um colega descobriu a causa do problema.
Include LJ1BNF05
FORM adopt_bestd_prdif
o problema estava em:
case p_invoice. "1021036
when space. "1021036
if p_action = 'A03' "cancel "1021036
or p_action = 'A02'. "1174517
if ( ( p_bustw = 'WE01' OR "1977720
p_bustw = 'WA01' ) AND p_buzid = 'T' ). "1977720
p_bestd = p_bestd - p_amount. "916275
endif. "916275
Identificamos que problema foi causado pela aplicação da SAP NOTE 1977720
Abrimos uma chamado na SAP e a resposta foi que "Esse é o comportamento do standard", ou seja o problema no movimento standard foi resolvido, se está com problema em copia de movimento e/ou adaptação do processo se 'Lasque' !!! (para não dizer outra coisa), um tremendo balão e falta de atenção e foco com processos especiais e específicos do Brasil (Legislação muito simples e de fácil compreensão) !!
Essa nota resolveu o problema com cancelamento de subcon, porem criou esse outro problema
A solução foi criar um enhancement com a seguinte regra:
DATA: lv_bwart TYPE mseg-bwart.
IMPORT lv_bwart FROM MEMORY ID 'LV_BWART'.
FREE MEMORY ID 'LV_BWART'.
IF p_xstor = '2' OR
p_action = 'A02' OR
p_action = 'A03' AND
( lv_bwart = '902' OR
lv_bwart = '912' ).
CASE p_invoice.
WHEN space.
IF p_action = 'A03' "cancel
OR p_action = 'A02'.
IF p_bustw = 'WA01' AND p_buzid = 'T'.
p_bestd = p_bestd + p_amount.
ENDIF.
ENDIF.
ENDCASE.
Sds
Jose Gama