Month: February 2014

Home / 2014 / February (Page 2)

Basis – Using SGEN

One of my old colleagues recently pinged me, and asked if I could talk about the SGEN.  For anyone not familiar with SGEN, this is nice built in tool from SAP that regenerates all the program in certain areas.  Now the most important time to execute this transaction is anytime you update a kernel, apply some support packs, etc…  This is typically when I execute it.  So I’ll walk you through the basics of what I know.

sgen01

When you first execute SGEN, this is what you’ll see.  The descriptions are pretty easy to interpret. I typically use the first option, because I’m not sure how to get the second option to work.  I’ve applied support packs, but there must be some step I’m missing because it always gives me an error that say I can’t use this.  I’m going to show you the first option, because it will work no matter what.

sgen02

Now, once you get here, you have a huge list of SAP components that you can choose to regenerate.  Now keep in mind, this is a very process intensive transaction, so be careful what you choose (and when you choose to do it).  Of course, if everything is compiling anyway, what do you have to lose.  ha ha ha.  I’ve highlighted the most common areas that apply to everyone.  Just a word from experience, you will still encounter some compiling even after you run this.  (unless you choose to regenerate every component, which will likely take some time.).  So, choose the components with care.  It’s often better to get 90%, and save 2 days of processing =)

sgen03

Once you pick your components you can choose what servers will do the regeneration.  Mine is a small system, so I only get one choice, but most corporate environments will have multiple servers to execute against.  Once you’re done, press continue.  Often, this can run for a while.  This step finds everything to regenerate, and strips out includes and stuff.  depending on the processing power of your system, it can take a few minutes, up to a couple hours.  (trust me, I’ve experienced both.  ha ha ha)

sgen04

Now, once you get this far, you’re ready to go.  You can either select Start Job directly (fancy way of saying, execute now).  Or you can schedule it for an off time, like you’d schedule any other job.  Once the first 100 items have been executed, it will give you an estimated time of completion.

That’s what I have for today.  As always, thanks for reading,

Free Time – How do you use it?

Just recently, my wife told me something that kind of made me angry at first, until I stopped to thinking about it.  We were talking and she told me she likes to spend her free time being active, I like to spend my time on my computer.  At first I got defensive…  I like being active too, but I just don’t have the time.  But I stopped to think about it, I do have the time, but my priority is my business.  It isn’t a matter of what I like to do… it’s more a matter of what I need to do.

One of my favorite gurus, Brian Tracy said in one of his programs that in order to succeed, you need to be working while everyone is sleeping or playing or watching TV.  I guess I took that heart, maybe a little too well.  My goal is to launch my software business so that I can do what I want, and be here with my family, not traveling to the client site every week.  So, with that one end goal in mind, I guess I’ve chosen to make my business my free time.  Which I have to say, isn’t a whole lot of time anymore, now that I have 2 kids.  ha ha ha.

The whole point is that your free time can be fun, it can be productive, or if you’re really lucky, it can be both at the same time.  =)  I don’t know if I’m quite there yet…  but the result will be worth the price when it all comes together.  So if you’re like me…  just keep that goal in mind.

Thanks for reading,

Challenges of Updating the Website

Well, for those of you who’ve read me my stuff for a while, know that my website hasn’t really changed in a while.  Well, we used the exact setup for the JaveLLin Solutions website as well.  I was able to transistion this over to my partner to run (I still have to write my own content…  but at least he’s handling the day to day stuff).  Well, he wanted to update our look, so I said ok.  We purchased Optimize Press, and he started playing.  Like anything, it’s a big ramp up period, so he found someone that was willing to help on their off time for an hourly rate (don’t get me started on this one).

Well, I thought great…  I have a ton of content out there on the web, so it should be more than enough for someone to chunk it up, shuffle it around, make it look better, make it sound better, etc…  Damn, was I wrong on that.  As it turned out, it was nearly as much work to have someone else come in.  Even though the concepts of SM are second nature to me, when a complete SAP outsider looks at the data, it’s pretty much jibberish to them.  So, I spent a lot of time re-writing my own content.  In the end, will it be a better product?  probably?  do I feel it was worth the huge investment of my time and our limited business capital, not at all.

What’s the lesson for today…  there’s a couple that i leanred.
1.  For anything like this, do NOT do an hourly engagement.  The person Mike picked didn’t know SAP & didn’t know Optimize Press.  This turned out to waste a lot of time, and in essence, we paid for them to learn a new skill.
2.  Make sure who ever you outsource this to has at least MOST of the knowledge you need.  Like i just mentioned, no SAP knowledge, and no Optimize Press knowledge made things go a lot slower and cost a lot more.  It also increased the amount of time Mike and I had to invest in rewriting our own content, or bringing back content that was trimmed out, but was very important to the message.
3.  Make sure the contractor understands what you really care about.  And even more important, make sure everyone is on the same page of what needs to happen.  For example, my big hot button was to get some template pages setup, so we could just plug and play our content.  And I wanted landing pages to direct people to for our new White Papers.  Mike was interested in changing the whole look and feel.  Not that I was against this…  but it wasn’t my priority.  Anyway, get on the same page before you do anything.

Good luck and thanks for reading,

ABAP – Creating an RFC

Now, in one of my many latest endeavors, I need to create RFC’s to port my code out to an Iphone/Ipad application.  Happily, we have a great contact that is helping me with this stuff.  Now, I knew this was coming, so at least I put the majority of my code into objects/methods.  This makes moving the code pretty simple.  however, I still needed to add a new wrapper to an existing object.

So I go to SE37, create myself a function.  Under attributes there is one major piece to turn on:

blog02

