Setting a General Task List in a Service Order

One of the really nice features in service orders is the ability to default in a General Task List (routing).

If you are familiar with transaction OISD, you already know that you can assign a general task list by plant/service material.  However, one of the things I often run into with clients is that the task lists aren’t specific to a service material (DIEN), rather they are specific to a material or group of materials. For that reason, SAP is so kind to provide a user exit:

IWO10020 (I believe)

this exit lets you impose your own logic on the general task list selected for the service order.  In our case, we a looked at the material in the task list header.  If the servicable materials = material in the header of the task list, bingo, add it to the service order.

You may have other rules that are more generic, product hierarchy, material group, or whatever you use to make a general group.  This way you have the ability to create the task list one time, and have it automatically pulled into every service order that matches your criteria.  This will help your planning and save your service technicians the time of entering in this data every time.

Thanks for reading,

Number Schemes for Serial Numbers in SAP

One of the things I’ve run into a lot of issues is serialization.  For some reason, serial numbers seems to hold a special place of confusion for many customer.  Today I want to talk about the serial number number scheme.  I’ve picked this as my starting point for serialization because many of my recent projects have had a lot of trouble coming to decisions on this topic.
Serial numbers have a great starting point when it comes to numbering.  As of ERP 5.0 or 6.0 (not sure exactly when), SAP added a field called SerializLevel.

This field allows you to make the serial number number scheme unique at a global level or unique at a material level.  This subtle difference has huge implications on the number scheme.  If SerializLevel is blank, then serial number is only unique at a material master level.  To put things simply, the combination of serial number and material number is unique, but the same serial number can show up for any material number.  If SerializLevel is set to 1, then the serial number is unique across the SAP instance.  This means that no serial number will ever show up  for any other material.  SAP accomplishes this by linking the serial number to the equipment record number.  I’ll have a future post that goes into the details of serial numbers vs. equipment records.  Since every business is different, and you can often become locked into a particular numbering scheme.  The number one decision to make is if the serial number is unique across the organization, or if it can be reused for materials.

There are some things to beware of when using this functionality.  The SerializLevel field is plant dependent.  This means that you do have the ability to set this value differently across different plants.  I discourage setting this differently for the same material.  If you were to set the value to be unique across the origanization in one plant, but unique by material in another, you’ll see some very inconsistent results in the history.  I’ll go into the serial number history in a future post, but when it comes to serialization, consistency is key.

The final issue to cover when it comes to serial numbers is what I’ve heard called “intelligent” serial numbers.  When I say intelligent serial numbers, I use the term loosely.  This can be anything from adding a prefix by product to each number, adding in a manufacture date, or it could be a combination of alphanumeric characteristic that have a decoder ring to explain them.  In my humble opinion, this is a very slippery slope and should be avoided at all costs.  When you move down the path of “intelligent” number schemes, you must introduce ABAP code to accomplish this.  I believe the user exit is IEQM0003 (don’t remember for sure if this is the correct exit).  Regardless, if you start creating an “intelligent” number scheme, you must have multiple number ranges available, you need code to possibly shift from one range to the next.  For anyone that’s been doing SAP for a while, you know that every time you introduce code, you introduce risk, and you introduce additional time to implement.

The most important question to ask is “Why do you need an “intelligent” serial number?”  A serial number should be nothing more than a tracking mechanism for a product.  Requiring the serial number to mean something is a not something that add value to a product, but it does increase the cost.  Anyway, I’ll get off my soap box now.  You get the idea that I think intelligent number schemes are costly, risky and unnecessary.

I hope you found this useful.  I hope to hear your comments, thoughts, or let me know things I missed.

Thanks for reading,

ROI of Service Parts Planning

I did a post a while ago talking about the concepts and practice of service parts staging.  Well, that got me thinking about the importance of parts planning within the service order.  Now everyone knows how important it is accurate forecast your inventory levels for production.  And while it’s still a bit of voodoo to figure out what you will really sell over a coming period, you at least have some idea of what to do.  And more importantly, you know exactly what components it takes to make one unit.

Well, service completely defies this logic.  In most places I’ve worked at, there is a “small” percentage of known maintenance coming.  This is often related to service contracts or maintenance plans.  It’s predictable and you know what’s going to happen.  If you want the generic example, oil changes for your car.  You sell a “plan” for discounted oil changes for 1 year, with up to 4 oil changes.  You know that you need to plan for the oil, filter and technician time.  No problem.  You still don’t really know exactly when it will happen, but you at least can guess.  But the real bulk of most service is unplanned and unpredictable.  You hope you’re product is designed to last at least a certain time period without a failure.  But things happen.  The point is, since you have no idea what could go wrong, how do you plan for this???

