Variant Configuration – IPC – Hidden Characteristics

Seems I’m on a roll with the IPC stuff, so here’s another interesting thing I just learned.  It seems that SAP has changed the way that the IPC will handle hidden characteristics.  Originally, you had the option to make a selection within the configurator to show the hidden characteristics to not show them, much like CU50 can do with the hidden characteristic button.  Well, the IPC has changed it’s logic, and now within the XCM, you only get the option of always showing the hidden characteristics, or never showing the hidden characteristics.

Well, I gotta say, it always confuses me when functionality is taken away within a program.  I can only hope that this buys back a lot of performance or make the maintenance easier for the engine, because from a user perspective, this really kind of sucks.  Alright, this is just another short one for today.  Thanks for reading,

Variant Configuration – IPC Reference Characteristic MARA-MATNR

I just learned something new today with the latest and “greatest” version of the IPC.  In our models we were using a reference characteristic MARA-MATNR to find the material number and help us determine what transaction we are currently executing within.  The idea behind this was that we could drive different behavior if the model was being executed inside of a Sales order or CU50 (MARA-MATNR wouldn’t  be specified) and in the material master (MARA-MATNR would  be specified).

Well, it turns out the IPC outsmarted me.  It is over ambitious and goes and find a value for MARA-MATNR within the sales order (and probably CU50 as well).  So now, that reference characteristic is never blank within the IPC.

There was an easy fix, we now need to include a statement to check if the material number (MATNR) is equal to the KMAT name.  Not the end of the world, but it’s a rather funny little trick to be aware of.  I’m waiting to see if it “helps” me with any other reference characteristics too.

Anyway, something to be aware.  Thanks for reading,

Variant Configuration – IPC in ERP – CFG_ERP_REQUEST_DB

Well, this being my first time back in the IPC in a while, I’m learning some new tricks.  This particular project I’m working on is setting up to use the IPC within ERP exclusively (no CRM or third party).  So this is uncharted territory, and from what I’ve been digging around online, not many places are doing this…  at least not that they are posting about.  So, like always, as I start new adventures, why not keep y’all in the loop 🙂

The first thing I learned is that whenever you need to generate a new KB or a new runtime version, you also need to run the program CFG_ERP_REQUEST_DB.  My understanding is that this takes the place of the upload to CRM, so the ERP side can see the latest changes.

This is a short one, but it’s something I needed in my digital notebook anyway 🙂

Thanks for reading,

Getting our First Intern

Now I know that we are hitting the big time, we are working to bring on board our first intern.  The idea was first presented to us at the regional ASUG in Columbia, SC.  At the time it was only a passing idea, but recently I found out my younger cousin (a programmer) was looking for his for job and having a hard time finding anything, well, things just started to come together.

Obviously, I’m overworked and can’t keep up with all the development I have on my plate, along with business and marketing and sales…  so it seemed like a perfect fit.  Now, the fun part came in when we had to do an “on-boarding” process.  I have a new appreciation for just what it takes to bring in a new employee.  First, there’s the legal paperwork, NDA’s, SOW’s, contracts, compensation, etc.  Then setting him up with an email account, getting everyone linked on Skype, dropbox etc.  Then of course, I needed to get him setup with a SAP logon, a development key…  and a system that he can play in without impacting any of my other development initiatives.

Now to make thing more exciting, he’s never done SAP (hence why he was probably looking for a job.  ha ha).  So, I’ve been setting him up some of my old training material.  Now, I think we finally have it all pulled together.  He has a system to play in, some of our applications to use as a model (needless to say, we’re keeping it simple for the first round), a bunch of training…  and license to break anything he wants to.

I finally realize what a win win it really is to have interns.  You know, I got started in all of this by accident through an internship so very long ago…  and look at me now.  Well, maybe I can impart the same sort of success to our first intern.  Or at the very least, I can trade some cash to get back some of my time.  No matter how you look it, it could be huge for everyone involved.  And with all the self-help, sales programs, motivation programs, they all have a simple fact in common…  if you want to succeed in the long run, you need to focus on win-win deals.  Make sure it works for everyone and it’s sure to work.  Well, let’s hope all the experts are right.

Thanks for reading,

