Blog

Home / Archive by category "Blog" (Page 18)

Ideas for my next book?

Well, it turns out that writing e-books has really helped me connect with more people.  I’ve had a lot of people find me because of my books, and because of that I’ve felt like I’m helping people.  Which, at the end of the day is really my goal.  I’ve spent all of this effort in SAP Service Management, only to realize that everyone is just as confused about it as I was 10+ years ago.

So, as I begin to think about my next e-book, I would love to hear your opinions on what I should write about next.  Here are a couple things I’m considering:

  1. Advanced Configuration – part 2.  This would go into more of the configuration available for service management/plant maintenance.  things like maintenance plans, service boms, etc.
  2. A book about Service Orders – I did for the notification and the service contracts.  Would you be interested in something similar for the service order?
  3. Warranty Claims – this one might take me a little longer write since I haven’t been using it as much recently, but still a fun experiment.
  4. Variant Configuration – I’ve had a request to do a book on VC.

if any one gives me their opinion as a comment on my blog, I’ll be sure to send you a free copy when I finish my next book.

Thanks for reading,

ABAP – Refresh ALV GRID and keep position and current cell

Since I’ve been rebuilding my Renovation product into the old school Dynpro, it’s meant relearning a few tricks.  Today, my trick was to keep the position, selections and current cell after refreshing the data with new data or updated date.  First off, I need to thank this post for the great info.

Here’s the basics.  Before you refresh the table, you will need to perform the following on your ALV grid.

  dataes_row_no  type lvc_s_roid.
  dataes_row_info  type lvc_s_row.
  dataes_col_info  type lvc_s_col.
  datafes_row_no  type lvc_s_roid.
  datafes_row_id  type lvc_s_row.
  datafes_col_id  type lvc_s_col.
  datamt_cells type lvc_t_ceno.
  datamt_rows type lvc_t_row.

  grid->get_scroll_info_via_id(
  importing
    es_row_no   es_row_no
es_row_info 
es_row_info
es_col_info 
es_col_info
).

  grid->get_current_cell(
    importing
*        e_row     = e_row
*        e_value   = e_value
*        e_col     = e_col
      es_row_id fes_row_id
es_col_id 
fes_col_id
es_row_no 
fes_row_no
).

  grid->get_selected_rows(
  importing
    et_index_rows mt_rows
*            et_row_no     = et_row_no
    ).
  if mt_rows[] is initial.
    grid->get_selected_cells_id(
    importing  et_cells mt_cells ).
  endif.

Now, there are multiple ways to refresh the table, I use set_table_for_first_display, but the post example uses refresh_table_display.  Either way, after you do your refresh, then run the following to set the position and selections.

    if mt_cells[] is not initial.
      grid->set_selected_cells_idit_cells mt_cells   ).
    else.
      grid->set_selected_rows(
      it_index_rows            mt_rows
*        it_row_no                = it_row_no
*        is_keep_other_selections = is_keep_other_selections
      ).
    endif.

  grid->set_scroll_info_via_id(
  is_row_info es_row_info
is_col_info 
es_col_info
is_row_no   
es_row_no
).

    grid->set_current_cell_via_idis_row_id fes_row_id
is_column_id 
fes_col_id
is_row_no 
fes_row_no ).
  refreshmt_rows[]mt_cells[].

Thanks for reading,

JaveLLin Website goes German

My good friend Garett gave a good idea at lunch recently.  Since SAP is a German company, and a lot of other German companies run SAP, perhaps having a specific website in German might be a good idea.  So, I found a the domain with a .de.  Once I figured out the fun of DNS and nameservers again, I was off and running.  I translated my website to German and now it’s up and running out there in the ether.

The translation is the part I’m scared about. Since my German skills can almost talk to a kindergartner, that means I had to put a lot of trust in Google Translate.  So if any of you out there happen to be fluent in German, and notice something completely ridiculous, please let me know (and perhaps give me a better translation).  I’d really appreciate it.

www.gojavellin.de

www.javellinsolutions.de

Thanks for reading,

Service Management – Notification Long Text Windows

Service Management – Notification Long Text Windows

Something I recently discovered that was very interesting to me is the impact of running the BAPI:  BAPI_SERVNOT_CREATE on the long text.

I followed all the rules and made sure to enter in the text table with all the appropriate keys.  What I didn’t find,anywhere is that depending on which long text you pick it will display differently in the notification.  In the configuration for the notification, you can select from 3 different versions of the long text.  Each of them behaves differently with the BAPI loaded text.  Take a look at this for example:

