Expert Tips on Properly Preparing a Winshuttle Script and Why You Should Do it
By rwright on Feb 13, 2020
During my training sessions with customers, we talk about the 3-step process of creating a Winshuttle Script – Prepare, Create and Run. Preparing is key to a successful script and to an enjoyable Winshuttle experience. I can see you rolling your eyes… and I agree, just winging it can be a lot more fun… until it isn’t. Recording over and over again and troubleshooting a script each time a new user is introduced can be frustrating. So, I encourage you, take the time to prepare!
Preparation should consist of the following items:
- Identify the SAP System and Transaction
- Identify Test Data
- Practice the transaction in SAP
- Consider the End User experience
First, you need to identify the SAP System and the SAP Transaction that you will use. We ALWAYS recommend that you use a non-production SAP System, primarily because when you record a transaction, what you do during the recording is saved in that SAP System.
Second, in a non-production SAP system, finding data to use for the recording and testing can be a challenge, so finding or creating the data in advance can take some stress out of the recording process. You want enough data to be able to test the script thoroughly. Of course, we want to test all scenarios, but we also need to run several rows of data at once when testing since SAP can sometimes behave differently for the first transaction than it does for subsequent transactions. See the support article on Creating a Script for BP – Business Partner Maintenance.
Third, though you may be familiar with the transaction and may even use it every day, when we create a Winshuttle Script to execute the transaction, we must think about two things. How do I make this a repeatable process and what user specific settings may be in place in SAP? MM02 is prime example of this and something I see in support articles and on the community forums quite often. Here, instead of hitting enter after putting in the material number, we intentionally click on the select views button and we clear any default view selections that might be in place. When we look at transactions that require a loop in our script, rather than entering data on each row of the table in the transaction, we utilize buttons on the screen that will move the data out of the way so that we can repeat entering data on the same row. You may enter the first line of data on Row 2 in some occasions in order to record a repeatable process; not something that we would do if we did this manually. When searching for a row in a table that needs to be updated, we will utilize Find, Filter, or Position Cursor buttons. There are numerous support articles and Step-by-Step Guides that can be referenced.
Fourth, as you talk about change management, commitment to the new process is key to its success. Therefore, it is important to review and analyze the entire process, not just the SAP part of it. Identifying the person or team that will be responsible for completing the spreadsheet and understanding how they will use it will allow you to create a better template. Winshuttle allows us to bring in our own template during or after the script creating process (see open an existing Excel data file) and we can map fields in SAP to columns in whatever order makes more sense. It is possible to have supporting columns that aren’t used by the script and to build in dropdowns in Excel, allowed values, required fields, and transformations in Studio to allow for better data in the spreadsheet which translates to better data in the SAP system.
I have worked with customers that use the transform feature to change a majority of the data that is entered in the spreadsheet to SAP acceptable data. In Excel, you can create a dropdown to choose a sales org, company code, plant, etc. that includes the description, but then have Winshuttle take the first 4 characters from the selection, move that into another column, and load that data to SAP.
This provides a better user experience and allows control over the data that is provided in the template when the person completing the file doesn’t have a Runner license, so can’t use the allowed values functionality.
We can also keep the end user in mind when adding a loop to a script. As you look through the Step-by-step guides and the Templates located on the Online Community Site, you will notice that there are 4 different ways to create a single loop (note you will need access to the Online Community to access these examples):
- Column Based Mapping: Single sheet loop (where the Header information in SAP is on our “H” row and Item information is on “D” rows, showing on offset in the Header vs Detail data) (Example: MR21 Price Changes)
- Column Based Mapping: Single sheet loop (where the Header information AND the first item in SAP is on our “H” row and Item information is on “D” rows, eliminating the offset in the Header vs Detail data) (Example: ME21N PO Creation)
- Column Based Mapping: Multiple sheet loop (where the Header information in SAP is on one tab in our spreadsheet and item information is on another tab, using a join key to associate data within a document or record)
- Cell Based Mapping (where the header data is mapped to cells and item information is mapped to columns. This will create one record in SAP per Run of the script. (Example: VA01 Create Sales Order)
If we take the time to prepare the data, analyze the SAP transaction ensuring we have a repeatable process that considers user specific settings and work with the end users to design the spreadsheet we can spend more time creating new scripts and adding additional value to the organization.
About the author
I am a Senior Technical Trainer at Winshuttle. I have 16+ years of SAP experience, where I worked primarily in the Supply Chain focusing on process improvement and system enhancements within the Order-to-Cash process. I have been a Winshuttle Developer for over 13 years. With this experience, I am able to relate to the challenges facing the customers that we train and provide not only instruction on the tool, but also suggestions for implementation. My goal is for everyone that attends a Winshuttle training session to walk away loving Winshuttle as much as I do!
Questions or comments about this article?
Tweet @Winshuttle to continue the conversation!