Variant Configuration – Class Hierarchy Benefits

I just realized, it’s been a while since I talked VC.  Thought tonight would be a good time to add something new for those of you who enjoy the variant configuration posts.  Today I wanted to talk about the advantages of using the class hierarchy when you are modeling.  Often you may have multiple products that are all built on the same platform, but each has it’s own flavor.  In this situation, you will find that often a group of characteristics are shared among all of these product lines, and only a subset differ.  This is perfect for the class hierarchy.  To do this, you build a class with all of the “common” characteristics.  Then you create a second (or multiple) classes that contain the characteristics that are unique to the particular product line.  You then use transaction CL24N, enter in the “common” class, and assign the second class to it.  Now that second class contains all of the cstics of the upper level and the lower level.

Now,this sounds like a lot of work, but for maintenance purposes, whenever a new common characteristics needs to be added to all of the product lines, simply add it to the upper level class, it will automatically be added to everything that is below it.  The other huge benefit is that if use constraint nets, you can define the constraint to talk to the “Common class”, and thus you don’t even need to re-write the constraint for the lower level classes 🙂

There is a downside, and this is usually experienced the most in the development phase.  This is the ability to delete cstics from the common class becomes more challenging once they are inherited.  For that, you need to be sure to use transaction: CL6K to delete a cstic from the common class.  Typically, you don’t encounter this once you move the model to production, but often in the development phase you change your mind or find that you picked a characteristic that doesn’t belong or is replaced with something else.

But in my opinion, the upside far outweighs the downside.  Happy Configuring and Thanks for reading.

Website – Adding a youtube video to your page

Well, since I’ve been busy updating all my materials for the big upcoming conference, I thought i’d do a quick post of how to add a youtube video as an embedded object into your web pages.  All and all, it’s pretty simple, but I’m glad someone else gave me the first one, so I could just mimic it going forward 🙂

<object width=”640″ height=”360″ classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0″><param name=”allowFullScreen” value=”true” /><param name=”allowscriptaccess” value=”always” /><param name=”src” value=”http://www.youtube.com/v/XXXX?version=3&amp;hl=en_US” /><param name=”allowfullscreen” value=”true” /><embed width=”640″ height=”360″ type=”application/x-shockwave-flash” src=”http://www.youtube.com/v/XXXX?version=3&amp;hl=en_US” allowFullScreen=”true” allowscriptaccess=”always” allowfullscreen=”true” /></object>

Now the important pieces are the width, height and the src parameter.  You need to make sure you update each of these in BOTH places they show up.  in addition, when you upload your video to youtube, you get a full address, but here you just need the last piece of it.  in the code above, you see XXXX.  Replace XXXX with the last portion of the YouTube web address (everything after the last /).  And magically, you get a nice embedded youtube player directly in your webpage.

It’s not rocket science, but for a web novice like me, tricks like this are invaluable.

Thanks for reading.

Recharge your Batteries

Well, maybe you noticed, I disappeared for a week (at least I hope you might have noticed).

I took a week away from work (mostly) and enjoyed some time on the beach with my family.  It’s an important lesson, that I’m not really that good at obeying.  I have this tendency to get so focused on work, that I forget to relax and have a social life.  Thank goodness for my wife.  If she didn’t push me, I might not leave my computer screen.

Many of you know me, but I need to get a bit obsessive about my projects.  I get so wrapped up that I spend my nights, free time and Alex’s nap time often coding something, writing some marketing material, or at least jotting down notes.  It’s good to a point, but if you don’t step away, you get burned out.

So take it from me…  don’t forget to enjoy life.  it is after all, why you’re doing this.  I want to launch this business so I can stop traveling and enjoy my family.  I need to be reminded from time to time who I’m doing this for…  and spend time with them 🙂

Service Management – Intercompany Billing

I recently learned a cool trick when dealing with inter-company in-house repairs.  One of the scenarios in service management I’m seeing more often is having one facility bill for a repair while another company performs the repair.  There are 2 common ways of transacting this intercompany billing in the system.

1.  Create a repair sales order in both the billing and the repairing facility.  While this method provides the greatest flexibility, it also requires the greatest amount of transactional data to be entered.

