Variant Configuration – Bill of Material Design, Am I Too Old School?

On my latest project, I’m not the one setting the design, so I’m going with the flow of what was decided.  One of the point that I’m having a hard time with is the selection conditions being assigned to the bill of material items.  Now my long time friends and colleagues know that I’m hard core of keeping all of the logic out of the bill of material.  I learned a hard lesson of putting too much logic into the BOM selection conditions.  Now, here’s my question to you modeler’s out there.  I managed to crash MRP in 3.0F using a combination of material variants and complex selection conditions.

Now, since that time, I’ve gone to great lengths to avoid anything other than simple assignment logic in my bills of materials.  Now, this does cause me to create a lot of additional characteristics in my configuration.  Granted, all the characteristics are calculated and never seen by the user.  This sets all the logic on the front end.  By the time the back end does anything with it, it’s as simple as pie.  This is the process I’ve lived by for over 15 years of Variant Configuration.

The thing is, that was 3.0F…  15 years ago that this occurred.  I know that SAP has dramatically changed the processes for VC.  The “word” is that as long as you don’t plan to use Characteristic Value Planning or APO.  But being the old VC guy that I am, I have a hard time to believing that.  So my question to all of my readers out there…  where do you stand?  have you put complex BOM logic into your models?  and if so, did you notice any impact on MRP?  I’d love to hear your experiences.

As always, thanks for reading and I look forward to hearing form you.

 

Service Management – Service Contract Profitability

Today is another pulse question.  By that I mean how do you handle Service Contract profitability.  Service contracts, maintenance contracts, warranties, etc all have a very important fact in common.  They all need to be tracked to figure out if you are making or losing money.  Let’s take the example of an extended warranty contract.  You charge $1000 for a 1 year extended warranty.  But how much does it cost you to live up to the contract?  More importantly, do you actually know exactly what you earned or lost on any particular service contract?  Can you see how many times you performed service on the item?  how much was spent on parts?  labor?  travel time/expenses?

If you don’t the answer, how can you accurately determine what you should charge for your extended warranty?

I’m thinking about adding a new Dashboard report to show the service contract details.  Especially, the cost vs. price, and all of the attached documents, service, serial numbers etc.  But again, I’m always wondering, is this something people want?

So I’m hoping you can help me out.  First, is service contract profitability reporting something you could use?  If so, what would you be looking for?  if not, why not?  do you already have a custom solution?  do you use service contracts?  In either case, I’d love to hear from you.  Any insight you could provide would be greatly appreciated.

Thanks for reading and I look forward to your comments.

 

Marketing – Google Adwords some of my initial experiences

Well, I mentioned in a previous post that I was going to start experimenting with Google Adwords.  So far, I’ve seen some good and some bad parts of it.  Quite frankly, it can be very confusing.  So, here’s some of my early experiences with Adwords, and if you happen to have some pointers, please let me know =)

Adwords is very intuitive (for the most part).  You start by making an account, then you create a campaign, then you create an ad group, and finally an ad.  All and all, it’s very straightforward.  Anyone could do this, and start spending money.  Now the trick begins to occur in finer points of adwords.

First, the keywords.  This is where the first part of confusion comes in for me.  Reading the keyword page feels like a foreign language.  It has cost per click, but I’ve come to find that it isn’t necessarily true.  You can have your ad show up in a lower place, and then you don’t pay as high of a price.  Apparently, as your ads improve, you pay less as well.  I’m far from experiencing that yet 🙂  Next up, your keywords can have quotes around them “keyword” and that means an exact match only.  If you put brackets like [keyword] then it will only return if that exact phrase is encountered (I think) and finally, if you add plus signs +keyword +more, then everything with a plus sign must show up in the search.  While it doesn’t sound like rocket science, putting together the right set of keywords seems to be an art form.

Next up, the Ads.  Now this is driving me absolutely crazy right now.  I have about a dozen ads.  all of them include the term SAP, which is a trademarked term.  I get this status about it being approved (limited).  But for some reason, every new ad I’ve done since then keeps getting rejected because of a trademark term SAP.  I’m very confused.  I keep trying different variations, but so far, no luck.  If you have any suggestions how to overcome this, I’d love to hear it.

