❌

Normal view

There are new articles available, click to refresh the page.
Today β€” 11 February 2026SAP EWM

How to Learn SAP EWM with Best Practices – My 4-step Method

Around SAP EWM

How to Learn SAP EWM with Best Practices – My 4-step Method

If you’ve ever tried to learn a new SAP EWM process by simply downloading the Best Practices documentation and clicking through the test scripts – you know how it ends. You finish the exercise, feel good for a minute, and then a week later, it’s all gone. The learning didn’t stick. Why? Because simply clicking buttons isn’t learning EWM. I would go that far to say it is a waste of time.

With this blog I will tell you why and I will also share my ideas about how you can avoid making it a waste of time.

I’ll show you my β€˜4-step Learning Method’ for learning SAP EWM using the Best Practices in a way that actually sticks.
This method comes along with a small e-book and a glossary  – I will explain later where you can download the files.

Note that this method is essential for two types of EWM professionals: Obviously the Starters who are just diving into EWM, but also The Seniors who are responsible for mentoring those starters. Cause if you teach you might want to teach in a sustainable way. Β 

Why do click instructions fail?

The mistake that a lot of people make while learning SAP EWM – and this is especially true when you use the Best-Practices as a starting point – Β is to start with the β€˜how’ (the clicks) instead of the β€˜why’ (the logistics). It’s like learning to use photoshop without ever having learned about design principles or user experience basics.

The SAP’s Best Practice test scripts are designed for execution, not for learning.

They’re fantastic for proving that a process works in the system or to use it as a prototype for the solution design (will tackle this in my next video btw), but if you go straight into the instructions, you’ll end up with what I call β€œbutton-click knowledge.”

Just clicking and thinking you will learn something is subject to fail. It fades quickly, and you’ll struggle to connect the dots when things get more complex.

So, instead of diving headfirst into transactions, we need a learning flow that builds context, base knowledge and orientation before execution.

My 4-step Learning Method

Those 3 are also the base assumptions for what I call the 4-step Learning Method. I repeat one more time:

  • Context: Execution without context leads to fragile learning. This finding is not new and not invented by myself, but I think for SAP EWM it is true more than anywhere else. I mentioned that already in post [LINK] where I explained how to start with EWM. With this video here I focus on how this idea can be applied to learning EWM with the BPs.
  • Base knowledge: It is essential to understand the technical base concepts & objects where the thing you are learning is based upon
  • Orientation: No surprises during the execution – understand the E2E flow on a high level before going into detail

These are the four logical steps, resulting from my base assumptions and forming the 4-step Learning Method:

  1. Understand the (intra)logistics flow first – even just at a high level.
  2. Read the EWM-specific theory to understand its concepts & objects.
  3. Study the Best Practice flow chart to get the birds view (last warm up before the start – going through the trail like a racer before the race).
  4. Go: Finally, execute the click instructions in the system.

Now let’s break each one down.

Step 1: Logistics First

Before you even touch SAP, you must understand the business processes and the intralogistics (real world) material flows

  • What kind of business process triggers the material flow and which parties are involved?
  • Where does the truck arrive?
  • What happens to the physical pallet during each step?
  • Where is it stored in the warehouse?

I highly recommend studying foundational texts like VDI 3601 – it provides the vendor-neutral, timeless logistics basics. I’ve created a short e-bookΒ for you, based on this VDI standard, breaking down the logistics basics and the material flow for every EWM scope item.

Step 2: EWM-specific Theory

Now that you know the real-world process, read the corresponding chapter in your favorite EWM textbook, the official SAP Online Help or simply the EWM Best Practice Glossary that I created for this purpose. This is where you connect the real-world β€˜why’ to the SAP β€˜what’ – the technical terms, the software concepts (WO, WT, PPF, Queue, Storage process, WPT and so on…). This builds your mental model and ensures that when you see buttons and fields in SAP, you already (at least roughly) know why they exist and what they are used to in the given context.

Step 3: Study the Flow Chart

As the last step before you jump into the system, open the Best Practice flow chart from the SAP Process Navigator for the scope item that you want to tackle (the one with the swim lanes). This is your strategic map. By studying the flow before touching the system, you’ll see the big picture instead of getting lost in screens. This is like the racer going through the track one more time before then focusing on the details of each section during the execution/race.

Step 4: Execute the Click Instructions

Now that you’ve built context in steps 1–3, the clicks will make much more sense. You’ll see why each step exists, not just how to do it. This is what transforms learning from fragile to sticky. (of course at some points you will have to iterate back but you will know where to check, find the details and connect the dots).

By the way –

If you would like to work with the best practices but you are missing access to an EWM system with the latest release and pre-installed BPs, I can recommend the offerings from IDES24, which is partnering with my channel here. Visit their website, select the system that you would like to access, receive an e-mail with your credentials and login to your pre-configured system to start learning. You can use discount code WM-IDES24 to get 20% off for your order while supporting my channel/blog at the same time!

Tools & Giveaways

To make the application of this method easy & painless I’m offering a free mini Intralogistics ebook as well as a EWM Best Practice Glossary. The ebook helps you to learn the logistics basics and the glossary holds every EWM specific term you need to understand when clicking through the Best Practices.

You will find a mapping table at the end of the ebook that maps each scope item to one or multiple chapters. The glossary is also structured based on the scope items. This way, you’ll always know what to study before jumping into the system.

Summary

The standard approach is 4β†’3β†’2β†’1. The successful approach is 1β†’2β†’3β†’4: Logistics β†’ Basics Theory β†’ Overview β†’ Execution. Use this 4-step method in the right sequence, and your EWM knowledge will stick.

If you’re a beginner, try it out with your next Best Practice exercise!
If you’re a senior consultant, use it to mentor juniors and watch how much faster they grow!

If this helped, please subscribe to my youtube channel or my blog updates (or both :-)) so you do not miss the next video/post!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post How to Learn SAP EWM with Best Practices – My 4-step Method appeared first on WMexperts.online.

By: Hendrik
21 December 2025 at 20:05

SAP EWM Best-Practices explained – What & How

Around SAP EWM

SAP EWM Best-Practices explained – What & How

Have you ever wondered what the SAP EWM Best Practices are, or how you can easily get access to them for learning or prototyping? You’re in the right place! In this blog post I compressed the answers to the questions that I had during the last years.

In this post, I’ll first break down what EWM Best Practices are, how they stack up against other options like the Fully Activated Appliance (FAA). In the 2nd part I will explain how you can access the best practices. In this context I’ll also show you a shortcut to get access to the best practices within minutes, not days.

What Exactly Are SAP EWM Best Practices?
Simply put, SAP EWM Best Practices (BPs in the following) are a set of preconfigured, standardized process scenarios delivered by SAP. They are designed to give you a head start by providing working warehouse processes supported by standard functionality and already validated by SAP.
Instead of starting from a blank slate, you begin with a solid foundation. Their primary purpose is to support:
β€’ Training: A starting point, especially for beginners learning EWM.
β€’ Prototyping: A reliable baseline for project activities within the specification phase (e.g. specification workshops).

The BPs are organized into β€˜Scope Items,’ each identified with a unique three-character code (e.g., 4RS for Decentralized EWM – Replenishment).

What You Get with Every Scope Item:
1. Process Description/Overview
2. Process Flow Charts
3. Detailed Test Scripts

You can find all of this information in the SAP Process Navigator (select your solution, then navigate to Supply Chain β†’ Warehousing). This is the hub for all the detailed documentation, process models, and test scripts.
https://me.sap.com/processnavigator/SolS/EARL_SolS-055/2022?region=DE

BPs vs. RDS vs. Fully Activated Appliance
When looking for pre-configured SAP content in the past, you might have heard a few different terms:

Rapid Deployment Solutions (RDS): This is SAP’s old approach from the 2010s. They were prepackaged bundles with limited scope, but they have since been discontinued. No need to worry about them today.
Best Practices (BPs): As discussed, these are single, pre-configured process scenarios (Scope Items) that can be individually added to an existing SAP system/client.
Fully Activated Appliance (FAA): This is a complete, pre-built sandbox system environment with all Best Practice processesβ€”for EWM and all other modulesβ€”already activated (I feel there is not a 100% coverage of the BPs within the FAA but somewhere around 90%).

Takeaway: For anyone starting to learn or prototype with EWM now, the Fully Activated Appliance or selected Best Practices scope items are the options to focus on.

Installation
If you want to install the FAA on your on-premise system you must download a full system image. That also means you cannot easily import it into an existing system (you basically need a new/empty one or overwrite an existing one). The single Best Practices scope items, however, can be imported into an existing client (details further below).

There is an excellent blog written by Joerg Wolf if you want to learn more about the FAA and how to install it locally.

Alternatively, the FFA can also be ordered via SAP CAL (Cloud Appliance Library) but you need an account at one of the big hyperscalers (e.g. Azure, AWS). Running the system there is roughly 4$ per hour. So the hosting alone will cost you around 1k per month if you want to keep the instance up & running 10h per day. On top of this you need a CAL license after the 30-day trial which is at least another 600-700$ per month.

Based on my knowledge, the CAL option is the only one to get easy access to the best practices directly from the SAP (remember – the FAA pretty much covers the BPs). You can, however, add any number of best practice scope items to your local on-premise system.

The process is not straightforward but requires at least some SAP basis knowledge. These are the main steps on a high-level:

  1. Create a Best Practices client.
  2. Download the BP package (ZIP file) for your system release from OSS.
  3. Save the data and co-files from the ZIP on your application server.
  4. Import the files as a transport via transaction STMS.
  5. Import solution content and installation data via transaction /N/SMB/BBI.
  6. Select/Deselect the BP items you need.
  7. Activate your solution (with demo data).

