Histórico da Página
01. DADOS GERAIS
Produto: |
| ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
| ||||||||||||||||
Segmento: |
| ||||||||||||||||
Módulo: | SIGAWMS - Gestão de Armazenagem | ||||||||||||||||
Função: | - | ||||||||||||||||
País: | Todos Países | ||||||||||||||||
Ticket: | - | ||||||||||||||||
Requisito/Story/Issue (informe o requisito relacionado) : | - |
02. DESCRIÇÃO
Este Ponto de Entrada é responsável por 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
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. |
05. RETORNO
Nome | Tipo | Descrição |
---|---|---|
cAliasSld | Caractere | Deverá retornar o alias da consulta criada para a busca de saldo. |
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 | Sub-Lote |
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 data de validade somente se aplica aos produtos que controlam lote; nos demais casos poderá ser retornado espaço em branco neste campo.
** O saldo disponível não deve descontar saldo de radiofrequência (RF) pendente de saída; este desconto deve ser efetuado no campo BF_QTDSPR (Quantidade Saída Prevista).
*** Se existir um campo na consulta com este nome, indica que deverá descontar o saldo RF pendente de saída com base na consulta; caso o campo não exista na consulta, será utilizada a regra padrão para desconto de saldo RF.
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.
06. VERSÕES
11.8.10 e versões superiores.
07. OBSERVAÇÃO
Caso este Ponto de Entrada seja utilizado, os Pontos de Entrada WMSFIFO e WMSFIFO2 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
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
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 |
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> |