Tool to get BPM context data from a SAP PO BPM

One of the benefits to having a team of developers at your disposal like I do to create my SAP PI/PO test tool is, the ability to create cool applications to solve problems. So I’m really happy that I can give a free tool away to the people that have the same challenge as I ran into.

I have a client where we were using BPM to have some user actions in. Sometimes they wanted to restart the BPM process with the same data or minor changes. I could see the payload in the BPM monitor as on below.

This did not give any information about how I could download the message. I know if the process is failed I’m able to edit the payload of a message, but this is obvious, not true if the process is completed.

There was no API for getting the data from my research at the point.

So we had to create our own tool to handle the queries.

We found the table in the database that housed the Context Data and then started understanding how it worked. The context data was encoded in an XML structure with base64. Then it was just to build a simple user interface on top of it.

It should be easy to find the correct document and so we added a function to make xpath in the data to get the correct data. So we ended up with the following UI.

 

If you want to get it. You can get it for free at http://figaf.com/tools/figaf-bpm-extractor/.

The build includes sources so you can optimize it your self.

 

 

 

 

Retiring the SAP PIDocumenter and Diff tools

I have retired my documentation tools.

The reason is that they used an old form for documentation and SAP PI/PO did no longer support the use of XIM files. It was therefore not as much the tool was used anymore.

I have created a short guide to how you can export your mappings to an Excel sheet with NWDS. I’m not to found of the layout of it but it does support standard and also export UDFs. So it is an easier way to make the documentation.

How to document SAP PI/PO Mappings using NWDS

new product, support helper to SAP PI/PO/PRO

I’m happy now.

The reason? I’m finally ready to share my newest creation with you! It is something that I have been spending some of my spare time on during the past few months.
Meet my POSupport tool

I have created Figaf POSupport because I saw that a lot of customers were not handling errors well in their SAP PI/PO systems. They had configured the Component-Based Message Alerting and were getting a lot of errors to their mailboxes, but they were not doing anything with them, because it was difficult to process the alerts, to figure out what the alerts were referring to, and to understand why they happened.

SAP Support Tool -POSupport

SAP Support Tool -POSupport

The POSupport tool can help you organize alerts, while assisting you in the processing phase. You can easily define rules with Xpath, which categorizes the alerts that occur. In the rule you have various options:
You can define an email concerning the solution to an issue, which should be sent to the support organization. This rule could be a great place to store your knowledge about the repeated errors that occur.
You can mark the message as canceled, so you don’t have to deal with it anymore
You can re-send messages that had problems caused by adapter errors; the messages will be re-sent every 30 minutes, until they can be processed when the system is up again

You also get a tracking function of the alerts that occur in your system; using the tracking function, you can update the status of the alerts, along with how they are handled.

There is a 30-day free trial that you can download, and get started with. My guess is that it will take you 1 hour to install and configure. It should make you see howPOSupport works.

This is the first version of the tool, so there are still more features that I would like to add. After trying it, you will probably have your own ideas on what it should contain. Please, let me know what you think: what could be improved? What should be added to it? I would like to add some reporting capabilities, so you can get an overview of how well you perform tasks.

I know that a big question you have is related to the cost of the tool. I wanted to keep the price low to get a higher user adoption rate, so the price will be 3000$/2500€. It is not a big investment – just think how many hours you could otherwise be spending on alerts.

I want to get a lot of customers to try this tool, so I can add more functionality. Until the 31st of October, POSupport will be sold at half price.

You can find out more about my POSupport tool, and see video presentations of it at

Searching SAP PI/PO message content with module development

internet search conceptI was talking with a fried around searching content and how easy it would be to implement your own search solution.
After taking a look at search APIs, such as Amazon’s, and having long discussions with a friend, I came across this useful page: https://www.searchify.com/documentation/java-client
I thought it would be a good project to start my development and be able to develop better solutions for searching. It would be fun to see how easy it is be to integrate this with the SAP PI/PO/XI module framework.
Spoiler: It is way too easy. 
As a seasoned PI consultant, I wanted to create an archiving solution that would make a developer’s work easier. Specifically, I wanted to create an archiving module that would store a lot of metadata on the file, while also adding a useful search function to it. This is how www.piarchiving.com was born, it is no longer being maintained because there is other solutions. Some of the newer user-defined message search modules also have different search criteria for text and so does HANA.

After gathering my ideas, I had created a module. In only takes one hour to learn and implement the code in an SAP PI module.

