Blog

Home / Archive by category "Blog" (Page 22)
Product Registration

Product Registration

Early on in my adventures to create products in service management, I created a web application designed for end users to input their own information.  I learned a lot from that initial product, and it gave me a lot of good ideas.  At the time, the product never really took off, so I set it on the shelf for a while.  As I explore the whole new UI5, responsive technology suddenly makes me wonder if this is something to revive.  My brain has been focusing a lot on warranty lately, and the concept of product registration was something I designed into my old application.  It worked very simply.  Once someone logged into the application, they could register a product.  All they needed was a serial number, material number or equipment record.  Every business is slightly different, so I kept this generic.  They could search SAP to see if the serial number existed.  If it did, they could register it to themselves.

Upon registering it would assign an end user partner to the equipment, and it had the option to assign warranty start and end dates as well.  As an added feature, within the scope of the application, you could see all products registered to you (or your company) and select them from a list if you needed to submit a notification.

If you don’t currently use SAP capture your registrations, what sort of data are you losing?  I’ve worked at companies before that still receive the little postcard registrations.  This is great, but someone needs to manually key these into the system.  If you don’t do any sort of registration, do you know all your end users?  if so, no big loss.  If not, you could be losing out on the ability to market directly to the people using your product.  If you use registration within SAP, you have that reporting capability available to you.

What I’m curious about is if this is something your organization would see value in.  If so, I’d love to hear from you, and I’d be open to moving the original “Rapier” up on the priority list to be converted to UI5 (it is currently in ABAP Web Dynpro).  I look forward to hearing your thoughts,

thanks for reading,

Setting Warranty Dates – A new option

Setting Warranty Dates – A new option

One of the things I have always wanted to see from SAP is an easy way to set warranty dates.  They have gone out and built up a lot of automotive functionality, namely ACS-Warranty, the Warranty Claims “module” etc.  But I have yet to find an easy way to enter in the dates.  So, my mind naturally wonders how it could be done better.  So a few months ago, I blueprinted what I thought could be a great solution.  I wanted to find out if you agree, and if so, do you think it is worth developing.

What if warranty dates worked just like pricing in SD?  Now, if you aren’t familiar with how SD pricing works, let me give you the high level.  pricing contains a series of tables, each of the tables has different and/or more fields.  let me paint you a picture.

Table 1 – material number

Table 2 – material number, product hierarchy

Table 3 – material number, pricing group, product hierarchy

and so on…  within SD pricing, I can group and sequence these tables in such a way that if you find the value in a table, you stop and return that value.  if not, you keep dropping down to the next table until you find a match.  so if I group these tables 1 = table 3, 2 = table 2, 3 = table 1.  Then table 1 will be my most generic, and last resort.  Typically there are fewer entries in the most specific tables despite the fact that it is more specific.  This is because there are usually only a handful of “special” cases that drive different prices.

Now, what if we could do that with warranty dates?  have it use this same concept to be as generic or specific as your business needs.  If your company (or any customer you have worked with in the past) could benefit from something like this?

Looking forward to your responses.  Thanks for reading,

Setting Warranty Dates for new products

Setting Warranty Dates for new products

