Reclock cria registro com campos em branco

Estou utilizando essa função para inserir uma linha na tabela SNG. Porém ela é criada em branco mesmo o array tendo os valores necessarios para inserção. Alguem já teve esse problema?

static function ClonaSNG(cDest, oSay)
    local nY := 0
    local aCampos := {}


    DbSelectArea("SNG")
    DbSetOrder(1)
    // Adiciona no array
    aAdd(aCampos, {"NG_FILIAL" , SubStr(cDest,1,3)})

    for nY := 1 to SNG->(fCount())
        if X3Uso(GetSX3Cache(SNG->(FieldName(nY)), "X3_USADO"))
            if Alltrim(SNG->(FieldName(nY))) <> "NG_FILIAL"
                aAdd(aCampos, {SNG->(FieldName(nY)), SNG->&(FieldName(nY))})
            endif
        endif
    next nY

    // Aplica o array

    if len(aCampos) > 0
        Begin Transaction

            RecLock("SNG", .T.)

                for nY := 1 to Len(aCampos)
                    SNG->(aCampos[nY][1]) := (aCampos[nY][2])
                    ProcessMessages()
                next nY

            SNG->(MsUnlock())

            oSay:SetText("Clonando "+SNG->NG_GRUPO+" para a empresa: " + cDest)
        End Transaction
    endif
return nil
compartilhar
  • Se o problema for loop dentro do reclock, alguem saberia uma maneira melhor de ser feito?

    Thiago Barros   1 month ago
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags reclock ou faça a sua própria pergunta.