if you select the “standard” longtext – 030

blog030

this is what you will see.

Next, take a look at the windows 32bit version – 031

blog031

Notice it shows as blank, but if you press the long text button next to it, you will see the following:

blog031-1

Finally, if you pick the webgui version – 033

blog033

You will see this version.  All of them contain the text that I typed in, but for some version I had to jump through hoops to see it.  So before you spend a lot of time checking your long text code to figure out why you can’t see it, make sure to check which long text is in your notification.

thanks for reading,

Consolidating To-Do Lists

Well, I have become the king of lists.  It seems to be the best way for me to get anything done.  Even my Mom knows that when I come to visit, if she tells me a bunch of stuff, I’ll get a few things done.  If she writes a list, I focus on getting all of it done 🙂  Well, I came to the realization this morning that right now I have 3 different lists that I’m working off of.  I have Remember the Milk which contains all of my scheduled tasks (things that need to happen on a certain date) or my recurring tasks, or my items I need to be working on.  Then I found another app called coach.me.  This was very cool, and it’s designed around keeping you accountable for each thing and saying that you will do something X times per week, and it gives you little high fives for meeting your goals.  Finally, I have my outlook inbox.  I have been flagging and color coding these items to show me what’s important in my inb0x.

Well, i discovered that I may have taken control of my inbox, but I now have 3 different check lists to be monitoring.  So, I figured out the next thing I can do to simplify my life.  Get myself down to a single to-do list.  My preference is Remember the Milk (RTM).  I’ve been using it for years with great success.  Coach.me was the first thing to go.  I only had about 6 different daily things I was tracking.  Two of them have become habits, so I removed them from the list.  Several items got added to RTM so they are recurring items.  Bingo… one down.

Outlook was a bit more challenging.  I have become very good at writing rules to manage all my incoming emails, but I needed to understand how I could send an email to RTM automatically, so it will create a task for me.  I found a post that explained within Outlook, you can press Alt+F11, and it will bring up the VB window.  It even had a simple script for me to start with:

Sub ChangeSubjectForwardProspect(Item As Outlook.MailItem)
Item.Subject = Item.Subject + ” <tagging stuff for RTM>”
Item.Save

Set myForward = Item.Forward
myForward.Recipients.Add “<my RTM email account>”

myForward.Send

End Sub

then, inside of the rules, there is an action called “call a script”.  I just had to pick this.  Now, when certain rules execute, instead of adding a flag, it will create an RTM task for me.  I’m still working on more scripts, but to start with, this is pretty easy.

Thanks for reading,

Service Management – Configuring the Exchange Process

I recently got an email from an old friend.  He started to describe a process that his current client wanted to do, and as soon as I read it, I knew he was talking about the Exchange (advanced exchange, etc.) process.  So I thought I’d go over the basics of how to set this up:

1. Define Repairs Procedure – you will need a new repair procedure that includes
action 106 in stage 101, as a default. This will place the exchange line on the
sales order upon creation.  See the sample below.

blog01

2. Define Item Categories * – you will need a new item category for the top level
to point to your new repair procedure.

3. Define Item Category Groups * – you’ll want a new item category group to
assign to the correct material to kick off the exchange process

4. Assign Item Categories *

5. Transfer of Requirements * – be sure to go through all 3 pieces of configuration
in this section. This is how you link your service order to your sales item
categories.

6. Create your Service Material with the newly created item category group.

7. Create/Process Service Products – this will link your service material to a
plant/work center/task list.

I do want to mention, that in addition to this, you’ll need to test the movement type
of 411-E. Since the customer’s equipment will still be processed and brought into
customer stock, you will need to perform this movement on the equipment to bring it
back into your rotable stock so it can be shipped to the next customer as an
exchange.

If you need more in-depth, check out my book.  It goes into the details of how to configure all the pieces in service management.

thanks for reading,

Going Old School – ABAP Dynpro

Well, I had a conversation with a new friend of mine.  He’s in a similar position was myself, starting a small startup software in the SAP space.  We talked for over an hour and shared war stories and advice.  One random piece of advice that he mentioned is that newest isn’t always better, at least in terms of software development.  Something about that chat really resonated something I’ve thought about, but kept telling myself wasn’t necessary.  Converting one of my applications FROM Web Dynpro to standard ERP Dynpro.