2.  Create a single repair order with the main line item in the billing plant, and the receiving/repairing lines in the repair facility.

The biggest challenge with option 2 is billing the “billing plant” for the repair.  Sounds simple, but with only a single sales order, how can you invoice the customer and the “billing plant”.

That’s where I discovered this SAP provided report: RVIVAUFT that generates an inter-company invoice from the customer invoice.  it’s pretty simple and pretty slick.  there is however one drawback to this approach.  You can’t invoice the “billing plant” until after you invoice the customer.  Typically this shouldn’t be an issue, but depending on your business process it is something to be aware.

Hope you find this as useful as I did.

Basis – Debug Authorization

Here’s another chance for me to add to my notebook.  Adding debug authorization is a trick I often have to do in my development projects.

When you have your own system, one of the first things to figure out is how can I get the authorization to debug a program, or in my case a Web Dynpro application.  Now, you can certainly assign yourself the role of SAP_ALL.  But what happens when you want to test with a real user???  Well, you need to narrow down that Authorization.

So, simply add this authorization:
S_DEVELOP
Then fill in the following attributes…
OBJTYP: DEBUG
ACTIVITY: 1 & 2 & 3

I know, not really exciting, but I never know if it might help you…  it certainly is something I’ve used multiple times.

 

Service Management – Equipment History and how to get it

Well, I recently started helping a new client to revisit their current service processes across multiple organizations.  My first observation with all of their processes is that in many places things are disconnected because they aren’t using some of the functionality that is native to SAP.  This made me wonder, are there other places that aren’t connecting things in the system?  So I thought I’d do a post on serial number / Equipment history.  I think there will be follow on for connecting other documents later 🙂

So, on with the show.  the serial number history is an amazing resource, but only if you use the serial number properly.  If you are using standard SAP, in your equipment record there is a tab called serdata.  This magical tab is by far my favorite on the equipment record.  it gives you the material, serial number, if it’s currently in stock and of course the history button:

Now this is a sample history of a single serial number.  This becomes invaluable because if you look at the legend that included in this screenshot, you’ll see a huge list of documents that will be shown in the history, but only if you add the serial number to them.

Some of the biggest culprits are the SD delivery, especially if you do in-house repairs.  if you don’t add the serial number to the inbound delivery, it won’t show up anywhere in the document chain.  You can manually add it to the SD repair sales order (using the menu extras->technical objects), then even the sales order will show it.  Now, keep in mind, your serial number profile will define where the serial number is allowed and where it is required.  I’ll be doing a post soon talking about the serial number profile to give you more details.  the important detail to take away from today’s post is that everywhere you can put a serial number you should.  If you include it in a document, it will show up in the history and give you a complete picture of everywhere the number has been used.

This will be an ongoing post with more details, so don’t be upset that I’m keeping this kind of vague…  have to start somewhere 🙂

Service Management – Equipment Status and What it Means.

I’ve come to realize that I haven’t talked much about a very important aspect of service management, that’s serial numbers.  If you haven’t checked out my SDN post on the serial number profile, I recommend it.  It will help you understand this coming post even better.  Today I wanted to continue talking about the serial numbers, but today I want to focus on the system status’ you will encounter and what they mean to you.  Like everything in SAP, there are a lot of possible status’ out there, but I’m going to concentrate on the common ones you will see, and the some of the headaches you may encounter because of them.  Here’s the most common equipment status you’ll encounter:

  • AVLB:  This is the easiest one to deal with, but the least informative.  This status is pretty much the same as saying I exist, but I don’t know where.  If you have the status AVLB, then you use it in scenarios from or to the customer.  Typically this status is assigned if you manually (or in mass) create the equipment record and it hasn’t been assigned to anything yet.
  • ECUS:  This means that the equipment is at the customer.  If this status has been assigned, then you won’t be able to use it for outbound deliveries, or material movements (at least if you have stock checking turned on).  The only thing you can do with this status is an inbound delivery or Lock it.  You may also see this status combined with EDEL (which means that it is customer owned and on a delivery).
  • ESTO: This means that the equipment is in stock at your facility.  it could be any plant or location, but it is now in stock, and you can no longer perform an inbound delivery, but you can do material movements on the serial number and you can do an outbound delivery.
  • EDEL:  This means that it is on a delivery.  If you have an open delivery that has not been PGI’d or PGR’d, then you will see this status with either ECUS or ESTO (which will tell you if it’s an inbound or outbound delivery).  This can be a particularly nasty status.  I’ve seen many instances where deletion of a delivery does not always reset this status.  (Next post I’ll talk about how to fix things that get messed up).
  • ELOK:  This is the same as marking the equipment for deletion.  Once you set this status you can’t do anything with the serial number.  If you need it, you can unlock it again, but as long as this status exist, the serial might as well NOT exist =)