Anyway, those are my early experiences…  more to come.  Thanks for reading.

 

Variant Configuration – VC_I_GET_CONFIGURATION Issues

Well, it’s funny, just yesterday we were talking about interface design and the printouts, and here we are already finding an issue 🙂  Well, I came up with a great idea of having multiple Sales Printouts, and using the function: VC_I_GET_CONFIGURATION to just call it by Sales Printout and by the name of the UI Char group.  Well, unfortunately, I found that char group is not one of the parameters you can send into VC_I_GET_CONFIGURATION.  This was highly disappointing to me.  I did a little debug work, and found that it’s even more confusing than that.  If you create multiple Interface Designs with the same printout checked (for example, Sales Printout is selected on 2 different char groups) then it will only display the characteristics common in both groups.  Confusing???  well it was to me too.  So, let me explain a little better…

Char group 1 (sales printout has been checked)
Cstic 1
Cstic 2Cstic 3

Char group 2 (sales printout has been checked)
Cstic 2
Cstic 4
Cstic 6

If you execute: VC_I_GET_CONFIGURATION for sales, then it will only return Cstic 2.

I really don’t understand this behavior, but it’s what the function does.

Now… there is one potential, so bear with me…

Option 2 is a bit more involved, and depending on the requirements may not even be an option.  Here is the basic concept.  We would create a “super” UI for “engineering” that would be used for production orders and the like.  Then each characteristic (within the model specific class) could have an organizational area set.  We could create an organization for each plant (or each breakdown needed).  We could then assign all the applicable org areas to each characteristic, and the function module above is able to take into account the org areas in what it prints.  Since this is confusing, here’s an example…

Org areas available:

1-Plant 1
2-Plant 2
3-Plant 3
4-Plant 4
5-Plant 5
Etc…

Plant 1 only wants to see: Char 1, char 2, char 3.
Plant 3 wants to see char 1, char 3, char 5, char 7
Plant 5 wants to see char 1, char 4, char 7, char 10.

The Class would have the following:

Char                       Org Area
CHAR 1                 1, 4 , 5
CHAR 2                 1
CHAR 3                 1, 4
CHAR 4                 5
CHAR 5                 4
CHAR 6
CHAR 7                 4, 5
CHAR 8
CHAR 9
CHAR 10               5

So our UI (interface design) for engineering would contain:

CHAR 1
CHAR 2
CHAR 3
CHAR 4
CHAR 5
CHAR 7
CHAR 10

Now, when plant 1 prints the production order, we would call the function above with Org Area = 1, Engineering = X

The function will then pull the “super” UI, and then strip out anything that doesn’t have Org Area = 1.

Now keep in mind, VC_I_GET_CONFIGURATION can read the org areas, but I haven’t fully proved out this idea.  If anyone has a better idea to do something like this, I’d love to hear it.

So, there’s your forray into the mind of a crazy VC modeler.  Thanks for reading.

 

Variant Configuration – Interface Design for Printing

Here’s a fact about the Variant Configuration Interface Design I took for granted because I’ve been using it for so long.  The printout options are what I’m talking about today.  These 3 extra checkboxes come about because of the need to easily control what should print on output documents.  Why is this so cool?  because it let’s you separate out your tabs and sequences, and let you have a unique output for each different document just by setting up another interface design characteristic group.

Notice, there are 3 different buttons.  Sales, Purchasing & Engineering.  Now most clients I’ve work with never had all 3 different uses, so most of the time, Engineering would be used for production documentation.  Production orders is the most common usage, but it could also be service orders, internal, network orders, etc.  You get the idea.

Purchasing is normally my jack of all trades fall back.  The most common usage is reporting.  This is simply because VC for Purchasing is not a common process.  In my next post, I’ll talk about how you can create your documents to read these UI printouts.  In the meantime, if you haven’t already used this functionality I recommend you check out the interface design and use one of printout options.

Thanks for reading

 

