Blog

Home / Archive by category "Blog" (Page 21)

UI5 – Getting the on-premise ABAP Repository working

This was far more of a challenge than I originally expected.  I finally found a couple of posts that ended up helping me a lot.  I’ll reference them shortly.  First, I’ve decided that since I’m new to the UI5 thing, the last thing I wanted to do was invest a bunch of money into hosting the application for my clients.  It’s certainly something I’d consider when someone requests it, but for now, the UI5 applications are still new for me, and not a requirement for my clients.  Because of that, I decided the best way to handle it would be the ABAP Repository.  In SAP speak, you can import your application into you on-premise solution, and it changes it into a “BSP”.  I use the term lightly, because it looks exactly like UI5, but in ABAP it’s referred to as a BSP (which to me is the ooooold technology for the web).  Well, there were a couple key things that I was able to piece together to make it work, but no one location could tell me everything I wanted to know, so I thought I’d compile my findings.

Step one, getting the WEBIDE to talk to my ABAP backend was harder than I thought.  It eventually took 2 things to make it work.

  1. in the hana cloud platform – update the destination:  and update the WEBIDEUsage : odata_abap,ui5_execute_abap,dev_abap  (I don’t know you need all of these, but at this point, it doesn’t hurt)
    blog-02
  2. Next, go to your cloud connector: go the access Control section, pick your internal system to map to, and then include the following path: /sap/bc/adt/  (make sure to include all sub directories with it).
    blog-01

So, this got me far enough that when I went to deploy to the ABAP Repository, I could see my system.  The next thing, use transaction SICF and verify that /sap/bc/adt/ is activated.

Much of this information came from this  post.

This got me to be able to pick what I wanted to deploy, but it would only put it into a local transport.  So I needed to apply the following OSS Notes from this post:

  • 2046730
  • 2047506

Now, after applying the notes, I could pick whatever package I wanted.  Getting closer.  Now, the next issue I ran into was about a virus scan profile.  Needless to say, this was a head scratcher.  So I did some digging and found a piece of configuration that allowed me to turn it off:
SPRO:  SAP NetWeaver -> application server -> system administration -> Virus Scan Interface -> Define Virus Scan Profiles
abap repo-01

simply change the /UI5/UI5_INFRA_APP/…  to unchecked, and you will be able to bypass the virus error.

Now, I finally uploaded my entire project.  Woohoo!!!  I went in SE80 and even saw my new BSP.  But, when I tried to run it, it just run there.  This made me realize that the message on the front screen talking about version mismatches was probably my issue.  I tried going down the path of upgrading my ABAP backend using this post.  But at the end of the day, I was trying to change to a different version and was going to require a lot more headaches.  Then I found this post.  It talked about something called CDN or content delivery network.  By making a small addition to my index.html bootstrap, it now goes looking to the CDN instead of pulling it from the ABAP repository.  My performance seems fine using this approach and now everything works just like when I was running it on HCP.

So there you go…  Thanks for reading,

Making Time for Yourself

Ever since we got a dog, I’ve been waking up early to take her for a long walk.  Eventually, this become my quiet time of the day.  Of course, it annoys my wife having an alarm set for 5:15am every day, but I do my best to turn it off quickly 🙂  and I think she’s able to get back to sleep.  What I have discovered is that you can become a morning person if you want to.  I always fancied myself a night owl.  I think the long hours of programming burned that idea into my head.  It turns out, it was about late at night, it was just the quiet.  The time to myself with no one else talking to me.  So, since I’m walking the dog anyway, I decided to take the morning for myself.  With all the things I’ve been learning, having a routine is very important to starting the day off right.  So, I’ve built myself a routine.  Much of this routine is new and evolving, but I started a new 30 day course from Perry Marshall.  It focuses a lot on what he calls Renaissance time.  Which basically means to take time for yourself, center your mind and avoid getting bombarded by life, social media or whatever.  It’s been a good thing, and if you don’t already have some practice like this, it’s worth trying.  I skipped a day, and found myself pretty “off-balance” and cranky until I found some time for myself.  Even if you can just get 20 minutes, it can make all the difference in the world.