I hope this helps explain the status’ a little better on the equipment.  Next time I’ll explain how you fix the status when SAP gets “Confused”.  ha ha ha.

 

Web Dynpro – Learning to Control the Web Dynpro Layout

Well, last night was spent on playing with the layout to attempt to make the new views in Web Dynpro look the same as the BSP views I generated so long ago.  So, what have I learned so far.  Web Dynpro layout can be a royal pain…

1.  Transparent_Container – so far this has become my best friend.  it allows you to group certain elements and apply whatever formatting you need just for those elements.  Plus you can embed the containers inside of other containers, so using this feature has finally allowed me to start reproducing the look and feel I was hoping to get.

2.  Text_View – this is “so far” the best option I’ve found for titles.  What I don’t like about it is the limited number of formats you can apply.  So this means you can’t directly control the font/size.  From my google research, this appears to work as designed, so you just have to accept.  Now I have seen mentioned to the formatted text view, but I have yet to try this.  I’m sure that will come up in my experiments soon 🙂

3.  Attributes inside of any container are very powerful, but you need to play with them to truly understand how they work.  For example, stretching an element will only behave how you expect it if the container above it is also stretched to accommodate the entire screen.  This may have to do with the inherit value, but again… I’m still learning this 🙂

4.  Grid Layout vs. Flow Layout vs. Matrix vs. Row layout.  This is still a little nebulous for me.  I’ve got down the flow logic and grid logic, but haven’t quite figured out when to use row layout or matrix layout…  so I’ll continue to experiment on this.  However, Flow layout will just keep adding objects to the row until it runs out of space, and start a new row.  Grid layout lets you select the number of columns for each row, and it will place an element into each column, then start a new row.

Well, that’s my AWDP tidbit for the day,  I hope that my fumbling might make your life easier in the future 🙂

Web Dynpro – Using the Code Wizard

Well, I believe I mentioned it in a previous post, but I’m still struggling with the differences between BSP and Web Dynpro.  AWDP is a fun tool, and I like it the more I get into it, the learning curve is still killing me 🙂  Today the Code Wizard is one of my recent discoveries.

For example, I figured out the whole context model, why you do it, etc.  But I had a hell of a time figuring out how to get the value into or out of the context variables I created.  I finally discovered the Web Dynpro Code Wizard…  which, with a few clicks, generated all of the code I needed to read or set the context node.  So simple, yet I hunted on-line for an hour, and eventually found it in the ABAP Web Dynpro book I purchased.

It turns out, you click the wizard button, select the node you want to work with, then tell it if you want to read it, set it, append it, etc…  hit the green check mark.  And magically, all the code I needed was inserted into my method.  Who knew it could be that easy.  LOL.

Anyway, if you’re playing with AWDP, take advantage of the code wizard.  it won’t create your whole application, but it’s great at the little stuff =)

thanks for reading,

Mike

Basis – System License

I just discovered a very important, but very subtle thing.  SAP Hardware keys are case specific.  In order to use the system license, you need to enter it in correctly.

While to most of you, this doesn’t mean anything.  I just spent the last hour trying to get into the system I’ve spent the last month building.  I finally discovered that the license I created for the system had a lower case ‘W’.  The Hardware key used an upper case ‘W’.  UGH!!!  Anyway, as soon as I requested a new key, used the SAP* user to get back into the system, then used txn:  SLICENSE, installed the new file from SAP…  everything was great.  So, learn from me, hardware keys are case specific 🙂

I know this is a simple one, but take it from me, it can be important,

Thanks for reading,

Mike

Posts navigation

1 2 3 82 83 84 85 86 87 88 97 98 99
Scroll to top