Error on custom module in Receiver File Adaptor

You have to add audit log to your code so that you will know after what step it failed. That was the only way the I could come up with while I was working with modules.
VJ

hi,
yes audit log code will be helpful.I have taken this sample from below pdf.
public class CreateAttachment
implements SessionBean, Module {
public ModuleDataprocess(
ModuleContextmoduleContext,
ModuleDatainputModuleData)
throws ModuleException{
Message messageIN=
(Message) inputModuleData.getPrincipalData();
AuditMessageKeyamk=
new AuditMessageKey(msg.getMessageId(),
AuditDirection.OUTBOUND);
Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,
"CreateAttachment: Module called");
you can refer these docs for adapter module creation.
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/3bdc14e1-0901-0010-b5a9-a01e29d75a6a
regards,
ujjwal kumar

Similar Messages

  • Error while using module in receiver file adapter??

    Hi,
           I am using user defined module(for converting EBCDIC type of data to ASCII type of data)  in receiver file adapter, while running the module it is giving erors in audit log
    Exception caught by adapter framework: class com.sap.aii.af.mp.module.ModuleLocalHomeImpl0_0 can not be casted to ModuleLocalHome or SModuleLocalHome
    MP: exception caught with cause java.lang.ClassCastException: class com.sap.aii.af.mp.module.ModuleLocalHomeImpl0_0 can not be casted to ModuleLocalHome or SModuleLocalHome
    Please help.
    Thanks.
    Madhusudhan.

    hi ....Stephan
    now we are getting the below exceptions in the message disply tool audit log
    Delivery of the message to the application using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: java.lang.Exception.
    MP: exception caught with message null
    Thanks,
    Madhusudhan.

  • Error in Adapter Module to unzip files

    Hello ,
    I wish to unzip many files with use of an adapter module
    To du this I use following code
    package de.lsv.moduledevelopement;
    import java.io.*;
    import java.util.Hashtable;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipInputStream;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import javax.ejb.CreateException;
    import com.sap.aii.af.mp.module.Module;
    import com.sap.aii.af.mp.module.ModuleContext;
    import com.sap.aii.af.mp.module.ModuleData;
    import com.sap.aii.af.mp.module.ModuleException;
    import com.sap.aii.af.ra.ms.api.Message;
    import com.sap.aii.af.ra.ms.api.MessageDirection;
    import com.sap.aii.af.ra.ms.api.Payload;
    import com.sap.aii.af.ra.ms.spi.Trace;
    import com.sap.aii.af.service.auditlog.Audit;
    import com.sap.aii.af.service.auditlog.AuditDirection;
    import com.sap.aii.af.service.auditlog.AuditLogStatus;
    import com.sap.aii.af.service.auditlog.AuditMessageKey;
    * @ejbLocal <{de.lsv.moduledevelopement.UnZipFilesLocal}>
    * @ejbLocalHome <{de.lsv.moduledevelopement.UnZipFilesLocalHome}>
    * @stateless
    public class UnZipFilesBean implements SessionBean, Module {
         static AuditMessageKey amk = null;
         static String auditStr = "UnzipFilesBean - ";
         static ModuleException mEx = null;
         public static final String VERSION_ID =
              "$Id://de.lsv.moduledevelopement.UnZipFilesBean.java#1 $";
         private static final Trace TRACE = new Trace(VERSION_ID);
         public void ejbRemove() {
         public void ejbActivate() {
         public void ejbPassivate() {
         public void setSessionContext(SessionContext context) {
              myContext = context;
         private SessionContext myContext;
          * Create Method.
         public void ejbCreate() throws CreateException {
              // TODO : Implement
         /* (non-Javadoc)
          * @see com.sap.aii.af.mp.module.Module#process(com.sap.aii.af.mp.module.ModuleContext, com.sap.aii.af.mp.module.ModuleData)
         public ModuleData process(
              ModuleContext moduleContext,
              ModuleData inputModuleData)
              throws ModuleException {
              Object obj = null;
              Message msg = null;
              Payload attachment = null;
              //initializing variables for module parameters
              String modkey = "";
              String fileMask = "";
              String directory = "";
              String saveDirectory = "";
              //     String newMimeType = "";
              //     String newAttachmentName = "";
              //     String newAttachmentExtension = "";
              //     String newAttachmentNameReplace = "";
              //this block is to manage the adapter when is not file/FTP
              try {
                   //get the XI Message
                   obj = inputModuleData.getPrincipalData();
                   msg = (Message) obj;
                   // create AuditMessageKey object to write audit log.
                   if (msg.getMessageDirection() == MessageDirection.INBOUND)
                        amk =
                             new AuditMessageKey(
                                  msg.getMessageId(),
                                  AuditDirection.INBOUND);
                   else
                        amk =
                             new AuditMessageKey(
                                  msg.getMessageId(),
                                  AuditDirection.OUTBOUND);
                   // ******start get the module parameters from the configuration******
                   modkey = moduleContext.getContextData("module.key");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "Module Configuration Key: " + modkey);
                   //***** einlesen der Moduke Parameter******************
                   //***** DateiMaske
                   fileMask = moduleContext.getContextData("FileMask");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "FileMask: " + fileMask);
                   // check ob fileMask definiert ist
                   if (fileMask == null || fileMask.equalsIgnoreCase("")) {
                        //if no attachment name is specified in the module configuration the module will end the execution
                        throw mEx =
                             new ModuleException(
                                  auditStr
                                       + "!FileMask in Modulconfiguration nicht definiert!");
                   //***** DateiMaske2
                   String fileMask2 = moduleContext.getContextData("FileMask2");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "FileMask2: " + fileMask2);
                   //***** Directory
                   directory = moduleContext.getContextData("Directory");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "Directory: " + directory);
                   // Fehler wenn Directory nicht definiert
                   if (directory == null || directory.equalsIgnoreCase("")) {
                        //the module will end the execution
                        throw mEx =
                             new ModuleException(
                                  auditStr
                                       + "Directory in Modulconfiguration nicht definiert");
                   //***** Sicherungs Verzeichnis
                   saveDirectory = moduleContext.getContextData("SaveDirectory");
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "SaveDirectory: " + saveDirectory);
                   // entpacken aufrufen
                   entpacke(directory, saveDirectory, fileMask);
                   if (fileMask2.length() > 0) {
                        entpacke(directory, saveDirectory, fileMask2);
                   //update the XI Message
                   inputModuleData.setPrincipalData(msg);
              } catch (Exception e) {
                   String errorMessage =
                        auditStr + "Error bei der . Exception:" + e.getMessage();
                   Audit.addAuditLogEntry(amk, AuditLogStatus.ERROR, errorMessage);
                   throw mEx = new ModuleException(auditStr + errorMessage);
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Verarbeitung beendet ");
              return inputModuleData;
         //+++++++++++++++++++++++++
         private static void entpacke(
              String directory,
              String saveDirectory,
              String mask)
              // TODO Auto-generated method stub
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Funktion entpacke");
              if (!directory.endsWith("\")) {
                   directory = directory + "\";
              } // if
              File f;
              f = new File(directory);
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "f = new File(directory)");
    //          // Achtung Klasse in einer Klasse :-)
    //          String[] strFiles = f.list(new FilenameFilter() {
    //               public boolean accept(File file, String filename) {
    //                    Wildcard wildcard1 = new Wildcard(mask);
    //                    Audit.addAuditLogEntry(
    //                         amk,
    //                         AuditLogStatus.SUCCESS,
    //                         auditStr + "wc1");
    //                    return wildcard1.match(filename, false);
              String [] strFiles = f.list(new MyFilter(mask));
              // Liste der Gefundenen dateien
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Anzahl gepackter Dateien: " + strFiles.length);
              //System.out.println( strFiles.length + " Dateien zum entpacken");
              for (int i = 0; i < strFiles.length; i++) {
                   Audit.addAuditLogEntry(
                        amk,
                        AuditLogStatus.SUCCESS,
                        auditStr + "verarbeite Datei: : " + strFiles<i>);
                   //     System.out.println("f[" + i + "]=" + strFiles<i>);
              } // for
              // *****entpacken**********************
              for (int i = 0; i < strFiles.length; i++) {
                   try {
                        byte[] buf = new byte[4096];
                        ZipInputStream in =
                             new ZipInputStream(
                                  new FileInputStream(directory + strFiles<i>));
                        Audit.addAuditLogEntry(
                             amk,
                             AuditLogStatus.SUCCESS,
                             auditStr + "Entpacke " + directory + strFiles<i>);
                        //System.out.println("Entpacke " + directory + strFiles<i>);
                        int count = 0;
                        while (true) {
                             count++;
                             // Nächsten Eintrag lesen
                             ZipEntry entry = in.getNextEntry();
                             if (entry == null) {
                                  break;
                             // Beschreibung ausgeben
                             Audit.addAuditLogEntry(
                                  amk,
                                  AuditLogStatus.SUCCESS,
                                  auditStr + entry.getName());
                             //System.out.println(entry.getName());
                             // Ausgabedatei erzeugen
                             FileOutputStream out =
                                  new FileOutputStream(directory + entry.getName());
                             int len;
                             while ((len = in.read(buf)) > 0) {
                                  out.write(buf, 0, len);
                             out.close();
                             // Eintrag schließen
                             in.closeEntry();
                        } // while
                        in.close();
                        Audit.addAuditLogEntry(
                             amk,
                             AuditLogStatus.SUCCESS,
                             auditStr + count + "Dateien entpackt");
                        //System.out.println(count + "Dateien entpackt");
                        // verschieben
                        if (saveDirectory.length() > 0) {
                             File quelle = new File(directory + strFiles<i>);
                             File ziel = new File(saveDirectory + strFiles<i>);
                             boolean bla = quelle.renameTo(ziel);
                             if (!bla) {
                                  Audit.addAuditLogEntry(
                                       amk,
                                       AuditLogStatus.SUCCESS,
                                       auditStr
                                            + strFiles<i>
                                            + " konnte nicht verschoben werden");
                             } else {
                                  Audit.addAuditLogEntry(
                                       amk,
                                       AuditLogStatus.SUCCESS,
                                       auditStr
                                            + strFiles<i>
                                            + "verschoben nach "
                                            + saveDirectory);
                                  //          System.out.println(
                                  //               strFiles<i> + "verscgoben nach " + directory + "sik//");
                        } // if
                   } catch (Exception e) {
                        String errorMessage =
                             auditStr
                                  + "Error in entpacken. Exception:"
                                  + e.getMessage();
                        Audit.addAuditLogEntry(amk, AuditLogStatus.ERROR, errorMessage);
                   } // catch
                   // *****entpacken*************
              } // for
         } //entpacke
    } // UnzipFilesBean
    class Wildcard {
         static AuditMessageKey amk = null;
         static String auditStr = "WildCard - ";
         static ModuleException mEx = null;
         private final String wildcardString;
          * Der Konstruktor für die WildcardSuche.
          * @param wildcardString
          *            Der WildcardString
         public Wildcard(String wildcardString) {
              this.wildcardString = wildcardString;
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Constructor");
          * Die Methode, welche den Vergleich durchführt.
          * @param str
          *            Der String, welcher darauf überprüft werden soll, ob er dem
          *            WildcardString entspricht.
          * @return true Wenn der String dem wildcardString entspricht.
         public boolean match(String str, boolean fCasesensitive) {
              if (str == null || wildcardString == null) {
                   return false;
              return recursiveMatch(wildcardString, str, fCasesensitive);
          * Hier wird der eigentliche Vergleich durchgeführt
          * @param strWildcard
          *            Der Wildcardstring, z.B.: "Test*"
          * @param str
          *            Der zu überprüfende String, z.B. "Testlauf"
          * @return true, wenn eine Übereinstimmung vorhanden ist, sonst false
         private boolean recursiveMatch(
              String strWildcard,
              String str,
              boolean fCasesensitive) {
              while (true) {
                   if (strWildcard.length() == 0)
                        return str.length() == 0;
                   char ch = strWildcard.charAt(0);
                   switch (ch) {
                        case '?' :
                             if (str.length() == 0)
                                  return false;
                             break;
                        case '*' :
                             strWildcard = strWildcard.substring(1);
                             while (true) {
                                  if (recursiveMatch(strWildcard, str, fCasesensitive))
                                       return true;
                                  if (str.length() == 0)
                                       return false;
                                  str = str.substring(1);
                        default :
                             if (str.length() == 0)
                                  return false;
                             if (fCasesensitive) {
                                  if (ch != str.charAt(0))
                                       return false;
                             } else if (
                                  Character.toLowerCase(ch)
                                       != Character.toLowerCase(str.charAt(0)))
                                  return false;
                             break;
                   strWildcard = strWildcard.substring(1);
                   str = str.substring(1);
         //++++++++++++++++++++++++++
    } // class
    /** Nun der eigentliche Filter */
    class MyFilter implements FilenameFilter {
         static AuditMessageKey amk = null;
         static String auditStr = "MyFilter - ";
         static ModuleException mEx = null;
         String fileMask;
         public MyFilter(String fileMask) {
              this.fileMask = fileMask;
              Audit.addAuditLogEntry(
                   amk,
                   AuditLogStatus.SUCCESS,
                   auditStr + "Constructor");
         } //constructor
          public boolean accept(File file, String filename) {
              // TODO Auto-generated method stub
              //fileMask = "?5LBL*";
              Wildcard wildcard1 = new Wildcard(fileMask);
              return wildcard1.match(filename, false);
    } //class
    But in Audit Protocol it failed after:
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - Module Configuration Key: 2
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - FileMask: ?5LBL???
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - FileMask2:
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - Directory: //transfer//X1E//100//99//lb//ein
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - SaveDirectory: //transfer//X1E//100//99//lb//ein_s
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - Funktion entpacke
    17.09.2008 17:33:19     Erfolgreich     UnzipFilesBean - f = new File(directory)
    17.09.2008 17:33:19     Fehler     UnzipFilesBean - Error bei der . Exception:null
    I could not find the error??
    Were there any log files to look into?
    regarts
    Zimmerningkat

    Hi Ralf,
    I am late..........
    I am bit confused with your explanation.
    1. Does all zip files will be picked by file adapter in one shot or is it conditional, since you have a XML descriptor file in firts zip file and the XML files describes the list of JPEG files which might be stored in the other zipped JPEG files?
    2. Can you tell the exact flow of your scenario
    3. Receiver in your scenario?
    Thanks,
    Gujjeti.

  • File Adaptor CC Error

    Hello All,
    I am getting following error in SAP PI File Adaptor Communication Channel error:
    File processing failed with Error when getting an FTP connection from connection pool: com.sap.aii.af.lib.util.concurrent.ResourcePoolException: Unable to create new pooled resource: FTPEx: Not logged in.
    Is this related to User authentication error or its internal SAP PI File Adaptor error?
    THanks
    Rajeev

    Hi Rajeev,
      Error when getting an FTP connection from connection pool - means XI server is not able to communicate with FTP server... just ask your FTP server network guys to open the firewall settings of FTP server for XI server..
    Check my reply on this thread...
    FTP Server Connection issue
    Regds,
    Pinangshuk.

  • File adaptor Content conversion problem

    Hi all,
    I have a client proxy > pi> CSV file scenario which im working on currently - everything is fine apart from 1 really annoying thing.
    The problem is this that when data is extracted from SAP it should put in 6 fields within the file produced e.g:
    field1,field2,field3,field4,field5,field6
    Which is fine however if one of the fields is blank there should still be the blank space which should appear instead of what it is curently doing which is ignoring the blank and shifting everything else left by 1 so:
    if out of 6 fields only 5 come out currently its doing this:
    field1,field2,field4,field5,field6      (Notice field3 is missing and there is no blank space in its place)
    What it should be doing is this:
    field1,field2,,field4,field5,field6       (Notice the blank space)
    I have gone through all the content conversion parameters I know for receiver file adaptors none have worked so if you know any which will do this please let me know!!
    Also if you know of other ways your ideas will be greatly appreciated.
    Many thanks in advance
    Edited by: Saqib Karim on Mar 5, 2009 5:45 PM

    >
    Saqib Karim wrote:
    > Hi Chirag,
    >
    > Does this mean that there is nothing in the file adaptor to cater for this and the only way is through mapping?
    >
    > I was hoping for an easier more straight forward solution along the lines of content conversion since this means that it has to apply to ALL FIELDS in the mapping!!??
    >
    > Thanks
    you solution is to alter the mapping in a simple way.
    If you are using graphical mapping then use this logic;
    Source field -> if EXISTS -> Target
                          else -> Pass an empty constant -> Target
    This will make sure an empty tag is created a the target and FCC will work fine.

  • Error in Receiver File Channel...in MTB module     (Urgent)

    Hi,
    I am working on a Proxy to File scenario. I am using Message Transformation Bean in receiver file channel to convert xml file into fixed length file. I am getting an error : Transform: failed to execute the transformation: com.sap.aii.messaging.adapter.trans.TransformException: Error converting Message: java.lang.Exception: Exception in XML Parser (format problem?):java.lang.NullPointerException'; nested exception caused by: java.lang.Exception: Exception in XML Parser (format problem?):java.lang.NullPointerException
    in MTB step of audit log for comm channel.
    Please help me resolve this.
    Thanks,
    Jaya

    Hi ,
      "Transform: failed to execute the transformation:"
    Pls check ur data what u have to send .. any missing information or any special Chacters or any extra fields are available in the data, this type of transformation error raised.
    check once again ur mapping transformation and test the mapping in INTEGRATION REPOISTERY with the same data(what u have to send Previously).
    and also check ur adapter status in RWB.
    Regards,
    Sateesh N.
    Edited by: Sateesh N on Apr 21, 2008 1:53 PM

  • Error-Receiver File Adapter using Variable substitution when file is empty

    XI Experts,
    We are on PI 7.0, SP14.
    We are using variable subtitution to get the filename from source message. This works fine as long as we have data in the payload for filename element. But we have a scenario where we don't have to create file when certain condition does not exists in source message so in the message payload filename element will not exists in such condition and file will be empty and we should not create file.
    Parameter in the communication channel for Handling empty message is "Ignore".
    Does anyone knows how to handle this scneario. We don't want to default any file name in the message mapping if source file name element does not exists.
    We are following getting error in the Adapter engine.
    MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: file: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: file
    Thanks
    MP

    You can implement this by writing the module to throw an exception or whatever method you want to execute.
    If you don't want to receive an error message then module is suitable for you.
    Gaurav Jain

  • Create a PDF as attachment in custom module in mail receiver adapter

    I'm trying to create a PDF attachment to an email using a custom module with the following codes. The attachment was created and sent, but when I tried to open it, I got the following error message: the file cannot be read either because a invalid encoding or the file is damaged.
    Anybody knew if I did anything wrong in the way I'm opening and creating the PDF attachment below?
    // add a new pdf attachment to the message
    FileInputStream fi = new FileInputStream("c:/ftmailxi.pdf");
    byte[] attachmentContent = new byte[fi.available()];
    Payload attachmentPDF = msg.createPayload();
    attachmentPDF.setName("ftmailxi.pdf");
    attachmentPDF.setContentType("application/pdf");
    attachmentPDF.setContent(attachmentContent);
    //adding our this pdf as an attachment
    msg.addAttachment(attachmentPDF);
    //provide the XI message for returning
    inputModuleData.setPrincipalData(msg);

    This will surly help u
    /people/sravya.talanki2/blog/2006/11/28/e-mail-xml-messages-in-pdf-format-from-sap-xi
    Check this out
    Mail with attachment.
    Regards,
    Prateek

  • Receiver File Adapter error

    Hi all,
    I am trying to convert the XML to Plain file in receiver file adapter. I am using module - StrictXml2PlainBean
    My target structure is -
    <MT_Name>
        <records>
            <Header>
            </Header>
            <Item>
            </Item>
        </records>
    </MT_Name>
    <Header> and <Item> are at same level.
    When I use --
    1. Header.fieldSeparator = ,
    2. Item.fieldSeparator = ,
    3. recordTypes = Header,Item
    Then I get this error -
    Message processing failed. Cause: com.sap.aii.af.app.modules.conversion.xml2plain.ConversionException: Invalid structure name encountered during conversion: records at XML element MT_Name,records
    When I use --
    1. records.fieldSeparator = ,
    2. singleRecordType = records
    Then I get this error -
    Message processing failed. Cause: com.sap.aii.af.app.modules.conversion.xml2plain.ConversionException: The element nesting level for the structure MT_Name is too deep (reference: 3 levels, found: 4 levels) at XML element MT_Name,records,Header,Item
    To add more details to the scenario, multiple records can be generated but one record will have only one Header, with multiple Items.
    Any help in this regard will be highly appreciated.
    Thanks,
    Abhi

    Hi Abhi,
    Here you go....
    For your target structure as:
    <MT_Name>
    <records>
    <Header>
    </Header>
    <Item>
    </Item>
    </records>
    </MT_Name>
    Where I have assumed that <Header> and <Item> are at same level.
    DO NOT use any Module just simply configure the receiver channel as below:
    In the file Receiver Channel
    Recordset Structure = Header,Item
    Name                                                                    Value
    Header.fieldSeparator                                             ,
    Item.fieldSeparator                                                  ,
    I have tried this and it works.
    Let me know if you are facing any issues.
    Cheers
    Dhwani

  • Receive File Adapter - Error in CallSAPAdapter Name not known

    Using xml to File Adapter. Just want to store the xml file somewhere ie on XI Server in folder E:\usr\sap\interface\XMLfiles
    Getting error in Adapter Engine - Exception caught by adapter framework: Object not found in lookup of CallSAPAdapter.
    Delivery of the message to the application using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Object not found in lookup of CallSAPAdapter.: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of CallSAPAdapter..
    Receiver Adapter configured to receive file write a .tmp version no conversion so set type to Binary.
    I can see the Communication Channel in the monitor green.
    Any ideas to find the problem
    thanks,

    I tried changing the communication channel as suggested with no further success. I have viewed the LogViewer on the server in cluster->server->logs defaultTrace.trc and com.sap.xi -> xi.log with no more information available.
    So is it that I cannot do a simple XML send to file receiver and leave its content unchanged?
    My test message payload was of the order
    <?xml version="1.0"?><LIST><S_STX><C_STDS><D_STDS1>... with all the data in.
    Adapter type = file
    Receiver
    Transport Protocol = File System (NFS)
    Message Protocol = File
    Adapter Engine = Integration Server
    Target Directory = E:/usr/sap/Interfaces/XMLFiles (and tried it with /usr/sap/interface/XMLFiles)
    Create filedirectory = ticked
    Filename filename.xml
    File Construction Mode = add timestamp
    Write Mode = use temporary file
    Temporary filename scheme = filename.tmp
    Filetype = Binary
    Module Tab
    1     localejbs/CallSAPAdapter     Local Enterprise Bean     0
    and thats it.
    On testing from the Integration Engine it reaches the Adapter Engine and reports the error as stated in my first post.
    The message data is of the construct
    - <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    - <SOAP:Header>
    - <sap:Main xmlns:sap="http://sap.com/xi/XI/Message/30" versionMajor="3" versionMinor="0" SOAP:mustUnderstand="1" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <sap:MessageClass>ApplicationMessage</sap:MessageClass>
      <sap:ProcessingMode>asynchronous</sap:ProcessingMode>
      <sap:MessageId>09c99665-f3cf-d247-993b-8cb46c37d820</sap:MessageId>
      <sap:TimeSent>2007-09-19T16:42:31Z</sap:TimeSent>
    - <sap:Sender>
      <sap:Party agency="http://sap.com/xi/XI" scheme="XIParty">AS2</sap:Party>
      <sap:Service>XMLFILE</sap:Service>
      </sap:Sender>
    - <sap:Receiver>
      <sap:Party agency="http://sap.com/xi/XI" scheme="XIParty">MyCompany</sap:Party>
      <sap:Service>XMLFILE</sap:Service>
      </sap:Receiver>
      <sap:Interface namespace="http://warburtons.com/genhdr">MI_XMLFILE_V3</sap:Interface>
      </sap:Main>
    - <sap:ReliableMessaging xmlns:sap="http://sap.com/xi/XI/Message/30" SOAP:mustUnderstand="1">
      <sap:QualityOfService>ExactlyOnce</sap:QualityOfService>
      </sap:ReliableMessaging>
    - <sap:Diagnostic xmlns:sap="http://sap.com/xi/XI/Message/30" SOAP:mustUnderstand="1">
      <sap:TraceLevel>Information</sap:TraceLevel>
      <sap:Logging>Off</sap:Logging>
      </sap:Diagnostic>
    - <sap:HopList xmlns:sap="http://sap.com/xi/XI/Message/30" SOAP:mustUnderstand="1">
    - <sap:Hop timeStamp="2007-09-19T16:42:31Z" wasRead="false">
      <sap:Engine type="IS">is.00.srvsapxidev</sap:Engine>
      <sap:Adapter namespace="http://sap.com/xi/XI/System">XI</sap:Adapter>
      <sap:MessageId>09c99665-f3cf-d247-993b-8cb46c37d820</sap:MessageId>
    - <sap:Branch>
      <sap:MessageId>707ecbbd-a474-514d-b731-f4003c38c4df</sap:MessageId>
      <sap:Party agency="http://sap.com/xi/XI" scheme="XIParty">ASD</sap:Party>
      <sap:Service>IP_I_XMLFILE_Collect</sap:Service>
      </sap:Branch>
    - <sap:Branch>
      <sap:MessageId>09c99665-f3cf-d247-993b-8cb46c37d820</sap:MessageId>
      <sap:Party agency="http://sap.com/xi/XI" scheme="XIParty">MyCompany</sap:Party>
      <sap:Service>XMLFILE</sap:Service>
      </sap:Branch>
      <sap:Info>3.0</sap:Info>
      </sap:Hop>
    - <sap:Hop timeStamp="2007-09-19T16:44:56Z" wasRead="false">
      <sap:Engine type="AE">af.xid.srvsapxidev</sap:Engine>
      <sap:Adapter namespace="http://sap.com/xi/XI/System">XIRA</sap:Adapter>
      <sap:MessageId>09c99665-f3cf-d247-993b-8cb46c37d820</sap:MessageId>
      </sap:Hop>
      </sap:HopList>
      </SOAP:Header>
    - <SOAP:Body>
    - <sap:Manifest xmlns:sap="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7">
    - <sap:Payload xlink:type="simple" xlink:href="cid:[email protected]">
      <sap:Name>PayloadName</sap:Name>
      <sap:Description>PayloadDescription</sap:Description>
      <sap:Type>Application</sap:Type>
      </sap:Payload>
      </sap:Manifest>
      </SOAP:Body>
      </SOAP:Envelope>
    The Payload is
      <?xml version="1.0" ?>
    - <LIST>
    etc
    Message status
    2007-09-19 17:44:56 Success Message successfully received by messaging system. Profile: XI URL: http://srvsapxidev:50000/MessagingSystem/receive/AFW/XI Credential (User): XIISUSER
    2007-09-19 17:44:56 Success Using connection File_http://sap.com/xi/XI/System. Trying to put the message into the receive queue.
    2007-09-19 17:44:56 Success Message successfully put into the queue.
    2007-09-19 17:44:56 Success The message was successfully retrieved from the receive queue.
    2007-09-19 17:44:56 Success The message status set to DLNG.
    2007-09-19 17:44:56 Success Delivering to channel: CC_toMyCompany_XMLFILE
    2007-09-19 17:44:56 Error Exception caught by adapter framework: Object not found in lookup of CallSAPAdapter.
    2007-09-19 17:44:56 Error Delivery of the message to the application using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Object not found in lookup of CallSAPAdapter.: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of CallSAPAdapter..
    2007-09-19 17:44:56 Success The asynchronous message was successfully scheduled to be delivered at Wed Sep 19 17:49:56 BST 2007.
    2007-09-19 17:44:56 Success The message status set to WAIT.
    Now I have been reading all the documentation available and forum questions in this area but there is a lot of information but not quite for what I am currently trying to do. I need to preserve the xml file as xml for further processing. This is just a resting place for the file as I am trying to cut down a long running (over a day) collect BPM scenario by collecting the files in the directory then triggering the collect scenario to read in the files from this directory and perform all the processing and mapping in one chunk of short time. (But that is another story)
    Any more suggestions appreciated could the SAPCallAdapter not be where I think it is? Does my directory and filename case have to be exact lower and upper case. (I will test this tomorrow)...and let you know if any difference and continue to read the links put on by the other person who answered.
    thanks,

  • Error while developing Custom Module in PI

    Hi Friends,
    We have developed Module for converting XL file to XML file and deployed on PI server. We have followed the link
    /people/sap.user72/blog/2005/07/04/read-excel-instead-of-xml-through-fileadapter
    We got the following error, please help in this:
    Received XI System Error. Error Code:SYSTEM_NOT_COFIGURED_AS_XMB Error Text: ErrorStack:System not configured as XI Integration Engine
    Transmitting the message to endpoint http://BASIS1:8000/sap/xi/engine?type=entry using connection AFW failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException:SYSTEM_NOT_CONFIGURED_AS_XMB.
    Regards,
    Lakshmi Prasad.

    Hi Lakshmi,
    it is missing role "Integration Server" at transaction SXMB_ADM / Configuration Integration Engine.
    Regards,
    Udo

  • File Archive When file adaptor is Receiver

    Hi,
      How to Archive the File when the File Adaptor is Receiver?
      My scenarios is IDOC TO FILE.
    regards,
    Ansar.

    HI,
    1.<i>you can try creating your own adapter module for
    that and use it in the file adapter</i>
       --- How to write Adapter module and where to write?
    2. <i>Add Timestamp, Add Counter , etc .,You can use any of these options? Is this what you are looking at?</i>
    I am looking for to take a backup of the file which was generated by XI through idoc to file scenario.Bcoz this file is will be read and deleted by another application(:: I need to store the file in another folder).
    3. <i>write a script or create a batch file</i> ...
      --- Can u plz give some more information...
    4. <i>create anyother file adapter and place the archive folder path</i>
      ---  I created like that but not working (ie. Receiver determination I am unable to give 2 communication channels..)
    thx,
    Ansar.

  • I am using Adobe Acrobat 9 Standard version in Windows 8.1 and when I try to create a .pdf file, I receive the following error message "Acrobat could not open "file name.log" because it is either not a supported file type or because the file has been dama

    I am using Adobe Acrobat 9 Standard version in Windows 8.1 and when I try to create a .pdf file, I receive the following error message "Acrobat could not open "file name.log" because it is either not a supported file type or because the file has been damaged.  To create a PDF document, go to the source application then print the document to .pdf"  I am going to the source application and printing the document to .pdf yet it's saving the file as a .log file.  After reinstalling the software, I initially didn't encounter this problem but on my second and third attempts to convert files to .pdf format, this error message reappeared.  How do I resolve this problem?

    I have a similar problem which i did not have before...and it exists only in some powerpoint files which i want to print as a pdf file...and i get the same message as above.
    the log says the bellow details...what's the problem and how can i resolve it? thanks.
    %%[ ProductName: Distiller ]%%
    %%[Page: 1]%%
    %%[Page: 2]%%
    Cambria not found, using Courier.
    %%[ Error: invalidfont; OffendingCommand: show ]%%
    Stack:
      %%[ Flushing: rest of job (to end-of-file) will be ignored ]%%

  • I can't open my Itunes keep receiving error message- The iTunes Library.itl file cannot be found or created. The default location for this file is in the "i Tunes" folder in the "Music" folder

    I can't open my Itunes keep receiving error message- The iTunes Library.itl file  cannot be found or created. The default location for this file is in the "i Tunes" folder in the "Music" folder. I have even tried removing and reinstalling iTunes and it still does work because I continue to receive this error message. Please Help!

    Anyone can help to advice how to solve this issue ?

  • Trouble opening pdf's - I have received several pdf's from a friend via e-mail (Thunderbird). Some of them open just fine but others give me the message: "There was an error opening this document. The file is damaged and could not be repaired."

    Trouble opening pdf's - I have received several pdf's from a friend via e-mail (Thunderbird). Some of them open just fine but others give me the message: "There was an error opening this document. The file is damaged and could not be repaired." My friend made sure that the files in question opened without issue on his computer (a PC). Further, I was able to open one of these "damaged" files on my Android phone, but I cannot open them on the Macbook Air. Any help would be greatly appreciated.

    Back up all data.
    Triple-click the line of text below to select it, the copy the selected text to the Clipboard (command-C):
    /Library/Internet Plug-ins
    In the Finder, select
    Go ▹ Go to Folder
    from the menu bar, or press the key combination shift-command-G. Paste into the text box that opens (command-V), then press return.
    From the folder that opens, remove any items that have the letters “PDF” in the name. You may be prompted for your login password. Then quit and relaunch Safari, and test.
    The "Silverlight" web plugin distributed by Microsoft can also interfere with PDF display in Safari, so you may need to remove it as well, if it's present.
    If you still have the issue, repeat with this line:
    ~/Library/Internet Plug-ins
    If you don’t like the results of this procedure, restore the items from the backup you made before you started. Relaunch Safari again.

Maybe you are looking for

  • How do I convert this Applet to launch from a JFrame instead??

       A simple program where the user can sketch curves and shapes in a    variety of colors on a variety of background colors.  The user selects    a drawing color form a pop-up menu at the top of the    applet.  If the user clicks "Set Background", th

  • How do I put a submit button?

    I am using Forms Central. I have created the text fields, but I can't find where to add the submit button!

  • Messy Image when scrolling something

    the problem is very annoying.. basically everytime I scroll down or up a webpage, emesene contacts.. whatever.. everything I scroll I get a messy image, because part of it gets 'cuted'.. I'll leave a printscreen so you can understand what I'm saying.

  • Blackboard Bold Font required

    Hi, I'm looking for this font. It's called Blackboard Bold. http://en.wikipedia.org/wiki/Blackboard_bold Does anyone know where I can download it or how to unicode it for use on a Mac? Cheers, Martin

  • Editing VHS Video Imported to iMovie Using Elgato Video Capture

    I have imported video using Elgato Video Capture and want to edit it in iMovie. Specifically I want to permanently delete some of the Event video which is of poor quality. I can mark it as "Reject" but I cannot move the "Reject" to Trash. How can I d