Business – Losing that Big Quote

Well, don’t let the title fool you, losing is only temporary in my world =) (at least that’s what I’m going to believe).  Found out that a big proposal we did a while back didn’t make the cut.  So…  how do rebound from that?  Very easy…  at least this is my plan.

1.  Get as much information as you can on WHY you weren’t chosen.  I’m lucky and I’ve met my contact several times so I’m hoping he can give me some insight as to why we weren’t chosen.  There are obviously some possibilities.  Were we over priced?  would it take too long to deliver?  are we missing key functionality they needed?  are we just too small, and they didn’t feel we could support them properly?  maybe it was all of the above.  But first and foremost, getting some clues about why we were not chosen will help guide us in the future.

2.  Don’t give up.  I’m still looking at this like a “delayed” opportunity.  Some clients move quickly, others don’t.  If the prospect moves slowly, it means there’s a still a chance to get yourself into position to at least fill some gaps.  Our Rapier product is undergoing a major renovation…  when all those new pieces are in place, I plan to present them again…  maybe we can get a partial deal.  Regardless, in this business things change quickly.  If I can adapt our products quickly enough, it might get us back in the door.

3.  Learn from it.  If it’s price, well, I’ll be honest, I don’t plan to compete on price.  If it’s functionality, I know I can build it.  I just need more time…  perhaps more resources.  It would mean giving up some of my control issues on our development…  but I’m trying to let go…  its just that right now, we don’t have the budget to pay for much.  All our cash goes to tradeshows and marketing…  hard to justify another developer…  yet…  but everything will get a second a look.

4.  Stay positive.  I was beaten down this morning when I found out…  it was already monday, and I was exhausted from traveling.  Finding out the big proposal wasn’t going to happen  really was a kick in the teeth.  But I started to look for the positives.  Still can try for a partial sale, maybe it was too custom to be reused, the prospect moves slowly, which gives us time to adapt…  Above all, stick with it.  I still believe in my heart we are about to turn the corner on this endeavor.  The instant I stop believing that is the instant we fail.

Anyway, like everything, we are constantly learning.  So take it from me, inside of every kick in the teeth is the wisdom  you need to take that next big step.  Ours is coming soon =)

Thanks for reading.

 

Variant Configuration – The Value of Good Information

To all of my Variant Configuration modelers out there, you all understand exactly what I’m talking about.  Your models are only as good as the information you have to work with.  I’ve modeled at quite a few different places, and more times than not, the information is always the bottleneck.  My current assignment is no different.  So it what brings me to my topic of the day, the value of good information for your VC models, and the format that it’s in.

In my travels, I’ve seen the extremes, good and bad.  I’ve seen notebook pages with scribbles, and I’ve seen fancy designed tools just for the documentation of the VC rules.  What I’m here to tell you is that you don’t need anything fancy.  In my experience, an excel spreadsheet with some standard formatting is more than you need.  Fancy tools will just cost you money, and in the long run, cost you time.  Because you still need to move all the information into the fancy tool.  Spend a couple of hours, put together a format you can read.  Work with the modelers and business people.  It’s really that simple.  I’m an engineer, so I like to start with the bill of materials first.  I’m a fan of listing out all the components, and then break down the rules that it takes to select each.  From there, it’s usually pretty easy to break it down and sort it out.

Then go into the sales/marketing rules.   The important thing here is if you can break things into tables or grids.  Remember, don’t make it more complicated than it needs to be.  The more complex, the less likely anyone will update it or enter it properly.

So take me advise, if you’re just starting out, do it simple.  Use excel to build it.  Thanks for reading.

 

Development – Be Careful when Switching Gears

Today I wanted to talk about a general thing I’ve experienced, and I’m slowly learning from.  Switching gears.  By that I mean jumping from one project to another.  If you’ve checked out the products we’ve designed, you’ll notice that there are some very different items in the list.  Some are SM, some are PP, some VC and some even MM and WM.  So what?  So…  it means they are are all radically different from each other (and perhaps I’ve wandered too far away for some of them, in search of more sales).  Inevitably, it’ll happen though.  Even if you only have 2 different projects you’re working on, you might be asked to jump over to the other project…  so, how can you make that as painless and efficient as possible?  try this approaches..

