Just a short post to wish all of you a happy independence day. I hope you have a great 4th of July filled with fun BBQ’s, parades, fireworks and most importantly friends and family.
Happy 4th of July,
Thanks for reading,
Just a short post to wish all of you a happy independence day. I hope you have a great 4th of July filled with fun BBQ’s, parades, fireworks and most importantly friends and family.
Happy 4th of July,
Thanks for reading,
Have you ever stopped to think about how hard people go out of their way to be unique or different from everyone else? This is a very concept to me because everywhere in the media, advertising, politics and even general conversations most people will focus on the differences, rather than the similarities.
Take people for example. We are bombarded for all sides of why we are different than someone else. Maybe it’s skin color, financial background, education or a simple belief. But why do we focus so hard on the things that are different between us? If we really look hard, I’ve be willing to wager to that most people are 80% the same (probably a lot more). After all, if we look at education here in the US. Most of us went to grade school, middle school and high school. We were all taught the same things. We can look at even higher levels… we are all people, most with 2 arms, 2 legs, 2 hands and 1 head. We all breathe air, eat food and sleep.
We can drill down for pages about how we are the same, yet a single idea that differs between us and our neighbors could be enough to dismiss anything they say. It could be a complex issue like global climate change, or something simple like cats are better than dogs. So why is it that one idea is enough for us dismiss any entire person’s wealth of experience just because a single idea is different from ours?
Could it be that as a species we are hardwired to somehow set ourselves apart from everyone else? is it just that we need to feel special, and the only way to accomplish that is focus on how we are different? Or has society just conditioned us to focus on Coke vs. Pepsi, Republican vs. Democrat, PC vs. Mac in order to keep us separated. After all, as long as you are different than me, there is will always be a marketing spin that can be applied.
I don’t have a good answer, and I’m just as guilty as anyone else. But the next time you are about to dismiss someone’s ideas because they are different than yours, keep in mind that other person likely agrees with 90% or more of everything else you say. So, when we are so similar, maybe we shouldn’t focus only on the differences. Food for thought.
Thanks for reading,
I’ve recently had multiple different people ask me a similar question. The general idea is that a company has a product that they want to sell on a contract. This product will then be shipped on a regular interval. This can often apply to some sort of consumable for a product, like cleaning supplies, testing kits, whatever. The customer buys a bunch up front, typically at a discounted rate, or they simply want to include a bunch of extras on a big contract purchase order. Either way, the idea is to buy a bunch in advance and have them delivered sometime in the future… or on a regular interval.
I’ve spent some time digging, but unfortunately, I haven’t found a good solution. I have found 3 different ways talked about, so I wanted to cover them and explain what I have found. Maybe you can tell me a better way to do it.
Now, this still is far from ideal, so I might end up designing something into my Renovation tool for service contract processing. Then I can add an option to add an item on a schedule. Then define if it is monthy, quarterly, yearly or manual. Sound like anything you might be able to use?
Thanks for reading,
I’ve been running into more and more businesses that sell products through a distributor. The problem from a service perspective is that when a distributor holds products for you, you have no idea how long they could sit on the shelf. This makes a life a challenge when trying to accurately set the warranty start date. Now you can use a master warranty to control the end date, but this doesn’t help you to determine when to set the start date.
Now, the most common approach I’ve seen to this is either having a customer mail in a registration form or creating their website to let a customer register it themselves. Now the mail in cards is the worst of all worlds (in my opinion) because it requires your customer to manually fill out a card, mail it back to you, and then you have to manually input the information into the system. Many possible points of failure.
Option 2 is the better approach. You can create a website, portal, whatever and then make interfaces back into SAP. It’s the best possible option. To the best of my knowledge, Hybris does not include any tools for product registration or customer.
This is the reason I built Rapier a long time ago. I always wanted to provide an out of the box solution that would give customers a service portal. I built it to allow them to register themselves as a new user, register their serial number, and create a service ticket (notification) all directly from this Web Dynpro Application. If this sounds like it might be useful for your organization, I’d love to hear from you and provide you a demo.
Thanks for reading,
I recently discovered a fun fact with a characteristic. In all my years, I had never noticed this fun little feature. Not sure I would use it a lot, but it certainly could have some interesting benefits. Within the Characteristic value screen, you can add values to a lower level.
Notice the the check mark on A06 under the S column. Subordinate Values Exist.
If you press: to see the next level of the hierarchy.
Now you can see the values at the next level down. You can continue to build multiple levels down, or simply stop here and go back up a level.
To see the complete hierarchy, press
This will show you the full hierarchy.
Now, if you want to see this in action, check out the simulator:
I did the drop down for BK_ACCY, and here you can see that you get the option of all the values in the hierarchy. This can be an interesting way to break up large characteristic value sets.
Thanks for reading,
I must say, I was pretty happy with the results of the code inspector. I was fearing I would have a LOT of rework, but it turned out to be a manageable number of errors/warnings/information.
The only errors I had were all the same message:
Large table X: No WHERE condition
And these revolved around some search help functions that I built for my UI5 applications. So it was a simple matter of finding an appropriate field to include in the WHERE statement.
Aside from that, all of my warnings/information messages were the same as well:
Possible use of <internal table> without prior content check.
This is the more important one for me. This is an instance where I populated an internal table, but didn’t check to make sure it was populated before using it in a select statement FOR ALL ENTRIES IN.
I’ve run into this before, and it’s caused crazy long run times before it reads the entire table. Short story… BAD. So this is a great way to make sure that I fix any outstanding issues. It’s a very simple fix. Add an IF statement around the Select statement to check that it is NOT INITIAL. Problem solved 🙂
I highly encourage running this, even if you don’t plan to upgrade to HANA anytime soon. It’s a good method to make sure your code is following some simple standards.
Thanks for reading,
If you are anything like me, you hit the highs and lows of your career. One day, you are on top of the world. Solving fun puzzles, working with fun people, the next day you find yourself stuck in the drudgery of documentation for the next 2 months, or playing in Excel to handle a data migration for long enough to make you go cross-eyed. (at least for me, those are the lows).
Much of life is how we deal with the lows. I have a tendency to fall into a bit of a slump when I hit those lows. I guess for me, so much of my time is tied up in work, and when I fall into one of the areas that doesn’t excite me, I find myself grouchy, tired and just generally unfulfilled.
When I find myself in a rut like this I have found a few things that tend to help me.
I hope this might help you get through the rough patches,
Thanks for reading,
I recently “re-discovered” this this when I was trying to build a model that limited the values within a numeric characteristic. I created a Cstic that had the following values:
0
1-999
It seemed pretty straightforward. Then I wanted to set the value = 0 if a different cstic was equal to No, and have it be greater than 1, if it was equal to Yes. Seemed so easy. I tried all sorts of variations of my code, but even in the trace it would say the inference was scheduled, but it would never do anything 🙁
I finally changed the values to be:
0
1
2
…
50
and used the same logic. Like magic, it did my restrictions. So it turns out that restricting a range doesn’t work so well, so if you run into a similar issue, break your values into individual pieces. Now, this isn’t ideal for everything, but if you have integers, this approach can work.
Thanks for reading,
I recently talked about building a contract that can handle services and products in a single document. The idea behind this contract is that it will allow you to sell a product with an extended warranty and bill the customer in a single invoice. There is another very interesting use for this concept. If you run business across multiple divisions, don’t you want the ability to see a customer products from any division and invoice them once? Now, of course there could be inter-company considerations, but that is just pricing :). Using this contract, you could enter as many different divisions on a single order. You will need to execute real orders in the respective division in order to provide the delivery and intercompany invoicing though.
The key to this is being able to perform the create with reference function from the original contract. The problem is that when you create with reference, it locks in the sales organization, distribution channel and division. There is a way to overcome this. if you use the following user exit, and your own version of custom code, you can open up the field for editing.
Program: MV45AFZZ
FORM userexit_field_modification.
IF screen-name = ‘VBAK-VTWEG’
OR screen-name = ‘VBAK-SPART’.
screen-input = 1.
MODIFY SCREEN.
ENDIF.
This is highly simplified logic, and would open the field for everything. You could enter in a specific document type or other value to denote when the screen field should be opened. But this should get you going in the right direction.
Thanks for reading,
Through my years of being a consultant, one thing I’ve learned over and over again is that doing right by clients or friends isn’t about the money. Maybe it’s because I truly like parts of SAP, or I just like solving problmes, but I find myself time and time again helping out people with random problems. I find that those moments make me happy. Perhaps I am really doing what I’m meant to do.
Now, the day to day consulting has it’s ups and down. I love the thrill of a new project, learning new business process, and solving new challenges. Of course, the downsides include the endless amounts of documentation, random meetings, and the scores of other bureaucracy that can come on any large project. But at the end of the day, I love working with businesses and love solving problems. As it turns out, I’m good at solving issues in Service and Variant Configuration within SAP. And I find that many times, I don’t care about the money. If someone has a question, or even just needs an hour of my time, I’m happy to sit down and talk with them. Help them understand the ins and outs. At the end of it, maybe they even hire me on to do some hard core consulting… or maybe I can give them everything they need in an hour. Who cares?!?
What I care about is helping people solve problems. Maybe I finally figured out my purpose in life… or at I’m getting closer. What makes you happy? what do you do that you don’t get paid for? what gets you excited? Whatever that is, do more of it… 🙂
Thanks for reading,