Technical Articles
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.