Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
jorgavoro
Explorer
Already past a couple of monthes after i develop an integration between our SAP BW system running over Hana database and Anaplan, in order to achieve it, the project use SAP Process Orchestration 7.5

During the implementation process, i face some challenges that i try to solve making a research in different forums, since i could not get a complete guide to achieve the solution, i decide to write one and share my personal experience in order to help the readers to develop this integration scenery.

 

Goal

At the end of this post you will could setup a connection between Anaplan and SAP Process Orchestration running over SAP Netweaver 7.50 using a communication channel with adapter REST to stablish a connection with Anaplan and a communication channel with adapter SOAP XI 3.0 to stablish a connection with the SAP Abap systems.

Architecture


1. Integration Architecture


 

Assumptions

  • There is a Technical User in Anaplan that could be used in order to stablish the communication or a certificate issued to the Technical User.

  • The Anaplan Technical User has access to the workspace and the models.


 

Steps

1. In order to stablish a connection between SAP PO and Anaplan, the first step will be create a communication channel using REST Adapter.


Communication Channel for authentication, url: https://auth.anaplan.com/token/authenticate


In order to stablish a connection between SAP PO and Anaplan, the first step will be create a communication channel using REST Adapter, the authentication method could be basic auth or certificate authentication only with https.

After the authentication method and url will be applied, the following modules should be added under the Module Tab.


The modules added will be:

useAuthPreemptive: this means that server will expect the authorization credentials will be deliver without providing an Unauthorized reponse or Method Not Allowed.

useJDKSSF: this will avoid Handsake failures due to unmatch TSL or missing SSL protocol.

useResponseErrorMessage

2. Once the authentication process will be finished an Authentication Token will be deliver by Anaplan in response and must be used across the whole integration until a logout will be realized, the way chossen in the project use Pattern Variable Replacement with an xpath expression.


After that the Pattern Element Name will be used into the Adittional HTTP Headers


 

3. In order to achive the Integration the process need to request the Workspace and the model, consider delivering the workspace ID at lower case and the models in upper case.

Once the workspace and model are retrieved, the next steps will include to recover the imports, files and the chunks.

4. Once the chunk is retrieved, you will need to upload the file in the chunk, since our source was stored into an database table inside, the whole process to transform the ABAP structure into a textline splitted by ";" character was developed at ABAP Backend.

On the SAP PO side using a java mapping the content was adjusted to deliver a plain text message to Anaplan
public void execute(InputStream in, OutputStream out) throws StreamTransformationException {

   String documento = "";

   String linea = "";

   try {

      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

      DocumentBuilder db              = dbf.newDocumentBuilder();

      Document xml_in                   = db.parse(in);

      String encoding                     = "UTF-8";

      NodeList nodeListLine           = xml_in.getElementsByTagName("content");

      for (int i = 0; i < nodeListLine.getLength(); i++) {

         Node nodeLine = nodeListLine.item(i);

         Element elemLine = (Element) nodeLine;

         linea = elemLine.getTextContent();

         if (i < nodeListLine.getLength()-1) {

           documento = documento + linea ;

         }else {

           documento = documento + linea ;

         }

      }

      out.write(documento.getBytes(encoding));

   } catch (IOException e) {

     System.out.println("ERROR CLASE TestEncryption : " + e.getMessage());

     throw new StreamTransformationException( "ERROR CLASE TestEncryption : " +

                                                                          e.getMessage());

   } catch (Exception e) {

}


On the communication channel stablish the following values:


Since the HTTP responde code delivered by this interface is 204 on a success delivery, we include a custom Error Handling.


<?xml version="1.0" encoding="UTF-8"?>

<ns0:MessageType_Res xmlns:ns0="namespace">

   <status>204</status>

   <message>success</message>

</ns0:MessageType_Res>




5. Once the files was delivered to the chunks, the next step will be to post the chunk and complete the uploads, this step will close the file.


6. Consider that the fille in Anaplan will be visible by the Technical User used to achieve the upload.


7. In order to release the session a logout process should be achieved, this will include a custom Error Handling in order to catch the HTTP 202 responde code.

Conclusion

In summary this process will help you to enable the connection between SAP PO running over SAP Netweaver 7.5 and Anaplan, guiding you through several process steps that our team already face and pass.

Happy Integration!

 
Labels in this area