5:15am get out of bed and walk the dog for about 30 minutes.  I use this time to just let my mind wander, listen to an educational podcast or plan my morning.  Just the fact that it’s dark and quiet, is a great way for me to start the morning.
5:50am – feed the dog, have a quick snack
6:00am – Do my headspace meditation
6:20am – read something.  Lately, I’m trying to read Meditation by Marcus Aurelius (I confess, I struggle with it, but it’s getting easier the more I read)  If you don’t recognize the name, watch Gladiator.
6:40am – write down my goals, something I’m Thankful for, and a question I need to think about for the day.

Usually, by this time, one or both of my kids are awake, so my morning quickly evolves into making breakfast and having deep conversations about legos or princess dresses.  I need to find some time to build exercise into this too… but I guess I’ll have to wake up a little earlier to pull that off…  I guess I’ll need to start waking up at 5am.  ha ha ha.  the point today is find a routine for yourself that doesn’t include facebook or any other social media, news programs that just make you angry, or jumping right into emails or work.

Thanks for reading,

Saying Goodbye to Petie the Cat

Pardon the interruption, but I’m having a hard time writing about anything work related today.  Instead, I guess I just need to write about what is going on.  Tuesday was a tough day in the Piehl household.  Our little buddy, Pete the Cat used up his ninth (or maybe 50th) life.  After his many adventures following my wife all over the country, he died on Tuesday, just shy of turning 18.  Pete had a great run, and he was a great friend.  I’ll miss him.

IMG_3848 mdp

ROI of Service Orders

ROI of Service Orders

It’s been a while since I got back to some of the ROI posts I did a while ago.  I thought I’d pick up where I left off and talk today about how you can get return on your investment just from proper use of the service order.  Now if you are still reading this, you likely already use service orders, and maybe you even figure that there is nothing more to be done in the service order.  Maybe you feel like it’s already optimized enough and working well.  Perhaps you are right, but at least check out the rest of this post to see if you might be able to find at least one tidbit you can think of implementing.

First and foremost, are you entering the proper data on your service orders.  It wasn’t that long ago, that I came to realize if you generate a field service order directly from a sales order, that the object doesn’t get populated automatically.  While this may not stop anything in the process, you are losing that link in your equipment history.  Losing that link could mean you are losing vital data for a piece of equipment, or at a minimum you have to do extra clicks to see everything.  The object data is just one piece.  Some of the other common pieces of the order I see overlooked include:

  • User Status – Can’t say enough about this.
    • Use it to determine your quoting requirements for a customer.  If you do billable repairs, often you customers require a quote before you can start working.  But how do you know that you need a quote?  how do you know when the customer has approved or rejected the quote?  This powerful tool lets you know at a glance.
    • It can be used for so many different things like showing that parts have been pulled for the order already, it can be flags for work flows and much more.  If I had to pick one place that can give you ROI, this is it.
  • Basic Start/Finish Dates – this might be covered in MRP or your scheduling, but in my opinion, you should always be populating “realistic” dates into these fields.
    • This provides you with a clear picture of exactly how long you expect someone to be working on a job or step.  Especially if you are planning in the field, you need to know how long a technician will be un-available.  These dates give you a lot more power, especially if your planning of the operations is “light”.
  • Accounting Indicator – it’s been my experience that one of the most powerful fields in the notification/sales order/service order is the accounting indicator.  By itself it does nothing, but if you combine it with simple reporting, resource related billing, etc.
    • My favorite usage for this field is determining warranty vs. billable.  We have all been in the position that the customer says it’s under warranty and the techs take a look at it and it’s been run over by a car or something.  Clearly NOT warranty.  By utilizing this field, you have a method to determine if it is really warranty, and if so, you can use this field to drive pricing/RRB etc.  True value add just by using pieces of standard SAP.
  • Person/Dept Responsible – this is a highly underused field.  In general, my recommendation is to always use one or both of these partner types in your service order to provide an easy list of who is working on what.
    • As long as that field is set to a person, there is someone accountable.
    • It also provides a great way to narrow down the list of operations/orders that a person is responsible for.  This will help you in scheduling, and them in knowing what their workload looks like.  If you currently use something like IW72, you can get a list by plant or work center, but isn’t an individual list more powerful?  Why make your technicians sort through a bunch of orders.
  • Planner Group – I use this less, but in general, this is another good way to narrow down responsibility.
    • One use is if there are multiple supervisors, or a supervisor that spans multiple plants.  This way, you can instantly see who is responsible for planning the order.