Happy Halloween

I hope you all enjoy a safe and fun Halloween this year.  It’s funny, I remember not that long ago, I looked forward to drunken parties with all my friends in great costumes.  Now, with 2 kids, I’m looking forward to dressing them up so they can wander the neighborhood…  and maybe not have to dress up as Cubby from Jake and Neverland Pirates (if you have kids, you might know the reference).  Funny how times changes.

A year ago, I still didn’t have my first sale…  Proximity was still mostly a dream in my partner’s mind…  and I was working too many hours developing things.  Now today, we are closing in on that second sale, Proximity is certified…  and my Service Management Web Portal is about to release version 2, I’m still working too many hours, but now it’s split between marketing and development.  I also think I’ve acquired a lot of new readers in the past year.  And for that, I really want to thank you.  It’s humbling to know that people are actually reading my ramblings and I hope getting some value out of it.

So, Happy Halloween, enjoy your kids (or your drinks depending on where you are in life.  ha ha ha).  and as always, Thanks for reading (I really mean it).

 

Web Dynpro – Creating a Table Tree

I have to say, this turned out to be a lot easier than I originally expected.  I recently did a post where I talked about this.  Well, I was about to make things a lot harder than I needed to.  I thought I had to do the NST (nested) version of the table tree, but it turns out, I didn’t need to.  So today, I’ll walk you through just how easy it is to create a table tree for your ABAP Web Dynpro application.

Now, the first really cool thing is that you need a fancy new structure.  You can convert any existing table into a table tree.  It’s just a new column that you add.  This made life much easier (of course I found new ways to complicate it.  ha ha ha).  So now, what do you need to do…

First, you need a context node and some attributes.  Here’s a run down of what you need:

Then we will create attributes required for the tree column. We require 5 attributes

  1. Attribute which contains the current level of the node. Create an attribute called “NODE_LEVEL” of type STRING.
  2. Attribute which contains the parent level of the node. Create an attribute called “PARENT_LEVEL” of type STRING.
  3. Attribute which contains X or Space depending upon the node is expanded or not. Create an attribute called “EXPANDED” of type WDY_BOOLEAN.
  4. Attribute which contains X or Space depending upon the type of the node, whether the node is a branch or a leaf. Create an attribute called “IS_LEAF” of type WDY_BOOLEAN.
  5. Then whatever else you want in your table.  None of these columns need to show up in your table, but you need them in the context.

Now you create a table, and link this context node to it.  I like using the wizard to create all my columns, but create it any way you like.  Now, create a new column, but this time it’s a special column.  Use the menu: Insert Master Column.  This is where all the power is.  The element inside should of type: TreeByKeyTableColumn (use the NST version if you want to calculate the lower nodes as you click on the table).  I was already calculating the full structure, so I didn’t need to go down this path.
Once the column exists, you need to bind several elements:
Expanded -> Expanded
Is_leaf     -> Is_leaf.
Parent_key -> Parent_level
Row_key   -> Node_level

Now, the big thing to remember is that the Parent_Key & Row_key are the direct link to make the tree work.  If you leave parent_key blank, this will be shown as the top level.  In my example, I had multiple values with blank parent.  From there, you just need to make sure that each sub level has a row key, and a parent key that matches one of the levels above it.

From there, just make sure you bind all the table entries into the context, and you magically have a table tree.

I’m pretty excited about this one.  It was easy, and looks very cool.  Now, onto my follow on functionality (there’s always something new).  Who knows, it might even give me an idea for another post :).

Thanks for reading,

Service Management – Adding a User Status to a Sales Document

Now this is something that I never really thought about until recently, but adding a simple user status profile to an existing order type is a handy trick.  My particular application is to come up with an easy way to determine if a service quote has been accepted or rejected.  There are a lot of potential ways to cover this handle this, but being able to avoid bastardizing any existing fields, or having to deal with straight text brought me to this path.

Let me give you the quick basics on how to do it yourself.

You can find this in SPRO–>Sales and Distribution–>Sales–>Sales Documents–>Define and Assign Status Profile

The first step is to create the status profile.  Check out my SM e-class if you want more details on how to do this.
Next, you need to assign this profile.  You can choose to assign it to the header or the to item.  After you make that call, simply add the profile to the field:  Status Profile

