Perguntas MsExecAuto FINA070

Mais
3 anos 11 meses atrás - 3 anos 11 meses atrás #32864 por ednino
MsExecAuto FINA070 foi criado por ednino
Estou com uma rotina para baixa de títulos a receber selecionados, testei e já chegou a funcionar, porém agora está apresentando erro na gravação do saldo bancário(SE8).
Grava a baixa na SE1/SE5 normalmente.

20/05/2020 15:02:04 : Error : 2601 (23000) (RC=-1) - [Microsoft][SQL Server Native Client 11.0][SQL Server]Cannot insert duplicate key row in object 'dbo.SE8010' with unique index 'SE8010_UNQ'. The duplicate key value is ( , 033, 4212 , 13015002 , 20200331, 0).
( From tISAMFile::Write )
Thread ID [656] User [Administrador] IO [2347] Tables [59] MaxTables [59] Comment [FINAC002 - TCPIP - ThreadID(3768)] SP [ ] Traced [No] SQLReplay [No] InTran [No] DBEnv [MSSQL/P12_PRD] DBThread [(SPID 98,99)] Started [20/05/2020 14:59:41] IP [127.0.0.1:1234] IDLE [ ] InTransact [ ] Memory [-4875408] Running [ROP_WRITE] RCV [477169] SND [1423823] TCBuild [20181212-20191121] TCVersion [18.2.1.4] ARCH [64] OS [WINDOWS] BUILD [RELEASE]
INSERT INTO dbo.SE8010(E8_BANCO,E8_AGENCIA,E8_CONTA,E8_DTSALAT,R_E_C_N_O_) VALUES ( ?,?,?,?,?)
-- Binded Parameters List --
#1 [C] [033]
#2 [C] [4212 ]
#3 [C] [13015002 ]
#4 [D] [20200331]
#5 [R] [5001]

Alguém já viu esse erro:

Segue parte da rotina:

*
*
Static Function myfina70()
*
*
Local x := 0
Local aBaixa := {}
Local dData := dDatabase
Private lMsErroAuto:= .F.

For x:= 1 to Len(oGet:Acols)

If oGet:Acols[x,1] == 'LBOK'

DbSelectArea("SE1")
DbSetOrder(1)
If DbSeek(xFilial("SE1") + oGet:Acols[x,2] + oGet:Acols[x,3] + oGet:Acols[x,4] + oGet:Acols[x,5])

aBaixa := {{"E1_FILIAL" ,"04" ,Nil },;
{"E1_PREFIXO" ,oGet:Acols[x,2] ,Nil },;
{"E1_NUM" ,oGet:Acols[x,3] ,Nil },;
{"E1_PARCELA" ,oGet:Acols[x,4] ,Nil },;
{"E1_TIPO" ,oGet:Acols[x,5] ,Nil },;
{"E1_CLIENTE" ,oGet:Acols[x,6] ,Nil },;
{"E1_LOJA" ,oGet:Acols[x,7] ,Nil },;
{"AUTMOTBX" ,"NOR" ,Nil },;
{"AUTBANCO" ,"033" ,Nil },;
{"AUTAGENCIA" ,"4212 " ,Nil },;
{"AUTCONTA" ,"13015002 " ,Nil },;
{"AUTDTBAIXA" ,dData ,Nil },;
{"AUTDTCREDITO",dData ,Nil },; //oGet:Acols[x,10]
{"AUTHIST" ,oGet:Acols[x,13] ,Nil },;
{"AUTJUROS" ,0 ,Nil,.T.},;
{"AUTVALREC" ,oGet:Acols[x,12] ,Nil }}

Pergunte("FIN070", .F.)

Begin Transaction
MSExecAuto({|x,y| Fina070(x,y)},aBaixa,3)

If lMsErroAuto
MostraErro()
DisarmTransaction()
Break
Endif
End Transaction
EndIf
EndIf
Next

oGet:Refresh()
oDlg:Refresh()

MsgAlert('Salvo com sucesso !')

oDlg:End()

Return
Ultima edição: 3 anos 11 meses atrás por ednino.

Por favor Acessar ou Registrar para participar da conversa.

Mais
3 anos 11 meses atrás #32865 por admin
Respondido por admin no tópico MsExecAuto FINA070
Brother estranho dar erro na SE8, pq essa rotina apenas baixa o titulo, vc já tentou fazer uma baixa manualmente pra ver se apresenta o mesmo erro.

Por favor Acessar ou Registrar para participar da conversa.

Mais
3 anos 11 meses atrás #32866 por ednino
Respondido por ednino no tópico MsExecAuto FINA070
Manualmente está baixando.

Por favor Acessar ou Registrar para participar da conversa.

Mais
3 anos 11 meses atrás #32867 por ednino
Respondido por ednino no tópico MsExecAuto FINA070
Outra coisa, não sei ao certo como o sistema faz com a SE8, mas já existe essa linha gravada nela, não deveria ser um insert, somente um update nos valores.

Por favor Acessar ou Registrar para participar da conversa.

Mais
3 anos 11 meses atrás #32868 por ednino
Respondido por ednino no tópico MsExecAuto FINA070
Consegui aqui, obrigado.

Inclui:
DbSelectArea("SA6")
SA6->(DbGotop())
SA6->(DbSeek(xFilial("SA6")+"033"+"4212 "+"13015002 "))

{"AUTBANCO" ,SA6->A6_COD ,Nil },;
{"AUTAGENCIA" ,SA6->A6_AGENCIA ,Nil },;
{"AUTCONTA" ,SA6->A6_NUMCON ,Nil },;
Os seguintes usuário(s) disseram Obrigado: admin

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.099 segundos
Joomla templates by a4joomla