I will not go into detail here as there is already a great blog explaining every single detail (shoutout to Hanuma Rupakula and Mahesh Sardesai (LINK).
My honest opinion is that this process will keep even an experienced Basis expert busy for at least 1-2 days. You need patience for release-specific error messages, retries, and plenty of manual steps.

The ShortcutΒ 
I promised you a 10-minute option, and here it is – the alternative for consultants, trainers, or students who want to focus on the process, not the wrestling match with installation.
By using a hosted service (like the one offered by IDES24, who I collaborate with), you essentially get a fully provisioned Fully Activated Appliance system. So this does not only covers all EWM Best Practice scope items but also comprehensive Best Practice processes configured across all other SAP modules.
The entire process is simple and fast:

  1. Subscribe on the website (www.IDES24.de/en)
  2. Receive your credentials by email.
  3. Log in via your browser or add the connection details to your local SAP GUI.

That’s it! You’re ready to start learning or prototyping more or less immediately. I think this option is a fantastic time and money saver for some of you, allowing to concentrate entirely on mastering the EWM processes without the headache of system setup.

You can use discount code WM-IDES24 to save 20% on your order while supporting my blog/channel at the same time!Β 

What’s Next?
That closes my quick insight into what the SAP EWM Best Practices are and how you can access them.
In the next post of this series, I’ll explain a proven way to learn the EWM basics using its Best Practice scope items. I think I’ve developed a step-by-step method that makes the learning experience incredibly sticky.

Make sure to subscribe to my YouTube channel youtube.com/@sapewm (link below) or subscribe to the newsletter (form below) so you don’t miss the next video!2

Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post SAP EWM Best-Practices explained – What & How appeared first on WMexperts.online.

By: Hendrik
6 December 2025 at 10:47
Before yesterdaySAP EWM

How to become a good SAP EWM Consultant – Part #2

Working as a SAP EWM Consultant

How do become a good EWM Consultant? (Part #2)

In this post, I present my personal top 10 list of skills required to become a successful EWM consultant. The first part of this blog post will cover five technical and functional skills that serve as the foundation for EWM consultants.

Tips 6 to 10, which I will publish in next month’s post, focus on soft skills that you develop over time and build upon your technical and functional foundation.

Before I begin with the list of skills, I want to emphasize that I am far from perfecting any of these skills. It is an ongoing journey for all of us, myself included. There is no end to this game for any of us; the path has to be the goal.
Enjoy reading!

6. Communication

If you think a good EWM consultant spends all their time sitting in front of EWM, I have to tell you that you are wrong. You will talk. You will talk a lot!

When I mention talking and communication, I am not just referring to bilateral dialogues. Practice free speech, moderation, presentation, and, of course, the art of listening. These days, I spend at least half of my working hours communicating. Here are some examples to help you understand what I mean:
β€’ Sales pitches, presenting and explaining why our company/team should be the chosen one
β€’ Business Blueprint workshops, discussing requirements for the business processes to be implemented in EWM
β€’ Handover of functional specifications to the developers responsible for writing the required code
β€’ Project status calls with stakeholders, from operational level up to upper management
β€’ Training key or end-users on how to use the system in the context of testing and live operation

…I could list so much more, but I think you get my point.

So what is key here? With the bullet points below, I tried to break the topic down into its most important characteristics:

1. Clarity & structure
Clear and structured communication ensures that your message is easily understood by others. Avoid unnecessary jargon or complexity. Organize your thoughts in a structured manner. Be as straightforward and concise as possible while still feeling comfortable with your wording.
2. Consideration
Be mindful of your audience. Understand their needs, emotions, and viewpoints. Put yourself into the position of your communication partners (what do they know? What do they not know? What are their objectives? ). Tailor your communication accordingly.
3. Cultural awareness
Consider the cultural differences in ways of communication between you and the ones you are talking to. Be aware that a shop-floor worker in Germany talks in a different way than a developer from India. A US-based project manager in a different way than a key-user from Malaysia. You could take almost every combination here and end-up with culture clashes in case you are not aware of the differences.

How do you learn all this? There is no fast lane, for sure. I believe it is all about real-life practice. While there are some guidelines and frameworks, the most important thing is practical experience:

  • Grab every opportunity to speak freely in front of people. It feels bumpy at the beginning but becomes routine faster than you think.
  • Ask for feedback. Your team members will be happy to provide constructive (and sometimes negative) feedback. Ask what you could improve in terms of the characteristics listed above and apply your learnings whenever you get the chance.
  • Study how different cultures communicate. It’s not rocket scienceβ€”there is plenty of content online, and you can prepare accordingly once you know how your next project team is composed.

The good thing is that the skills you are developing will not only help you in the EWM world but also in almost all other professions (maybe you are so adventurous that you might want to do something else one day 😊) or in your private life (your kids and your partner will be grateful if you explain things in a structured way and listen to them carefully when they have real-life problems).

7. Creativity & innovativeness

Innovative and creative thinking involves generating ideas and solutions that often challenge the status quo. It’s about finding new approaches to problems or procedures, resulting in positive changes for businesses and individuals. This is a valuable skill for EWM consultants.

But how do you apply this to the process of designing a software solution? When faced with a challenging requirement, push yourself to think outside the box. Look at your problems and requirements from different angles and perspectives.

Here are some tips and practical examples to infuse creativity into your solution design process:

1. Empathize with Your Users: Gain a deep understanding of the user’s world. Understand their needs, pain points, and aspirations. Engage with them to gain insights into their experiences. Example: Spend some time with a picker on the shop floor before you design a mobile picking dialog that is supposed to make their work more efficient.
2. Define the Problem: Clearly articulate the core problem you are solving. This helps focus your creative efforts on what truly matters to the user. Example: Use β€˜why’ questions to remove all clutter from the actual problem until you reach the core reason.

3. Ideate: Generate a wide array of ideas without constraints. Use techniques like brainstorming, mind mapping, or sketching. Example: Sit together with project team members from different professions and let them throw ideas onto a brown paper. Make it anonymous initially to encourage even the most unconventional ideas.
4. Prototype: Build a representation of one or more of your ideas to show to others. Remember that a prototype is just a vehicle for feedback, not a final solution. Example: Draw simple mockups of user dialogs in PPT or Visio during your design phase and let end-users imagine how they could use them.

Throughout this process, maintain a user-centric approach, collaborate with diverse teams, and be willing to iterate on your designs. This approach not only fosters creativity but also ensures that the end product resonates with the users and meets their needs effectively.

….those first 7 tips were very extensive – I tried to keep it a bit shorter for the last 3, which are also not that complex to understand.

Become a good SAP EWM consultant_08

8. Humility

Always keep in mind that you are working with complex systems. These systems consist of hundreds of thousands of lines of code, interacting in endless combinations of configurations. You will never fully understand every single detail about SAP EWM (in the same way as your Senior colleague with 20+ year of experience will not!).
Especially when you add custom code, you may find yourself underestimating the complexity. As a result, your solution might not behave as expected, leading to negative effects on customers, businesses, or projects.
Based on my experiences, I recommend staying humble while working on complex EWM projects. This approach is essential for avoiding overconfidence, fostering a healthy work environment, and handling failures gracefully.

9. Build a network and help others

As mentioned earlier, the world of EWM, its adjacent modules, and its possibilities for integration with non-SAP subsystems is vast and intricate. No single developer or consultant possesses comprehensive knowledge of every aspect. However, in almost every project, you encounter new challenges. While project teams are valuable, there are instances where you find yourself stuck, seeking solutions for specific project issues.

Β 

Β 

Building a network of professionals can be immensely helpful in such situations. This network might include former project colleagues or the global community of SAP enthusiasts. EWM developers and consultants actively support each other through social networks, forums, and WhatsApp groups. Just as no individual developer knows everything, it’s safe to say that there is no question the worldwide community cannot answer. By contributing value to the community, you can be assured of receiving help when you need it!

10. Well-being

Last but not least, a personal reflection:
Taking care of our health is paramount, especially in the demanding world of software development. We often find ourselves glued to laptops for hours, navigating stressful project phases that frequently spill into overtime. Our home-office days may tally fewer than 500 steps on the counter.
Certainly, we can dedicate days and nights to mastering EWM’s features and delving into its codebase. We can strive to keep project stakeholders satisfied and our bosses proud. Yet, true happiness eludes us unless we also prioritize our physical and mental well-being.
Challenge your body with cardiovascular or strength training. Give your brain the gift of meditation, venture into nature, or simply spend quality time with loved ones. These moments of self-care are essential for maintaining balance and resilience.

With these points, I conclude this blog post, hoping to provide you with valuable insights into areas you might want to develop to become a better consultant.

Enjoy the journey!

Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post How to become a good SAP EWM Consultant – Part #2 appeared first on WMexperts.online.

How to become a good SAP EWM Consultant – Part #1

Working as a SAP EWM Consultant

How do become a good EWM Consultant? (Part #1)

In this post, I present my personal top 10 list of skills required to become a successful EWM consultant. The first part of this blog post will cover five technical and functional skills that serve as the foundation for EWM consultants.

Tips 6 to 10, which I will publish in next month’s post, focus on soft skills that you develop over time and build upon your technical and functional foundation.

Before I begin with the list of skills, I want to emphasize that I am far from perfecting any of these skills. It is an ongoing journey for all of us, myself included. There is no end to this game for any of us; the path has to be the goal.
Enjoy reading!

1. Business processes

One of the essential skills for an EWM consultant is a deep understanding of intralogistics, warehousing, and related business processes across various industries. I emphasized this point in my article, β€œHow to Start with EWMβ€œ, as a crucial first step for newcomers before diving into hands-on EWM tasks. To enhance your expertise, consider enrolling in internships, taking part-time jobs, or visiting warehouses to observe their operations, material flow, and software solutions.

2. EWM-specific functional knowledge

Another essential skill is – of course – to study EWM inside out :-). Understand its core components, processes, and functionalities. Start with SAP best practices, as they provide a solid foundation for your EWM knowledge. Build on this with project-specific explorations. Identify the EWM features and functionalities relevant to your projects and work packages. This way you study the theory (e.g., through books, blogs, or courses/trainings) alongside hands-on exploration of these features. This helps especially when you are not confident in understanding all aspects related to the process you are configuring.

Become a good SAP EWM consultant_02

Β 

Β 

Β 

This approach will not only help you configure the system but also enable you to decide if and when it is reasonable to add custom coding to your systems. As an EWM consultant, you should guide business teams toward solutions that minimize the need for extensive coding. While some enhancements are necessary, striking the right balance ensures efficient system performance. Although custom code can address unique requirements, it is essential to weigh the pros and cons. I have never seen a project fail due to too little custom coding. πŸ˜‰

3. ABAP

Part of the truth is also, that I have not seen a project yet that could be realized without any additional lines of code. While standard functionalities cover a lot, specific business requirements often necessitate additional enhancements.

Become a good SAP EWM consultant_03
As a consultant, close collaboration with developers during specification and testing phases is crucial. They bring your custom logic to life within SAP EWM. Having a basic understanding of programming is immensely helpful. When specifying enhancements, you can provide a high-level design, minimizing misunderstandings. By reviewing initial iterations of custom code, you reduce efforts spent on unnecessary test cases. Debugging during development testing is essential based on my experiences. It streamlines communication and ensures efficient issue resolution. You do not have to reach out to your developer right away for every scenario that fails; debugging helps you find bugs in the code and mistakes made during your tests. Thus, I suggest familiarizing yourself with ABAP basicsβ€”at least the core concepts and commands. Recommended learning resources include books (there are many for ABAP beginners), basic courses (such as those on SAP Learning Hub or Udemy), and hands-on practice (e.g., try writing your own short and simple reports in your sandbox). Last but not least, play with the debugger! It’s your ally in understanding code execution and your best buddy during troubleshooting and custom solution design. There are many good blogs and articles online providing basic information on how to use this tool.
As you gain proficiency and feel comfortable with the most-used commands and objects, try to find code corresponding to functions described in books and help texts. This is where it really becomes exciting (at least for the nerds πŸ˜‰)! I promise you’ll uncover some hidden gemsβ€”features and details not found in standard EWM literature. Sometimes, the real magic (SAP’s best-kept secrets) lies beyond the documented pages. πŸ˜‰

4. End-to-end SAP processes (incl. ERP)

You can run EWM as a standalone system without integrating it into any ERP system. However, in over 95% of the projects I’ve been involved in, EWM was connected to a SAP ERP system in some way or another.
Without knowledge of the ERP modules, delivering comprehensive solutions or processes within EWM can be challenging. While there are parts of EWM that may not directly impact or be affected by ERP modules, limiting yourself to those areas restricts your scope.

Therefore, it’s essential to understand the core functionality of certain ERP modules:

  • Materials Management (MM): Familiarize yourself with MM processes, including procurement and inventory management. Also study how MM triggers the creation of inbound deliveries via SAP LES (Logistics Execution System).
  • Sales and Distribution (SD): Understand SD processes related to sales orders, and distribution. Also study how SD triggers the creation of outbound deliveries via SAP LES (Logistics Execution System).
  • Production Planning (PP): Although not the top priority, having knowledge of PP can be beneficial. Try to understand the different approaches available to integrate EWM with PP.
  • Quality Management (QM): Consider QM as a nice-to-have skill. I used to go for an opportunistic approach here and study what I need when I encounter projects that require it.
  • Transportation Management (TM): While helpful, TM expertise is often readily available when integrating EWM with TM. My personal opinion is that an EWM consultant should rather focus on the core ERP modules than spending a lot of time building TM knowledge (whereas I am aware that this might be a controversial point).

In summary, grasp the essentials of MM and SD, and consider expanding your knowledge to PP and QM as needed. TM, while useful, takes a backseat compared to the critical ERP modules as you will usually be surrounded by TM experts when the latter is in scope of your projects.

5. Capture process details & Draw processes In the end, working with EWM is all about processes. The process is at the center, and everything else develops around it. Define an approach that works for you to capture process-related details in a structured way. Excel or OneNote are great options, but other mind-mapping tools can be just as effective if you feel comfortable and efficient using them. Additionally, learn a simple notation for drawing processes (e.g., a basic version of UML or BPMN). The specific notation you follow doesn’t matter as much as consistency in your flow charts (shapes, colors, etc.) and speed in applying it. Drawing processes should become routine; you shouldn’t have to think about which shape to use while drawing a flow. Practice until you know by heart which elements to use. If it doesn’t become routine, it will slow down your workflow. Once it does, you will greatly benefit! This skill will help you communicate with business teams on one side and development teams on the other. It will also assist you with all functional tasks related to the given process.
I am mostly using MS visio. If you do not have access to the office suite, I recommend draw.io, a free diagramming tool (browser-based or desktop app) that allows you to create and share diagrams without requiring login or registration.

With these five skills or characteristics, I am closing the first part of this blog post. These were the technical and functional ones that build what I call the β€œfoundation.”
Stay tuned for the second part of the post, which I will release in couple of weeks. It will cover the skills you add on top of your technical and functional foundation to fine-tune your profile!

Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post How to become a good SAP EWM Consultant – Part #1 appeared first on WMexperts.online.

Reveal SAP EWM – Warehouse Order sorting in Queues

Reveal SAP EWM

Sorting of Warehouse orders within Queues

My new blog post is offers a comprehensive summary of warehouse order sorting in queues. I delve deep behind the scenes and reveal a few secrets along the way.

The article begins with the basics, explains sorting with and without pre-assignment of warehouse orders to resources, and concludes with an analysis of the logic in the context of physical inventory and task interleaving.

Context

It is important to understand that we are only talking about the sorting withinΒ oneΒ queue. With a system-guided selection or with a task interleaving approach the resource group of the current resource might be assigned to multiple queues and the queue sequence as such is evaluated before the sorting within one queue becomes relevant. With this article however, we are looking at one single queue only and the sorting within this queue.Β 

Also certain warehouse orders in the queues might not be considered for the resource type of the resource which the current user used to login (e.g. resource execution constraints). This filtering of warehouse orders is also not in scope for this article as it has no impact on the actual sorting of applicable WOs.Β To say it again – Pure sorting, nothing else!

Agenda for this blog-post

  • Main part: How are WOs technically being sorted in a queue?
    • How does the EWM standard sort the WOs within the queues? Which factors have an impact? How are those factors being calculated?
    • How does this sorting logic change in case multiple WOs are pre-assigned to the current resource?
    • What options does EWM offer to implement a custom logic for the sorting?
  • Party-knowledge
    • Sorting of WOs for physical inventory
    • Sorting while interleaving being active

How does the sorting work?
Let us start again from the SAP help text

If more than one WO falls within any of these queue classifications, the WOs are sorted as follows:
In ascending order, by latest starting date (LSD)
In descending order, by execution priority.

So we learned that the sorting depends on two values:

LSD calculation: This is explained in my other video or blog-post:Β It is calculated based on the following formula: LSD = WO due date – (planned execution duration + planned movements duration)

WO Prioritization: This has a good SAPΒ help text with lots of examples for the calculation.Β For each WT in the WO the priority is calculated with the following formula: Priority = (BAT Weighting/100 x BAT Priority Value) + (HUTG Weighting/100 x HUTG Priority Value) + (WPC Weighting/100 x WPC Priority Value). The WO priority is then set to the priority of its WT with the highest priority value.

Important:Β Both values are calculated during warehouse order creation, well before the actual sorting occurs during warehouse order processing. Therefore, if you change your customization settings later, do not be surprised if nothing changes. Both values are saved in the tableΒ /SCWM/WO_RSRC_TYΒ (the LSD is also saved in tableΒ /SCWM/WHO, but this table is not relevant for our context here). The calculation for both values is initiated by the function moduleΒ FM /SCWM/RSRC_WHO_CREATEΒ during warehouse order creation, which also callsΒ FM /SCWM/WHO_RSRC_TYP_SETΒ to write the result to the database.

During warehouse order processing, EWM selects records from this table and sorts them accordingly. This process is executed via the function moduleΒ /SCWM/RSRC_WHO_SELECT, which callsΒ FM /SCWM/RSRC_QUALIF_QUEUE_CHECK, and subsequently callsΒ FM /SCWM/RSRC_WHO_RSTYP_GET. This FM reads the table entries fromΒ /SCWM/WO_RSRC_TYΒ before filtering and determining the applicable warehouse orders for the given resource type (details of which are not explained here)

The same sorting is applied again a few lines later when the internal table is handed over to the calling function moduleΒ FM /SCWM/RSRC_QUALIF_QUEUE_CHECK. This seems redundant, but there could be technical reasons for it (Is a developer amongst you able to explain the technical reason for sorting two times here in the comments of the corresponding video!?).

The example below highlights the way of sorting, based on the 3 values listed above:

At the end, EWM just proceeds with the first WO from the list/table.

That was straightforward right!? This scenario however, is only executed if there are no manually assigned WOs. The latter is always checked one step earlier. Let’s assume a list of WOs has been manually assigned to the resource by the warehouse supervisor (e.g., via the warehouse monitor option, callingΒ FMΒ /SCWM/RSRC_WO_RSRC_ASSIGN_MON, which in turn callsΒ FMΒ /SCWM/RSRC_WHO_SELECT).

Β 

Assignments are read viaΒ FM /SCWM/RSRC_WHO_RSTYP_GETΒ and, of course, always have a higher priority than non-assigned WOs. The sorting in this case – no surprise over here – is making use of the same ruleset that we saw before:

Options for enhancement

What is surprising though, is that EWM offers an option for a custom sorting in the pre-assignment context, which is not offered in the scenario where the WOs are not pre-assigned.

BAdi /SCWM/EX_RSRC_PROC_SEL
* With this BAdI you can influence the WO selection.
* You get the list of manual assigned WO’s and can
* resort them or
* delete WO from the list or
* return a new WO according your own selection (You must set LGNUM, WHO
* & CONTENT at least)

Question from a stupid EWM Consultant: Can somebody explain why this is BAdi not simply called in the same way in the non-pre-assignment context? If yes, please add your thoughts as a comment to the corresponding video!

The filter_wo subroutine does not offer any option to manipulate the sorting here. Therefore, the only option to enhance the sorting is to intervene before the actual WO processing. You can include your own logic at the point when EWM creates the WOs and calculates the two values that are later used for sorting.

  • LSD: I explained the option to enhance the LSD in this video (video & blog-post).
  • Prioritization: The prioritization as the second sorting criterion can be manipulated via a custom logic using BAdi /SCWM/EX_RSRC_PROC_WO.

Fun facts / Party-knowledge

Sorting of WOs for physical inventory

Nothing to reveal here. The sorting for PI WOs is based on the same criteria as for the normal WOs discussed above. As you learned in my campaign (video & blog-post) about the LSD calculation, for PI documents the LSD is derived from the planned count date. The priority is coming from the PI customizing.

Sorting in case of Task Interleaving

This is the most interesting part of this article in my opinion. If interleaving is active (refer to this video & blog-post if you are not familiar with the interleaving concept as such), EWM applies a slightly different logic for WO sorting, which I found only in the code (spent not that much time to browse all books to be honest). This occurs at the end of the function module FM /SCWM/RSRC_QUALIF_QUEUE_CHECK. Here, EWM considers the distance between the WOs instead of the priority used previously.

EWM loops over all WOs in the interleaving queue (~ the next queue from which it is supposed to pick a WO, based on the interleaving settings) and calculates the distances between the current position of the resource and the distance to the source bin of the first WT in every waiting WO in that queue:

The distance calculation can be manipulated via BAdi /SCWM/EX_TDC_START. EWM itself calculates with the example/fallback class /SCWM/CL_EX_TDC_START_D of this BAdi (you should copy that class and use it as a base in case you want to include your custom logic here).

At the end can see that the LSD still has the highest value, but now the distance has a higher value than the β€˜priority’ (which is no longer used in the context of interleaving).

A closing remark that I couldn’t overlook: I have great respect for the developers and I am forever grateful to have the opportunity to work with this software, but why the hell does a 300 billion company like SAP still ships software with so many typos in the comments of their code? Can’t the pretty printer check that as well? …or any kind of AI browsing through the code before it is being shipped?

Sorry… Back to our topic – 

The following example visualizes the approach for sorting during interleaving, that I explained above:

…and that completes the last subtopic that I wanted to address here. As usual, I will not let you go without a quick summary of the most important points.Β 

Summary

  • Sorting is the same with or without manual pre-assignment of warehouse orders to resources (1.LSD > 2.Priority > 3.WO number)
  • Only with manual pre-assignment the sorting can be changed in a clean and simple way (EWM offers a BAdi). Without manual pre-assignment, LSD and priority have to be manipulated during WO creation in order to implicitly change the sorting later
  • PI WOs are being sorted based on the same criteria as other WOs
  • In the context of task interleaving, the priority as a sorting criteria is replaced by the distance between the processing resource and the source bin of the first WT in the next WO

As we wrap up this blog post, I hope you found the information presented in a clear and digestible manner. While there may not have been many surprises, I trust that these last few minutes of reading have added to your EWM knowledge stack. Thank you for taking the time to read through!

Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post Reveal SAP EWM – Warehouse Order sorting in Queues appeared first on WMexperts.online.

By: Hendrik
22 March 2025 at 15:31

Enhance SAP EWM – Latest Start Date (LSD) Calculation

Enhance SAP EWM

Latest Starting Date (LSD) Calculation

I closed my blog about the standard calculation of the LSD with the option to change the result manually. I guess you all know that this can easily done via the warehouse monitor. FM /SCWM/RSRC_WO_LSD_CHANGE_MON takes care to write the update in all relevant tables.

This is a feature you or the warehouse supervisor might want to use in exceptional cases to prioritize one WO over the other (e.g. you get a last-minute high-priority order which should be processed earlier as usual).

This should not be the topic of this blog post though. In this tutorial you will learn about a bunch of different options that SAP EWM offers to manipulate the standard way of calculating the LSD with custom coding.
As with all my other suggestions about how to change the standard code I will only consider options given via clean enhancements spots to ensure that whatever coding you implement will survive future release updates from SAP.

To provide structure to this post, we’ll once again refer to the formula highlighted in my previous discussion on this topic. Please note that this post builds on the concepts covered earlier, so I recommend reviewing the previous post if you haven’t already, as I won’t be re-explaining the basics.

We learned before that EWM is using this formula to calculate the LSD:

LSD = WO due date – (planned execution duration + planned movements duration)

That also means that to change the calculation of the LSD, we can implement a logic that either changes the standard result directly, or that changes the approach for calculating the different components of the formula. Thus, I structured this article in the following way:

  • Options to enhance the WO due date calculation
  • Options to enhance the (planned execution duration calculation
  • Options to enhance the planned movements duration) calculation
  • Options to enhance the result of the standard LSD calculation directly

Notes

  • I am sure that I did not identify 100% if the possibilities but I am optimistic that I found the most important ones for each of the 4 categories listed above!
  • As with my previous article about the LSD calculation, I decided to take everything related to the Labor Management out of scope. The article would simply become too long and I assume most of you are not using LM anyways. At some point I might go for a separate post about LM in this context specifically.

Options to change theΒ WO due date

Of course you can change the planned departure date in the Mapin Badi which will have an impact on the LSD calculation if you are working without waves. But I think nobody will change the delivery dates & times of a warehouse request only to get a different LSD in the corresponding WOs. Thus, no obvious option for me to change the due date in case you are not working with waves.

If you are working with waves you can make use of Badi /SCWM/EX_WAVE_SAVE to change the wave header data while saving. Relevant for the LSD calculation are completion dates of the separate steps (see my blog post about the LSD calculation for further details). Usually (not always) those timestamps are inherited from the wave template. By overwriting them, you can influence the LSD in one way or the other (e.g. moving the pick completion date from the wave header further into the future will also lead to a later LSD in the corresponding WOs).

Options to change theΒ planned execution durationΒ calculation

Badi /SCWM/ES_CORE_WT_RT gives you the option to overwrite the execution duration which had been calculated and summarized by the standard logic for the source and destination bin. When you increase the execution duration with a custom logic you will end up with an earlier LSD (remember the formula above).

*Β Β Β Β Β Β Β WithinΒ thisΒ BAdiΒ methodΒ theΒ userΒ hasΒ theΒ possiblityΒ toΒ overwrite
*Β Β Β Β Β Β Β theΒ reachΒ timeΒ basedΒ onΒ variousΒ parameters.
*Β Β Β Β Β Β Β TheΒ resultingΒ reachΒ timeΒ willΒ beΒ convertedΒ toΒ theΒ timeΒ unit
*Β Β Β Β Β Β Β ofΒ theΒ warehouse.

Options to change theΒ planned movements durationΒ calculation

The movement duration can only be manipulated while using option 2 for the travel distance calculation (the β€˜new’ way for the calculation which has to be activated on warehouse number level > check my blog post about the LSD calculation if you are not familiar with the two different options here).

Badi /SCWM/EX_TDC_START can be used to implement your own distance calculation algorithm. The Badi is called from method /SCWM/CL_TDC-CALC_DISTANCE (in fact the standard calculation of the distance is sitting in an example implementation of this Badi – you can copy the fallback class and use the adjusted copy in your Badi implementation). Increasing the distance will increase the movement duration which will result in an earlier LSD (remember the formula above):

Once the distance has been calculated, Badi /SCWM/EX_TDC_BRF_CALC_TIME can be used to calculate the travel time. Again, the standard logic is sitting in the example implementation. Again, you can copy the fallback class and use the adjusted copy in your Badi implementation. Increasing the travel time will result in an earlier LSD (remember the formula above):

The Badi is called from method /SCWM/CL_TDC-/SCWM/IF_LM_TDC~GET_TIME_FOR_LSD

Options to change the result of the standard LSD calculation directly

The most important Badi here is /SCWM/EX_RSRC_PROC_WO, which can be used to simply overwrite the result of the standard LSD calculation. Of course this Badi is only called in case FM /SCWM/RSRC_WHO_CREATE is executed, which is only the case if the WO is assigned to a resource management relevant queue.

This Badi is called to update the standard calculation before it is being saved to the DB the first time. In addition to this, you have an option to update the LSD at an even later point in time. Badi /SCWM/EX_CORE_CO_POST gives you a possibility to update the LSD of WO X, with the confirmation a WT from WO Y. An example implementation is given with class /SCWM/CL_EI_CORE_POST_CONS_WHO which can for instance be used to synchronize the completion of WOs which are processed in different activity areas. I wrote a detailed blog post about this feature a while ago (you can also find it on Youtube).

Last but not least – and worth it to mention here – SAP provides an API to change the warehouse order header data from any kind of custom logic, sitting with EWM or in some kind of custom/non-SAP software.

Class /SCWM/CL_API_WHSE_ORDER, method /SCWM/IF_API_WHSE_ORDER~UPDATE:

To conclude this post, as promised in my blog about LSD calculation, we will take a small step away from classical deliveries as warehouse requests towards production material requests.

Most of the options listed above are not applicable for PMRs. However, Badi /SCWM/EX_MFG_STAGE_WT_SO provides the option to set the pick completion date during staging WT creation. This date will later be used to calculate the due date and the LSD, particularly if you are working with a single-order staging approach. If you are working with cross-order staging, you can use Badi /SCWM/EX_MFG_STAGE_WT_CO.

Both Badis are called via the interface method ENRICH_DATA from class /SCWM/CL_MFG_STP_STAGE, using the methods PREPARE_WT_SINGLE and PREPARE_WT_CROSS, respectively:

The method offers a changeable structure where you can adjust the pick completion date:

SAP provides an example implementation of the single-order staging Badi (class /SCWM/CL_EI_MFG_STAGE_WT_SO), which includes logic to set the LSD based on the requirements date. This date is determined in the ERP system for the production order components and is mapped to the EWM date type SCMPREQ of the PMR item:

Please note that this class is not invoked as a fallback. Therefore, EWM will not set the LSD for PMR WOs unless you implement this Badi. You can either use the example class provided or copy it and incorporate your own logic. Based on my tests, this approach has been working quite well:

Not that the approach for the determination of the LSD based on the requirements date will not work that easily in case you are working with a cross-order staging approach. You can indeed use the Badi that I mentioned before and implement a similar logic but you will have to implement an additional Badi to end up with the same result. Cross-order staging WTs do not have a reference to a specific PMR item, which would be required though in case you want to read the requirements date based on this reference. One option is to /SCWM/EX_MFG_STAGE_INFO before to link the PMR item data to the staging item/task. Shoutout at this point to Ales Knor from advisio.tech who drew my attention to this!

That wraps up my review on enhancing the LSD calculation. I’ve outlined various options for you to jump in at different stages, and I’m confident that one of these approaches will meet your project’s specific requirements for calculating LSD!

Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post Enhance SAP EWM – Latest Start Date (LSD) Calculation appeared first on WMexperts.online.

By: Hendrik
15 February 2025 at 02:38

Reveal SAP EWM – Calculation of the Latest Starting Date (LSD)

Reveal SAP EWM

Calculation of the Latest Starting Date (LSD)

By reading this blog post, you will learn everything you need to know about how EWM calculates the Latest Starting Date for warehouse orders. Once again, I took a deep dive because I was not satisfied with the explanations I found in the SAP help texts. Here, I share the results of my analysis and, as usual, I promise to reveal some of EWM’s secrets. πŸ™‚

What is it and what can it be used for?

Let us start with defining what the LSD actually is. In the 2nd part of this post, I will try a deep-dive into the calculation of the LSD. As you know it from my articles/videos, I promise to reveal some details and information that you will not fine in the SAP help or any of the SAP books! The latest starting date (LSD) is the latest point in time by which execution of a warehouse order (WO) should commence, so that it is completed by the due date & time. It is calculated on warehouse task level but saved for the warehouse order.

SAP help: The system calculates the LSD of a WO by: Calculating the LSD of each WT as described above Taking the worst-case scenario LSD (that is, the earliest LSD)

It is calculated in the context of resource management. Technically that means that it is only calculated in case the given WT found a queue with operating environment 2, 3 or 5:

Later during processing of the warehouse orders, the LSD is mainly used for sorting the WOs in the queues (this is true for the RF environment as well as for the MFS). Note that some other factors also have an impact here. We will not tackle the queue sorting further here but it is on my list for the upcoming months!

Examples for sorting in the RF and the MFS queues (standard MFS warehouse order selection for resources (e.g. high-bay cranes) is also sorting the WOs in the queues based on the LSD):

How to calculate and set the LSD?

Based on the SAP help text, the LSD is calculated as follows:

LSD = WO due date – (planned execution duration + planned movements duration)

Simply imagine the β€˜due date’ being one point in time in the future and interpret the minus (-) components as those time periods in which we need to move backwards from this point in the future in order to find our starting point.

This is the most important formula which will accompany us until the end of the article/video. In the following chapters we will try to break that down and analyse the different components.

Before we start our deep-dive, it is important to understand that the LSD is calculated for each possible resource type due to the fact, that the velocity of the resource type has an impact on the movement duration and therefore also directly on the LSD calculation. The final LSD for the WO is then the LSD for the slowest possible resource type. During WO creation we do not know which resource will later process the WO so we better assume the worst case and write the corresponding LSD into the WO.

FM /SCWM/RSRC_WHO_CREATE is the one to collect all resource types which are allowed to process the given queue (considering allowed HU type groups and allowed bin access types from customizing) and hands them over (along with the WO and its WTs) to our most important player: FM /SCWM/RSRC_LSD_CALC:

FM /SCWM/RSRC_LSD_CALC starts to collect the data to fill the variables for our formula shown above:

Based on this comment we have learned something new already. Our formula LSD = WO due date – (planned execution duration + planned movements duration) Can also be written in a short form as: LSD = DD – (MOVE_DUR + PP_DUR) LSD = DD – (MOVE_DUR + PP_DUR) What else did we learn from the comment above? DD: Seems to be coming from the wave header This brings me to the question about what we use in case we do not use waves? MOVE_DUR: Distance divided by resource type velocity This brings me to the question about how we actually calculate the distance? PP_DUR: Seems to be coming from the warehouse order creation This brings me to the question about how and where we calculate the pick and place duration? Let’s dig into detail, and answer those questions one-by-one! We start with the WO due date The due date is retrieved from subroutine get_due_date and is determined based on the different completion timestamps of the wave template or the planned departure from yard from warehouse request header:
Option 1: With wave management If maintained, EWM uses the pick completion timestamp from wave template as the due date. The pick completion date is written into the WT earlier in the stack at different places, depending on the way of creating the WT:

*Party-Knowledge*
If the pick completion timestamp is not set in the wave template option, EWM determines the storage process step that happens after the picking step (PACK in our example but it can also be staging or loading). From there it takes the planned duration and calculates backwards against the planned completion timestamp (from the wave template) of the corresponding step.

Β 

Example:

  • Pick completion is not maintained
  • Packing step is taking 10min (600sec) based on the POSC customizing
  • Pick completion = Pack completion – 600sec

(pls ignore the 1h time-shift between warehouse time and DB time in my system!)

If either

  • waves are not used at all
  • the pick completion timestamp is not maintained and you are not using storage processes / POSC
  • the pick completion timestamp is not maintained but also the completion timestamps for packing, staging and wave completion (loading) are initial

The due date is the planned departure from yard from the warehouse request header (which might be set by the β€˜planned departure’ timestamp from the transportation unit in case you are using TUs).

Important note (again, a secret that is not mentioned anywhere in any of the SAP user manuals that I know) –
If maintained in customizing, EWM substracts from this planned departure also the duration of all POSC process steps that happen after the picking step. This makes a lot of sense as picking should not be completed when the goods leave the warehouse but rather at an earlier point in time to have some buffer left to pack, stage and load the goods:

For the sake of completeness –
The logic to set the due date for physical inventory warehouse orders is based on the planned count date, which can be provided during PI document creation (set in method /SCWM/CL_PI_UI_APPL-WHO_CREATE):

As the next part of our formula, we will look into the calculation of the execution duration.

planned execution duration (~ PP_DUR)
SAP help for the LSD formula (and comment in the code above)
The planned execution duration is taken from the WO

…that does not help much πŸ™

EWM offers two main approaches to calculate the planned execution duration

  1. With Labor Management (the options to calculate the LSD via LM is not in scope of this blog post as it is quite complex and based on my experience most of you will probably not use it anyways)
  2. Without Labor Management the duration is retrieved in our LSD context in FM /SCWM/RSRC_LSD_CALC via the subroutine get_pick_place_duration (screenshot below)

The subroutine get_pick_place_duration however does not calculate anything. It simply reads the result from the WO data where it had been filled before based on customizing data from different places. Let us have a look at those places/components! To be honest, I cannot ensure that there are some components that I missed (the coding is quite complex here). I am sure I covered the most important ones. In general, you can imagine the calculation to work like this:

Execution Duration = Preparation time of the WO + Execution time of WT #1 + Execution time of WT #2 … + Execution time of WT #n

Preparation time: The preparation time calculation is pretty easy. The value can be derived from the WOCR that was used to create the WO (screenshot):

Execution time: The execution time is called β€˜extract time’ in the customizing and β€˜reach time’ in the coding/dictionary objects (SAP is again not very consistent with their wording here).

Both of them describe the time that the picker needs to grab the items from the source bin (and place it on the pick-HU) and to place it (from the pick-HU) to the destination bin.

It’s parameters & values are defined in customizing. For each movement (take from source or place to destination) you can define a constant time (e.g. to open the source box/HU/bin) plus a variable time depending on the quantity to be removed/placed. You can find the customizing path below along with an example setup that I created to simplify the understanding . Note that the F4 help for this customizing node is exceptionally detailed (worth is to read through). In short – you can define the constant as well as the variable part of the execution time depending on the UOM of the task, the product attributes, the bin access type and the WPT category. Quite a flexible framework!

The logic for the calculation is sitting in FM /SCWM/TO_REACHTIME_DET (final calculation in include /SCWM/LTO_REACHTIMEF04 via subroutine reachtime_det) where it is calculated for each WT for the source as well as the destination bin. In my example I made it easy and used the same time calculation for source as well as destination. This might not reflect the real world where placing at the destination is usually much faster than picking from the source (you could easily implement such a logic by using a different access type for the destination bin and set a lower or zero extract time based on this). Time calculation for the source bin movements + time calculation for the destination bin movements:

The following screenshot summarizes the result with the objective to make it understandable for everybody.

(1) Preparation time from WO customizing
(2) Extract/Reach time calculation for each WT from β€˜Define Extract Time Determination’ customizing
(3) Extract time calculation for each WT (sum for source and destination extract times)
(4) Total time on WO-level (preparation time + extract time of all WTs)

I think based on this, everybody understands now how EWM calculates the planned execution duration which is used as part of our LSD calculation formula! Note that there are a lot of details and options to calculate the execution time that I did not mention here at all. I only gave you a rough overview to help you understand it as a component which is used for the LSD calculation. For a deep-dive of the execution time calculation I will drop another post/video within the next months. Next stop! Last but not least, let us have a look at the 3rd part of our formula. The planned movement duration. planned movements duration SAP help The planned movements duration is equal to distance/velocity. The following rules apply here: Distance is calculated according to the bins’ coordinates, using the manhattan metric Velocity is the lowest horizontal velocity from all resource types that are qualified to execute the WT Let’s see. We need to calculate travel distance & time now. Again, we assume that Labor Management is not active so we cannot use the numbers being returned from LM. Still, EWM offers two different options to calculate the movement duration:

Option 1 (the old β€˜Travel Distance Calculation’): The 1st option is the β€˜old’ (and default) way of calculating based on the X & Y coordinates of the bins. The logic is sitting in FM /SCWM/BIN_DIST_GET which is called by subroutine get_travel_distance:

Option 2: The β€˜new’, more complex approach for Travel Distance Calculation. This one is based on method /scwm/cl_tdc-get_time_for_lsd and needs to be activated in the warehouse number settings.

I will not go into detail how method /scwm/cl_tdc-get_time_for_lsd calculates the distance. It is using some fancy algorithm for the distance calculation of the vertical and horizontal movements. Something we could spent another hour on together – maybe in a separate blog post… The main differences:
  • Option 2 offers a more sophisticated algorithm for the calculation (which I did not explore in detail and is not in scope of this article). Both will only work in case coordinates are maintained for the storage bins!
  • Option 2 offers many different Badis/entry points to change the standard calculation or create a custom logic for the distance calculation. Option 1 does not offer any possibility to include a custom logic
  • Option 2 calculates the travel time right away (considering the velocity of the slowest resource type) whereas option 1 calculates only the distance
We will not go further into detail here. Keep in mind that if you have maintained the bin coordinates they will be used for the calculation of the movement duration. If you haven’t done that, both options will not be able to return anything. No matter which option you choose, under consideration of the resource types velocity, the result becomes our planned movements duration which we need for our formula (again – technically with calculation option 2 above, the velocity is considered right away to calculate the travel time and with option 1 we EWM only calculates the distance and the velocity is considered in the next step described below).

Note that the customizing for Define Planned Duration of Movements in Warehouse does not have any impact on the LSD calculation, based on my research. Did not explore any other usages but seems SAP is only using this as a simplified option to calculate the planned completion timestamps for WTs in case you are neither using warehouse requests, nor waves. So not really interesting for us here.

With that, we now we have the required values for all variables of our formula: LSD = WO due date – (planned execution duration + planned movements duration) Thus, the remaining step is the calculation of the LSD and the modification of this timestamp in the WO table for all resourse types. And this is how it looks like in detail:

The subroutine modify_lsd first calculates the travel time in case we used option 1 (mentioned above) for the travel distance calculation. It does this based on the distance calculated via FM /SCWM/BIN_DIST_GET (remember option 1 mentioned above) and the velocity of the different resource types. As mentioned, this is only required in case the travel time calculation has not yet happened via method /scwm/cl_tdc-get_time_for_lsd and handed over to our subroutine (remember option 2 for travel time calculation mentioned above).

The result is added to the execution duration (pv_plandura_sec in the screenshot below), that we got above from subroutine get_pick_place_duration above. The sum results in the total duration (movement duration + execution duration):

Note that if labor management is active, the travel duration is already part of the planned duration coming from LM and not calculated again here.

Once the total duration is calculated, FM /SCWM/RSRC_TIMESTAMP_SUBTRACT finally executes our main formula. It uses the total duration to calculate backwards based on the due date. This finally delivers the LSD:

This LSD is then saved for all allowed resource types in table /SCWM/WO_RSRC_TY and once for the WO in table /SCWM/WHO:

And with that we have reached the goal of this blog post. We have calculated the LSD and and understood every component of the formula it is based upon:

LSD = WO due date – (planned execution duration + planned movements duration)

Note that SAP offers an option to manipulate the results of calculations without any coding (thanks toΒ Jelle VerhagenΒ for pointing that out!!). Rounding rules can be determined based on the activity or wave template. For example, you can equalize all LSDs calculated for a specific hour or day based on these rounding rules, limiting the WO sorting for this timeframe to priority and WO number only.

To achieve this, you need to define modes and the corresponding determinations based on the activity:

The result of the customizing shown above should not surprise you:

Works in a similar way for other rounding intervals – no further examples here :-):

In the example above, the mode for the rounding rule was determined by the activity of the warehouse tasks. If you are working with waves, as mentioned before, the mode assigned to the activity can be overruled by the mode that you assign to a wave (coming from its wave template option).

…and that finally concludes the main part of this article! πŸ™‚

Last but not least, I would like to close this post with a tiny bit of party knowledge in the context of special scenarios, that did not really fit into the agenda so far πŸ™‚

PMRs
I did not find any standard logic for the LSD calculation in the context of production integration using PMRs as warehouse request documents. This is mainly due to the due date not getting any input from the planned departure or wave templates. I will soon release a video about how to enhance the LSD calculation, which will also cover this scenario. Let me know in the comments in case you found a standard logic to calculate the LSD for staging WOs against PMRs!

Note that SAP recently announced to enable wave management also for PMRs, which might come along with the option to use the time-stamps from the wave templates also here!

Pick & Pass system-driven
When you use a WOCR where EWM decides about the sequence of the pick&pass, it also considers the duration of the chained WOs to calculate the pick completion dates and thereby the LSD for each sub-WO (this is pretty smart):

This summary marks the end of this post. As usual, I hope I could add some value for some or the other.

To finally wrap it up –

The LSD that we calculated above for a given WO, can easily be changed via the warehouse monitor manually:

This is easy but what can you do in case you want to calculate it right away based on a custom logic. Stay tuned for my next video. Smash the subscribe button and sign in for my newsletter so you cannot miss it!

Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post Reveal SAP EWM – Calculation of the Latest Starting Date (LSD) appeared first on WMexperts.online.

By: Hendrik
1 February 2025 at 10:17

Reveal SAP EWM – Warehouse Order Creation Rules DEF and UNDE

Reveal SAP EWM

Warehouse Order Creation Rules DEF and UNDE

Who hasn’t faced this situation before? You create a warehouse order, and EWM tells you that it used the warehouse order creation rule β€˜DEF’ (or β€˜UNDE’). And you’re like, β€œWhat the hell!?”
This blog post will help you avoid this situation in the future. It will also help you understand that sometimes seeing one of these two WOCRs is a signal to fix an issue in your customizing, and other times it might be just fine.
A minimal intro for those of you starting your journey with EWM:

A β€˜Warehouse Order’ bundles multiple β€˜Warehouse Tasks’ into processable work packages. The rules for this bundling process are called β€˜Warehouse Order Creation Rules’. In the following, I will also use the abbreviation WOCRs to replace the long term.

For those of you who are not familiar with how the WOCRs work in general, I would recommend to read this blog before reading/watching this one here.
Adding a small summary here, which you can skip in case you are familiar with the concept (source SAP HTG for WHO enhancement):Β 

(1) Warehouse tasks are created in the system (for example, manually or by wave release).
(2) (3) The system groups the warehouse tasks by queue and activity area, and determines possible warehouse order creation rules according to the settings made in the Customizing activity Define Search Sequence of Creation Rules for Activity Areas.
(4) The system tries to apply the warehouse order creation rule according to the sequence specified in the Customizing activity Define Search Sequence of Creation Rules for Activity Areas.
(5) The system sorts all the warehouse tasks based on the inbound sorting criteria of the warehouse order creation rule.
(6) (7) At this stage, the system checks whether the sorted warehouse tasks pass the filter of the warehouse order creation rule on item level and on subtotal level.
(8) The warehouse tasks that have passed the filters are considered when applying the limits specified in the warehouse order creation rule.
(9) All the warehouse tasks that belong to one warehouse order are passed for packing proposal determination according to the packing profile of the warehouse order creation rule. As a result of the packing proposal determination, the system determines the creation of pick-HUs, the splitting of warehouse tasks (for example, to fit in a pick-HU), and the exclusion of warehouse tasks from the current warehouse order.
(10) Finally, the warehouse tasks that belong to the current warehouse order are sorted according to the sorting rule of the warehouse order creation rule.

After all the warehouse tasks have been checked against the warehouse order creation rule, the warehouse tasks that have not been bundled are checked against the next warehouse order creation rule defined in Customizing.

Anyways – back to the initial question.

What are those DEF and UNDE WOCRs and why are they sometimes applied when creating WOCRs?
First a quick look into the standard customizing help text:

We recommend that you avoid using the following abbreviations to identify warehouse order creation rules, since we have already assigned them internally for existing warehouse order creation rules. This ensures that the identification you define for a warehouse order creation rule is unique.

  • DEF: Standard rule
  • UNDE: Remainder rule

…ok – that does not help us at all.

Another look into the SAP Press functional EWM books:

  • If no warehouse order creation rule is set up in embedded EWM, it assigns all warehouse orders to default rule DEF.
  • If there are no more warehouse order creation rules left in the sequence for a warehouse order, the system assigns them to default rule UNDE.
    …that goes into the right direction abut also comes with a very limited amount of details.

The most helpful content that I’ve found over the years was this extract from the HTG for developers, working with WOs: β€˜How To Program Warehouse Order Processing in Extended Warehouse Management’:

If a warehouse task doesn’t fit to any warehouse order creation rule, it’s bundled with the rule Undefined (UNDE), together with all the other warehouse tasks that don’t fit to any warehouse order creation rule.
If the system can’t find a warehouse order creation rule for an activity area in Customizing, the warehouse tasks are bundled with the warehouse order creation rule Default (DEF). This means that all the warehouse tasks for one delivery are bundled together if they are in the same activity area, except for the putaway warehouse tasks where the system creates one warehouse order for each putaway-HU warehouse task (fields FLGHUTO = X and TRART = wmegc_trart_put (1)).

Why do I have to search for this information in the HTG for developers? Why is it not included in the customizing help text?

Anyways – I still had some open questions, and the same is probably true for you. So, let us look into the system to see if we can find more details about this logic. As usual, I found some useful details that are not included in any of the SAP documents mentioned above!

While trying to structure this post, I decided to start by looking at the application area of the WOCR β€˜DEF’, first in the context of putaway and internal tasks, and then in the context of stock removal. In the second part of this post, we will concentrate on the WOCR β€˜UNDE’ and again separate it by process category (putaway vs. removal).

Throughout the whole article, I am working with test cases and examples to help you understand my findings. In addition to this, you will also find all repository objects that are responsible for controlling the logic.

ANALYSING the WOCR β€˜DEF’

At first we want to understand the purpose of the WOCR DEF in detail. Remember, the HTG gave us the following information:

If the system can’t find a warehouse order creation rule for an activity area in Customizing, the warehouse tasks are bundled with the warehouse order creation rule Default (DEF). […] except for the putaway warehouse tasks where the system creates one warehouse order for each putaway-HU warehouse task (fields FLGHUTO = X and TRART = wmegc_trart_put (1)).

So, we start to analyze the behavior of the EWM standard in a situation where it cannot find any WOCR based on the given combination of activity area and activity. Let’s look at putaway and internal movements first, before we explore stock removal.

PUTAWAY/INTERNAL MOVEMENTS

I start using a warehouse process type of category β€˜1’ (putaway) and removed the WOCR determination customizing for my given combination of AA and Activity. The only ones left for my AA were relevant for a different activity:

The coding which is responsible to apply WOCRs is called from FM /SCWM/WHO_PARALLEL_CREATE. Based on my customizing, it cannot find a WOCR for the given AA/activity and proceeds with the β€˜special logic’ (trying to apply rule MFS or DEF). As our tasks are not relevant for a subsystem (rule β€˜MFS’), the only option left is to hand over the constant for the rule DEF to the subroutine who_wcr_apply.

If we are talking about HU WTs of the type β€˜putaway’ (WPT TRART = β€˜1’ > see WPT customizing screenshot above), this subroutine will make sure to always create a separate WO for each WT.

For our putaway example that means one WO for each HU WT which is created with a WPT of category β€˜1’:

And this is the result:
Double-checked with multiple HU-WTs, running through the WOCRs at the same time. Even if they are going to the same destination, EWM will create separate WOs:

Main takeaway? or What does that mean for you?

If you are

  • working with handling units as part of the inbound process
  • and you have a simple putaway step/process
  • where you want to create one warehouse order for each HU to be putaway

…it is totally fine not to create any custom WOCR at all. You can keep the customizing lean at this point and work with the standard default (DEF) rule.

But again – this is only true if you are working with HU WTs and if your WPT is of type β€˜putaway’. Once you switch to product WTs or WPTs of type internal movements (e.g. for replenishment) EWM still applies the DEF rule if it does not find a WOCR but it does not apply the logic to split the WTs into a 1-1 relationship within the WOs. As the screenshot below shows, we have now a 1-n relationship between WO and WT:

Putaway done! When and how does the DEF rule behave in the context of stock removal?

STOCK REMOVAL
Remember what the HTG told us

[…]This means that all the warehouse tasks for one delivery are bundled together if they are in the same activity area

Let’s try to find the logic behind!

Without any WOCR for the given combination of activity area and activity we are ending up with the same FM calling the same subroutine with the same constant as we saw it in our example for the putaway task creation. Subroutine wcr_default is the one that makes sure that warehouse orders do only receive tasks from one combination of activity area, queue and delivery / reference document / warehouse request:

Not much more to see here to be honest. The result is as expected:

Main takeaway? or What does that mean for you?

If you are working with warehouse requests (e.g. deliveries) and you do not have any specific requirement apart from

  • creating one single warehouse order for all warehouse tasks of a single warehouse request
  • which are removing stock from the same activity area
  • and are assigned to the same queue

…you do not have to configure a custom warehouse order creation rule for that but can keep it lean and work with the EWM standard default (DEF) rule.

First part done. I think that was straightforward and easy to understand! Let us now have a look at the WOCR UNDE!

ANALYSING the WOCR β€˜UNDE’

The HTG gave us the following information for this scenario:

If a warehouse task doesn’t fit to any warehouse order creation rule, it’s bundled with the rule Undefined (UNDE), together with all the other warehouse tasks that don’t fit to any warehouse order creation rule.

That is not a lot of details and as you can see further below, this is not 100% true. Anyways – we now want to analyse the behavior of the EWM standard in a situation where it indeed finds a WOCR for the given combination of activity area and activity but it cannot apply this rule (e.g. because the WTs did not pass the item filter).

Same as before, we first have a look at putaway and internal movements, before we explore the stock removal.

PUTAWAY
For this example I created a WOCR for the given activity area / activity but set the item filter in a way that our WTs would not pass it:

The relevant spot in the coding is the same as before where we ended up with rule β€˜DEF’. Again, FM /SCWM/WHO_PARALLEL_CREATE tries to apply the WOCRs. In the scenario we are looking at now, it actually finds one WOCR for the given AA/activity (see internal table lt_twcrsseq):

Subroutine who_wcr_apply first tries to apply one of the WOCRs to the given WTs. As this fails, the FM proceeds with the β€˜special logic’, trying to apply MFS or UNDE). As our tasks are not relevant for a subsystem/MFS, the only option left is to hand over the constant for the rule β€˜UNDE’ to the subroutine who_wcr_apply, which then calls subroutine wcr_undefined:

