•January 13, 2012 •
Leave a Comment
The first time you open up transaction SWNCONFIG all those options can be very confusing. There’s several tutorials out there that give you step-by-step instructions, but still leave you unclear on what you’ve actually done. Here’s a high-level diagram I put together to help illustrate the relationships between the different configuration sections.
Continue reading ‘SAP Workflow Extended Notification Configuration’
Posted in SAP Fun
Tags: workflow
•July 6, 2011 •
Leave a Comment
When configuring SAP Workflow Extended Notifications in transaction SWNCONFIG you have to specify run schedules for both the selection of work item notifications (“Schedule Selection”) and the delivery of notifications (“Delivery Schedule”). Each schedule has a start time, end time, and interval.

The start time is required while the end time is optional. So, what happens when you specify a start time without an end time?

You might assume as I did that the schedule will run at the specified interval from the start time to the end of the day. In actuality though, SAP ignores the interval and runs the schedule once at the start time. If you want the interval taken into account you must specify both the start and end time.
Posted in SAP Fun
Tags: workflow
•June 1, 2011 •
1 Comment
We have a program that uses the function module PRELIMINARY_POSTING_FB01 to park journal entry documents. We recently encountered the error “Enter rate GBP / USD rate type M for 00/00/0000 in the system settings” (SG105) coming back from this function module.
Continue reading ‘Error SG105 parking document with currency conversion’
Posted in SAP Fun
•May 2, 2011 •
Leave a Comment
We’re changing the way we process workflow email notifications in SAP, moving from the old RSWUWFML2 method to the newer Extended Notification method. While testing the Extended Notification by running the program SWN_SELSEN I noticed that each run generated 86 entries in the application log:

Looking closer, I saw that most of these entries were basically debugging messages: Entering and Leaving messages for each method that was called. I don’t need that level of logging in production, so can I reduce it without turning off logging altogether?
Eventually I found that there is a parameter to control the level of logging. It is maintained in transaction SWNCONFIG under General Settings. The parameter name is MAX_PROBCLASS and you can set it to a value between 1 (Very Important) and 4 (Additional Information). If no value is specified a default value of 4 is used.

You can see some additional information on this parameter by looking at the documentation for the data element BALPROBCL in SE11.
Posted in SAP Fun
Tags: workflow
•March 17, 2011 •
Leave a Comment
A few of the main tables for product screening in SAPs Global Trade Service (GTS) module.
/SAPSLL/PR – Product master
/SAPSLL/CTSNUM -List of HTS codes and ECCN numbers and their GUIDs.
/SAPSLL/CTSNUMC -List of Schedule B numbers and their GUIDs.
/SAPSLL/PNTPR – Product master mapping. This table has the actual product number (PRVSY). You can use this table to look up the product’s GUID (GUID_PR).
/SAPSLL/PRCTS – Product Master – Global Customs Tariff Numbers. Lists HTS codes and ECCN numbers for a product.
/SAPSLL/PRCTSC – Product Master – Country-Specific Customs Tariff Numbers. Lists Schedule B numbers for a product.
20,110,222,162,019/SA
Posted in SAP Fun
Tags: GTS
•March 2, 2011 •
Leave a Comment
It’s a typical ABAPer scenario: you need to create or update SAP data and you’re fairly certain there should be a standard function module around that data. So how do you go about finding that function module?
Continue reading ‘Finding Function Modules’
Posted in SAP Fun
•February 28, 2011 •
Leave a Comment
My latest project has been building an interface for external systems to submit documents for SPL screening to our GTS instance. SAP provides a standard API, actually a remote-enabled function module, for this very purpose: /SAPSLL/API_6800_SYNCH_MASS.
The first thing I always do with a new function module is pull up the documentation in SE37. Unfortunately, SAP didn’t feel it was necessary to document this one.

