Skip to Content
Technical Articles
Author's profile photo Ciro Peroso Alves Junior

Relatório de picking – Ausência de EWM

Esse relatório tem como objetivo orientar a separação de mercadorias tanto embalagem fechada quanto o picking.

Quando não está implementado o EWM em algum centro “Planta”.

Gerei o cubo a seguir para coletar os dados do Banco Hana.

@AbapCatalog.sqlViewName: 'ZCPICKINGV2'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'CDS PICKING V2'
@Analytics.dataCategory: #CUBE
define view ZC_PICKING_V2 as select from marm 
    inner join I_OutboundDeliveryItem on I_OutboundDeliveryItem.Material = marm.matnr
    inner join I_OutboundDelivery on I_OutboundDelivery.OutboundDelivery = I_OutboundDeliveryItem.OutboundDelivery
    inner join I_Customer as _cliente on _cliente.Customer = I_OutboundDelivery.SoldToParty
    inner join I_SDDocumentPartner on I_SDDocumentPartner.SDDocument = I_OutboundDelivery.OutboundDelivery
//    inner join I_Customer as _Transport on _Transport.Customer = I_SDDocumentPartner.Supplier
    inner join lfa1 as _Transport on _Transport.lifnr = I_SDDocumentPartner.Supplier
    inner join vbfa on vbfa.vbeln = I_OutboundDeliveryItem.OutboundDelivery 
    and vbfa.posnv = I_OutboundDeliveryItem.OutboundDeliveryItem


{
    key marm.matnr as Material,                                             --Material
    marm.meinh as UnMedida,                                                 --Unidade de medida
    marm.numtp as CatEAN,                                                --Categoria EAN
    @Aggregation.default: #SUM
    cast(marm.umrez as abap.fltp) as QtdEmbalagem,                                            --Quantidade
    I_OutboundDeliveryItem.ProductAvailabilityDate as data,
    I_OutboundDeliveryItem.DeliveryDocumentItemText as NomeMaterial,
    @Aggregation.default: #SUM
    I_OutboundDeliveryItem.ActualDeliveryQuantity as DeliveryQtde,
    I_OutboundDelivery.OutboundDelivery as numRemessa,
    I_OutboundDelivery.SoldToParty as Cliente,
    
//    I_OutboundDelivery.ShippingPoint as LocalEntrega,
    
    _cliente.CustomerName as NomeCliente,
    I_SDDocumentPartner.Supplier as TransportadoraSD,
    I_SDDocumentPartner.PartnerFunction as FuncaoTranspSD,
    _Transport.name1 as TransportadoraNome,
    vbfa.vbelv as SalesOrdem,
    vbfa.posnv as orderitem1,
    I_OutboundDeliveryItem.OrderItem as orderitem2,
    I_OutboundDeliveryItem.OutboundDeliveryItem as orderitem3
}

Fiz a seguinte query.

@AbapCatalog.sqlViewName : 'ZQPICKINGV2'
@Analytics.query: true
@OData.publish: true
@EndUserText.label: 'Query Picking v2'
define view ZQ_PICKING_V2 as select from ZC_PICKING_V2
{ @AnalyticsDetails.query.decimals: 0
  @EndUserText.label: 'Pedido'
  DeliveryQtde,
//  @EndUserText.label: 'CatEAN'
//  CatEAN,
  @EndUserText.label: 'Cliente'
  Cliente,
//  @EndUserText.label: 'FuncaoTranspSD'
//  FuncaoTranspSD,
//  @EndUserText.label: 'Local'
//  LocalEntrega,
  Material,
  @EndUserText.label: 'Nome Cliente'
  NomeCliente,
  @EndUserText.label: 'Nome Material'
  NomeMaterial,
  @AnalyticsDetails.query.decimals: 0
  @Consumption.hidden : true
  QtdEmbalagem,
  @EndUserText.label: 'Transportadora'
  TransportadoraSD,
//  UnMedida,
  @EndUserText.label: 'Data Remessa'
  data,
  @EndUserText.label: 'Remessa'
  numRemessa,
  @EndUserText.label: 'Nome Transportadora'
  TransportadoraNome,
  @EndUserText.label: 'Ordem de Venda'
  SalesOrdem,
  @DefaultAggregation: #FORMULA
  @AnalyticsDetails.query.decimals: 0
  @EndUserText.label: 'Caixas'
  @AnalyticsDetails.query.formula: 'DIV($projection.DeliveryQtde , $projection.QtdEmbalagem)'
  @AnalyticsDetails: {   exceptionAggregationSteps: [{  exceptionAggregationBehavior : #SUM, exceptionAggregationElements: ['Material','numRemessa']   }]  }
  0 as Caixas,
  @DefaultAggregation: #FORMULA
  @AnalyticsDetails.query.decimals: 0
  @EndUserText.label: 'Unidades'
  @AnalyticsDetails.query.formula: 'MOD($projection.DeliveryQtde , $projection.QtdEmbalagem)'
  @AnalyticsDetails: {   exceptionAggregationSteps: [{  exceptionAggregationBehavior : #SUM, exceptionAggregationElements: ['Material']   }]  }
  0 as Unidades
}
 where 
 ( 
    CatEAN  =   'IC'
 ) 
 and 
 ( 
    FuncaoTranspSD  =   'SP'
 ) 
 

Como o objetivo é gerar um lista e entregar para o separador, não utilizei o SAP Analytics Cloud.

Decidi usar o View Browser “Business Role – SAP_BR_ANALYTICS_SPECIALIST”.

Com isso gerei o relatório abaixo.

No relatório mostro por transportadora e remessa, cada um dos produtos e quantas caixas ou unidades devem ser separadas.

A regra é a seguinte.

Digamos que a caixa padrão do item A são 20 unidades, o representante vende 24 unidades.

O relatório mostra 1 caixa e 4 unidades.

Assim separando o trabalho de quem busca as caixas e quem faz o picking.

Para facilitar o trabalho entrego o relatório com duas visões, para imprimir em folhas separadas.

A visão de quem separa caixa fechada.

A visão de quem separa os pacotes ou granularidade dos materiais.

Com esse relatório conseguimos agilizar a operação da expedição em centros que não tem o EWM implementado.

 

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.