So far, we’ve just looked at a few fields.  Now lets talk processing.  Do you plan your service orders?  When I say plan I mean do you enter in the approximate hours and components you expect to complete the job?  If not…  you have a huge opportunity to improve your process and get some quick ROI.  If you aren’t planning components, how can you expect to use MRP to make sure you are getting what you need?  Or are you literally purchasing everything you need by jumping on the phone, driving to your supplier and then giving it to the field?  If this is true, my guess is that you are not utilizing your best skills as a supervisor.  The same goes for hours.  If you don’t know how long something will take, how can you give your customer an accurate completion date?  or even something close.  Now you may be doing this… you may have even gone to the next level of automating some of this.  Good for you!!!  But there is more to it…  are you reviewing planned vs. actual?  what if it used to take 2 hours to do a repair, now it’s taking 2.5 hrs?  do you know why?  and if you do, shouldn’t you be updating your plan to show the correct amount of time?  Like an old friend of mine always said “Garbage in, Garbage out”.  If you enter in data once and forget it, can you trust it?  and if you can’t trust it, you are either flying by the seat of your pants or doing a lot of manual work.  Neither are good in a service shop that is typically over worked to begin with.

Next opportunity is resource related billing (RRB).  Now for many shops this might be overkill…  or is it???  I say that because there are some very standard profiles I have implemented for many companies that work great and give you exactly what you need…  cost vs. revenue at the sales order pricing level.  If your customer needs to see the itemized list of what you did…  are you typing in a bunch of text on a long text field?  are your techs typing up something that can be copied and pasted on some report?  If so… why not use RRB and let SAP do the work for you.  It is typically a one time exercise to set it up…  and then, you just need to make sure you output to the customer prints it correctly.  If you want to see costs by parts so you can do cost + pricing…  if you want a quick itemization breakdown just for internal purposes I suggest using RRB.  You can make it as easy or as complex as you want.  If you want a dead simple profile that covers most of your needs, let me know and I’ll send it to you.

Finally, the biggest place for ROI in service is the overall interface.  Let’s face it, the service order has a lot of tabs and a lot of information.  Most of it your standard technician (and probably any in your organization for that matter) never look at.  The problem is that often there is 1 fields on each tab you do care about.  If that is 4 tabs, that means 4 clicks to see a little bit of info.  Efficient?  of course not.   Then factor in that the technician needs to jump to a separate transaction to enter in their time and materials, they may need to pull up the sales order, notification or attachments to see everything they need to do.  That is a lot of clicks for someone that really just needs to see the data to fix something and then confirm time and materials.  It’s why I built Proximity Execution.  This set of tools gives you one view for the supervisor and one view for the technicians.  Simple, configurable and saves you time.  Want to be able to EASILY schedule your entire service shop…  you need to check out Proximity Supervisor.  With mass change, simple printing, notes, simple views, and all the information at your finger tips, you will be able to maintain your SAP shop data in a 1/4 of the time you spend today.

Thanks for reading,

Service Management – RA vs. RAS Order Type

Service Management – RA vs. RAS Order Type

It’s funny, I’ve been doing this for a while, and i’ve always avoided using the RA order types.  I’ve even talked to some long time veterans in SM/CS that admit they don’t really know the differences either.  So I thought I’d go into the details of the differences.  So, here goes. RA vs. RAS Order type.

