Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Logística WMS

Linha de Produto:

Linha Protheus

Segmento:

Logística

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 permite que a operação de um armazém receba os produtos unitizados e realize o processo de conferência do recebimento, sem que haja a necessidade de abrir os invólucros.

03. LOCALIZAÇÃO

Localizado logo após a leitura e a validação do tipo e identificador do unitizador.

04. PARÂMETROS

NomeTipoDescrição
cEmbarqueCaractereCódigo de montagem da conferência
cTipUniCaractereTipo do unitizador
cIdUnitCaractereID do unitizador
cArmazemCaractereArmazém da conferência
cEnderecoCaractereEndereço da conferência

05. RETORNO

NomeTipoDescrição
cPrdOriCaractereCódigo do produto origem¹
cProdutoCaractereCódigo do produto
cLoteCtlCaractereNúmero de lote do produto
cSubLoteCaractereNúmero de sublote do produto
nQtConfNuméricoQuantidade conferida

¹ Quando não for um produto componente, é o próprio código do produto.

IMPORTANTE!

  • Os valores retornados pelo PE devem possuir o mesmo tamanho dos campos correspondentes na tabela DCZ.
  • Caso contrário, poderão ser gerados error.logs ou inconsistências na base de dados.

06. VERSÕES

Protheus 12.1.17 ou superiores.

07. OBSERVAÇÃO

Todos os parâmetros são recebidos na User Function via PARAMIXB conforme consta em Execblock / Customização.

08. EXEMPLO

------

#INCLUDE "PROTHEUS.CH"

User Function WV090UNI()
Local cEmbarque := PARAMIXB[1]
Local cTipUni := PARAMIXB[2]
Local cIdUnit := PARAMIXB[3]
Local cArmazem := PARAMIXB[4]
Local cEndereco := PARAMIXB[5]
Local cSeekZZZ := ""
Local nTamPrd := TamSX3("DCZ_PROD" )[1]
Local nTamLot := TamSX3("DCZ_LOTE" )[1]
Local nTamSub := TamSX3("DCZ_SUBLOT")[1]
Local aItensUni := {}
Local aItem := {}

// Busca o documento que faz parte da conferência
DCX→ (DbSetOrder(1))
If DCX→ (DbSeek(xFilial("DCX")+cEmbarque))
           cSeekZZZ := xFilial("ZZZ")+DCX->DCX_DOC+DCX->DCX_SERIE+DCX->DCX_FORNEC+DCX->DCX_LOJA+cIdUnit
          // Busca na tabela específica todos os itens que fazem parte daquele documento + etiqueta
          ZZZ→ (DbSetOrder(1))
         ZZZ→ (DbSeek(cSeekZZZ))

 While !ZZZ→ (Eof()) .And. ZZZ->ZZZ_FILIAL+ZZZ->ZZZ_DOC+ZZZ->ZZZ_SERIE+ZZZ->ZZZ_FORNEC+ZZZ->ZZZ_LOJA+ZZZ->ZZZ_IDUNIT == cSeekZZZ
         // Adiciona o item relacionado à etiqueta no array auxiliar
         AAdd(aItem,PadR(ZZZ->ZZZ_PRDORI ,nTamPrd))
         AAdd(aItem,PadR(ZZZ->ZZZ_PRODUT ,nTamPrd))
         AAdd(aItem,PadR(ZZZ->ZZZ_LOTECTL,nTamLot))
         AAdd(aItem,PadR(ZZZ->ZZZ_SUBLOT ,nTamSub))
         AAdd(aItem,ZZZ->ZZZ_QUANT)
        // Adiciona o item no array principal de retorno
        AAdd(aItensUni,aItem)
        ZZZ→ (DbSkip())
EndDo

EndIf

Return aItensUni

------