The comment in subroutine wcr_undefined gives us a better understanding about what to expect:

* So-called β€œundefined” warehouse order creation rule that will be
* processed if all rules of a the activity area have been processed
* and there are still TOs, which were not bundled.
* This rule creates one bundle per dstgrp (in an activity area and
* queue).

@SAP Why can’t we have such details in the help text for the WOCR customizing? πŸ™‚

Based on this we expect to end up with one WO for each combination of activity area, queue and distribution group. Note that in the context of putaway the term β€˜distribution group’ refers to the deconsolidation group which can be assigned to the bins based on the activity area (sitting in table /SCWM/LAGPS):

As expected, as a result of our test we end up with one WO which is created with WOCR UNDE, carrying all WTs for which EWM could not apply one of the WOCRs from customizing. Even HU WTs of type β€˜putaway’ are now combined in one WO (which is different to what we saw with WOCR β€˜DEF’):
Once I use different distribution groups for the different destination bins, the result looks like this (in the example I used one bin with and one without distribution group):

…this is the 1st point that I had in mind when I said the text in the how-to-guide is not 100% correct. As in fact, this is not happening: β€œit’s bundled with the rule Undefined (UNDE), together with all the other warehouse tasks that don’t fit to any warehouse order creation rule”.

Note that EWM does not make a difference here between putaway or internal movements. No special rules apply based on the WPT category (like we saw before with the β€˜DEF’ rule).