To get started, you need to add the API URL that should be used. The next step is to create and add the Index. After these steps, the content should be put into the text field and uploaded. A step-by-step explanation is shown in my video, with examples on how to find message IDs after the completion of keyword-based searches.


This is an easy application for those who wish to search through all of their content using Searchify in a PI/PO context. It is good for scenarios where you don’t have a HANA instance to save and search through messages.

It is also quite inexpensive, at only $59 per month which will not let you run much servers.
If this was to be used in a real scenario, there should be a focus on creating more stable code and an asynchronous process. Obviously, a better front end would also be needed.

For a more in-depth explanation, watch my video at:
The code is the following
package com.figaf.po.module.search;

import java.rmi.RemoteException;
import java.util.HashMap;
import java.util.Map;

import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

import com.flaptor.indextank.apiclient.IndexTankClient;
import com.sap.aii.af.lib.mp.module.Module;
import com.sap.aii.af.lib.mp.module.ModuleContext;
import com.sap.aii.af.lib.mp.module.ModuleData;
import com.sap.aii.af.lib.mp.module.ModuleException;
import com.sap.engine.interfaces.messaging.api.Message;
import com.sap.engine.interfaces.messaging.api.Payload;

public class SearchModule implements SessionBean, Module {

	
	/**
	 * 
	 */
	private static final long serialVersionUID = -91519383171871089L;

	

	 public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData)
			throws ModuleException {

		   IndexTankClient client = new IndexTankClient(API_URL);
			  
		    try {
		    	com.flaptor.indextank.apiclient.IndexTankClient.Index index = client.getIndex("daniel");
		    	
		    	 Message msg = (Message) inputModuleData.getPrincipalData();
		 		Payload payload = msg.getMainPayload();
		 		byte[] contentString = payload.getContent();
		    
				String documentId = msg.getMessageId();
				Map<String, String> fields = new HashMap<String, String>();
				fields.put("text", new String(contentString));
				fields.put("timestamp", 
			            Long.toString(System.currentTimeMillis() / 1000L));
				index.addDocument(documentId, fields);
		    }catch(Exception e){
		    	throw new ModuleException("Unable to save msg to index "+e.getMessage(),e);
		    }
		    
		 return inputModuleData;
	 }

	  private final static String API_URL = 
		    "http://:9XKwGr18rQ7NVU@8tvnx.api.searchify.com";
	  
			@Override
		public void ejbActivate() throws EJBException, RemoteException {
			// TODO Auto-generated method stub
			
		}


		@Override
		public void ejbPassivate() throws EJBException, RemoteException {
			// TODO Auto-generated method stub
			
		}


		@Override
		public void ejbRemove() throws EJBException, RemoteException {
			// TODO Auto-generated method stub
			
		}


		@Override
		public void setSessionContext(SessionContext arg0) throws EJBException,
				RemoteException {
			// TODO Auto-generated method stub
			
		}
}

The post Searching SAP PI/PO message content with module development appeared first on SAP PI course.

We dont need this java on PI

I was working with a client doing Bank (BCM) integration on the SAP PI platform. Everything was going well. Then I got into a talk around if we could get rid of this Java thing.

Then I had a small issue… Since my focus was to make everything in the integration layer as simple as possible and be able to upgrade it. So it would be possible to go to the single stack.

The claim was fair enough that the bank department did not have enough skills on the Java to support a lot of java code. There was enough ABAP developers around, because they had worked with ABAP for 5+ years. They had the skills for coding and supporting ABAP, in that perspective it was much easier for him and the team to support it.

The same does I see when I do consulting with smaller clients, where they only have a basis or an ABAP developer to handle the PI as a side project. How many things can you handle and support before it is too much.

They seem to have gotten the idea that SAP was moving away form Java. So all business logic from SAP will be in ABAP. They thought of this because of the Oracle acquisition of Sun. My comments was that in my view SAP was still investing heavily in Java both for the PI/PO and for the cloud applications.

I recorded this video around the issue.

I think we got to an agreement on what should be different. The big issue was about maintain lookup values for the business. Most of the values should be maintain on the ERP system, which is not a complete goodbye to the Java stack.

And ABAP mappings was never in the scope.

I still think it is a valid point, what are you required to now inhouse before you can maintain a SAP PI system. Do you need to be PI certificed or can you just have some skills in debugging and monitor the PI system?

The post We dont need this java on PI appeared first on SAP PI course.