Custom module to add byte order mark (BOM) characters to output file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package com.test; import java.io.ByteArrayOutputStream; import java.io.InputStream; import javax.ejb.Stateless; 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; @Stateless public class PayloadAddBOMBean implements PayloadAddBOMBeanRemote, PayloadAddBOMBeanLocal { public PayloadAddBOMBean() { } public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData)throws ModuleException{ try { Object obj = inputModuleData.getPrincipalData(); Message msg = (Message)obj; Payload payload = msg.getDocument(); InputStream inputStream = (InputStream)payload.getInputStream(); byte[] inputBytes = new byte[inputStream.available()]; inputStream.read(inputBytes); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); outputStream.write(0xEF); outputStream.write(0xBB); outputStream.write(0xBF); outputStream.write(inputBytes); byte[] outputBytes = outputStream.toByteArray(); payload.setContent(outputBytes); inputModuleData.setPrincipalData(msg); return inputModuleData; } catch (Exception excep) { ModuleException modulExcep = new ModuleException( excep.getMessage()); throw modulExcep; } } } |
SAP PI Custom Module PayloadAddBOMBean Development