STOCK REMOVAL

In a similar situation during stock removal, the call stack looks exactly the same. Subroutine who_wcr_apply fails to successfully apply one of the WOCRs to each of the given WTs and FM /SCWM/WHO_PARALLEL_CREATE proceeds with the β€˜special logic’ (trying to apply WOCR MFS or UNDE).

As our tasks are not relevant for a subsystem (rule β€˜MFS’), the only option left is to hand over the constant for the rule β€˜UNDE’ to the subroutine who_wcr_apply, which then calls subroutine wcr_undefined. For stock removal we can find a split logic similar to the one that we saw for the putaway scenario above. Independent from the WOCR logic discussed here, EWM fills the distribution group field in the WT with the consolidation group of the warehouse request item. For us this also means that the WOCR β€˜UNDE’ will split by default based on this consolidation group for removal tasks (in the same way as it split based on the distribution group during putaway). In the context of stock removal the term β€˜distribution group’ refers to the consolidation group which can be assigned the warehouse request items.

Example with a single consolidation group:

Example with two different consolidation groups:

…this is the example that I had in mind when I wrote that the statement from the how-to-guide is not 100% true:

If a warehouse task doesn’t fit to any warehouse order creation rule, it’s bundled with the rule Undefined (UNDE), together with (!!) all the other (!!) warehouse tasks that don’t fit to any warehouse order creation rule.