It’s that easy.

Thanks for reading,

Variant Configuration – Multiple Classification of the Same Material

In my current project, I’ve become reacquainted with the trials and tribulations of material classification.  Now in the past, I’ve found ways around the situation to simplify my life.  But I’ve found there are always new headaches to contend with.  My latest adventure has to do with multiple classification of the same material.  Now at first glance, sounds pretty standard.  Now my dilemma comes from the fact that the initial design called for different classes, with the same characteristics in the same class type.  Now here’s a couple of lesson’s learned that might help you decide the best course of action if you use BOM classification (that’s the idea for this approach).

1.  Remember, you can only assign one value to a characteristic within a material/class type combination.  This requires a lot of forethought in the event of the same material have multiple classes that share characteristics.
a.  My particular scenario had issues with this because we had multiple modelers.  We were each working on different products.  I was using some automation to load the CL24N, and didn’t even notice that there was overlap in the materials.  This instantly caused issues in some of the other product lines.  b.  Make sure you really need to use the same characteristic.  This was the big thing we found upon closer inspection.  The use of a common characteristic was more for convenience than for specific needs.

2.  Performance can become an issue.  Remember, if you haven’t noticed already the tables AUSP, KSSK and INOB can quickly become large and unwieldy.  This causes major performance issues.  So you may need to index these tables in order to improve performance.

3.  Remember, if you classify too many materials with the same class, your performance can also become impacted.  However, if you keep the number manageable, it works just as well (sometimes better) than standard selection conditions.

There are some of the things I’ve encountered.  In general, I’m a big fan of classification (also called class type 200), as long as you think through your approach carefully.  I just had to spend a few days reworking a bunch of models in order to improve our overall design.  I hope my mistakes can help you be successful.

Thanks for reading,

How Making Chili Gave me Renewed Perspective

About a week ago, I took a Friday afternoon off so that I could make chili for a neighborhood outing.  I literally shut down all my computers, didn’t think about marketing, development or even emails (well, I did check once or twice since we have a big sale in the works.  ha ha ha).  I took off for the local farmers market, grabbed a bunch of my ingredients and spent the rest of the afternoon chopping, stirring, tasting and mentally checking out of all my stress and to-do lists.

Looking back on that afternoon, it was completely freeing.  Rule #32: Enjoy the little things.  Well, Tallahassee certainly had that one right.  If you don’t take time to enjoy life, well, what hell am I working so hard for.  It is amazing what a little perspective can give you.  Just those few hours away were the perfect reminder of why I want to be running my own business rather than just consulting.  See the possibility of being able to one day stop working, and still see my business flourish gives me hope that I can one day truly be my own boss.  It’s not a dream…  just reality that hasn’t come to pass yet.

Anyway, just a simple reminder to follow rule #32.  It can give you the power to jump back into your business with renewed passion.

Thanks for reading.

Variant Configuration – Commenting Dependency Code

Well, for any of you that have been modeling for a while, I’m sure you’ve encountered a constraint that seems like it should be working, but you keep getting a syntax error.  I run into this often enough that I came up with my own method of dealing with it, commenting dependency code.  I comment out almost everything, and see if one of the statements work.  At least this narrows down my issue 🙂

Well, another really nice thing i found when using the PMEVC to edit my dependencies is that I can work with the code in the same way you can within an ABAP program.  So no more selecting one line at a time, or adding cryptic codes in the line numbers to add or delete a line.  You can simply highlight everything you want (like you were in a word document).

My favorite new trick in ABAP or VC dependencies is quickly commenting or un-commenting out a big chunk of code.

The hot key:  <ctrl> < will add a comment.  <ctrl> > will remove the comment.  This is really useful when you have a long dependency.  Now I know you hard core CU02 programmers will remind me that you can do this in the old school editor.  But for my money, the PMEVC really made this cleaner and more user friendly than the original.  Believe me, I held out a long time before I became a convert to the PMEVC, but it really has become my go to place for VC.
Anyway, there’s your trick of the day,  Thanks for reading.

Posts navigation

1 2 3 67 68 69 70 71 72 73 97 98 99
Scroll to top