Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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:

CampoValor

BF_LOCALIZ

Código do Endereço
BF_LOTECTLLote
B8_DTVALIDData de Validade *
BF_NUMLOTESublote
BF_NUMSERINúmero de Série
BF_SALDOSaldo Disponível **
BF_QTDSPRSaldo RF Saída ***
BF_ESTFISEstrutura Física
RECNOSBFRecno 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

NomeTipo

Descrição

cProdutoCaractereProduto para o qual está sendo solicitado saldo.
cArmazémCaractere

Armazém para o qual está sendo solicitado saldo

cEstruturaCaractere

Estrutura física para a qual está sendo solicitado saldo.
* Pode receber Vazio caso a Regra WMS seja igual a 4 (quatro).

nRegraWMSNuméricoTipo 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

cAliasSldCaractereDeverá 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

...

languagecpp
titleExemplo
linenumberstrue

...

------

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>