MVC Execauto MATA010

Amigos, boa tarde!

Por algum motivo que não estou conseguindo identificar o motivo do erro abaixo:


DescriþÒo de erro: [erro no parÔmetroFWFormFieldsModel: Quantidade de campos retornado pelo bloco de carga do modelo:SB1MASTER, Ú menor que a quantidade de campos na estrutura. Verifique o bloco de carga:{|X,Y|FORMLOADFIELD(X,Y)}}Pilha de Erro: [ THREAD ERROR ([12208], HTTP_WT_LJPRODREST_HTTPREST_WEBREST@01|FALSE, THIS) 20/04/2021 12:14:28

erro no parÔmetroFWFormFieldsModel: Quantidade de campos retornado pelo bloco de carga do modelo:SB1MASTER, Ú menor que a quantidade de campos na estrutura. Verifique o bloco de carga:{|X,Y|FORMLOADFIELD(X,Y)} on LOAD(FWFORMFIELDSMODEL.PRX) 04/12/2020 09:31:42 line : 2773

Estou fazendo um fonte para alteração e inclusão de produto via integração com outro sistema.

Segue abaixo o exemplo do meu código usando apenas os campos obrigatórios:

//Pegando o modelo de dados, setando a operação de inclusão
    oModel := FWLoadModel("MATA010")
    oModel:SetOperation(nOpc)
    oModel:Activate()

    //Pegando o model e setando os campos
    //oSB1Mod := oModel:GetModel("SB1MASTER")
    oModel:SetValue("SB1MASTER","B1_GRUPO"      , oParseJSON:B1_GRUPO     )
    oModel:SetValue("SB1MASTER","B1_COD"        , oParseJSON:B1_COD       )
    oModel:SetValue("SB1MASTER","B1_DESC"       , oParseJSON:B1_DESC      )
    oModel:SetValue("SB1MASTER","B1_TIPO"       , oParseJSON:B1_TIPO      )    
    oModel:SetValue("SB1MASTER","B1_UM"         , oParseJSON:B1_XIDIOMA   )
    oModel:SetValue("SB1MASTER","B1_LOCPAD"     , oParseJSON:B1_LOCPAD    )
    oModel:SetValue("SB1MASTER","B1_PRV1"       , oParseJSON:B1_PRV1      )
    oModel:SetValue("SB1MASTER","B1_CODBAR"     , oParseJSON:B1_CODBAR    )
    oModel:SetValue("SB1MASTER","B1_POSIPI"     , oParseJSON:B1_POSIPI    )
    oModel:SetValue("SB1MASTER","B1_TS"         , oParseJSON:B1_TS        )
    oModel:SetValue("SB1MASTER","B1_ORIGEM"     , oParseJSON:B1_ORIGEM    )
    oModel:SetValue("SB1MASTER","B1_GRTRIB"     , oParseJSON:B1_GRTRIB    )
    oModel:SetValue("SB1MASTER","B1_GRPTI"      , oParseJSON:B1_GRPTI     )
    oModel:SetValue("SB1MASTER","B1_XSINOPS"    , oParseJSON:B1_XSINOPS   )
    oModel:SetValue("SB1MASTER","B1_XIDIOMA"    , oParseJSON:B1_XIDIOMA   )
    oModel:SetValue("SB1MASTER","B1_XEDITOR"    , oParseJSON:B1_XEDITOR   )
    oModel:SetValue("SB1MASTER","B1_XAUTOR"     , oParseJSON:B1_XAUTOR    )
    oModel:SetValue("SB1MASTER","B1_XAUTOR2"    , oParseJSON:B1_XAUTOR2   )
    oModel:SetValue("SB1MASTER","B1_XANOEDI"    , oParseJSON:B1_XANOEDI   )
    oModel:SetValue("SB1MASTER","B1_XLARGUR"    , oParseJSON:B1_XLARGUR   )
    oModel:SetValue("SB1MASTER","B1_XALTURA"    , oParseJSON:B1_XALTURA   )
    oModel:SetValue("SB1MASTER","B1_XCOMPRI"    , oParseJSON:B1_XCOMPRI   )
    oModel:SetValue("SB1MASTER","B1_PESBRU"     , oParseJSON:B1_PESBRU    )
    oModel:SetValue("SB1MASTER","B1_XTPENC"     , oParseJSON:B1_XTPENC    )
    oModel:SetValue("SB1MASTER","B1_PESO"       , oParseJSON:B1_PESO      )
    oModel:SetValue("SB1MASTER","B1_SERIE"      , oParseJSON:B1_SERIE     )
    oModel:SetValue("SB1MASTER","B1_XNRPAGI"    , oParseJSON:B1_XNRPAGI   )
    oModel:SetValue("SB1MASTER","B1_XPAIS"      , oParseJSON:B1_XPAIS     )
    oModel:SetValue("SB1MASTER","B1_XCOLECA"    , oParseJSON:B1_XCOLECA   )

    //Se conseguir validar as informações
    If oModel:VldData()

        //Tenta realizar o Commit
        If oModel:CommitData()
            lOk := .T.

            //Se não deu certo, altera a variável para false
        Else
            lOk := .F.
        EndIf

    //Se não conseguir validar as informações, altera a variável para false
    Else
        lOk := .F.
    EndIf

    //Se não deu certo a inclusão, mostra a mensagem de erro
    If ! lOk
        //Busca o Erro do Modelo de Dados
        aErro := oModel:GetErrorMessage()

        aAdd(aMensag, {'{"Retorno":"200"' +;
        ',"Id do formulário de origem:":'  + '"' + cValToChar(aErro[01]) + '"'+;
        ',"Id do campo de origem: "    :'  + '"' + cValToChar(aErro[02]) + '"'+;
        ',"Id do formulário de erro: " :'  + '"' + cValToChar(aErro[03]) + '"'+;
        ',"Id do campo de erro: "      :'  + '"' + cValToChar(aErro[04]) + '"'+;
        ',"Id do erro: "               :'  + '"' + cValToChar(aErro[05]) + '"'+;
        ',"Mensagem do erro: "         :'  + '"' + cValToChar(aErro[06]) + '"'+;
        ',"Mensagem da solução: "      :'  + '"' + cValToChar(aErro[07]) + '"'+;
        ',"Valor atribuído: "          :'  + '"' + cValToChar(aErro[08]) + '"'+;
        ',"Valor anterior: "           :'  + '"' + cValToChar(aErro[09]) + '"}'})

        //Mostra mensagem de erro
        lRet := .F.
        ConOut("Erro!")
    Else
        lRet := .T.
        ConOut("Produto incluido!")
    EndIf

    //Desativa o modelo de dados
    oModel:DeActivate()

Alguém já passou por isso?

compartilhar
  • Raphael, que operação você está fazendo? Qual o valor de nOpc?

    Daniel Mendes   20 de Apr de 2021
  • Oi Daniel, boa tarde! Estou passando 4 (MODEL_OPERATION_UPDATE)

    Raphael Neves Pinheiro   20 de Apr de 2021
  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 advpl mvc mata010 json rest ou faça a sua própria pergunta.