You can use Enhanced Receiver Determinations. This approach needs two target Business Systems/Services.
Sample code.
package javaapplication1; import java.io.OutputStream; 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; import java.util.Map; public class JavaApplication1 extends AbstractTransformation { @Override public void transform(TransformationInput transformationInput, TransformationOutput transformationOutput) throws StreamTransformationException { try { OutputStream outputstream = transformationOutput.getOutputPayload().getOutputStream(); //a) Set "Adapter-Specific Message Attributes" in sender channel. 'File Name' Map mapParameters = (Map) transformationInput.getInputHeader().getAll(); 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", "FileName"); String FileName = conf.get(key); //b) If FileName ends with 12 then send it to Receiver1. Else send it to both Receiver1 and Receiver2. //Edit the if logic. Date class, to find find last day of week. E.g. java.util.Calendar.Calendar.DAY_OF_WEEK //You can use DOM parser to generate the XML. Else use String, as shown below. if (FileName.endsWith("12")) { outputstream.write("<?xml version='1.0' encoding='UTF-8'?><ns0:Receivers xmlns:ns0='http://sap.com/xi/XI/System'><Receiver><Party agency='http://sap.com/xi/XI' scheme='XIParty'></Party><Service>Receiver1</Service></Receiver></ns0:Receivers>".getBytes()); } else { outputstream.write("<?xml version='1.0' encoding='UTF-8'?><ns0:Receivers xmlns:ns0='http://sap.com/xi/XI/System'><Receiver><Party agency='http://sap.com/xi/XI' scheme='XIParty'></Party><Service>Receiver1</Service></Receiver><Receiver><Party agency='http://sap.com/xi/XI' scheme='XIParty'></Party><Service>Receiver2</Service></Receiver></ns0:Receivers>".getBytes()); } } catch (Exception exception) { getTrace().addDebugMessage(exception.getMessage()); throw new StreamTransformationException(exception.toString()); } } }