Histórico da Página
...
02. DESCRIÇÃO
Este Ponto de Entrada é responsável por permite montar a consulta que obterá todos os endereços com saldo disponível, para efetuar o processo de expedição.
03. LOCALIZAÇÃO
Localizado na função que efetua a busca dos endereços disponíveis para expedição.
04. PARÂMETROS
...
Descrição
...
Armazém para o qual está sendo solicitado saldo
...
.
...
* A data de validade somente se aplica aos produtos que controlam lote; nos demais casos poderá ser retornado espaço em branco neste campo.
05. RETORNO
...
Nome
...
Tipo
...
Descrição
...
Para que o processo funcione corretamente, esta consulta deve trazer, obrigatoriamente, uma estrutura de campos com as seguintes denominações:
Campo | Valor |
---|---|
BF_LOCALIZ | Código do Endereço |
BF_LOTECTL | Lote |
B8_DTVALID | Data de Validade * |
BF_NUMLOTE | Sublote |
BF_NUMSERI | Número de Série |
BF_SALDO | Saldo Disponível ** |
BF_QTDSPR | Saldo RF Saída *** |
BF_ESTFIS | Estrutura Física |
RECNOSBF | Recno da SBF |
...
A execução da consulta de saldo no processo de expedição pode ser executada várias vezes, uma para cada estrutura da sequência de abastecimento, ou então, apenas uma vez, quando o tipo da regra WMS utilizada na separação é do tipo 4 - Data de Validade. Isto poderá ser determinado pelo parâmetro recebido.
03. LOCALIZAÇÃO
Localizado na função que efetua a busca dos endereços disponíveis para expedição.
04. PARÂMETROS
Nome | Tipo | Descrição |
---|---|---|
cProduto | Caractere | Produto para o qual está sendo solicitado saldo. |
cArmazém | Caractere | Armazém para o qual está sendo solicitado saldo |
cEstrutura | Caractere | Estrutura física para a qual está sendo solicitado saldo. |
nRegraWMS | Numérico | Tipo de regra WMS utilizada na ordem de serviço. |
* A data de validade somente se aplica aos produtos que controlam lote; nos demais casos poderá ser retornado espaço em branco neste campo.
05. RETORNO
Nome | Tipo | Descrição |
---|---|---|
cAliasSld | Caractere | Deverá retornar o alias da consulta criada para a busca de saldo. |
06. VERSÕES
Protheus 11.8.10 e superiores.
07. OBSERVAÇÃO
Caso este Ponto de Entrada seja utilizado, os Pontos de Entrada WMSFIFO - Ordenar endereços FIFO e WMSFIFO2 não - Definir estrutura física FIFO não serão disparados.
Todos os parâmetros são recebidos na User Function via PARAMIXB, conforme consta em Execblock / Customização.
08. EXEMPLO
...
language | cpp |
---|---|
title | Exemplo |
linenumbers | true |
...
------
User Function WMSQYSEP()
...
Local
...
cProduto
...
:=
...
PARAMIXB[1]
...
Local
...
cArmazem
...
:=
...
PARAMIXB[2]
...
Local
...
cEstFis
...
:=
...
PARAMIXB[3]
...
Local
...
nRegraWMS
...
:=
...
PARAMIXB[4]
...
Local
...
cQuery
...
:=
...
""
...
Local
...
cAliasSld
...
:=
...
GetNextAlias()
...
Local
...
lRastro
...
:=
...
Rastro(cProduto)
...
Local
...
lRadioF
...
:=
...
(SuperGetMV('MV_RADIOF')=='S')
...
Local
...
aTamSX3
...
:=
...
TamSx3("BF_QUANT")
...
//--
...
Query
...
não
...
possui
...
o
...
campo
...
BF_QTDSPR,
...
saldo
...
será
...
descontado
...
pelo
...
padrão
...
cQuery
...
:=
...
"SELECT
...
SBF.BF_ESTFIS,SBF.BF_LOCALIZ,"
...
cQuery
...
+=
...
"
...
SBF.BF_LOTECTL,SBF.BF_NUMLOTE,SBF.BF_NUMSERI,"
...
cQuery
...
+=
...
"
...
SBF.R_E_C_N_O_
...
AS
...
RECNOSBF,"
...
cQuery
...
+=
...
"
...
(SBF.BF_QUANT
...
-
...
SBF.BF_EMPENHO)
...
BF_SALDO,"
...
If
...
lRastro
cQuery += " SB8.B8_DTVALID"
...
Else
cQuery += " ' ' B8_DTVALID"
...
EndIf
cQuery +=
...
"
...
FROM
...
"+RetSqlName("SBF")+"
...
SBF"
...
If
...
lRastro
cQuery +=
...
"
...
INNER
...
JOIN
...
"+RetSqlName("SB8")+"
...
SB8"
...
cQuery += " ON SB8.B8_FILIAL
...
=
...
'"+xFilial("SB8")+"'"
...
cQuery += " AND SB8.B8_PRODUTO
...
=
...
SBF.BF_PRODUTO"
...
cQuery += " AND SB8.B8_LOCAL
...
=
...
SBF.BF_LOCAL"
...
cQuery += " AND SB8.B8_LOTECTL
...
=
...
SBF.BF_LOTECTL"
...
cQuery += " AND SB8.B8_NUMLOTE
...
=
...
SBF.BF_NUMLOTE"
...
cQuery += " AND SB8.B8_SALDO
...
>
...
0"
...
cQuery += " AND SB8.D_E_L_E_T_
...
=
...
'
...
'"
...
EndIf
cQuery +=
...
"
...
WHERE
...
SBF.BF_FILIAL
...
=
...
'"+xFilial("SBF")+"'"
...
cQuery
...
+=
...
"
...
AND
...
SBF.BF_LOCAL
...
=
...
'"+cArmazem+"'"
...
cQuery
...
+=
...
"
...
AND
...
SBF.BF_PRODUTO
...
=
...
'"+cProduto+"'"
...
cQuery
...
+=
...
"
...
AND
...
SBF.BF_QUANT
...
>
...
0"
...
cQuery
...
+=
...
"
...
AND
...
(SBF.BF_QUANT
...
-
...
SBF.BF_EMPENHO)
...
>
...
0"
...
cQuery
...
+=
...
"
...
AND
...
SBE.BE_STATUS
...
<>
...
'3'"
...
//--
...
Não
...
pode
...
estar
...
bloqueado
...
If
...
nRegraWMS
...
<>
...
4
cQuery +=
...
"
...
AND
...
SBF.BF_ESTFIS
...
=
...
'"+cEstFis+"'"
...
EndIf
...
cQuery
...
+=
...
"
...
AND
...
SBF.D_E_L_E_T_
...
=
...
'
...
'"
...
cQuery
...
:=
...
ChangeQuery(cQuery)
...
DbUseArea(.T.,'TOPCONN',TcGenQry(,,cQuery),cAliasSld,.F.,.T.)
...
//--
...
Ajustando
...
o
...
tamanho
...
dos
...
campos
...
da
...
query
...
TcSetField(cAliasSld,'BF_SALDO',
...
'N',aTamSX3[1],aTamSX3[2])
...
TcSetField(cAliasSld,'B8_DTVALID','D',8,0)
...
TcSetField(cAliasSld,'RECNOSBF',
...
'N',10,0)
...
Return
...
cAliasSld
------
09. ASSUNTOS RELACIONADOS
Templatedocumentos |
---|
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |