SAP Integration Experts – DataXstream

The Ergonomic User Interface

Every Monday morning I hop on a plane, arrive at my destination city, pick up a rental car, and drive to my client’s site.  The car rental company gives me a different make and model car every week.  And yet, somehow, I am successfully able to open the car, adjust the seat and mirrors, start the car, shift gears, and drive.  I can also operate the radio, air conditioning, heat, windshield wipers, and headlights.

Now, put me behind a keyboard in front of a computer application which I have never seen before. My user experience is all over the map – somewhere in the continuum between most excellent and very poor.  Some application user interfaces are extremely intuitive, well-designed and easy to navigate, logically follow the business process flow, and provide real meaningful help when needed.  Other application user interfaces are extremely difficult to navigate, are not intuitive, do not follow a logical business process flow, and offer little or no meaningful help. And sometimes in these difficult user interfaces, not only has the location of the steering wheel been moved to a totally unsuspecting location, but its appearance has been changed so that, even when I see it, I do not even recognize it as being the application’s steering wheel.

A well-engineered user interface is no accident.  It doesn’t just magically happen.  It must be woven into the fabric of the design and the code; and it should never be shoe-horned into the application as an after-thought.   It takes a lot of up front planning, designing, testing, functional effort and technical effort to produce a really good application user interface.  And yes, designing, building, testing, and implementing a good user interface for your application will extend the delivery time of whatever it is that you are building.

Why is a well-designed and ergonomic user interface so important?  You could have built the best application ever developed.  But if it is unusable, it will never get very far.   Countless hours are lost every day as thousands of frustrated users spend extra time and effort wrestling with poorly designed user interfaces, rather than focusing on their jobs.  And when the frustration levels reach a certain trigger point, the users will seek out and find alternative ways to perform their duties.

Here are a few examples of some very interesting user interface experiences that I have personally encountered.

Read more

SAP Event Driven Batch Job

When creating SAP batch jobs to run a program, most of the scheduling can be accomplished by setting a periodic time for when the job is executed.  For example, execute the job every 10min, 30min, or 1 hour.  But what if you needed more control of when a batch job was executed?

Read more

The Software Component

In my last blog entitled What’s in a Namespace, I discussed the value of developing deliverable custom solutions in a reserved unique namespace.    In this blog, I will discuss how a namespace is related to a software component.   I will also discuss the typical product lifecycle, the software component version, and the convention which we use for establishing the software component version release increments.

DataXstream, an SAP Solution Partner, builds, packages, and distributes custom solutions for our clients.  We develop all of our custom add-on products in our own reserved and unique namespace /XSTREAM/.  But, we also need to reserve a separate unique namespace for each add-on product that we package and deliver using the SAP Add-on Assembly Kit.  So, we have a single development namespace /XSTREAM/ and a separate “packaging and delivery” namespace for each add-on product.  Why is that?

Read more

How To Implement Field-Level HRMD_A Reduction

I love ALE.  It is super-powerful and, once you get the hang of it, is a snap to configure.  Recently, I was setting up an HRMD_A interface for my client.  Everything was going smoothly until I ran into a requirement to filter out the social security number (PERID), birthdate (GBDAT), and gender (GESCH) for privacy reasons.  All of these fields are in segment E1P0002.  Initially, I thought that this requirement was easy enough to accomplish.  I just created a IDOC reduction in transaction BD53 and filtered out the three fields.  I soon found out that while entire segments were getting reduced from the IDOC as configured, the individually reduced fields were still showing up in the IDOC.  What’s going on?!? Read more

How To Debug ABAP Web Service on SAP Web Application Server (WAS)

One of the more confounding aspects of developing in the SAP space is the lack of good, low-level, helpful instructions.  While this post is merely regurgitating information that is readily available elsewhere, it will be done in a manner that (hopefully) will actually be useful to vast majority of ABAP developers out there that,  like me, find a lot of SAP’s implementation of web services on the ABAP stack confusing.

Debugging a web service on the ABAP stack of SAP Web Application Server is a very useful procedure to know.  Here’s how you do it.

Read more

It’s SAP Upgrade Time! Do You Know Where Your Customizations Are? Part 1.

It’s SAP upgrade time!  Do you know where your customizations are?  Part 1.

On several occasions, I have been engaged on projects with statements of work containing some or all of:

HELP!  We need to upgrade our SAP system, and we do not know what has been customized, and our original implementation partner has been gone for over several years, our several enhancement partners are also long gone, best-practice controls were never implemented, we have no documentation, and we need all of our customizations, whatever they are and wherever they are, to behave correctly in the upgrade system.”   (And I’m sure that you can add to this list!!!).

At the time of initiating the engagement with a client, how this happens and why this happens is not important.  What is important is that there can be an assessment of the risks, an evaluation of the costs, and an understanding that it may be possible to significantly determine the extent of the customizations, even without documentation.   The customization discovery process, then, becomes a matter of knowing how and where to look.

Read more

Changing The Function Interface of Web Service Enabled Functions

Today, I got an email from one of my co-workers at my client with a very good question.  This developer had created an ABAP function to return SAP data.  Then, he exposed this function as a web service. Due to changes in functional scope, he had to change the function interface.  After he made all his changes and unit tested the ABAP code, he was surprised to find that his web service was still adhering to the old function interface.  He tried deleting and recreating the web service, but ran in to problems.  He was stuck in a pickle and needed a little push in the right direction.

Read more

SAP TechEd 09 Demo Jam Liveblog Recap

This blog is a recap of the liveblog of the  SAP TechEd 09 conference Demo Jam. To read in chronological order, start from the bottom and work your way up.

Read more

SAP TechEd 09 Keynote Address Liveblog

Liveblogging SAP TechEd 09

Are you stuck in your cube while Bob from BASIS is heading to SAP TechEd 09 in sunny Phoenix?  Are you afraid that you’ll miss out on all the sun and fun?  While we can’t send the sun, we’ll try to bring you the fun.  DataXstream will be liveblogging at SAP TechEd 09.

Head over to live.dataxstream.com on Tuesday, October 13, 2009 to get up to second updates from the show.  We will be getting our liveblog on starting at 8am PDT (that’s 11am for you right-coasters) for the general keynote session.  We’ll also be liveblogging from SAP TechEd 09 Demo Jam at 8pm PDT on Tuesday.  The Demo Jam promises to be a great time, so plan to join us online after you put the kiddies to bed!

This is our first foray into liveblogging.  Hopefully it will go off without too many technical glitches.  We hope you’ll enjoy following the events with us!

Next Page »

SAP Integration Experts – DataXstream