It’s actually curious just how similar they are.  The whole concept comes from the “leading material”.  I only recently heard this term and had it stick in my brain.  I was talking to someone from SAP working on an OSS message I had open, and they asked if I was using the leading service material or leading serviceable material.  When I first read this, I sat there with the blank look on my face, wondering exactly what they were asking me.  It finally hit me, depending on what scenario you run, you might “lead” with a DIEN or service material, or you might lead with a “serviceable” material (the think you are fixing.  So, step one is understanding the distinction.

Ok…  so, now we get to the real deal.  Exactly why would I choose leading “service” vs. “Servicable”.  In my opinion, the answer is actually pretty simple.  It all comes down to the processes you have available for any particular material.  Let’s just say you have a material 100.  It’s produced by you and come back for repair.  Now, if the only option is that the customer returns the materials to you, you fix it and send it back, then you either method works great.  BUT, as soon as you introduce some variability, like the service Exchange process, that throws  monkey wrench into the whole deal.  Why?  because of item category determination.  In the back end of SAP, when you use the RA order type, the item category determination works off of the “Serviceable” material.  So it’s all dependent on what you are fixing.  If a particular material is ALWAY fixed the same way, then using the RA is better approach.

Now, as soon as you enter multiple repair procedures into the mix that can be applied to a material, this is when you must go to the leading “Service” material. (RAS order type).  The RAS order type gives you additional flexibility, and also decreased maintenance (in txn OISD) compared to the RA order type.  Now, the RA gives you a more straightforward approach, but in my opinion, it tends to limit your options.  If everything you do is field service, then this becomes less of an issue, but if you ever have the need for multiple repair procedures (or even field service vs. in-house repair), the RAS is truly the way.

Thanks for reading,

Git and GitHub – another new experiment

Well, first Python and now Git & GitHub.  I’m learning all sorts of new things from Udacity.  I got to the end of lesson 1 in the intro to machine learning class.  I get ready to do the exercise and it starts talking about cloning a git repository.  What the hell does that mean?!?  Turns out, I had to take a different rabbit hole and take the Udacity class how to use Git and GitHub.  It was a pretty short little class, and I have a pretty good idea of how git works.  It started to get a little more complex toward the end when it talked about collaborating and other stuff like that…  but I’ll cross that bridge if I need to come to it 🙂

In the meantime, I learned that using Git is a great way to keep track of all my changes, and actually quite easy to use.  With a few simple installs, I had bash running on my PC, and I was able to track my little projects pretty easily.  It makes me realize how rudimentary things are in ABAP.  I know, I’ve been stuck in that world for too long, but the good news is that using the WebIDE gives me the option to use GitHub to track my code.  Which I’m realizing will be a very nice thing to do.  Especially since I often experiment and then forget exactly what I started with.

If you are unfamiliar with Git, the basic concept is that you when you want, you can commit your changes to the repository, and at any time, you see exactly what changed.  You can even create a whole new branch so that your master files still exist in the form you know is working, but you can experiment on the “tangent” branch to try new things, and when you are ready, you can even merge your changes with the working master files.  Rather slick.  GitHub takes things to the next level by putting it all in the cloud and allowing you to “easily” collaborate with other people and leave comments and more.  I only say “easily” because I haven’t had a reason to use that functionality, so I had a hard time applying it.  but Git will certainly be something I start to use more… especially since I’m doing things outside of ABAP for a change.  I recommend the class.  It’s pretty easy, and has good examples.

Crazy, but every day it’s something new… and usually unexpected.

Thanks for reading,

Learning a new skill – this time it’s Python

Well, you probably recognized already that I’m always trying to better myself.  I recently decided I wanted to learn more about artificial intelligence and machine learning.  So, I found this cool course on Udacity, called Intro to Machine learning.  I may end up taking the full program at some point…  but first I needed to see if I really had an interest or an aptitude.  Well, like so many other thing I decide to do, there are always prerequisites.  One of the first was learning a new language called Python.  Lucky for me, Udacity had an intro course on that too 🙂

So I took the intro to Python course, and found that learning computer languages still comes pretty easy to me. (good thing something comes easy, ha ha).  What surprised me was just how powerful that Python was in such a small package.  With a small install, I quickly learned how easy it was manipulate things on the web, on my desktop, and even send texts to my phone.  Last night, I went through my monthly exercise of backing up all the photos on my wife’s phone and my phone, and then sending them over to our family so they can see the fun things we’ve done.  I know, I’m still a bit old school, but I like to have the photos backed up to several hard drives.  I’m sure eventually I’ll trust the cloud to handle it all, but there is something to be said for a bit of privacy 🙂  Anyway, when I dump the photos off our phones, there is often naming conflicts.  So up until now, I’ve had to go and manually rename all the conflicts.  Well, this time around, I used a quick Python program to rename every file that I got off of my wife’s phone, so there wouldn’t be any conflicts.  Then I just needed to review all the pictures for duplicates (this is the painful part that will never go away, even if I use the cloud.  ugh).  So, I spent about 5 mins doing a program, and 10 seconds after running it, all the files were perfectly renamed.  Who know how easy it could be to manipulate things in my own file structure.  It saved me at least 10 minutes this time around, and next month it’ll save me 15 or more minutes of time.

Why am I talking about something so simple?  Well, I’ve been lost in the ABAP world for so long, that I lost track of just how powerful most computer languages are.  And more importantly, when you pick a language that a lot of people use for many different things, it means you have access to a huge library of functionality that you don’t have to write yourself.  As opposed to ABAP where the only extensions you get are the ones the Germans think you want…  everything else is pretty much a closed loop and no one shares.  Anyway, even if you aren’t a programmer, Python is so crazy easy, that I recommend you take the course in Udacity.  It’s worth your time and is well laid out.

Thanks for reading,

How do you puzzle and what does it say about you?

Random, I know.  But the other night I was working on a puzzle with the family.  At least it’s better than TV all the time.  ha ha.  Anyway, I realized that my method of working on a puzzle is always the same, I flip over everything and find all the edge pieces.  I don’t pay any attention to the other pieces, I don’t do any sorting, and I don’t start looking for matching.  I’m looking for the boundaries.  Once I have those in place, I can start working on the insides.  Now my wife is very different.  She picks a landmark piece in the puzzle and works to put it together, then build it outward from there, or jumps to an entirely different area of the puzzle.

Since I know myself pretty well, I realized this is actually quite indicative of my personality.  I look to find the constraints first, then work inwards.  In my daily life, this usually means I figure out all my “edge” pieces.  I find all the things I can’t do, I have to work around, or I have to fit within.  From there, I go about finding my solution.  My wife on the other hand is much more creative than I am.  (I’m the doer, she’s the one with the ideas).  She always has random ideas, creative solutions, or somethings I just look at and scratch my head about?  The difference is that she doesn’t stop to look at what is possible, or what fit within “reality”, she just has the idea and works it out from there.

Personally, I strive for more of her approach.  When you constrain yourself, you instantly stop looking outside of the box.  I quickly build the box, and often struggle to move beyond it without some guidance from my friends.  Now, I know that a puzzle isn’t a perfect analogy, since you “can’t” do anything outside the box, but just looking at how we focus on things can open us up a bit.  So I had the revelation that I need to stop focusing so much on the what the limits are, and rather just focus on the solution.  Like in the Matrix, some rules can be broken, some can be bent.  You often don’t know until you try…  What’s your method for putting together a puzzle???

Thanks for reading,

We are not all Maytag Repairmen

I recently did an interview with my friends over at Titan Consulting.  They put together a pretty nice little piece about service management.  Namely, how costly it is to get service wrong the first time.  They also give some food for thought on areas to focus on to avoid those costly mistakes.

Check the article here.  I’d love to hear your thoughts.

Thanks for reading,

Service Contracts – the latest e-book

I’m pretty excited.  I recently finished my 4th e-book.  I feel like I’m starting to get into the swing of things.  This E-Book is personally one of my favorites that I have done.  Maybe because I keep learning more about the process, or maybe because I think this topic is poorly covered out there, that I think it will be very useful to a lot of people out there.

https://www.smashwords.com/books/view/652520

This latest book is all about the service contracts.  I went back to my original book and focused heavily on the configuration side of how to set up.  Of course, you can’t configure something if you don’t know what you need.  So the book covers blueprinting, it walks you through the different service contract processes and throw in some complicated topics like billing plans and revenue recognition.  If you like this book and find anything missing, or anything you think could be covered in more detail, please let me know.  I would be happy to make additions or clarifications.  My goal is to make this a useful reference guide to veterans and novices alike.  Please check it out and let me know what you think,

thanks for reading,