Business

Home / Archive by category "Business" (Page 2)

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,

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,

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,

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,

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,

JaveLLin Origin Story

JaveLLin Origin Story

Well, you may have read my “origin story” for Paper Street Enterprises, but I figured it would be fun to tell you about how JaveLLin Solutions started.  The initial idea for the applications started about 2008.  That was when I first got the stroke of genius (or masochism) to build applications to help companies better run Service Management.  In my head, it all seemed so simple.  I would just build my own SAP system, then build an application and sell it.  Ugh…  if only reality were that kind.  I spent the better part of the next 3 months downloading, installing, running into errors and repeating.  All of this, just trying to build my first 4.7 SAP system.  I gained a whole new appreciation in this process for basis people.  I also acquired a distinct hatred for anything basis related 🙂  Of course, that hatred would grow as I attempted to build more systems…  but I’ll save that for later.  Once I finally got a working system, then I needed to put my first idea into practice.  My idea was to build an out of the box application that a company would use to provide a call center for their customers.  The idea was to build a web application that the end user could register their products, submit help desk tickets and more.  Easy right???  Not hardly.

Since I knew nothing about web programming, I had to figure out how to build a BSP (at the time, SAP’s go to method for web stuff).  So, I got the book, did all the exercises and slowly learned how to write a BSP application.  That took several months, and them my first disaster struck.  My hard drive crashed, and I had no backup of the virtual server that all of my worked resided on.  I had not only lost my coding work… but now I had to go back through the entire SAP installation process.  And then I needed to do all the system configuration (including building master data from scratch so I had something to work with).  I admit, my concepts got better, but it set me back multiple months.  By the time I had a product I felt good about, I had spent the better part of a year burning all my free time.  (Now, to top things off, I was recently married, so that meant free time was in short supply, so things kept moving even slower).  But I was not deterred.  I had a plan.  The next step was to become an SAP partner.  I did some homework, but not enough looking back.  I managed to spend a LOT of hard earned consulting dollars to become a partner and then get my application certified.  If you curious about my opinions on certification, check out my post about it from a couple years back.

As time went on, I built more and more applications.  Unfortunately, my focus was too scattered.  So I’d built WM apps, VC apps, Service apps…  and none of them were really cohesive.  I got my first sale, which was my dashboard for service management.  It was loosely based on some SAP developed dashboards for shipping.  I thought it was all down hill from there…  That was when I came up with a plan…

But I’ll save that for tomorrow,

Thanks for reading,

Cross Branding by Updating the Website

Cross Branding by Updating the Website

Well, if you are new to my blog, you might not notice the change.  For those of you that have been following me for any length of time probably notice that my site has finally been updated.  It wasn’t until just recently that I realized how old my site was (originally 2012).  So a change was long overdue.

This gave me the opportunity to clean up the look and feel, and more importantly bring more focus to my blog, to my books, and to the JaveLLin products.  Simply using a new theme gave me the opportunity to make everything look new, add new graphics, market the books better and so on.  At the end of the day, the change took about 4 hours, but the end product gives Paper Street a whole new look and feel.

The moral of the story is make sure that the good things you do are visible to the digital world in a good looking format.  Even if you are consultant or an employee, you still need to build the brand of “You”.  I guarantee, it will be valuable at some point, so demonstrate your expertise in every way possible.

Thanks for reading,