- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Cadastrar produto em varias filiais de uma vez
×
Linguagem de Programação ADVPL
Perguntas Cadastrar produto em varias filiais de uma vez
- Rei da TI
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
11 anos 1 semana atrás #18462
por Rei da TI
Respondido por Rei da TI no tópico Cadastrar produto em varias filiais de uma vez
Sobre o erro:
THREAD ERROR (Reinaldo.Mauricio, MMTNBKDTI60CTA) 12/11/2013 10:54:19
type mismatch on .AND. on INTEGRASFC(MATA010.PRX) 23/10/2012 21:28:50 line : 5472
[TOTVS build: 7.00.120420A-20120726]
Called from A010TUDOOK(MATA010.PRX) 23/10/2012 21:28:50 line : 3247
Era base desatualizada.... vou continuar o teste.
THREAD ERROR (Reinaldo.Mauricio, MMTNBKDTI60CTA) 12/11/2013 10:54:19
type mismatch on .AND. on INTEGRASFC(MATA010.PRX) 23/10/2012 21:28:50 line : 5472
[TOTVS build: 7.00.120420A-20120726]
Called from A010TUDOOK(MATA010.PRX) 23/10/2012 21:28:50 line : 3247
Era base desatualizada.... vou continuar o teste.
Por favor Acessar ou Registrar para participar da conversa.
- Rei da TI
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
11 anos 1 semana atrás #18482
por Rei da TI
Respondido por Rei da TI no tópico Cadastrar produto em varias filiais de uma vez
Então galera, estou fazendo da maneira que o Kanaãm falou, fui acompanhando e esta tudo certo so no final da um erro em uma customização que temos aqui...alguem sabe por que? será que estou fechando as tabelas no local errado?
Erro no gatilho : b1_subcat Sec.001
Work area not in use
abaixo segue o fonte que fiz.
#include "protheus.ch"
#include "topconn.ch"
User Function A010TOK
Local lRet := .T.
Local cMsg := "Deseja incluir este produto nas demais Filiais?"
Local cCaption := "Copiando..."
if inclui
//mostra pergunta do parametro cMsg
If ApMsgNoYes(cMsg, cCaption)
//tabela com as informaçoes das filiais
DbSelectArea("SM0")
While SM0->(!Eof())
//Filial da tabela é diferente da filial logada?
if SM0->M0_CODFIL <> cfilant
RecLock("SB1",.T.)
AvReplace("M","SB1")
//altero a filial do produto
SB1->B1_FILIAL = SM0->M0_CODFIL
//libero registro
SB1->(MsUnlock())
endif
//proximo registro
SM0->(DbSkip())
End Do
//libero registro
SM0->(dbCloseArea())
endif
endif
Erro no gatilho : b1_subcat Sec.001
Work area not in use
abaixo segue o fonte que fiz.
#include "protheus.ch"
#include "topconn.ch"
User Function A010TOK
Local lRet := .T.
Local cMsg := "Deseja incluir este produto nas demais Filiais?"
Local cCaption := "Copiando..."
if inclui
//mostra pergunta do parametro cMsg
If ApMsgNoYes(cMsg, cCaption)
//tabela com as informaçoes das filiais
DbSelectArea("SM0")
While SM0->(!Eof())
//Filial da tabela é diferente da filial logada?
if SM0->M0_CODFIL <> cfilant
RecLock("SB1",.T.)
AvReplace("M","SB1")
//altero a filial do produto
SB1->B1_FILIAL = SM0->M0_CODFIL
//libero registro
SB1->(MsUnlock())
endif
//proximo registro
SM0->(DbSkip())
End Do
//libero registro
SM0->(dbCloseArea())
endif
endif
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 1 semana atrás #18486
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Cadastrar produto em varias filiais de uma vez
Faz assim:
#include "protheus.ch"
#include "topconn.ch"
User Function A010TOK
Local aArea := GetArea()
Local lRet := .T.
Local cMsg := "Deseja incluir este produto nas demais Filiais?"
Local cCaption := "Copiando..."
if inclui
//mostra pergunta do parametro cMsg
If ApMsgNoYes(cMsg, cCaption)
//tabela com as informaçoes das filiais
DbSelectArea("SM0")
nRec := SM0->(Recno())
SM0->(dbGoTop())
While SM0->(!Eof())
//Filial da tabela é diferente da filial logada?
if SM0->M0_CODFIL <> cfilant
RecLock("SB1",.T.)
AvReplace("M","SB1")
//altero a filial do produto
SB1->B1_FILIAL = SM0->M0_CODFIL
//libero registro
SB1->(MsUnlock())
endif
//proximo registro
SM0->(DbSkip())
End Do
//libero registro
//SM0->(dbCloseArea()) COMENTA ESSA LINHA NÃO PODE FECHAR ESSA TABELA
SM0->(dbGoTo(nRec))
endif
endif
RestArea(aArea)
Return
#include "protheus.ch"
#include "topconn.ch"
User Function A010TOK
Local aArea := GetArea()
Local lRet := .T.
Local cMsg := "Deseja incluir este produto nas demais Filiais?"
Local cCaption := "Copiando..."
if inclui
//mostra pergunta do parametro cMsg
If ApMsgNoYes(cMsg, cCaption)
//tabela com as informaçoes das filiais
DbSelectArea("SM0")
nRec := SM0->(Recno())
SM0->(dbGoTop())
While SM0->(!Eof())
//Filial da tabela é diferente da filial logada?
if SM0->M0_CODFIL <> cfilant
RecLock("SB1",.T.)
AvReplace("M","SB1")
//altero a filial do produto
SB1->B1_FILIAL = SM0->M0_CODFIL
//libero registro
SB1->(MsUnlock())
endif
//proximo registro
SM0->(DbSkip())
End Do
//libero registro
//SM0->(dbCloseArea()) COMENTA ESSA LINHA NÃO PODE FECHAR ESSA TABELA
SM0->(dbGoTo(nRec))
endif
endif
RestArea(aArea)
Return
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Rei da TI
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
11 anos 1 semana atrás #18493
por Rei da TI
Respondido por Rei da TI no tópico Cadastrar produto em varias filiais de uma vez
RESOLVIDOOOO
Galera...
Deu certo da forma que o Kanaãm informou e que o Luiz corrigiu,desta forma funciona direitinho...Obrigado a todos pela força.
Galera...
Deu certo da forma que o Kanaãm informou e que o Luiz corrigiu,desta forma funciona direitinho...Obrigado a todos pela força.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 1 semana atrás #18497
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Cadastrar produto em varias filiais de uma vez
Maravilha, se puder contribuir com a caixinha de natal ficamos imensamente gratos.
Abraços
Abraços
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Rei da TI
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Cadastrar produto em varias filiais de uma vez
Tempo para a criação da página:0.136 segundos