Summary

Unfortunately the help text included in the customizing does not help much here and also the functional books from the SAP press do only provide an absolute minimum of technical details. The HTG for WO enhancements gave us a good picture but again, a comprehensive understanding of how and why EWM applies the WOCRs DEF and UNDE could only be gathered based on a code-review.

Key points that you should take away from this blog post:

In case you do not define any WOCR at all for the given combination of activity area and activity, EWM applies the special rule β€˜DEF’

  • For HU WTs created with a WPT of category β€˜1’ (putaway), EWM creates a dedicated WO for each WT
  • For product WTs or any other kind of WPT category, EWM creates one single WO for all such WTs in the given warehouse order creation run
  • For stock removal WTs, EWM creates one WO per AA & queue for each delivery

In case you have defined WOCR(s) for the given combination of activity area and activity but the WTs cannot be processed by those WOCR(s) (e.g. do not pass the filters), EWM applies the special rule β€˜UNDE’

  • In the context of putaway, separate WOs are created based on activity area, queue and the distribution group of the destination bin
  • In the context of stock removal, separate WOs are created based on activity area, queue and the consolidation group of the corresponding warehouse request items

For those of you who want to explore further details about the standard coding, the subroutine who_wcr_apply might be the most straightforward entry point:

This summary marks the end of this post. As usual, I hope I could add some value for some or the other.

