Utilização da classe FWBulk

Fala galera, alguém já utilizou a classe FWBulk? Numa tabela padrão do sistema, o Recno tem que ser enviado ou a própria classe gera a numeração?

Sergio,

A classe FWBulk utiliza de recursos do DBAccess, que por sua vez fica responsável pela geração do campo R_E_C_N_O_, portanto não é necessário enviar ou preocupar-se com o mesmo.

Abaixo um exemplo da classe FWBulk utilizando uma tabela do padrão, no caso a SED:


#include "protheus.ch"

//-------------------------------------------------------------------
/*/{Protheus.doc} sedBulk
Exemplo da classe FWBulk efetuando inserção de dados na SED

@author Daniel Mendes
@since 15/03/2021
@version 1.0
/*/
//-------------------------------------------------------------------
user function sedBulk()
local oBulk as object
local aFields as array
local cFilSED as char
local nI as numeric

if FWBulk():canBulk()
    rpcSetEnv("99", "01")

    oBulk := FWBulk():new(RetSqlName("SED"))
    cFilSED := xFilial("SED")
    aFields := {}

    aAdd(aFields, {"ED_FILIAL"})
    aAdd(aFields, {"ED_CODIGO"})
    aAdd(aFields, {"ED_DESCRIC"})

    // É possível informar a tabela e os campos também dessa forma
    // oBulk:setTable(RetSqlName("SED"))
    // oBulk:setFields(SED->(DBStruct()))

    oBulk:setFields(aFields)

    for nI := 1 to 10
        oBulk:addData({cFilSED, StrZero(nI, 5), "Descrição " + StrZero(nI, 2)})
    next

    oBulk:close()
    oBulk:destroy()

    FreeObj(oBulk)

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

return

Documentação: https://tdn.engpro.totvs.com.br/display/public/PROT/FWBulk