Wednesday, December 24, 2003

Patterns for developing Web applications

Interesting site which discusses Patterns for Web applications.

Patterns for e-business are a group of reusable assets that can help speed the process of developing Web-based applications. This site breaks down these reusable assets. The Patterns leverage the experience of IBM architects to create solutions quickly, whether for a small local business or a large multinational enterprise. As shown in the following figure, customer requirements are quickly translated through the different levels of Patterns assets to identify a final solution design and product mapping appropriate for the application being developed.

Click to go to the IBM site.

Results of SIS

I've put it a lot of effort into understanding SIS and getting it setup.
Was it worth it?

My answer is mixed.
The original goal was to get proposals for configuration supporting points in planning.
SIS is not sufficient for that goal. The closest it gets to that, is showing historical data from S138 on the configuration supporting point screen.

However, it was interesting from other points of data reporting.
The research gave me a better understanding of how SIS can support SAP's flexible planning (the precursor to APO). I've also gained an insight into integration between SIS and planning.

The idea of sitting piggyback on LIS to calculate custom statistics is very appealing. It is real time and better integrated into SAP instead of custom Z-reports.

I've found an interesting paper on using SIS to calculate supply chain metrics for sales orders. The paper was written in 1997 at University of St. Gallens. It creates a new infostructure and uses that to monitor metrics on whether a sales order was executed on time, late, etc.

Legner, C.; Muschter, S.; Brecht, L.; Österle, H.: Process Measurement and Benchmarking: The SAP Process Information System, Institut für Wirtschaftsinformatik der Universität St. Gallen, St. Gallen, 1997.Click to download.


Using infostructures in SAP

It was worth the effort. SAP put a lot of effort into its preliminary data warehousing efforts. Variously known as OIW (Open Info Warehouse), LIS, SIS and "Infostructures".

Infostructures are aggregated data that is extracted from the transaction tables in SAP.
For example, information from sales orders, deliveries and billing documents are aggregated into S001 (Customer Infostructure).

SAP's documentation links.
What is LIS and how do things work.
Using LIS and its tools, also has a nice introduction to LIS.
Details from above link for SIS.
Configuration guide for Logistics Information System IMG.



I was interested in SIS to see if the system can automatically populate configuration supporting points for KMATs. Briefly, config points are used when you have configurable materials (KMATs). So in addition to planning the number of units, you must plan the percentage of the various possible options. These percentages are stored in MD63 as configuration supporting points.


Prereqs: KMAT, Planning profile (MDPH and MDP6), Setup SIS