Set this flag, and you’re good to go.  Now, I have run into a small little obstacle that I have yet to overcome.  I’m using the Netweaver gateway to port my code to the application.  Initially, I had set a bunch of tables (so it would like a select option).  For some reason, we were unable to get the information to be sent to through the gateway like this.  When we moved it to be a straight exporting parameter, everything worked fine.

So, if you happen to be someone that knows NW Gateway, is there a trick to send in information as an input table?  and still have the information sent through the gateway?  I’m sure it’s something dumb that I missed, so any feedback you might have, please post a comment.

Thanks for reading,

ABAP – SELECT vs. SELECT INTO CORRESPONDING FIELDS OF TABLE

Well, it turns out my new system is teaching me all sorts of things lately.  Today, I learned the value of how to code the select statement.  In my old ERP 6.0 SR3 system, I built a small program to make notifications in my system.  I use it to generate master data to test my dashboard.  Well, the statement worked just fine so I didn’t think anything of it.

Select equnr from VIQMEL into lv_equnrfor all entries in lt_equip
where equnr = lt_equip-equnr and

kzloesch = ” and
owner = ‘4’.
… do something here.
Endselect.

The statement seemed harmless enough…  until I went to load this into my new EHP4 system.  It has the upgraded kernel, latest support packs, blah blah blah.  It suddenly when a minute, to hours to execute this same piece of code.  I still don’t know exactly what changed…  but sure as hell, my code changed 🙂

I moved to:

select equnr from viqmel into corresponding fields of table lt_qmelwhere equnr = lt_equip-equnr and
kzloesch = ” and
owner = ‘4’.
loop at lt_equip into wa_equip.
read table lt_qmel into wa_qmel with key equnr = wa_equip-equnr.
if sy-subrc = 0.
… do something…
endif.
endloop.

this dropped it make into the less than a minute to read the new code.  wow.  I don’t know what caused the issue, maybe it was 7.01 vs. 7.00, but the same table read in a slightly different way made a huge difference in this program.
Thanks for reading,

A little memory goes a long way

Well, in my latest experiment with making a new SAP system, I found out the value of RAM in the system.  Now, I already knew that more was better, but I guess I couldn’t really quantify it until this past week.  I started building my system on my laptop, while I was waiting for the new server to arrive.  No big deal, my laptop had 16GB of memory, so I allocated 6GB to my virtual machine.  I had my system on a USB 3.0 HDD (this part is important later) and I installed a bunch of support packs (probably around 50-60).  I had the job running, and it went for nearly 48 hours.  Not terrible.  The problem came when I left my machine within reach of my newly climbing baby girl.  She managed to pull herself up the small table my laptop was sitting at, and yank on the USB cable.  Ouch…  3 days of work down the drain.

So, having learned the hard way yet again, I moved the system to my new server.  It was finally ready and properly set up.  Since I had a lot more memory available, I bumped this system up to 10GB.  Luckily, I remembered the steps I had done the first time around, so the setup to install went much faster.  When I kicked off the support packs, I was able to finish the job in roughly 18hours.  I then installed another dozen or so, ran SGEN, and the whole process took 48hrs.

So, just a word to anyone out there with their own systems, more memory really makes a huge difference 🙂

Thanks for reading,

Getting that new system ready to roll

I apologize to all of you out there for not getting back to the warranty claims thing.  I do intend to get back to that line of posts, including more in depth configuration, but my time has been consumed in the infrastructure world of late.  Namely, building myself a new virtual server box that can be used for testing.  This all sounds pretty easy, but believe me, it’s been far more time consuming than I imagined.  My only saving grace is that I blogged a lot tricks a while back that have helped me out of a jam.  So today, I wanted to talk about the high level steps it takes to build a new system, using virtual server.

Now, virtualbox is my virtual server system of choice, and I love it.  It’s been good.  One of the things I love about it is the clone feature.  It allows me to take a previous snapshot or current state and convert that into a brand new system.  That’s what I’m doing now.  I had an ERP 6.0 EHP4 system I’ve been using for development, and now I need one for testing.  I thought I had one…  but that’s a long story 🙂  Anyway, I chose to clone a snapshot of the EHP4 system before any development work was done.  This gave me a good starting point (side note, be careful if you clone a system, then delete it, then try to clone it again.  I had a lot of trouble making that work with virtualbox).

Now, once I had my cloned system, it needed a lot of work.  First and foremost, it was built on a windows platform, so I needed to get all the updates installed.  If you use windows, you know that there are a LOT of updates, especially going back almost 2 years.  ha ha ha.The next thing I needed to do is move all of the configuration transports back onto this box.  Now a huge deal, but had to wait a while for dropbox to re-synch in order to get everything available, and then one by one, import and install each transport.  Next, I need this to be it’s own instance number.  Good thing I did a post on that a while ago to remind me of all the steps to do this.  However, I was running into issues making it work, so I needed to upgrade the kernel first.  Again, good thing I had a post on that too 🙂  Then I thought… well, I should be on Kernel 720, so I upgraded that too.  So far so good, but suffice it to say, none of these steps are quick.  Now, I want to have this system up to date on all the support packs, particularly related to Web Dynpro, to make sure it can run on as many browsers as possible for testing.  I can’t believe how long this takes.  It’s been running for nearly 2 days.  I guess that’s what happens when you’re 9 – 15 levels down.  Oops.  Anyway, once this finally finishes, I can run SGEN to compile all the changes and take a virtualbox snapshot.  Then I’m finally ready.  (of cource… the next mission will be to create another system with Netweaver 7.3.  I’m sure there will be posts on that soon).

As always, thanks for reading,