My favorite, if you can, finish up what you’re working on.  Right now, I’ve been working on a big Web Dynpro addition, but there is interest in one of our MM utilities.  These 2 things have nothing in common.  So I chose to finish up the piece of the Web Dynpro that I’d been working on for the past 2 weeks.  Why?  because when you shift gears, you forget what you were doing, you have to spend an hour or so remember where you left off, and what you still wanted to do.  If you have the option, get yourself to a good stopping point before you move on.  It’ll save you a lot of time (and headaches).

Multi-task when you can.  I know this is a little counter-intuitive, but if you can spend even an hour a day on the first project, you’ll keep all your ideas fresh (even things as simple as where to put the breakpoint).  This will keep you from forgetting where you left off.  Option 1 is still better, but this will help without diverting too much attention away from your new priority.

Take good notes.  (often you’ll do this one no matter what).  Be sure to not everything you haven’t done yet, maybe little techniques you used that you might forget (I use this blog for that), or even just bullet points of what you were working on, and where to start when you can return to this.  It sounds obvious, but I’ve forgotten to do this more than one.

I know, none of this is rocket science, but keep this ideas in mind.  We all get pulled away from what we  “want” to work on, in order to do what we “have” to work on.  So make it as easy as you can to jump right back where you left off.  Thanks for reading.

 

Variant Configuration – Global Multiple Value Characteristic restricted by classification

Ok…  so this is a long title, but in short, here’s the situation.  I have a global Multiple Value Characteristic and it allows additional values.  For one particular KMAT that will use this characteristic, I want to have one preset option available + the free text, and exclude everything else.  In the classification, I set only the single value to be shown, but the problem is that it is automatically selected as well, and it shouldn’t be.  Since the characteristic is to allow customers to enter in free text to denote a special, I don’t want anything populated for a value unless the customer actually enters something in there.

Now, thanks to my friends at the CWG, in particular Steve Schneider, they came up with a great trick.  He gave this simple process for the Multiple Value Characteristic, and it works great.

1) Remove the multi value char from the existing class assigned to the KMAT.

2) Create a NEW class containing only the multi value char.

3) Assign the new class as a SUPERIOR class to the existing KMAT class using transaction CL24N

4) While assigning the superior\subordinate class in CL24N, double click on the multi value char and select the single value you want available.

5) Save

6) Go into CU50 and see the results… You should see NO value specified, and when you specify the multi value char, all you should see is the single value and the free text field..

It really was that easy to restrict a global Multiple Value Characteristic, and works like a charm.  Thanks Steve.

 

Variant Configuration – using CS_BOM_EXPL_KND_V1 for VC BOM Explosion

Here’s a fun little tidbit.  A recent client was looking for ways to get the BOM from a sales order line item before if hits the planned order/production order phase.  Particularly when you deal with large or expensive manufacturing, you planning/procurement groups might need a heads up on what components will be needed long before it hits MRP.  In that case, you can use the ABAP Function:  CS_BOM_EXPL_KND_V1  This function with a few inputs will provide you the complete BOM for the sales order configuration.  Here’s what you need to enter to make CS_BOM_EXPL_KND_V1 work:

VBELN & VBPOS…  easy one here.  the sales order & line item you want to explode.
WERKS – the plant it should be exploded in
MTNRV – this is your configurable material (KMAT)
EMENG – the quantity of the line item
DAVTUV – the explosion date you want to use (important if you use ECM on the BOM)
CUOBJ – this is the configuration to use ( you can find this in VBAP)
CAPID – this is your BOM type.  PP01 or SD01 are the most popular
MMory – set this to 0 (not sure if this is required)
MEHRS – set this to X (again, not sure what this is for)

If you set these values, BAM, you get your VC BOM before MRP does.  Hope you find this useful.

 

Posts navigation

1 2 3 72 73 74 75 76 77 78 96 97 98
Scroll to top