This is where your service order (and to some extent you service notification) become invaluable for helping you develop your own crystal ball of potential repairs.  Your service order should always contain the material that is being repaired (that’s a given).  But if you are using it correctly, you are also loading up all the time and materials you used for the repair.  This is normally driven from a cost perspective.  But what many people don’t realize is this is building your history, if you just remember to look at it.

I’m hoping the light bulb is starting to go off out there, but if not, let me lead you a little further down the path.  If you start looking at the components used for a particular repair for a material, it’s likely a pattern will emerge.  So let’s say you have you widget, and there are components 1 – 20 used to build it.  Now, if I were to pull every service order for the past year for that widget, and analyze the components (and qty) issued to those jobs, in most instances you should see the pattern of common parts usage.  Typically there will always be the common wear components (in your car this is the oil filter, air filter, brake pads, etc…)  Things you know will wear out and need to be replaced.  But now if I take this one step further, I can start looking at the average time before these components needs to be replaced.  Now, this analysis is a lot harder, because now you need to take into account the date the components was added to the widget (this could be the production date, or it could be the last service date).  However, the information is all in SAP.

Now, let’s just step back for a second.  Knowing exactly how long a component will last is great to know…  but for our purposes, this might be more info than we need.  If we can simply look at the component usage for service over a time span, we can now “forecast” what we really need to keep in stock in order to turn around those customer issues as quickly as possible, while still maintaining minimum stock levels.  Now if you’re already doing this, my hat is off to you.  In general, I don’t see this happen in the service order very often.  For the rest of you, if you’re looking for a tool to help you get this information, check out the Renovation Service Management Dashboard.  We are currently adding several new sets of metrics/reports to this dashboard, including service component usage.  If you could use this information, we’d love to help.

Thanks for reading,

EAM Conference

Next week, I will be heading out to Denver to check out the EAM (Enterprise Asset Management) conference.  I won’t have a booth this time, but instead I’ll be out and about meeting people.  If you are planning to be at the show, I’d love to meet up with you and chat for a few minutes.   Email me and catch up.

mpiehl@gojavellin.com

Thanks for reading,

UI5 – Looping through JSON Data

My latest trick in UI5 has me one step closer to my dynamic screen.  Today I figured out how to loop through the JSON model.  Turns out, once I had things in place, not as bad as I thought.

