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: 
Former Member


Hi All,

 

I have a requirement where I need to pick files from multiple source directories and place it to on target file server using one file channel. The interface was passthrough interface so I created dummy structures as I would be needing service interfaces and operation mapping to call JAVA mapping.

 

To achieve this I prefer to write Adapter Module but sometimes due to BASIS dependency, we have to go for JAVA mapping. Here I am putting up my JAVA code but ADAPTER MODULE code will be shared soon.

 

 

Source directories were like

 

/a/b/c/X

/a/b/c/Y

/a/b/c/Z

 

and target directories were /X, /Y, /Z

 

PFB the code:

 

/*

* Created on May 26, 2015

*

* To change the template for this generated file go to

* Window>Preferences>Java>Code Generation>Code and Comments

*/

package global;

 

 

/**

* @author ashutosh.a.upadhyay

*

* To change the template for this generated type comment go to

* Window>Preferences>Java>Code Generation>Code and Comments

*/

 

 

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Map;

 

import com.sap.aii.mapping.api.AbstractTransformation;

import com.sap.aii.mapping.api.DynamicConfiguration;

import com.sap.aii.mapping.api.DynamicConfigurationKey;

import com.sap.aii.mapping.api.StreamTransformationConstants;

import com.sap.aii.mapping.api.StreamTransformationException;

import com.sap.aii.mapping.api.TransformationInput;

import com.sap.aii.mapping.api.TransformationOutput;

 

public class DynamicDirectory extends AbstractTransformation {

 

public void transform(TransformationInput transformationInput, TransformationOutput transformationOutput)throws StreamTransformationException{

try {

InputStream inputstream = transformationInput.getInputPayload().getInputStream();

OutputStream outputstream = transformationOutput.getOutputPayload().getOutputStream();

 

Map mapParameters = (Map) transformationInput.getInputHeader().getAll();

 

// Dynamic Confguration

mapParameters.put(DynamicConfigurationKey.create("http://sap.com/xi/XI/Dynamic", StreamTransformationConstants.DYNAMIC_CONFIGURATION), "");

DynamicConfiguration conf = (DynamicConfiguration) mapParameters.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "Directory");

 

//Check the input directory and set the output directory

String inputDir = "";

String outputDir = "";

 

inputDir = conf.get(key);

 

if(inputDir.endsWith("X")){

outputDir = "/X/";

}

 

 

else if (inputDir.endsWith("Y")){

outputDir = "/Y/";

}

 

else if(inputDir.endsWith("Z")){

outputDir = "/Z/";

}

 

 

//Set the directory parameter

conf.put(key,outputDir);

 

//copy Input file content to Output file content

byte[] b = new byte[inputstream.available()];

inputstream.read(b);

outputstream.write(b);

}

catch (Exception exception){

getTrace().addDebugMessage(exception.getMessage());

throw new StreamTransformationException(exception.toString());

}

}

}

Labels in this area