Type mismatch no EXECAUTO MATA410

Tenho a função:


Static Function IncluiPedEx(aItACols)

    Local nX
    Local aCabec       := {}
    Local aItens       := {}
    Local cItemPed    := "00"
    Local _nLeitura   := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_LEITURA"})
    Local _nQtdVen      := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_QTDVEN"})
    Local _nTes         := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_TES"})
    Local _nPedCli    := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_PEDCLI"})
    Local _nValDes    := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_VALDESC"})
    Local _nIdOport   := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_IDOPORT"})
    Local _nUM           := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_UM"})
    Local _nPrUnit    := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_PRUNIT"})
    Local _nPrcVen    := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_PRCVEN"})
    Local _nDescont   := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_DESCONT"})
    Local _nEntreg    := AScan(aHeader,{|x| AllTrim(x[2]) == "C6_ENTREG"})

    Private lMsErroAuto    := .F.

    //Cabeçalho do Pedido de Venda
    AAdd(aCabec ,{"C5_FILIAL"     , M->C5_FILIAL                 ,Nil}) //Filial
    AAdd(aCabec ,{"C5_CLIENTE"    , M->C5_CLIENTE                     ,Nil}) //Cód Cliente
    AAdd(aCabec ,{"C5_LOJACLI"    , M->C5_LOJACLI                   ,Nil}) //Loja Cliente
    AAdd(aCabec ,{"C5_TIPO"       , M->C5_TIPO                  ,Nil}) //Tipo do Pedido (N - Pedido Normal)
    AAdd(aCabec ,{"C5_TIPOCLI"    , M->C5_TIPOCLI                ,Nil}) //Tipo do Cliente (F - Consumidor Final)
    AAdd(aCabec ,{"C5_EMISSAO"    , M->C5_EMISSAO                ,Nil}) //Emissão    
    AAdd(aCabec ,{"C5_CONDPAG"    , M->C5_CONDPAG                ,Nil}) //Condição de Pagamento            
    AAdd(aCabec ,{"C5_TPFRETE"    , M->C5_TPFRETE                ,Nil}) //Tipo de Frete (C = CIF / F = FOB)
    AAdd(aCabec ,{"C5_FRETE"      , M->C5_FRETE                 ,Nil}) //Valor do Frete
    AAdd(aCabec ,{"C5_CARTAO"     , M->C5_CARTAO                ,Nil}) //Num Cartão
    AAdd(aCabec ,{"C5_ADMCART"    , M->C5_ADMCART                ,Nil}) //Administradora do Cartão
    AAdd(aCabec ,{"C5_IDTRANS"    , M->C5_IDTRANS                ,Nil}) //Id da Transação do Cartão
    AAdd(aCabec ,{"C5_CODAUT"     , M->C5_CODAUT                ,Nil}) //Cod de Autorização da Transação
    AAdd(aCabec ,{"C5_NSU"        , M->C5_NSU                   ,Nil}) //NSU da Transação
    AAdd(aCabec ,{"C5_OBSERVA"    , M->C5_OBSERVA                ,Nil}) //Observação do Pedido
    AAdd(aCabec ,{"C5_PEDSITE"    , M->C5_PEDSITE                ,Nil}) //Numero de Pedido Site
    AAdd(aCabec ,{"C5_PEDORIG"    , M->C5_PEDORIG                ,Nil}) //Origem do Pedido Site     
    AAdd(aCabec ,{"C5_ENDENT"     , M->C5_ENDENT                ,Nil}) //Endereço Entrega
    AAdd(aCabec ,{"C5_NROENT"     , M->C5_NROENT                ,Nil}) //Numero End Entrega
    AAdd(aCabec ,{"C5_COMPENT"    , M->C5_COMPENT                ,Nil}) //Complemento End Entrega
    AAdd(aCabec ,{"C5_BAIRENT"    , M->C5_BAIRENT                ,Nil}) //Bairro End Entrega
    AAdd(aCabec ,{"C5_CODMENT"    , M->C5_CODMENT                ,Nil}) //Cod Municipio End Entrega
    AAdd(aCabec ,{"C5_MUNENT"     , M->C5_MUNENT                ,Nil}) //Municipio End Entrega
    AAdd(aCabec ,{"C5_ESTENT"     , M->C5_ESTENT                ,Nil}) //Estado End Entrega
    AAdd(aCabec ,{"C5_CEPENT"     , M->C5_CEPENT                ,Nil}) //Cep End Entrega         
    AAdd(aCabec ,{"C5_DESPESA"    , M->C5_DESPESA                ,Nil}) //Valor Despesa
    AAdd(aCabec ,{"C5_INDPRES"    , M->C5_INDPRES                ,Nil}) //Presença Comprador
    AAdd(aCabec ,{"C5_VEND1"      , M->C5_VEND1                 ,Nil}) //Vendedor
    AAdd(aCabec, {"C5_MENNOTA"      , M->C5_MENNOTA                ,Nil}) //Mensagem para Nota
    AAdd(aCabec ,{"C5_NATUREZ"    , M->C5_NATUREZ                ,Nil}) //Natureza

    For nX := 171 to Len(aItACols)

        //Itens do Pedido de Venda - Itens Excedidos
        aLinha := {}
        cItemPed := Soma1(cItemPed)

        //Itens do PV
        AAdd(aLinha ,{"C6_ITEM"     , cItemPed                    ,Nil}) //Item do Pedido
        AAdd(aLinha ,{"C6_LEITURA"  , aItACols[nX][_nLeitura]     ,Nil}) //Leitura
        AAdd(aLinha ,{"C6_QTDVEN"   , aItACols[nX][_nQtdVen]    ,Nil}) //Quantidade Venda
        AAdd(aLinha ,{"C6_TES"      , aItACols[nX][_nTes]        ,Nil}) //Tes
        AAdd(aLinha ,{"C6_PEDCLI"   , aItACols[nX][_nPedCli]    ,Nil}) //Pedido Site
        AAdd(aLinha ,{"C6_VALDESC"  , aItACols[nX][_nValDes]    ,Nil}) //Valor Desconto
        AAdd(aLinha ,{"C6_IDOPORT"  , aItACols[nX][_nIdOport]    ,Nil}) //ID Oportunidade (Sales Force)
        AAdd(aLinha ,{"C6_UM"          , aItACols[nX][_nUM]        ,Nil}) //Unidade - Obrigatório colocar esse campo para não dar problemas com o campo UNIDADE no momento da devolução de vend
        AAdd(aLinha ,{"C6_PRUNIT"      , aItACols[nX][_nPrUnit]    ,Nil}) //Valor unitario
        AAdd(aLinha ,{"C6_PRCVEN"      , aItACols[nX][_nPrcVen]    ,Nil}) //Preço
        AAdd(aLinha ,{"C6_DESCONT"  , aItACols[nX][_nDescont]    ,Nil})
        AAdd(aLinha ,{"C6_ENTREG"      , aItACols[nX][_nEntreg]    ,Nil}) //DATA DE ENTREGA - POD    

        Aadd(aItens, aLinha)

        If nX == Len(aItACols) .OR. nX == 340 .OR. nX == 510 .OR. nX == 680 .OR. nX == 850 .OR. nX == 1020    //Limite de itens por faturamento ou quando chegar ao fim dos itens

            MsExecAuto({|x,y,z| MATA410(x,y,z)}, aCabec, aItens, 3)//Executa o ExecAuto.

            If lMsErroAuto              
                lInclui     := .F.
                aItens         := {}
                cItemPed    := "00"
            Else
                lInclui     := .T.
                aItens         := {}
                cItemPed    := "00"
            EndIf
        EndIf

    Next nX

