Posts

Webinar replay: Why you should test SAP PI/CPI

Do you want to learn how to test your SAP PI/PO system for upgrades in a smarter way? That was the main focus on the webinar, I held Thursday 28., March 2019. At the webinar, I covered the following topics:

– Why you should be testing your solution
– How the SAP PI testing solution (PIT) works and its limitations. Like it is pretty difficult to test the first upgrade because there is a need to make patch uploads.
– What a tool for testing your interfaces should be able to
– How a test tool will improve your sap pi upgrade and patches

I do show a short demo of you can set up test cases with the Figaf tool and can create multiple test cases in just one go. Anonymize the test data so you can run a test with even sensitive data.

Here you can watch the full replay (47 minutes):

Please also see the slideshow

I have also made a slideshow, which I hope you will like:

So, are ready to take your workflow to the next level with Figaf Integration Regression Tool? Then push the button below.

New Monitor for SAP CPI

After working with SAP CPI for some period of time, I did find it a little difficult to monitor the application. So we decided that we could add a better way to monitor the application and include it into the Figaf IRT application. Because the purpose is to make your usage of SAP Integration easier.

We are reusing the tile concept from SAP CPI, that allows you to create different tiles with different concepts. So you in one screen can see multiply overviews of what is happing on your system. We are using the OData monitoring service that allow us to give users access to data. IRT just work as a proxy and perform the query in real time without saving anything to the Figaf IRT application. We also have the other option and it is really useful for triggering alerts or restart messages.


Up can edit the tiles and write what you want to see in it. You do have the option to select multiply iflows in just one screen, different periods and status. Based on the name IRT then creates two roles on that can view the metadata of the message and one that can view the payloads. It mean that you can give access to tiles for business users. So the people from finace will be able to see all tiles related to finance but not monitor HR. Admins can still monitor everything.

Once you open the monitor you then have the option to view multiply rows in and relavant data in the overview screen. This allow you to search a lot easier for messages with some application id or Receiver.
You can also do filtering in the iflow you have access to already. This way users can only see the data they need.

Check out the easy way of monitoring your SAP CPI flow.

I do believe that this will make it a lot easier to monitor your SAP CPI system. And give access to other users to monitor what is going on in your processes.

You can view my video presentation of it here.

You can try it out IRT/Cloud soon. You can signup already now and start using all the other function there to help improve your SAP CPI development flow. There is a free 30 day trial that you can try for your organisation.

A different way to restart SAP CPI content

It is pretty difficult to restart SAP CPI messages from any external applications. There is just two ways that include either the Enterprise Messaging/JMS or the Datastore. Some times this can create some complex scenarios for the user to develop.

We wanted to make some of the development a little easier. It requires just one groovy script and two script steps in your iflow. We will show a different way that allows you to restart messages in an external application and setup rules for how often it can be reprocessed. We leverage that the Figaf IRT application is able to download messages that have a specific filter like Receiver is LOG. Then the message will be downloaded and you can apply some rules to it like it should be reprocessed 3 times. There is also the option to send notifications to emails or systems like Jira.

Check out the video where you can see how simple it is to restart a SAP CPI message.

We currently do not know how this will affect count of connections on your SAP CPI system, so use with caution.

You can try out Figaf IRT on your own system. We have both a cloud and an on-prem version to deploy the application.

You can see the code below, it will be updated so you can find a more uptodate version in the IRT application.

package com.figaf.irt
import com.sap.gateway.ip.core.customdev.util.Message
import org.apache.camel.converter.stream.InputStreamCache
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
def Message initalSave(Message message) {
    try {
        //Body
        def body = message.getBody(java.lang.String)
        def base64 = body.bytes.encodeBase64().toString()
        Map map = message.getHeaders()
        map.put("body", base64)
        message.getHeaders()
        def json = JsonOutput.toJson(map)
        def cache = new InputStreamCache(json.bytes)
        // we save the json as a property, so we can restore it in the pipeline
        message.setProperty("IRTSAVE", cache)
    } catch (Exception ex) {
        try {
            def messageLog = messageLogFactory.getMessageLog(message)
            messageLog.setStringProperty("CustomLog", ex.getClass().getName() + ":" + ex.getMessage())
        } catch (Exception ignored) {}
    }
    return message
}
/**
 * An error have occurred then save the payload as an attachement
 * @param message
 * @return
 */
