FWBulk não grava os dados

Senhores, estou com o problema com a função FWBulk, estou tentando gravar alguns registros e não da erro , mas também não grava

ATUALIZAÇÃO 1
Olhando o log do dbaccess alguns registro estão estourando o tamanho do campo, mas de 16k de registos foram 600 erros
The size (8) of the decimal part of the number (0.03333333) informed is greater than the size (2) supported by the field (ZB5_LDTMR)

===================

/*/{Protheus.doc} za5Bulk
(long_description)
@type user function
@author Leandro Lemos
@since 29/09/2025
@version version
@param param_name, param_type, param_descr
@return return_var, return_type, return_description
@example
(examples)
@see (links_or_references)
/*/
Static function za5Bulk(oJSaidaProdutos)
	local oBulk                as object
	local aFields              := {} as array
	local cFilSED              := "" as char
	local nI                   := 0 as numeric
	local nX                   := 0 as numeric
	local nW                   := 0 as numeric
	Local cHrInicio            := Time()

aNamesPrd := oJSaidaProdutos:GetNames()
aNamesFields := oJSaidaProdutos[aNamesPrd[1]]:GetNames()

for nW := 1 to len(aNamesFields)
	cCampo := aNamesFields[nW]
	aAdd( aFields, {cCampo/* , TamSx3(cCampo)[3], TamSx3(cCampo)[1], TamSx3(cCampo)[2]  */})
next

if FWBulk():canBulk()

	oBulk := FWBulk():new(RetSqlName("ZB5"))
	cFilSED := xFilial("ZB5")

	oBulk:setTable(RetSqlName("ZB5"))

	oBulk:setFields(aFields)

	for nI := 1 to len(aNamesPrd)
		aData := {}
		for nX := 1 to len(aFields)
			aAdd(aData,oJSaidaProdutos[aNamesPrd[nI]][aFields[nX][1]])
		next
		lCanBulk :=  oBulk:addData(aData)
		if lCanBulk
			Conout('Gravou o produto '+oJSaidaProdutos[aNamesPrd[nI]]['ZB5_PRODUT'])
		else
			//Conout('Erro ao gravar o produto ')
			Conout('Erro ao gravar o produto '+oJSaidaProdutos[aNamesPrd[nI]]['ZB5_PRODUT']+oBulk:getError())
		endif
	next

	oBulk:close()
	oBulk:destroy()

	FreeObj(oBulk)

else
	//Essa classe não funciona com SQLite
	ConErr("Atualize o DBAccess")
endif

return

@lemos.leandro esse problema é porque o FWBulk exige que vc passe os campos já no tamanho e precisão numérica exatos que serão usados no banco de dados, fazendo tratamentos de round ou truncando strings maiores.
Na versões mais recentes de Lib e DBaccess eles melhoraram as mensagens de erro e fizeram tratamentos para isso.
Veja na documentação o método SetOption() explica isso.
https://tdn.totvs.com/display/framework/FWBulk