Return lInclui

Que ao ser executada tenho o retorno de erro:


Tabela SC5 19/02/2025 16:59:17
Filial               - C5_FILIAL    := 06
Cliente              - C5_CLIENTE   := 276723 < -- Invalido
Loja                 - C5_LOJACLI   := 01
Tipo Pedido          - C5_TIPO      := N
Tipo Cliente         - C5_TIPOCLI   := F
DT Emissao           - C5_EMISSAO   := 19/02/2025
Cond. Pagto          - C5_CONDPAG   := 006
Tipo Frete           - C5_TPFRETE   := C
Frete                - C5_FRETE     := 0
Num Cartao           - C5_CARTAO    :=                     
Adm Cartao           - C5_ADMCART   :=                     
Id Transacao         - C5_IDTRANS   :=                                                   
Cod Aut              - C5_CODAUT    :=                
NSU                  - C5_NSU       :=                          
Observacao           - C5_OBSERVA   :=                                                                                                     
Pedido Site          - C5_PEDSITE   :=                     
Origem Ped           - C5_PEDORIG   :=                                                                                 
End.Entrega          - C5_ENDENT    :=                                                                                           
No. Endereco         - C5_NROENT    :=       
Compl.Entreg         - C5_COMPENT   :=                                         
Bairro Entr.         - C5_BAIRENT   :=                                         
Cod.Mun.Entr         - C5_CODMENT   :=      
Mun. Entrega         - C5_MUNENT    :=                                         
Est.Entrega          - C5_ESTENT    :=   
CEP Entrega          - C5_CEPENT    :=         
Despesa              - C5_DESPESA   := 0
Presenca Com         - C5_INDPRES   := 0
Vendedor 1           - C5_VEND1     := VD0002
Mens.p/ Nota         - C5_MENNOTA   := TESTE 180ITENS                                                                                                                                                                                                                                            
Natureza             - C5_NATUREZ   := 2101001   
Erro -->  Ocorreu um erro durante a validacao:
type mismatch on {|| if(aCols[n,Len(aCols[n])],              12632256,              16777215)} line : 423
Called from REFRESH line : 0
Called from A410RECALC line : 1250
Called from EVALVALID line : 1171
Called from ENCHAUTO line : 368
Called from A410INCLUI line : 1287
Called from MBROWSEAUTO line : 86
Called from MATA410 line : 137
Called from {|X,Y,Z| MATA410(X,Y,Z)} line : 376
Called from MSEXECAUTO line : 3136
Called from INCLUIPEDEX line : 376
Called from U_MT410TOK line : 223
Called from EXECBLOCK line : 165
Called from A410VLDTOK line : 93
Called from {||NOPCA:=1,IF(A410VLDTOK(NOPC,ARECNOSE1RA) .AND. OGETD:TUDOOK(),IF(!OBRIGATORIO(AGETS,ATELA),NOPCA:=0,ODLG:END()),NOPCA:=0)} line : 3264
Called from SAFEEVAL line : 7060
Called from {|| ( LOKOK:=IF(LMESSAGEDEL,IIF(FINDFUNCTION("APMSGYESNO"), APMSGYESNO(OEMTOANSI(FWI18NLANG("MSLIB","STR0014",14)), OEMTOANSI(FWI18NLANG("MSLIB","STR0015",15))), (CMSGYESNO:="MSGYESNO", &CMSGYESNO.(OEMTOANSI(FWI18NLANG("MSLIB","STR0014",14)), OEMTOANSI(FWI18NLANG("MSLIB","STR0015",15))))), .T. ),LOK:=IF(LOKOK,(REGOTO(NREG,CALIAS),SAFEEVAL(BOK)), .F. ),EVALRETOK(LOK,NBAR),IF(TYPE("INCLUI") = "L" .AND.  __NNIVELBAR == 0 .AND.  (VALTYPE(LOK) <> "L" .OR.  LOK),__LLOOP := INCLUI,)) } line : 996
Called from {||  EVAL(BOK) } line : 416
Called from ACTIVATE line : 0
Called from A410COPIA line : 3264
Called from A410PCOPIA line : 2895
Called from EXECUTE line : 1169
Called from {|| OSELF:EXECUTE("A410PCOPIA",              6,             0,"COPIAR",              7,"('SC5',SC5->(RECNO()),4)","COPIAR","",               7) } line : 579
Called from ACTIVATE line : 0
Called from ACTIVATE line : 700
Called from BROWSEDEF line : 344
Called from MATA410 line : 159
Called from __EXECUTE line : 735
Called from MDIEXECUTE line : 924

--------------------------------------------------------------------------------

Poderiam compartilhar possíveis soluções?

Tenta fazer um teste sem o ponto de entrada MT410TOK, para ver se não é ele o problema.

1 curtida

Tem um ponto de entrada que está dando erro no seu rpo. U_MT410TOK

1 curtida

@kleysongomes7

Ao verificar a ultima posição do conteúdo passado no aCols, o mesmo está inválido. Confira essa informação.

Pois olhando o erro a comparação é feita na última posição contida no acols.

Veja no ponto de entrada U_MT410TOK antes de fazer a chamada da MsExecAuto, qual o valor aItens.

Este cliente + loja existe, correto?

1 curtida