def Message savePayload(Message message) {
    try {
        def messageProperties = message.getProperties()
        def ex = messageProperties.get("CamelExceptionCaught")
        if (ex == null) {
            return message
        }
        def irtpayload = message.getProperty("IRTSAVE")
        JsonSlurper jsonSlurper = new JsonSlurper()
        def map = jsonSlurper.parseText(irtpayload.getText())
        map.put("Cause", ex.getClass().getName() + ":" + ex.getMessage())
        irtpayload = new InputStreamCache(JsonOutput.toJson(map).bytes)
        ByteArrayOutputStream bytesOut = new ByteArrayOutputStream()
        irtpayload.writeTo(bytesOut)
        def messageLog = messageLogFactory.getMessageLog(message)
        messageLog.addAttachmentAsString("IRTSAVE", new String(bytesOut.toByteArray()), "application/json")
        message.setHeader("SAP_Receiver", "LOG")
    } catch (Exception ex) {
        try {
            def messageLog = messageLogFactory.getMessageLog(message)
            messageLog.setStringProperty("CustomLog", ex.getClass().getName() + ":" + ex.getMessage())
        } catch (Exception ignored) {}
    }
    return message
}

Webinar replay: How to develop and release faster on SAP CPI

So, Tuesday 5., March I did a webinar on how you can make an SAP CPI development flow much faster with the use of Figaf IRT. The goal was to show how much faster using Figaf IRT would be when working with SAP CPI.

I did get some pretty good feedback on the tool and the flow we support, and that it could be useful in a number of different projects. It was pretty fast-paced but demos to show all functionalities.

In the webinar, I show how the tool can make it a lot easier to do some common tasks a lot faster. 

The support part of the process

For the support part of the process, I covered:

  • A preview of our upcoming message monitoring solution that will allow you to give monitor access to individual users and query multiply iflows at the same time.
  • Our alerting mechanism that downloads failed messages or messages marked with a specific sender/receiver. 
  • Setup rules on the alerts so you can notify a business user that something is wrong or sent the message to Jira for people to follow up.
  • How you from the monitoring tool can setup reprocessing of CPI messages where you just interduce two scripts steps into the process

Many options with DevOps

For the DevOps parts I’m covering how:

  • You can document what is changed in an iflow
  • Run an existing test case on the iflow to see nothing is impacted
  • Add new test cases to solve your problem
  • Configure the system across your landscape
  • Transport the individual iflow to your different systems

It takes just 36 minutes but will give you a different of how you are developing SAP CPI.

Are you ready to try IRT Cloud?

So, after reading this blog and perhaps watching the demo video as well, I hope you are ready to try IRT Cloud. That is when you fully understand what the platfrom is able to do for you.

If you have any questions about how to get started or other things about IRT Cloud, do not hesitate to contact me. We are eager to understand which customer requirements that we can solve.

Transporting SAP CPI content with Figaf IRT

We want to make it a lot easier to do SAP CPI transports and document changes, and it is also one of the things that i see people struggling with. I mostly also wanted to make it possible to transport individual iFlows, because it makes the process a lot faster; otherwise, you must create some packages to contain it.

A few weeks back i posted an image of me deploying a CPI change after just 40 minutes in production. One of the comments that, yes that is fine you can make changes in production fast if you do not do any change management. We did not have any change management or documentation. I would argue that with the changes you see below we can make it in the same time.

Another pain with transport was that you needed to reconfigure afterward. In Figaf IRT you have a central repository that allows you to configure what values you want across the landscape.

IRT will enable you to see what was before on in IRT. The easy way to do SAP CPI transport with Figaf IRT.


It on the Figaf.com/IRTCloud now and will be in the next release of our onpremish tool figaf.com/IRT soon. We still have some areas that we want to improve with the process, but it is better to get feedback on what you think of the solution. With the approach, we are not able to keep the old versions on the target system.