Month: July 2013

Home / 2013 / July

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

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 7                 4, 5
CHAR 10               5

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


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.


Variant Configuration – Using the PMEVC for Dependencies

Well, since I was talking about the PMEVC the other day, I thought I’d throw out the other biggest piece of functionality that I found helpful.  That’s the improved editor for object dependencies and constraints.  There are 2 big pieces that are absolutely a hit in my book.

The first piece is the editor.  It’s finally a text based editor that is easy to use.  You can use standard copy and paste, no longer do you need to to use the cryptic I9 command into the line number to add more lines.  You can just hit enter.  It’s also very easy to use the find and replace, copy and paste, etc.

The second part is that you can actually use a nice little Input help button.  It’s a hand/question mark looking button.  If you start a statement, it will tell you the options of what you enter next.  This is especially nice for constraints if you forget the key words (like I often do.  ha ha ha).

Short story, if you have access, I recommend doing your PMEVC to do your dependency coding.

Happy Modeling,


Marketing – Using Linked-In Ads

Well, in my never ending quest to improve my marketing skills, I’ve been trying all sorts of random things.  Linked-In ads is one of the pieces that I’ve been trying.  I’ve had mixed results using Linked-In ads, so i thought I’d chat a little about them today and give you some pointers.

First off, if you haven’t used Linked-In Ads, it’s another form of pay per click (PPC) that you can use to try to connect to all the people on linked-in.  You can find it by going to:  Now for me, this is my first foray into PPC.  It’s actually pretty simple, but keep in mind that I’m still learning (right now, I’m learning about Google Adwords, so I’m sure I’ll have more pointers on that coming soon.  =)

Anyway, start simple, make yourself an account.  You connect the linked-in ad account to your linked-in account.  From there, create yourself a campaign and  list all the groups you’d like to market to.  Now, connecting to a lot of groups in Linked-in can be good, or it can be a spam attractor.  (As a side note, be sure to watch your email settings for each group you join, or your inbox might end up pretty cluttered).  Now for each campaign you can assign how much you’re willing to pay for each click, what groups are assigned to each etc.

Now, the most important part is the ad.  The ad gives you the option of a title, a little text, the ability to point to a linked-in page or a website, and even add a logo.  You can make a bunch of these ads under a single campaign.  Now the real work comes in from making different variations of the same theme over.  Make a bunch to figure out what might actually attract someone to click on it.  But remember, this is only the click…  it still doesn’t mean “interest”.  So here’s what you need to think about…  you want people to click on your ad, but only if they are really interested.  Every click means you have to pay…  if you get a lot of people clicking, but no one requesting additional information, you’ve just spent a lot of money for nothing.  If no one clicks…  well, then it was wasted effort.  You’re looking for the sweet spot.

I’ve been doing linked-in ads for around 9 months.  Initially, I got no hits for a few months.  This is likely for one of 2 reasons.  One, every ad must be viewed multiple times before it “generates” interest (got this from marketing books).  The other option…  my titles just weren’t good enough to generate interest.  So, you might need to keep tweaking your titles and text… over and over and over again…  Now if you have ads that are working well, but aren’t getting clicks…  I’d suggest adding even more detail to the ad…  Either way…  it’s a lot of trial and error.

If anyone out there has some good advice, I’d love to hear it…  I’m learning things slowly…  but if anyone can speed up my learning curve, I’d love it…

Thanks for reading,


Variant Configuration – Using the PMEVC for the Interface Design

Well, I’m still rolling on the variant configuration track.  Today is a new revelation that I recently discovered.  In some of my previous contracts I’ve had to set up some rather large interface design tabs.  Often consisting of 20 – 50 characteristics.  If you’re at all familiar with the original tool for creating/updating the interface design, you know how clunky it is.  You have to manually page through the list of characteristics, and even click the checkbox in the appropriate sequence so they show up where you want them.  It’s not challenging, but it certainly is tedious.

What I found is that the PMEVC actually has a great tool for creating and updating the interface design.  Instead of doing the hunt and click method of adding characteristics, you can just type them in.  You still have the option to select a bunch of characteristics in a method similar to the old method.

On top of everything, you can even easily change if it’s a tab or a sequence, or flag it as Sales or Engineering, just by flipping a tab.  So much easier than hunting through a cryptic menu to find the characteristic grouping.

All in all, I’m pretty excited about this.  I was thinking about writing a utility to upload the interface design from an excel sheet, but after finding this functionality, I don’t really need a need for that.  Hope you’ve already found this trick, if not, enjoy the nice interface =)