In any case, thanks for spending your time to read this stuff! Enjoy learning and visit my blog again from time to time!

Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post Reveal SAP EWM – Warehouse Order Creation Rules DEF and UNDE appeared first on WMexperts.online.

By: Hendrik
2 November 2024 at 01:39

Reveal SAP EWM – Storage bin sorting during putaway (CLSP)

Reveal SAP EWM

Storage bin sorting during putaway (CLSP)

This blog is supposed to clear up one of the biggest misconceptions in the context of bin determination during putaway task creation in SAP EWM.

Before we jump into the system, let us quickly make sure to understand the scenario from material flow / process perspective –
Imagine you want to putaway a handling unit – let us assume a pallet loaded with some cartons – into a pallet rack. You have defined a strategy to determine an empty bin. All bins have the same bin type. So far so good. However, there might be lots of empty bins in the given rack. So how should EWM now decide which bin to suggest for the putaway process?

At this point, the bin sorting comes into the game!

I will explain the topic for you based on the following agenda:

  • The standard logic
  • The configuration
  • The bin sorting
  • The coding
  • Options for enhancement

As a starting point it is important to understand that whenever EWM is sorting something based on storage bins (e.g. warehouse tasks within warehouse orders, bins during putaway etc.) it is using so called β€˜sort sequence numbers’. Those numbers are assigned to storage bins. EWM never uses those sequence numbers alone. It usually uses a combination of a sequence number along with an activity area and an activity type. Different combinations of activities, activity areas and sequence numbers can be attached to storage bins. Either based on the execution of a report (which is reading the sorting logic from the customizing) or based on an excel upload file.