A disabled documentation button always looks so sad.
The next stop was Google: 7 results, mostly SDN posts, and none of which offered the comprehensive reference I needed. I also tried an xSearch [OSS ID required] of the SAP Support Portal: 14 results here, consisting of the same SDN posts and some old OSS notes. Bummer. Last stop: much trial and error in the Function Module Test screen discovering which fields the FM requires you to populate and what values it expects for these fields. Hopefully by documenting what I learned here I can save someone else the trouble. Continue reading ‘Document screening API in GTS’
Posted in SAP Fun
Tags: GTS
•January 29, 2009 •
Leave a Comment
More fun deploying ITSMobile screens for mobile devices. This time, I was tasked with finding a way to shrink the screens so they fit better on the handheld devices used in our factories. It took a lot of research and trial and error, but I finally satisfied my users. Here’s a summary, all in one place.
First I concentrated on reducing the horizontal size of the screen elements. This turned out to be pretty easy: I created a custom generation style using this excellent walkthrough. I overrode the _COMPUTE_WIDTH_STRING method and changed the emfactor value from 1.0 to 0.8.
The vertical dimension proved more challenging. I knew I could save a lot of space by removing all the empty lines at the bottom of every screen, but it took me a while to figure out how to do this. Here’s the solution I ended up with: In my custom generator class, I overrode the _CONTENT_EMPTY_SPACE method, which is called for every empty cell. In the case of a empty row the generator writes a single empty cell that spans the entire screen. To trap this condition I added the following check:
IF pi_columns = _screen_header-columns.
Inside this block I grabbed the value of the style attribute ( l_replacement-value) and added ” height:1px; “. Now all the empty rows are shrunk down to 1 pixel in height, effectively removing them.
One last trick – our mobile devices use Internet Explorer which has a feature where the vertical scrollbar is always visible, even when it’s not needed. I added the following entry to my catmobile.css stylesheet to hide the vertical scrollbar and regain some screen real estate:
Posted in SAP Fun
Tags: itsmobile
•January 26, 2009 •
Leave a Comment
Here’s another interesting feature I ran across while setting up ITSMobile. Some users were able to log in ok, while some were getting this message:
Client, name, or password is not correct; log on again
We finally discovered that the password textbox on the standard login page has a max length of 8 characters. Since longer passwords are valid in SAP, we ended up customizing the login screen to accommodate longer passwords.
To do this, we copied the CL_MOBILE_SYSTEM_LOGIN class to a Z class, and modified the HTM_LOGIN method. This is the method that outputs the html code for the login page. You’ll see in the html for the password textbox that is has “maxlength=8″. Modify this value and activate the class.
To tell ITSMobile to use your custom class, go to transaction SICF (we had to have our Basis group do this) and find your ITSMobile service. Double-click it to open the modify screen. Go to the “Error Pages” tab and click the “Configuration” button next to the “System Logon” option. In the “Logon Layout and Procedure” section, make sure the “User-Specific” option is selected, and enter your Z class name in the Class field. Adjust links and Images, reactivate the service, and the custom login screen should be in place!
Posted in SAP Fun
Tags: itsmobile
•January 10, 2009 •
2 Comments
One of the reasons I started this blog was to document SAP “features” that I had to learn about the hard way. I just came across another one this week, so here it is.
I’ve implemented the sequential Document Parking workflow (WS00400032), and had it tested and working beautifully. After moving to a new client for testing, users were complaining that parked documents were not posting after the workflow had completed. I checked the log and saw the the posting step was not completing:

I checked session logs and background jobs to see if WF-Batch was getting hung up somewhere, but no dice. I found a couple posts that said if an error is encountered the step would abort but never show an error message. I checked ST22 as the other posts suggested, still no luck.
Then, while reviewing the workflow log for the hundredth time, I noticed an error message at the workflow framework level: Execution interrupted (SWF_RUN 611).

Alas, even armed with an error number to search on, I was still unable to find an issue.
So, I resorted to firing up the debugger, anticipating hours of reading SAP code. Instead, after only a few function calls, the program exited unsuccessfully, and I saw a message about the program needing to be regenerated. I am using a customized version of the FIPP business object, so I went to SWO1, regenerated my ZFIPP object, and ta-da, everything was back to normal.
Posted in SAP Fun
Tags: workflow