var oModel = this.getView().getModel(“config”).getProperty(“/results”);
if (oModel.length > 0) {
for(var i = 0; i < oModel.length; i++) {
var obj = oModel[i];
console.log(oModel[i].Field);
}

some things to notice.  When you set oModel, be sure to use the getProperty(“/X”); where X is the group name.  For me it was results, but if you aren’t sure, just look in debug mode and you’ll see what it should be.

Beyond that, it’s pretty easy.  I added the console statement in here, just so I could see in Debug that it was looping through my table.

Thanks for reading,

SAP – Resetting the Export button in ALV

I recently ran into this again in a current project, and of course, I had to look it up to remember how to fix it.

When you are in an ALV grid in SAP, you get the nice little export button.  The first time you press it, it gives you the full list of output formats.  it also has a check box to make it the default option. What they don’t explain is that once you press this check box, it’s not easy to get back and change it.  In fact, the only way that I know of is to run a program.

SALV_BS_ADMIN_MAINTAIN

Inside this program, you can find the user and either change or delete the default for them.  Seems strange, but it’s the way to fix it.

Thanks for reading,

Different Forms of Capital

I recently listened to a podcast that started talking about all the different forms of capital, and how each is incredibly valuable.  I thought I’d spend a little time talking about the concept, and I’ll likely go into detail over future posts on what each of them means.

  1. Intellectual
  2. Spiritual
  3. Social
  4. Material
  5. Financial
  6. Living
  7. Cultural
  8. Experiential or Human

the idea behind this is that money isn’t the only thing of value.  Especially when you look at starting a business.  If you don’t have all 8 forms of capital is at least some form, you can’t expect to have wild success.  For example, it’s taken me a long time to understand the value of social capital.  Social capital at it’s heart is working with other people.  If you don’t have this, you have no choice to do everything yourself.  This includes building the product, building a sales and marketing pipeline, finding all your own prospects, closing the deals and on and on.

Being in a small business, I’ve tried to do this.  It doesn’t work.  The logic is very simple.  No one has the time or aptitude to be great at all of these things. I used to shy away from the idea of partnering with other companies, thinking it would hurt my profit margin, and after all, I could do it myself.  Nothing could be further from the truth. By companies that I can work with symbiotically, we can all win, instead of just flopping around trying to learn just enough skills to keep me afloat.

Some of the list is pretty obvious… others are require a little more thinking.  But the bottom line is, what forms of capital are you currently leveraging?  and how you leverage other forms of capital that you have overlooked?

Thanks for reading,

UI5 – Reading oData Models into JSON

My UI5 journey has gone slower than I would like, but I’m still making steady progress.  My latest obstacle to overcome was being able to read in my configuration tables, so that I could use them to dynamically alter what is shown on the screen.  Obviously, the first thing I wanted to do was to be able to read in those tables, but I had a secondary objective, and that was to locally store all the values so that I wouldn’t need to read them in every time the application fired off.  It took some digging, but I finally got there.

// Config Settings
// Using a local model for offline data capture
var oConfig = new sap.ui.model.json.JSONModel();
jQuery.sap.require(“jquery.sap.storage”);
//Check if there is data in the Storage
if (oStorage.get(“config”)) {
var oDataConfig = oStorage.get(“config”);
oConfig.setData(oDataConfig);
} else {
var urlCon = “Config”;
oModel.read(urlCon, null, null, false, function(oData, oResponse) {
oConfig.setData(oData);
}, null);
}
var oDataConfig = oConfig.getData();
oConfig.refresh(true);
oStorage.put(“config”, oDataConfig);
oView.setModel(oConfig, “config”);

 

so, if you take a look at this, the first section creates a JSON model (please note, that I have already connected to the service that contains everything.  Now I just need to read it.  the jquery.sap.storage is the cool class that is provided to locally store things in a browser.  You will have nothing in here the first time the app is run from any browser (or if you clear the cache), but once it’s there, it will be read in, without a service call.  The if statement above is what handles that.  Note, that the url will have everything from the original model, I just needed to tell it what service to execute.  In my case, Config, with no inputs.  After the If statement, it is putting the data into the JSON model, and making the model available to the rest of the application.

Pretty easy, once you know the tricks.  Next up, dynamically creating input and output fields using this data.  But I have more homework to do before I can talk about that.

Thanks for reading,

Getting Back in the Groove

Sorry for my absence of late.  It’s been a crazy string of vacations, and today I’m finally back to the real world.  Vacations are great, but it is damn tough to jump right back into everything.  If you’re like me, there is always a never ending stream of daily tasks that I focus on.  Suddenly, when you disappear for a full week, that means a lot of things got put on hold.  Granted, I kept up with the most critical while I was out…  but that left a lot of little things that I’m trying to get back under control.

Happily, my list has high, medium and low priorities…  but when I see a huge list of things that all need my attention, it’s easy to get caught up in doing low priority tasks.  I can’t lie… it’s how I spent the first hour of my day today…  weeding through emails, and trying to check easy things off of the list.  The problem is that it might make me feel a little better, I’m not getting the really important things done.  But at least it helps me settle back into the routine…  and if I can get away from the overwhelmed feeling, it makes it easy to start to tackle the more important things.

Moral of today… don’t beat yourself up.  =)

thanks for reading,

ROI of Maintenance Plans

Today I wanted to talk about the maintenance plans.  At first glance, the maintenance plan is more of a feature than a benefit.  Now in marketing 101, I’ve had it beaten into my head, benefits not features…  Well, the concept of the maintenance plan actually fits both concepts…  at least if you look at it the right way.  The maintenance plan becomes a huge time saver if your business does any sort of repetitive service.  Let’s go with an example everyone can relate to, oil changes…

In the auto service industry, everyone is familiar with the idea that you should change your oil every 3000 miles or 3 months.  Well, using a maintenance plan, you could have a notification generated every 6 weeks.  The notification would be for someone to send an email or a coupon to remind the person they have an oil change coming up soon.  Now the amount of automation you build into this is up to you.  But I’d be willing to bet that if you look at your industry there is at least some repetitive tasks that you could schedule.

Now, creating a notification or service order doesn’t really take that long, neither does sending an email.  What does take time is monitoring a list, running a report, or checking a database to see who is who should be contacted, or who should be receiving a notification of upcoming service.  If you set a plan one time, then you get to “set it and forget it”.  This has multiple benefits, you get the obvious benefit of not having to babysit your marketing.  But far more important, you move into the automated marketing world of keeping yourself in your customer’s minds.  You get the chance to remind them of the value of “regular oil changes”, you get to offer them a discount if you choose, and you build a stronger relationship with your existing customers.  The stronger the relationship, the more likely your customers will talk about you to their friends…  giving you that perfect opportunity to get new customers and take care of them just as well as your existing customers.

Pretty solid ROI in my mind.

Posts navigation

1 2 3 27 28 29 30 31 32 33 97 98 99
Scroll to top