A challenge I always seem to encounter in SAP is setting warranty dates.  Now, in my world, I’m very familiar with what to do with the warranty dates and how to process things, but one of the biggest challenges is getting the warranty dates set properly in the first place.  In my travels, I’ve done this 4 different ways, often depending on the business or development resources available.  Here are the options I’ve done in the past and I’d love to hear your experience.

  1.  Write a user exit at the time of post goods issue.  This will work, especially if you follow simple warranty rules.  The gotcha for this always ends up being how to set different dates by product line, hierarchy, material type, etc.  You typically end up with one or more custom tables to hold this information.  But this falls apart if you need to get more complicated than material number (prod hier, or whatever).  Perhaps you offer 12 months on everything in a product family, except for you most mature product, which you offer 18 months.  Short of adding in new product hierarchy, or listing each material individually, you end up writing a lot of code that may or may not change.
  2. Product Registration: Method 1 is great if you start the warranty clock as soon as you ship it.  What happens if you deal with distributors that may hold your product for 1 – 6 months before the end user purchases it.  You can’t very well your end user it’s out of warranty if they just bought it and it’s been sitting on a shelf for a while.  In this case, you need to resort to product registration.  If you users are willing to do this, I love this approach.  However, this requires a lot of up front work.  You typically need a user website capable of allowing your customers to register a product.  This means you need to be capable of creating new customers on the fly, adding partner types to an existing equipment record, and then setting the warranty dates.  You also typically need to add a front end to login, or even create new users in the system to even allow an end customer to do this.  It’s a big up front effort unless your business has already done it.
  3. Create a background program that looks at all the of the serial numbers shipped, PGI’d, etc, and then using similar logic to the user exit, load in the correct values.  This approach is very similar to #1, but offloads the heavy lifting until later rather than doing it as the delivery is going out the door.  This approach is typically better, since warranty information is not critical as a product leaves the door.  You typically have at least a week before you should need to worry about it 🙂
  4. Manually entering the data/skipping it.  All too often, this ends up being the approach that businesses take.  Why?  it’s too much development to get the data in when it might never be used.  So they may run a report monthly to show all the equipment with blank warranty dates, and in someone’s “spare time”, they might enter in the data.  Let’s be honest, this means you might as well skip it, since the warranty data will be so hit or miss that data is not trustworthy.

Now, something to consider regardless of how you set the warranty dates (or master warranty) is:  What happens if you don’t have a simple time based warranty?  as soon as you need to track hours of usage, miles, tons moved, or whatever, you now need to track a whole new level of warranty data.  Measurement documents are great for this…  but they carry their own overhead.  For example, how do you get the numbers?  do you have technicians that can see each piece of equipment and regularly report back the latest values?  Are your customers willing to give you numbers on a daily, weekly, monthly basis?  If you can’t get something to give you these numbers, you end up with a product that appears to infinitely under warranty.  Great for your customers, not so great for you.

Now, all of these methods can work…  but is there a better way?  I’ve been thinking of developing something into Renovation/Proximity to help with this.  Before I invest my time, I want to make sure there isn’t an easier way to do this that I may have missed.  Would love to hear from you.

Thanks for reading,

UI5 – Gateway Service Debug Timeout

UI5 – Gateway Service Debug Timeout

Well, I recently had some trouble connecting my services to a template in the WebIDE.  So like any good developer, I tried a whole bunch of things, then moved over to another system.  And when it still didn’t work, I started fresh.  Well, can’t pinpoint what exactly changed, but now things are working better than ever.  Of course, when you start fresh, something else inevitably pops up.  This time, when I went to debug my gateway service, it kept timing out after 30 seconds.  This was something I hadn’t encountered before.

Seems like I’m not the only one.  I happily found a post that explained what to do.  The short story is that in HCP, I needed to add another parameter to my destination.

ClientReadTimeout = 30000

Interesting that this didn’t occur before, so I can only guess that a change occurred in HCP recently.  Either way, now I have 5 mins of debug time, instead of 30 seconds.  So I’m back in business again.

Thanks for reading,

Netweaver Gateway – Beware of changing versions

I recently ran into a new error when working through the Netweaver gateway.  Because it was occurring on a new service, it left the door wide open to possible pieces I may have missed on the service.  Well, after some digging, I realized that I had developed the service in one system, and was deploying it to a newer system.  Since I had used structures, I bad the bad assumption that it would automatically update if the structure changed.

Well, it turns out, this is wrong.  When SAP generates the service, it creates interfaces that take a snapshot of the structure, but they don’t use the structure itself.  In the newer system, the structure contained 8 new fields, and until I generated the service in the new system, the service kept failing.

So, remember, structures used within a type in a Gateway Service are snapshots, not dynamic.  So if you are having a strange error, sometimes it pays to regenerate the whole package.

Thanks for reading,

Dealing with Anxiety…  a new approach for me

Dealing with Anxiety… a new approach for me

I woke up this morning, and realized I had slept through my alarm.  It wasn’t terribly late, but my morning ritual includes taking the dog for a 30 minute walk, getting breakfast ready for the kids, emptying the dishwasher, and if time permits, a little bit of personal time for myself to exercise and meditate.  Well, I woke up late enough that all of the personal time got used up, and then to compound things, I looked at my to-do list.  Well, it had 20+ items I “wanted” to get done today.  Now, for me, most of the items on the list aren’t critical.  I won’t go to jail, get fired or lose my family if they don’t get done, but the more things get put off, the bigger the list gets.  To top it off, I’m probably slightly OCD in respect to lists.  I have this overwhelming NEED to check items off.  At least I know how to motivate myself to get things done.  ha ha ha.

