- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda com ponto de entrada para o OMS - Gestão de Distribuição
×
Linguagem de Programação ADVPL
Perguntas Ajuda com ponto de entrada para o OMS - Gestão de Distribuição
- tatiane_rc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
11 anos 7 meses atrás #12325
por tatiane_rc
Boa tarde,
Gostaria de uma ajuda. Utilizamos o OMS - Gestão de Distribuição, e ao acessar o menu Atualizações -> Cargas -> Montagem de Carga, utilizo a rotina "Carregamento" e "Associar Veículo" para preencher a placa ao veículo ao emitir o documento de saída.
Acontece que sempre que gero o documento de saída, é gravada uma NF nas tabelas SF1,SD1 e SF2,SD2. O problema é que na SF1 temos um campo personalizado F1_ZZPLACA, e esse campo não é preenchido quando utilizo a rotina "associar veiculo".
Observei que existe um ponto de entrada no programa OMSA200.PRW, que é o OS200ASS, só que o campo que preencho a placa do veículo é um campo virtual.
Abaixo o código que estou desenvolvendo:
#Include "Totvs.ch"
#Include "Topconn.ch"
#Include "RWMake.ch"
/* Assunto: Ponto de entrada da rotina OMSA200.PRW (Permite executar rotinas especificas após associar veiculo na montagem de cargas)
*/
User Function OS200ASS(cVeiculo)
local cDocSF2, cPlacaSF2
dbselectarea("SF2")
cDocSF2 := SF2->F2_DOC
cPlacaSF2 := SF2->F2_VEICUL1
alert(cDocSF2)
alert(cPlacaSF2)
dbSelectArea("SF1")
dbSetOrder(1)
if dbSeek(xFilial("SF1")+cDocSF2)
RecLock("SF1",.F.)
SF1->F1_ZZPLACA := cPlacaSF2 '
alert("Entrou")
endif
dbclosearea()
return
Para os alert que criei, ele esta exibindo na tela o resultado 00000001 para a nota e para a placa, uma placa errada.
Agradeço a ajuda.
Gostaria de uma ajuda. Utilizamos o OMS - Gestão de Distribuição, e ao acessar o menu Atualizações -> Cargas -> Montagem de Carga, utilizo a rotina "Carregamento" e "Associar Veículo" para preencher a placa ao veículo ao emitir o documento de saída.
Acontece que sempre que gero o documento de saída, é gravada uma NF nas tabelas SF1,SD1 e SF2,SD2. O problema é que na SF1 temos um campo personalizado F1_ZZPLACA, e esse campo não é preenchido quando utilizo a rotina "associar veiculo".
Observei que existe um ponto de entrada no programa OMSA200.PRW, que é o OS200ASS, só que o campo que preencho a placa do veículo é um campo virtual.
Abaixo o código que estou desenvolvendo:
#Include "Totvs.ch"
#Include "Topconn.ch"
#Include "RWMake.ch"
/* Assunto: Ponto de entrada da rotina OMSA200.PRW (Permite executar rotinas especificas após associar veiculo na montagem de cargas)
*/
User Function OS200ASS(cVeiculo)
local cDocSF2, cPlacaSF2
dbselectarea("SF2")
cDocSF2 := SF2->F2_DOC
cPlacaSF2 := SF2->F2_VEICUL1
alert(cDocSF2)
alert(cPlacaSF2)
dbSelectArea("SF1")
dbSetOrder(1)
if dbSeek(xFilial("SF1")+cDocSF2)
RecLock("SF1",.F.)
SF1->F1_ZZPLACA := cPlacaSF2 '
alert("Entrou")
endif
dbclosearea()
return
Para os alert que criei, ele esta exibindo na tela o resultado 00000001 para a nota e para a placa, uma placa errada.
Agradeço a ajuda.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 7 meses atrás #12326
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 Ajuda com ponto de entrada para o OMS - Gestão de Distribuição
Tatiane bom vamos lá:
O Seu campo F1_ZZPLACA é virtual ? se sim, mude-o para Real, outra coisa
a placa do veiculo deve estar na tabela DA3 vc deverá fazer o seguinte:
local cDocSF2, cPlacaSF2
dbselectarea("SF2")
cDocSF2 := SF2->F2_DOC
If DA3->(dbSetOrder(1), dbSeek(xFilial("DA3")+SF2->F2_VEICUL1))
cPlacaSF2 := DA3->DA3_PLACA
Endif
alert(cDocSF2)
alert(cPlacaSF2)
dbSelectArea("SF1")
dbSetOrder(1)
if dbSeek(xFilial("SF1")+cDocSF2)
RecLock("SF1",.F.)
SF1->F1_ZZPLACA := cPlacaSF2 '
alert("Entrou")
endif
dbclosearea()
return
O Seu campo F1_ZZPLACA é virtual ? se sim, mude-o para Real, outra coisa
a placa do veiculo deve estar na tabela DA3 vc deverá fazer o seguinte:
local cDocSF2, cPlacaSF2
dbselectarea("SF2")
cDocSF2 := SF2->F2_DOC
If DA3->(dbSetOrder(1), dbSeek(xFilial("DA3")+SF2->F2_VEICUL1))
cPlacaSF2 := DA3->DA3_PLACA
Endif
alert(cDocSF2)
alert(cPlacaSF2)
dbSelectArea("SF1")
dbSetOrder(1)
if dbSeek(xFilial("SF1")+cDocSF2)
RecLock("SF1",.F.)
SF1->F1_ZZPLACA := cPlacaSF2 '
alert("Entrou")
endif
dbclosearea()
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.
- tatiane_rc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
11 anos 7 meses atrás #12329
por tatiane_rc
Respondido por tatiane_rc no tópico Ajuda com ponto de entrada para o OMS - Gestão de Distribuição
Obrigada pela resposta Luiz!
O campo F1_ZZPLACA não é virtual. O campo virtual é o que contem a placa do veículo, conforme print da tela em anexo.
O campo F1_ZZPLACA não é virtual. O campo virtual é o que contem a placa do veículo, conforme print da tela em anexo.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 7 meses atrás #12332
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 Ajuda com ponto de entrada para o OMS - Gestão de Distribuição
Seguinte nesta tela pressiona SHIFT + F6 e me passa o nome da rotina, é padrão né ?
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.
- tatiane_rc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
11 anos 7 meses atrás #12333
por tatiane_rc
Respondido por tatiane_rc no tópico Ajuda com ponto de entrada para o OMS - Gestão de Distribuição
Sim, é rotina padrão:
Objeto: OMSA200
Programa: OMSA200.PRW
Objeto: OMSA200
Programa: OMSA200.PRW
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 7 meses atrás #12340
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 Ajuda com ponto de entrada para o OMS - Gestão de Distribuição
Tatiana pelo que pude observar, basta buscar o registro posicionado na DA3 pois o veiculo já foi pesquisado e a DA3 já está posicionada no veiculo escolhido.
Faça o TESTE
User Function OS200ASS()
local cDocSF2, cPlacaSF2
dbselectarea("SF2")
cDocSF2 := SF2->F2_DOC
cPlacaSF2 := DA3->DA3_PLACA
alert(cDocSF2)
alert(cPlacaSF2)
dbSelectArea("SF1")
dbSetOrder(1)
if dbSeek(xFilial("SF1")+cDocSF2)
RecLock("SF1",.F.)
SF1->F1_ZZPLACA := cPlacaSF2 '
alert("Entrou")
endif
dbclosearea()
return
Faça o TESTE
User Function OS200ASS()
local cDocSF2, cPlacaSF2
dbselectarea("SF2")
cDocSF2 := SF2->F2_DOC
cPlacaSF2 := DA3->DA3_PLACA
alert(cDocSF2)
alert(cPlacaSF2)
dbSelectArea("SF1")
dbSetOrder(1)
if dbSeek(xFilial("SF1")+cDocSF2)
RecLock("SF1",.F.)
SF1->F1_ZZPLACA := cPlacaSF2 '
alert("Entrou")
endif
dbclosearea()
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ajuda com ponto de entrada para o OMS - Gestão de Distribuição
Tempo para a criação da página:0.105 segundos