The result with both options is saved in table /SCWM/LAGPS. I highlighted the important fields within the screenshot below:
The following activities can be used to attach a sort sequence number to a storage bin in EWM standard:
Based on this it seems to be obvious to sort bins based on the activity type β€˜PTWY – Putaway’ in order to sort bins for the putaway process scenario described at the beginning of this post. Far from it! The sequence numbers assigned to the bins for activity type β€˜PTWY’ is only used for the sorting of putaway warehouse tasks within warehouse orders (e.g. for travel path optimization in case you assign multiple warehouse tasks for putaway to one warehouse order). It is not used to sort bins during the actual determination of the destination bin. EWM indeed uses the sequence number for this activity type during putaway task creation but only after the destination bin has already been determined (we will come back to this point later again!). So if it is not the activity type PTWY, what else is being used in order to sort the bins during the destination bin determination for our example above? The answer to this question is the assignment of the combination of sort sequence numbers, activity area and the activity type β€˜CLSP – Cross-Line Stock Putaway’ to the given bins.

The configuration

The creation of the activity area and its sorting can be done here:

  • Define an activity area via SPRO: SCWM Extended Warehouse Management -> Extended Warehouse Management -> Master Data -> Activities Areas -> Define Activity Areas
  • Then assign this Activity Area to storage type. Path in SPRO: SCWM Extended Warehouse Management -> Extended Warehouse Management -> Master Data -> Activities Areas -> Assign Storage Bins to Activity Areas
  • Then define sort sequence for CLSP Activity. Path in SPRO: SCWM Extended Warehouse Management -> Extended Warehouse Management -> Master Data -> Activities Areas -> Define Sort Sequence for Cross-Line Stock Putaway