Well, all of these things made me extremely anxious.  Not the way to start my day, and to make things worse, I usually look forward to time with my little girl (who always seems to wake up before the rest of the family).  But today, I had the jitters, butterflies in my stomach, whatever you want to call it.  That list and waking up late just knocked me off balance.  So instead of enjoying my morning with the family, I couldn’t sit down… I had to try to cross a few items off the list.  Instead, I checked my inbox and added a few more items to the list making it even worse.  Like my usual morning routine, the family eventually headed out the door and I went up to my office to start my day.  Normally, I would try to knock off a few of the easy items on my list, just to make the number look better.  But today (I’ve been doing this for a couple weeks now), I spent ten minutes with the headspace app.  It’s very easy, guided “meditation”.  I used to think this was some sort of hokey thing that only hippies and granola people did.  Damn, was I wrong about that.

Since listening to Tim Ferriss, I’ve realized just how many successful people include some form of meditation in their daily life.  So, I decided to try it.  Well, today after just 10 minutes, I’m far less anxious and I feel far less stressed.  In fact, it’s prompted me to write this post now to further help me work through this stress.  Amazing how small things, just 10 minutes can make a huge difference.  Anyway, if you don’t currently do this, I encourage you to try it.  Just do it for 10 days.  (Sorry, don’t mean to sound like a commercial), but it might be worth it.  I was for me.

Thanks for reading,

Service Quotations…  Why are these so challenging?

Service Quotations… Why are these so challenging?

I’ve recently been helping out a fellow service expert to navigate the ins and outs of quoting service.  It really has lead me to the question “why is it so difficult?”  Let me tell you where I’m coming from, in the ECC world, if you want to quote your customer for In-House Repairs, you have to jump through a lot of hoops.  First, you have to decide if you want to go with a more manual approach, or do a bunch of “SAP sponsored” development.  Each of these methods as merit, but at the end of the day, if you want send a quote to your customer, it’s not easy.

A while back, I did a post that explained the SAP approved method for handling this.  It entailed new item categories, users exits, DIP profiles, and of course, a lot of form and pricing work.  Overall, it’s a pretty slick method, but it requires a lot of ramp up to get there, and for non-SAP experts, it can look very cluttered and cumbersome.  The long and short of it is that your sales order because both the sales order and the quote.  Does it work?  absolutely.  Is it an elegant solution… in my opinion, absolutely NOT.

The flip side is to simply create a quotation with reference to the original sales order.  This means that you basically have to enter in the quote from scratch.  You will need your service guys to send you an excel, or you need to be fluent enough in reading a service order to enter in all the data.  Minimal development effort… maximum effort from the users.

This lack of good options lead me to create a simple button in Renovation: Repair Order Execution.  The button is simply Create Quotation.  What isn’t simple is the cool functionality behind this button.  First off, it checks for a specific user status on the service order to make sure the service department has finished updating the order with planned cost.  Next off, it check how you want you quote created.  Do you want the servicable material as an item on the quote?  do you want all the items that would have come from you DIP profile?  do you want to pull from a sales bom?  Then it pulls in the items on the order, and then adds the unit costing for each thing, so that EK02 condition will show you the cost.  Then, to let the service department know what’s going on, it changes the user status to show that they are waiting for the customer to accept or reject the quote.

If you are interested in a better way to quote for service, check out Renovation.  Just email me, and I”ll be happy to set up a demo.

Thanks for reading,

Two is One – Having multiple ways for remote access to you systems

Two is One – Having multiple ways for remote access to you systems

If you are like me, you have to travel from time to time.  Personally, I have multiple systems still running at home, regardless of where I am.  Inevitably, when I leave town, something goes down.  Not long ago, I left town for a weekend, and my cat pee’d on a surge protector and it popped the breaker for my office.  In that instance…  remote access would not have helped me.  Ha ha.