Overview:
1. Customize statistical groups for materials, customers, order types, etc. in SIS.
2. Update master data to set statistical groups for materials, customers etc.
3. Customize update groups for these combinations.
4. Customize - Activate update for the SIS infostructures that you want to update. I chose V2 updates for S001 to S006. For variant configuration you must activate S126.
5. Customize - Under update control, simulate an update with a sales order, billing document and a delivery. In the analysis log, check that the correct update group is being calculated for your document and its items. If the update group is initial, then the item / document is ignored.
6. Clear out old data in the infostructures using transaction OLIX.
7. Run the statistical update (i.e read existing documents to update infostructures) to update the infostructures.
In SIS, the update group is calculated for the sales order. It is then copied into the delivery. Finally the update group is copied from the delivery into the billing document.
When you run a statistical update, ensure you select re-calculate update groups and update document. The order is important, sales orders followed by deliveries and then billing documents.
8. Run copy management. For variant configuration, you must first populate S126 as above. Then use copy management from S126 to S137 (method V003). Finally use copy management from S137 to S138. S138 is the infostructure used by transaction MC(B to analyze variant configuration data.

SAP documentation link.
How to setup SIS variant configuration.

Problem areas:
Infostructures not listed during update simulation.
a. Check the infostructure is active for update.
b. Check the document update group and the item update group are not initial.

S126 is populated, but S137 is empty after running copy management.
a. The copy method V003 ignores a material which does not have "Update SIS" flag on the planning profile header. This is a radio button on the profile list screen of MDPH.

I can't see any data for a particular combination.
a. Check the material's planning profile has this combination.



Friday, December 05, 2003

An unusual error trying to remove the SAP .NET connector

I had uninstalled MS Visual Studio 2002 but left the SAP .NET connector. After reinstalling VS2002, the .NET connector was not visible in the IDE. So I tried to uninstall / repair it.
Hit a road block

Unable to get installer types in the c:\tools\Visual Studio\Common7\IDE\SAP.Connector.Design.dll assembly. --> One or more of the types in the assembly unable to load."

Looked on Google and someone suggested that this was related to registration with COM.
So I tried regsvcs on this DLL (no luck) and then regasm on this DLL.
Running regasm resolved a few problems and the uninstall got a little further. But the error persisted.

Finally I moved the files from the old VS location to the new Visual Studio location (C:\program files\MIcrosoft Visual Studio .NET\Common7\IDE).

This still did not resolve the problem. For some reason, it kept looking at the old location.
Desperate, I went to the registry and renamed all references of the old DLL location.

This fixed the problem (whew).

Uninstalled the component and rebooted (it broke something in Visual Studio, since the installer kicked in when I tried to start Visual Studio. It fixed itself.)
Finally re-installed the SAP .NET connector and it now is visible in VS.NET 2002!


Earlier, I created a small security web application. It was to explore the builtin authentication and authorization concepts of NET. I was impressed at the ease (it always helps to have an example in front of you to get moving fast!).

I copied the project to a new project. When I copied the ASPX files, it gave me compile warnings. Digging deeper, it turns out the default namespace for a project is the projectname. So when you copy an ASPX to the new project, you must go into the C# code behind each ASPX and change the namespace. {The alternate is to simply change the namespace of the entire project}.

BTW the Brinkster account didn't let me upload this to the "free/general" account. No idea what happened.

Tinkering again with ASP.NET

I've finally re-installed Visual C# with Visual Studio.NET on my machine again. Got all the posters out and am challenging myself with making something interesting. Get a feel for the technology with a real project. I'll get down to reading the various .NET self paced training books first.
Did get a new web account to host my non-existent apps. Link to my Brinkster account.

BTW, PDM is really cool. I am very impressed with the ease of use and its speed. I haven't quite figured out the "Query" tab as yet (need more time to read the manual!!!)

Almost finished the returns "Create Variant" program. Still a bug with missing accounting views. I've got a demo tomorrow.

Looking on the web, I've found an interesting manual from SAP on using Order BOMs.
Another interesting article on setting up/ using class hierarchies and nested KMATs.

The table CUXREF can be used to see which constraints are setting up a Z2 sales order block (GLOBAL_SDCOM_ZZLIFSK). Gave a short overview on the tables CABN, CABNT, CAWN, CAWNT, CUKB, CUXREF.

Its getting late.....

Thursday, November 27, 2003

Reading SAP data from Access

Hey this sounds interesting
Personal Data Miner for SAP - gives you the ability to reach into the SAP database directly from MS Access.
http://www.pdm.lu

I should try and remember to try this one out.


Further SAP projects

Processing returns of configurable & serialized materials in SAP
Return processing in SAP is pitiful. Try adding configurable and serialized products. It blows SAP out of the water.

Move the configurable material out of sales stock and into inventory. But first, create a material variant for this configurable material. Here lies the next problem, SAP does not create a variant which references the configuration in a sales order. So I have to write your own program to create material variants. (Steps involved are: Create a new material master, configure it, attach a BOM and a routing, create and mark a cost estimate).

Once this is in inventory, you need to break it down to its components. More problems. Since it is configurable and changes frequently, the components in the current BOM may not match what you built and shipped out. So read the components from the original production order and compare this with today's BOM. At the end, perform a 561/562 (or something similar) to swap the variant for the components.

Now the serial numbers. If you don't reuse your serial numbers, there is no problem. Sadly, that is not the case in most companies. The serial number of purchased components need to be reused. So when we break down the KMAT, we need to make these component serial numbers available for use. Also if there are configured serial numbers, we need to remove configuration information to avoid problems during delivery (In an inbound delivery, the system checks the serial number configuration with the purchase order configuration).

Its been a long time since my last post. Life got in the way.
With so many items trying to grab your attention, it is easy to forget the non-urgent activities.
Recent trends

SAP - Using Javascript to script and automate the SAPGUI frontend.
(I should write an article about this, since it is a lot of fun)

SAP - Planning for configurable materials. Despite the rich functionality that SAP provides in 4.6C, there is a lack of clear instructions on planning KMATs. Working with the planning folks, I've learnt a lot about the complex nature of planning these beasts. Furthermore, what information must drive your forecasting. I wrote two SAP extract programs that get production order information from SAP. The extract files are imported into Access (500K + 3M rows) where I do some crunching to reduce the data volume. The resulting time series is something that the planners can use. But I went a step further, looked at all KMAT BOMs and extracted the characteristics used for any selection condition/procedure in a BOM. That list of characteristics is what is relevant for planning. By comparing this list with the planning profiles of your KMATs, you can analyze how much coverage you have for each KMAT.

The next step is to compare the percentages in your configuration points with the actual characteristic - value percentages. Again this was accomplished in Access.
Now all this information is not useful if it is difficult to update percentages. So I wrote an update program that can go in and change percentages on each configuration point.

Interested? Give me a yell.