Here you can now provide a logic for the assignment of the sequence numbers for sorting. For aisle, stack, level and subdivision you can decide whether you want to sort ascending or descending as well as whether you want to alternate or not. An example for the sort sequence between the 3 parameters is visualized in the screenshot below. Here I sorted 1st based on the stack and 2nd based on the level. You can see that EWM will first assign sequence numbers to all stacks of a given level before it proceeds with all stacks for the next level. This screenshot also shows how the β€˜alternating’ approach is supposed to work. You can see that EWM counts the stack up until the max value and then decreases again from there for the next level. When you set this to β€˜not alternating’ it would start again from the lowest stack value:
Here another example where I sorted 1st based on the level and 2nd based on the stack:
For all activities other than CLSP, EWM is sorting the aisles one-by-one. Only for CLSP it always sorts based on the aisle first. Another example to help you understand this approach along with the options for alternating:
Note: If you leave all other fields blank, the system simply sorts in ascending order based on the storage bin names. In addition to this, you have a parameter to fix the sorting. You can use this checkbox to ensure that the sorting is not changed during picking with radio frequency (RF). If you select this checkbox, it is not possible for the operator to change the path sequence during picking.
And that is it for this post! Pretty sure most of you are already using one or the other tool that I presented here. I hope that some of you still found something new here that helps you during your daily tasks in the future!

The bin sorting

Once the customizing is completed as shown above, the bins have to be sorted via transaction /SCWM/SBST:

Once the sorting has been executed, the sequence numbers are saved in table /SCWM/LAGPS as well as /SCWM/LAGP. This is also different compared to other activities where the sorting is only saved in the LAGPS table. Could not find the reason why we have it in two tables honestly. Maybe anyone has a good idea!?

The coding

It is interesting to observe that the although activity CLSP is not given as activity type in the customizing of the warehouse process type, it is still used for the sorting in our scenario:
Seems SAP noticed at some point that the WPT parameter is required for the activity which is used for the sorting within the WO (mentioned at the beginning of this post) and thus, needed a different approach to determine the sequence for the bin selection. For non-MFS storage types the sorting is done in include /SCWM/LPUT_BIN_DETF77, subroutine SORT_EMPTY_BINS, right after a list of possible destination bins had been determined via the subroutines BIN_DETERMINATION_1 & *2 in include /SCWM/LPUT_BIN_DETF17/ /SCWM/LPUT_BIN_DETF26. This is at least true for the empty bin determination. I have to admit that I did not spend time on analyzing the exact spot for addition to stock. However, I am pretty sure the function module which is finally used for the actual sorting is the same for both cases (so if you want to debug your specific strategy, just put a breakpoint into this one): /SCWM/ACT_AREA_EVALUATE
The FM imports the table of unsorted bins, reads the bin sorting against the imported activity type from the tables listed at the beginning of this article and exports a table with the same bins sorted accordingly:
…to be honest – I do not understand why the standard is coded like this. In line 26 it uses a constant to set the activity for our context. Then it fills lt_lgpla_unsorted from imported table IT_ILAGPL just to sort lt_lgpla_unsorted within the FM /SCWM/ACT_AREA_EVALUATE based on activity CLSP. However, the internal table that was imported to our subroutine here already had the field CLSP_SORT:
So why not just sort table IT_ILAGPL based on this field in line 32 ff. and return from the subroutine instead of calling FM /SCWM/ACT_AREA_EVALUATE? A big beer on my bill for anyone who can explain to me why this would not work! The logic for MFS storage types is less complex. Method /SCWM/CL_CORE_PUTSTRA-DET_EMPTY_BIN sorts the internal table of bins. As mentioned above, the field CLSP_SORT already exists in the LAGP table and here EWM does what I suggested above. The sequence number is read along with the bin and so does not have to be re-determined with an additional FM:
Now that we understood how the sorting during bin determination works based on the CLSP sequence, let us have a quick look at the technical details about the logic to sort WTs within WOs based on the PTWY sequence. Once the destination bin for a given WT has been determined (like described above), EWM fills the field PATHSEQ in the /SCWM/ORDIM_O table.
It determines the sequence number based on the activity of the WPT (which is β€˜PTWY’ for putaway processes):
The determination of the sequence number is done via FM /SCWM/LAGPS_READ_SINGLE, called from /SCWM/TO_ACT_AREA_DET –> /SCWM/ACT_AREA_EVALUATE:
The sorting in the context of warehouse order creation is done in include /SCWM/LWHO_MAINF03, subroutine who_to_sort. EWM is considering the PATHSEQ field by default in case you do not specify a sort rule. However, you can also consider this field along with a list of other sort criteria within your customized sort sequence:
This sorting is not mandatory though. You could also create such warehouse orders without having any PTWY sorting in place. The following flow-chart should visualize and summarize what we’ve learned so far:

Options for enhancements

As you know it from my previous blog posts, I use to give you some options to enhance the standard logic. This section is limited to the sorting of bins during the determination of the destination. Enhancements of the sorting within the WOs is not in scope here. You can look into this blog post in case you want to learn more about enhancing the WOCRs.

Badi /SCWM/EX_CORE_PTS_FILT_SORT is one that will work here for sure, as the name already suggests:

It is called right after EWM has determined a list of possible destination bins for a given WT and saved those in an internal table (as mentioned above, this is done in include /SCWM/LPUT_BIN_DETF77, subroutine SORT_EMPTY_BINS):
The interface allows to change the sorting within this table of possible destination tasks:

EWM delivers a sample implementation which might give you some good ideas about how to implement a custom sorting here (class /SCWM/CL_EI_CORE_PTS_FILT_SORT).

Final thoughts & remarks

  • The sort sequence number for CLSP is only relevant in case multiple bins are available with the same characteristics related to your putaway strategy. EWM first determines optimal bins e.g. based on the bin type and/or the storage section. Only if multiple valid bins exist with the optimal combination, the sequence numbers for CLSP sorting are applied
  • You might have noticed that if you do not create the activity area and the sorting for the CLSP activity at all, you will still get a destination bin during putaway task creation. In this case, EWM will simply sort the bins by their names.
  • Seems SAP also noticed that the topic is quite confusing. They released note 2992048 but you do not need to read that once you’ve read and understand this blog post πŸ™‚

…and here we are again at the end of the article. The intention of this blog post was to shed some light and help you to avoid confusion around this topic. Hope I could provide some value for one or the other!

Please feel free to subscribe to my blog updates or my youtube channel in case you want to be notified about new posts!

Get my monthly blog-updates!

Subscribe to my Youtube channel!

The post Reveal SAP EWM – Storage bin sorting during putaway (CLSP) appeared first on WMexperts.online.

By: Hendrik
4 October 2024 at 19:59
❌
❌