However, more times than not, a system needs to restart, or restarted without my permission.  Then my virtual servers all need to be restarted if I want SAP access.  So, remote access is a must have.  But I have discovered that my consulting clients all have differences in their security.  For example, I’ve had clients that block Teamviewer, but allow Chrome Remote Access.  I’ve had other clients that are the reverse.  Worst of all, you never know what might work, and what might be blocked.

For this reason, I recommend always having two different systems installed on every machine you might need remote access.  I personally use Chrome Remote and Teamviewer, since both are free.  I’ve used GoToMyPC for a long time and it worked great (but you have to pay for that).

Take my advise, keep 2 methods on every system.  Thanks for reading,

Proximity Production Supervisor – UI5

Proximity Production Supervisor – UI5

Well, this experiment was months in the making, but I have to say, it was worth the effort.  When I first started the journey of UI5, really thought it was just another crappy method to make SAP look a LITTLE less like SAP (for example , Web Dynpro).  Well, I was happily proven wrong.  After creating my first application in UI5, I’m rather excited by the results.  Thanks to some OpenSAP courses, I even have the guideback to make it into a hybrid application that can work offline (but I’ll save that for Field Service Engineer).

My first experiment was to replicate a UI5 application that a good friend of mine built for us a few years back.  Then of course, I wanted to see if I could make it just as flexible as my GUI version.  The results were great.  The answer was YES.  I’d really love to have you take a look at this and give me your feedback.  Be brutal, I can take it 🙂  This is my first app in UI5 and have begun rolling it out to Renovation, my application most in need of a facelift, since it was only designed in web dynpro.

Please keep in mind, you will need to have a Hana Cloud Platform account to login.  The account is free, and doesn’t expire, so you have nothing to lose.  if you don’t get a login popup, you will get this link:

  1. https://account.hanatrial.ondemand.com/
    1. Select register
    2. Enter in the basic info.  Accept, and you have your free account.
  2. https://proxprodsup-s0008170837trial.dispatcher.hanatrial.ondemand.com/
    1. Login
      1. User: jvs
      2. Password: password
    2. If you just have a blank blue screen (this happens occasionally)  just press refresh.

Can’t wait to hear you thoughts.  If you want to compare it, check out my webdynpro version for service supervisor.  It works on the same premise, but the UI5 is the new look and feel.

Proximity Service Supervisor – Web Dynpro

Thanks for reading,

JaveLLin Solutions is Born…  in 2012

JaveLLin Solutions is Born… in 2012

So, I started talking with a fellow consultant of mine and he had similar ideas.  He didn’t have the programming background, but could write a great spec and knew production inside and out.  He had this idea for that small companies would be begging for.  It was an MES (manufacturing execution system) without any bolt ons, interfaces, extra hardware, etc.  Just an easy way to get their job done.  It sounded good to me, and I knew I could build it.  So I started the coding, and eventually we came to realize, it would be better to go on this journey together.  We started brainstorming.  We both had a military background so we finally settled on Javelin Solutions.  The problem was that the URL was already taken, by a military company of course 🙂

So, we came up with JaveLLin (notice the 2 L’s).  The 2 L’s stand for Lean Logistics.  Looking back on much of my marketing literature, this really isn’t covered, and at the end of the day, perhaps doesn’t even matter.  But that’s why we have JaveLLin and not Javelin 🙂  We went through all the obligatory legal issues, formed a new company and waited for the money to start rolling in.  Strange, but it never did 🙁  We started doing trade shows, another incredibly expense when you are a start up.  We learned some expensive lessons on how to market ourselves at a show.  All the while, I was coding what was to become Proximity – Production Execution.  It took another 18 months before I finally realized this is what I needed to do for Service Management.  Meanwhile, we made an iOS application, presented at regional ASUG’s and even at the SAP Manufacturing Conference in Vegas.  We started building leads, but we were still fighting the uphill battle of a small fish in a very big pond.  We started to get smarter and got rid of a bunch of other applications.  It was a hard decision, especially for me, given the amount of time and energy I spent developing and refining them.  But it was the right move.  Soon, we were down to just Production Execution and Service Management.  Then, it was time to go back into learning mode for me.  I had to figure out ABAP Web Dynpro.  I slowly mastered a new skill and replaced all the old BSP code we originally designed.  So I spent my nights and weekends learning and coding… finally getting apps that looked better on the web.  Now to meet customer needs, we are moving to UI5 for all our applications.

Thanks for reading,