Bom dia, estou tentando gerar mais de um documento de entrada via execauto e estou recebendo o erro a seguir quando gero o segundo documento:
--------------------------------------------------------------------------------
AJUDA:FA050NUM
Número título já existe para este forne-cedor.
Tabela SF1 10/03/2021 10:24:05
- cTipo :=N
- cFormul :=N
- cNFiscal :=010032021
- cSerie :=1
- dDEmissao :=10/03/2021
- cLoja :=01
- cA100For :=002453 < -- Invalido
- cEspecie :=REC
--------------------------------------------------------------------------------
O primeiro documento é gerado corretamente, porém ao gerar o segundo, aparentemente a numeração que está tentando gerar o título é do primeiro documento.
Por exemplo, gerei o documento "1" e gerou o título para esse documento, então pego a próxima numeração para gerar o próximo documento, no caso "2", e quando gero ocorre que está referenciando ao documento "1".
Já tentei formulário próprio = Sim e Não. Já tentei enviar com F1_FORMUL = Sim e sem numero de documento. Inclusive gerando duas notas para fornecedores diferentes, gera o mesmo erro.
Segue trecho do código.
Begin Transaction
// reinicia variáveis
lMsErroAuto := .F.
_cDoc := GetSxeNum("SF1", "F1_DOC")
// confirma a sequencia
ConfirmSX8()
// dados do cabecalho da NF
aAdd(_aCabAuto,{"F1_FILIAL" , xFilial("SF1") ,Nil})
aAdd(_aCabAuto,{"F1_TIPO" , _cTipoNota ,Nil})
aAdd(_aCabAuto,{"F1_FORMUL" , "N" ,Nil})
aAdd(_aCabAuto,{"F1_DOC" , _cDoc ,Nil})
aAdd(_aCabAuto,{"F1_SERIE" , _cSer ,Nil})
aAdd(_aCabAuto,{"F1_EMISSAO", dDataBase ,Nil})
aAdd(_aCabAuto,{"F1_FORNECE", _cCliente ,Nil})
aAdd(_aCabAuto,{"F1_LOJA" , _cLoja ,Nil})
aAdd(_aCabAuto,{"F1_ESPECIE", "REC" ,Nil})
aAdd(_aCabAuto,{"F1_CONDPAG", _cCondPag ,Nil})
aAdd(_aCabAuto,{"F1_NATUREZ", _cNaturez ,Nil})
aAdd(_aCabAuto,{"F1_VEXIDRE", _cReportID ,Nil})
// ordena dados conforme dicionário
_aCabAuto := FWVetByDic(_aCabAuto,'SF1',.F.)
DbSelectArea("SF1")
DbSelectArea("SD1")
MsExecAuto({|x,y,z| MATA103(x,y,z)}, _aCabAuto, _aIteAuto, 3) // 3-inclusao
// ocorreu erro
If lMsErroAuto
RollBackSX8()
DisarmTransaction()
MostraErro()
_lRet := .F.
Else
_lRet := .T.
EndIf
End Transaction
Grato!