Now, this sounds totally counter-intuitive, even to me, but the more I think about it, the more it makes sense.  Currently my Renovation application is purely web based.  It uses ABAP Web Dynpro, but you can’t open a transaction inside of SAP to do the same thing.  Once upon a time, this all started because it was going to be a app for my client’s customers.  They wouldn’t have SAP, so it needed to be web based.  But since that time, it’s evolved into an internal application.  Since my customer base is all about the small to mid-sized shop, or service shop in a large company that is still run like a little shop, that means they might not want or need a web application.  They don’t care about fancy, sexy, web based.  They care about getting the job done faster, cheaper, better.  My plan had been to convert it to UI5.  Make it prettier, responsive, add a buzz word.

Even in my own test systems, the web dynpro can be flaky.  I’ve always chalked it up to my test boxes being small and my network being less than optimal, but what if it has nothing to do with my systems?  I don’t know the answer for sure, so I’m thinking it’s better to have the option.  It’s a small development price since all the hard work has already been done, and I can leverage everything with Proximity to get it up and running quickly.  This also keeps the door open for older systems that don’t have Web Dynpro as an option.

I’d love your opinion.  What is a better first task, convert to UI5 or convert to ERP Dynpro?

Thanks for reading,

Avoid the Rabbit Hole

So yesterday, I talked about a trick to upgrade my windows.  Well, I spent some time, finally got it the OS up and running, only to find that my SAP system running on top of it wouldn’t start.  So I started to go even further down the rabbit hole.  I tried upgrading the kernel, checking user environment variables, and on and on…  finally, after dumping a couple of hours into this, a big realization hit me.

What’s the point of updating the OS?  this is an old system, it works fine, and the only issues are that dropbox doesn’t work on it and the cloud connector can’t be installed.  I have plenty of other systems, so this exercise is trivial, and certainly does NOT move me toward my goal.

What’s the point of this random story?  stay focused on what is important.  It’s fun to do something random, and if you tried you might find a way to justify it.  But at the end of the day, if the activity isn’t moving you toward your goal, it’s moving you away.  Upgrading my old systems to a “newer” OS, has no impact on building my business, improving my life, or making me smarter.  It just served to waste my time.  So pay attention to the little things that steal your time…  enough little things will keep you permanently derailed.

thanks for reading,

Upgrading an old System from Windows Server 2003

Well, I recently decided that running my 13 year old operating system probably wasn’t the best idea.  So in my test box, I started to upgrade to windows server 2008.  Well, at least its 5 years newer ha ha .  Anyway, I started the install, and quickly ran into a stupid error.  Apparently, there was a piece of software called Windows Powershell, that has to be installed before you can upgrade to a newer version of Windows.  To me, this seems ridiculous.  But ok, I’ll play along.  I quickly realized why Microsoft punted this to the user.  It’s not a simple uninstall procedure.  As I started to dig into this, it’s not in uninstall area…  hmmm, I read some forums, and they pointed to another hotfix.  So I apply the hotfix.  It does nothing because the update that supposedly installed this thing isn’t on my computer.  WTF???

Finally, I found a clever soul that was nice enough to blog about this.  Turns out, you can just rename 2 directories and the install will process just fine.  Now keep in mind, no MS forum mentions this.  they keep pointing back to the same post that doesn’t fix my issue.  The next best answer was uninstall SR2.  Well, it appears that when I installed this old version, it installed with SR 2, so even that was out of the question.  Anyway, if you run into anything similar, keep in mind, sometimes the easy fix is the best fix 🙂

Thanks for reading,

Mirroring an IPad to your Windows Computer

Well, I just found a fun little trick.  For a long time, I’ve wanted to be able to pull in IPad screen when I demo my stuff.  this way, I can show what it looks like on the IPad, what my iOS apps look like, etc…  but I never found a good method to do it.  I don’t know why, but I decided to look again, and I found a cool FREE app called LonelyScreen.  Just download this onto your computer and it allows you to stream using AirPlay.  So you don’t have to install anything on your phone or IPad.  Just this app on your PC.

Then just go to your IPad/iPhone, swipe up on the screen to get your quick controls.  Press AirPlay, then select your lonelyscreen.  This works great for apps, but I did seem to have issues when I attempted to do Videos or Movies.  Which is fine, I wouldn’t really be using this to watch a movie anyway.  Regardless, it’s a fun little trick to checkout, especially if you ever demo anything on the iPhone or iPad.

Thanks for reading,