Estimado:
Este script te genera el correlativo del codigo y te agrega la fila de tu dw, no olvides dejar en "0" el Tab Order para que no se modifique y lo otro que en tu consulta SQL del dw tienes que relizar un ORDER BY ASC; para cualquier tipo de duplicacion de codigo espero que se sirva, me avisas cualquier problema. Suerte.
long ll_cant, ll_fila
string ls_correlativo
dw_1.SetTransObject(SQLCA)
ll_fila = dw_1.InsertRow(0)
dw_1.SetFocus()
dw_1.ScrollToRow(ll_fila)
IF ll_fila = 1 THEN
SELECT count(convert(int,RIGHT(ac_codigo,3)))
INTO :ll_cant
from activos_m;
ELSE
ll_cant = long(right(dw_1.GetItemString(ll_fila - 1,"ac_codigo"),3))
END IF
ll_cant += 1
ls_correlativo = string(ll_cant,'AC000')
dw_1.SetItem(ll_fila,"ac_codigo",ls_correlativo)