Unable to process Textfile Sender FCC adapter

Hi Experts,
I am doing FCC to ABAP Proxy Interface. Where I have to pick an text file and process and send to through ABAP Proxy to R3.
My data is in text file .txt , the data is like this :
HEMAHPOD019##012621   30018  09022012600308                  48        09022012d019                          3110
HEMAHPOD019##012622   30018  09022012600317                  120      09022012d019                          3110
HEMAHPOD019##012623   30018  09022012603023                  24        09022012d019                          3110
HEMAHPOD019##012624   30018  09022012600921                  30        09022012d019                          3110
HEMAHPOD019##012624 --> Here 3 fields are clubbed together and filed separator is tab.
Please tell me how to process this kind of file.
Thanks and regards,
Ahmed.
Edited by: Ayubsajjid on Feb 29, 2012 8:51 AM

Hi Friends,
I have done this....
By using below in Content Conversion Parameters: for given text data
HEMADPOD015##008171   30003 16082011600600                  2         16082011d015                          3110
HEMADPOD015##008172   30003 16082011600603                  48       16082011d015                          3110
Row.fieldName Zabc,Zabc,Zabc,ZabcE,INVDT,Zabc,Zabc,abc,Zabc,abc,abc
Row.processConfiguration : FromConfiguration
Row.keyFieldValue      : H*
Row.endSeparator : Tab( from notepad i paste the tab here)          
Row.fieldFixedLengths :      4,14,4,6,8,24,9,1,8,30,4
Row.comlumnSeparator : tab ( Notepad tab)     
Row.lastFieldsOptional :      true
I got some input from this link also for given below error :
File Content Conversion in PI 7.1 Error
Conversion of file content to XML failed at position 0: java.lang.Exception: ERROR converting document line no. 1 according
to structure 'Row':java.lang.Exception: Consistency error: field(s) missing - specify 'lastFieldsOptional' parameter to
allow this
Thanks a lot for the help to all for providing inputs from your valuable time.
Cheers 
Ahmed.

Similar Messages

  • Module processing inside Sender File Adapter

    Hello,
    I am trying to analyze whether I can create a specialized module inside Sender File Adapter. As of right now, the Sender File Adapter and Receiver as well, assume endSeparator character in the end of each record. For files that do not have this field, it is just on continuous string, I assumed I can create an
         adapter module
         call it BEFORE data in the file is being converted to XML format
         Insert 'nl' character (since the record length is fixed)
         Call regular adapter processing (converting to/from XML)
        However, creating any module inside Sender File Adapter, the payload of the main document is already in XML format. Is there anyway to avoid it?
       Thanks for your help,
             Dmitriy Mindich

    It is not possible with the standard functionality.
    So maintain the sender file adapter with no conversion, but in the module tab enter following modules:
    1. Your module
    2. The conversion module (*)
    3. The standard module.
    (*) for details look here:
    Look here:
    http://service.sap.com/nw-howtoguides
    -> Exchange Infrastructure
    -> How To Use the Content Conversion Module in JMS Adapter
    Regards
    Stefan

  • OS command before file processing in Sender File adapter

    Hi there,
    I'm having troubles running a os command from the sender file (NFS) adapter.  The batch file which I try to run is not getting executed at all.
    When I manually run the same batch file from the command prompt then it works perfectly.
    The OS command looks like this from the adapter config:
    myserver\xi\interface\in\dothis.bat
    I have also try with this notation
    G:\myserver\xi\interface\in\dothis.bat
    Please give me some tips how can I solve this problem, is there any way how can I debug the OS command? When I look at the adapter monitonr no errors are showed.
    Thanks for any tips.
    Roberto

    Hi all,
    The problem is solved.
    Issue: File Receiver Channel does not execute the OS Command before message processing.
    Reason: XI always expects an input file (in my case the sender communication channel) on the source folder. If no input files are found then the rest of the adapter configuration is not executed at all.
    In our scenario the OS command is responsible for retrieving the input files from a FTP server the adapter. SO XI will never trigger the OS Command.
    Solution: Place a dummy input file on the source folder , the sender adapter will always read in this file and put it back on the same location.(e.g. using a condition in the receiver determination).
    Thanks,
    Roberto

  • OutOfMemory error on large file processing in sender file adapter

    Hi Experts,
    I got file to IDOC scenario, sender side we are using remote adapter engine, files are processing fine when the size is below 5mb, if the file size is more than 5mb we are getting java.lang.OutOfMemoryError: java heap space. can anyone suggest me what parameter i need to change in order to process more than 5mb.

    Hi Praveen,
    Suggestion from SAP is not to process huge files at a time. Instead, you can make the into chunks and process.
    To increase the heap Memory:
    For Java heap-size and other memory requirements, Refer to the following OSS note for details:
    Note 723909 - Java VM settings for J2EE 6.40/7.0
    Also check out the OSS Note 862405 - XI Configuration Options for Lowering Memory Requirements
    There are oss notes available for the Java Heap size settings specific to the OS environment too.
    Thanks,

  • Operating System Command After File Processing in Sender File Adapter

    Hello guys,
    actually we have different interfaces, and the client to take all the files from only one directory, for example D:/DPI.
    Unitl now we had one adapter for every file with the content conversion, so we didn't have problems with that. Now we have the problem that we sould maintain an order processing files.
    We thougth that an idea could be to execute one file pointing to D:/DPI and at the Operating System Command put like: copy D:/DPI/file.txt D:/DPI/outbound/file.txt, so when file is executed, we move the next file to another directory where is pointing the adapter. Doing this we have an error on the adapter giving us the message: Could not process due to error: java.lang.NullPointerException
    We are using a Windows.
    There is anyway to do in our way, or there is a better solution to resolve this problem?
    Any other idea to do this?
    Many thanks in advance.
    Regards,
    Xavi.

    Helo Guys,
    maybe I haven't explained well.
    We have one directory with different files. We have one adapter for every file( we need for the content conversion ) using NFS and all the adapters are pointing to the same directory.
    The problem is that if we have files A.txt, B.txt and C.txt we need to process in an order.
    And the problem we see is that for every file we have one adapter, so for example if we process file A.txt with one adapter, when this part is finished, we want to process file B.txt with another adapter, and the same for the rest of the files.
    So the idea we had is to create another directories, and when A.txt has finished move file B.txt to another directory.
    However this way is not running, if we log on the PI machine and execute cmd, we can do a copy of one file from one directory to another, but when we put this sentence in the adapter in OS command if we see the adapter log we see an error executing the OS command, but we don't know what is the error, there is no more information.
    There is any way to do this or maybe we have to manage in a different way?
    Many thanks in advance.
    Regards,
    Xavi.

  • Two sender file adapter

    Hi.
    We have two instances(central instace, dialog instance) on another hosts.
    Becase of we want use sender file adapter, so we need place the file data on shared directory that the two instances can access it.
    In this case two sender file adapter try to catch the file,
    does the locking ploblem occurred?
    regards,

    Hi,
    Yes it may cause the problem while reading the sender file.
    The two instances will try to access the file ...it means you have processed the Sender fiel adapter as per File transfer....
    But if youhave used the polling interval then...there will not be the problem...as only one instance will work for this.
    Thanks
    Swarup

  • Problem in Sender File Adapter using FCC with Variable structure

    Hi Experts,
    Hi Experts,
    I have facing an issues while using FCC in Sender File adapter. Below are the configs for the same:-
    Recordset structure required is ==HEADER,1,DATA,*,TRAILER,1
    Recordset per message == *
    Key Field Name == Key
    (Sorry i dont know how to insert screen shot here..pls tell me how can i insert screen shots here on sdn)
    HEADER.fieldSeparator           ,
    HEADER.endSeparator           u2018nlu2019
    HEADER.fieldNames               Key,x,y,zu2026
    HEADER.keyFieldValue          1
    HEADER.keyFieldInStructure      ignore
    HEADER.fieldContentFormatting     trim
    HEADER.additionalLastFields     ignore
    HEADER.missingLastFields     ignore
    DATA.fieldSeparator
    DATA.endSeparator
    DATA.fieldNames
    DATA.keyFieldValue
    DATA.keyFieldInStructure
    DATA.fieldContentFormatting
    DATA.additionalLastFields
    DATA.missingLastFields
    Using same variables for Trailer record as well.
    Source CSV file which i am picking:-
    ADSE ,RASD,replan  Contact ,2  0080509 0 8:43:25   ,        
    EMPL ,0011111,  S Top Up ,20080401  ,20080430  ,sdf  ,                          00000000431250  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:07:35,
    EMPL ,0222222,  r Cash Award ,20070701  ,20070703  ,ded  ,                          00000000023509  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:09:31,
    EMPL ,0233333,   Cash Award ,20070801  ,20070831  ,df  ,                          00000000044057  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:10:56,
    EMPL ,0244444,   Cash Award ,20080101  ,20080111  ,sf  ,                          00000000026717  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:08:29,
    BTRL ,   5140, 
    When i tested the scenario and monitored it using MDT in CC monitoring tool its giving me below mentioned error.
    The XML page cannot be displayed
    Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
    XML document must have a top level element. Error processing resource 'http://myurlname/mdt/me...
    However if i change the occurence of DATA as some specific value for eg 4 instead of * it works fine.
    Kindly help me in solving this problem.
    Thanks,
    Aditya Verma

    Hi Madan,
    Thanks a lot for giving me the way to this. But when i tested this with the below file its giving me the same error. Please let me know if i need to do any changes to the parameters mentioned above:-
    ADSE ,ASDA,Sha  replan Fr ont Feed Contact ,2  0080509 0 8:43:25   ,        
    EMPL ,0011111,   Cash Top Up ,20080401  ,20080430  ,TPV  ,                          00000000431250  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:07:35,
    EMPL ,0222222,   r Cash Award ,20070701  ,20070703  ,TPV  ,                          00000000023509  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:09:31,
    EMPL ,0233333,  r Cash Award ,20070801  ,20070831  ,TPV  ,                          00000000044057  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:10:56,
    EMPL ,0244444,   Cash Award ,20080101  ,20080111  ,TPV  ,                          00000000026717  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:08:29,
    EMPL ,0255555,   Cash Award ,20080301  ,20080320  ,TPV  ,                          00000000027870  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:08:25,
    EMPL ,0266666,   Cash Award ,20071001  ,20071020  ,TPV  ,                          00000000020681  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:09:31,
    EMPL ,0877777,   Cash Top Up ,20080401  ,20080430  ,TPV  ,                          00000000036000  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:07:05,
    EMPL ,0888888,   Leaver Cash Award ,20071201  ,20071231  ,TPV  ,                          00000000157200  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:11:29,
    EMPL ,0899999,  S Leaver Cash Award ,20080301  ,20080331  ,TPV  ,                          00000000153530  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:07:42,
    EMPL ,0800000,  S Leaver Cash Award ,20070701  ,20070731  ,TPV  ,                          00000000012234  ,2007                                    ,  ,  ,  ,  ,  ,20080414  18:08:34,
    BTRL ,   5140,
    This the original csv file which i'll get in live. Kindly suggest as ur solution worked with other file but not working with this scv file.
    Thanks a lot,
    Aditya.

  • Sender File Adapter - FCC - No incoming field separator - How to do FCC?

    Hi,
    I have a sender File adapter and I need to do the File Content Conversion but there apparently no incoming field separator and the file ocntains just running text - no data records but just information.
    For example the incoming file is something like:
                                    The Hongkong and Shanghai Banking Corporation Limited                      27JAN2009       PAGE 1
                                    Incorporated in Hong Kong with limited liability
    ABC IAL LIMITED                                                               ABU DHABI, UAE
    ABC MIDDLE EAST                                                               Account No.     001-8888888
    ABU DHABI                                                                       Payment Set     AAA
    BBB MAIL BOX NO.99                                                             Contact Person  ABC LIMITED
                                                   7777777777                      Telephone
                                                     AUTOPAY LIST - PROCESSED
                                                     (AUTOPAY-OUT SALARY)
    Payment Date           27JAN2009
    First Party Narrative  .                             66666666
    Second Party Narrative .
    The Message type that I am mapping to contains:
    MT_XXXX
         WA
              Item
              Item2
              Item3
    This is so that the information can be mapped to different field areas and send across to the Receiver Mail Adapter. In the mail i receive, i get the running text. I tried giving the field separator as '0x09' but it is not working.
    I have also tried WA..fieldContentFormatting to nothing but again no luck.
    I have tried with Recordset Sequence with Ascending and variable and have also tried Recordsets per Message with * and blank - but it did not help.
    Please advice.
    Regards,
    Archana

    Hi,
    I assumed that it was tab but when I made the change in FCC, it did not work.
    I would still like to have a output where it looks like below if more than 2 types of information in 1 line as below:
    ABC IAL LIMITED                     ABU DHABI, UAE  
    ABC MIDDLE EAST                  Account No. 001-9999999999999  
    and not something like:
    ABC IAL LIMITED ABU DHABI, UAE   
    ABC MIDDLE EAST Account No. 001-999999999999
    I am not sure what to do here.
    Help please.
    Regards,
    Archana

  • Sender File Adapter FCC to Hierarchial MT Coversion

    Hi,
       I have MT with structure as follows
    Header               1..1
        F1          string  1..1
        F2          string  1..1
        SUB              1 to unbounded
           S11       string  1..1
           S12       string  1..1
    Can you anybody help me out how to convert the a CSV file to Convert the structure mentioned above using sender File Adapter FCC.
    Regards,
    Daniel.LA

    Hi,
    There is no suc h direct way to get the data from csv fiel with conversion.
    Either you can use JAVA Mapping for it or use the adapter module to read csv files.
    How to process CSV data with XI file adapter
    /people/sap.user72/blog/2005/01/06/how-to-process-csv-data-with-xi-file-adapter
    "JAVA MAPPING", an alternate way of reading a CSV file
    /people/rahul.nawale2/blog/2006/07/18/java-mapping-an-alternate-way-of-reading-a-csv-file
    There is one way that you could bypass IR (Integration Repository) for any type of files, see below link
    /people/william.li/blog/2006/09/08/how-to-send-any-data-even-binary-through-xi-without-using-the-integration-repository
    Making CSV File Lookup Possible In SAP XI !!!
    /people/sundararamaprasad.subbaraman/blog/2005/12/09/making-csv-file-lookup-possible-in-sap-xi
    This will help you
    Thanks
    Swarup

  • Mapping  problem due to FCC in sender file adapter

    Hi All
    I am doing File( Flat File ) to RFC Scenario.it is working fine..
    the problem comes in mapping with multiple records.
    FCC at sender file adapter is used
    my Data Type are :
    Source DT                      Target RFC import parameter(table).
    E2ED20*                            ITEM*
        KEY                                    VBELN
        VBELN                                 POSNR                                                
    E2E24*                                     CHARG
        KEY
        POSNR                             
        CHARG
    <b>*->>multiple occurence
    E2ED20  and E2E24 are 2 segment ,KEY is used in FCC to identify E2EDL20 & E2EDL24</b>
    My source text file is like this :
    E2EDL20                       0200
    E2EDL24                       xyz
    E2EDL20                       0201
    E2EDL24                       abc
    E2EDL24                       efg
    E2EDL24                       mln                      
    E2EDL20                       0202
    E2EDL24                       gty
    so the payload should be :
      0200   xyz
      0201   abc
      0201   efg     
      0201   mln
      0202   gty
    in <i>FCC ignoer record set= true</i>
    otherwise is not called...
    i try to use split by value & use oneasmany  , not helpfull.
    in message mapping when i checked th field VBELN -> display queue
    i am getting an array   0200
                                     0201
                                     0202  in white fields
    thanks & regards
    Ashutosh Rawat

    <b>Source payload</b>
      <?xml version="1.0" encoding="utf-8" ?>
    - <ns:MT_MATNO_FILE xmlns:ns="urn:abc:xxx">
    - <E2ED20>
      <KZ>E2EDL20</KZ>
      <FIELD1>020</FIELD1>
      <b><VBELN>0083662685</VBELN></b>
      </E2ED20>
    - <E2E24>
      <KZ>E2EDL24</KZ>
      <FIELD2>020</FIELD2>
      <POSNR>900001</POSNR>
      <CHARG>1078629</CHARG>
      <LFIMG>3200</LFIMG>
      <MEINS>PCE</MEINS>
      </E2E24>
    - <E2E24>
      <KZ>E2EDL24</KZ>
      <FIELD2>020</FIELD2>
      <POSNR>900002</POSNR>
      <CHARG>1078630</CHARG>
      <LFIMG>1895</LFIMG>
      <MEINS>PCE</MEINS>
      </E2E24>
    - <E2E24>
      <KZ>E2EDL24</KZ>
      <FIELD2>020</FIELD2>
      <POSNR>900003</POSNR>
      <CHARG>1079145</CHARG>
      <LFIMG>1883</LFIMG>
      <MEINS>PCE</MEINS>
      </E2E24>
    - <E2E24>
      <KZ>E2EDL24</KZ>
      <FIELD2>020</FIELD2>
      <POSNR>900004</POSNR>
      <CHARG>1079146</CHARG>
      <LFIMG>3195</LFIMG>
      <MEINS>PCE</MEINS>
      </E2E24>
    - <E2ED20>
      <KZ>E2EDL20</KZ>
      <FIELD1>020</FIELD1>
    <b> <VBELN>0083662648</VBELN></b>
      </E2ED20>
    - <E2E24>
      <KZ>E2EDL24</KZ>
      <FIELD2>020</FIELD2>
      <POSNR>900011</POSNR>
      <CHARG>1001450</CHARG>
      <LFIMG>2946</LFIMG>
      <MEINS>8PC</MEINS>
      </E2E24>
    - <E2ED20>
      <KZ>E2EDL20</KZ>
      <FIELD1>020</FIELD1>
    <b> <VBELN>0083673936</VBELN></b>   </E2ED20>
    - <E2E24>
      <KZ>E2EDL24</KZ>
      <FIELD2>020</FIELD2>
      <POSNR>900012</POSNR>
      <CHARG>1073953</CHARG>
      <LFIMG>2458</LFIMG>
      <MEINS>PCE</MEINS>
      </E2E24>
      </ns:MT_MATNO_FILE>
    <b>at target what required is</b>
    <item>
    <b><VBELN>0083662685</VBELN></b>
    <POSNR>900001</POSNR>
    </item>
    <item>
    <b><VBELN>0083662685</VBELN></b>
    <POSNR>900002</POSNR>
    </item>
    <item>
    <b><VBELN>0083662685</VBELN></b>
    <POSNR>900003</POSNR>
    </item>
    <item>
    <b><VBELN>0083662685</VBELN></b>
    <POSNR>900004</POSNR>
    </item>
    <item>
    <b><VBELN>0083662648</VBELN></b>
    <POSNR>900011</POSNR>
    </item>
    <item>
    <b><VBELN>0083673936</VBELN></b>
    <POSNR>900012</POSNR>
    </item>
    in Sender FCC
    E2ED20.fieldFixedLengths               7,76
    E2ED20.fieldNames                            KZ,VBELN
    E2ED20.keyFieldValue              E1EDL20
    E2ED20.endSeparator              'nl'
    E2E24.fieldFixedLengths              7,24,13,7,3
    E2E24.keyFieldValue                              E1EDL24
    E2E24.fieldNames                               KZ,POSNR,CHARG,LFIMG,MEINS
    E2E24.endSeparator                              'nl'
    ignoreRecordsetName              true
    source file is already there...
    Message was edited by:
            ashutosh rawat

  • Sender Mail Adapter Configuration - Process Multiple Attachments

    Dear sirs,
    I need to process several attachments at the same mail message as individual payloads.
    In default configuration of sender mail adapter only the body of message is used as payload.
    So I added PayloadSwapBean Module at Processing Sequence and it processed the attachment I set in Module Configuration.  I'm not able to process all attachments available, just one attachment is sent to PI pipeline.
    How can I process all attachments of a single mail message?
    Thank you in advance.
    Fabio Purcino

    Hi Jose,
    We are trying to implement reading multiple attachment in sender mail adapter. 
    Our Requirement is : Reading a mail having multiple .xls files. This should be read and converted to payload .
    package multiswap;
    //import com.sap.aii.adapter.xi.ms.XIMessage;
    import com.sap.aii.af.lib.mp.module.*;
    import com.sap.aii.af.lib.trace.Trace;
    import com.sap.aii.af.sdk.xi.mo.Message;
    import com.sap.aii.af.sdk.xi.mo.MessageContext;
    import com.sap.aii.af.sdk.xi.mo.xmb.XMBMessageOperator;
    import com.sap.aii.af.sdk.xi.mo.xmb.XMBPayload;
    import com.sap.aii.af.sdk.xi.util.PayloadType;
    import com.sap.aii.af.service.auditlog.Audit;
    import com.sap.aii.af.service.cpa.*;
    import com.sap.engine.interfaces.messaging.api.MessageDirection;
    import com.sap.engine.interfaces.messaging.api.MessageKey;
    import com.sap.engine.interfaces.messaging.api.Payload;
    import com.sap.engine.interfaces.messaging.api.auditlog.AuditLogStatus;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.Locale;
    import javax.ejb.*;
    public class MultiSwapRead
        implements SessionBean, Module
        private static final String VERSION_ID = "$Id: //tc/xpi.af/NW731EXT_07_REL/src/_af_application_ejb_module/ejbm/api/com/sap" +
    "/aii/af/app/modules/PayloadSwapBean.java#1 $"
        private static final Trace TRACE = new Trace("$Id: //tc/xpi.af/NW731EXT_07_REL/src/_af_application_ejb_module/ejbm/api/com/sap" +
    "/aii/af/app/modules/PayloadSwapBean.java#1 $"
        private static final String SIGNATURE_PROCESS = "process(ModuleContext , ModuleData)";
        protected Hashtable cachedChannels;
        protected SessionContext myContext;
        public MultiSwapRead()
            cachedChannels = new Hashtable();
        public void ejbRemove()
        public void ejbActivate()
        public void ejbPassivate()
        public void setSessionContext(SessionContext context)
            myContext = context;
        public void ejbCreate()
            throws CreateException
        public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData)
            throws ModuleException
            if(TRACE.beLogged(200))
                TRACE.entering("process(ModuleContext , ModuleData)", new Object[] {
                    moduleContext, inputModuleData
            ModuleData outputModuleData;
            Iterator itr;
            outputModuleData = inputModuleData;
            String chid = moduleContext.getChannelID();
            TRACE.infoT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, (new StringBuilder()).append("performing payload swap for channel ").append(chid).toString());
            LookupManager lman = LookupManager.getInstance();
            Channel chan = null;
      try {
      chan = (Channel)LookupManager.getInstance().getCPAObject(CPAObjectType.CHANNEL, chid);
      } catch (CPAObjectNotFoundException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
      } catch (CPAException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
            Direction direction = chan.getDirection();
            String swapkey = moduleContext.getContextData("swap.keyName");
            String keyvalue = moduleContext.getContextData("swap.keyValue");
            Object obj = inputModuleData.getPrincipalData();
            Object pivotedObj = inputModuleData.getSupplementalData("mp.pivoted");
            boolean pivoted = pivotedObj == null || !(pivotedObj instanceof Boolean) ? false : ((Boolean)pivotedObj).booleanValue();
            Message mo = null;
            if(obj instanceof com.sap.engine.interfaces.messaging.api.Message)
                mo = (Message)((com.sap.engine.interfaces.messaging.api.Message)obj);
            } else
            if(obj instanceof MessageContext)
                mo = ((MessageContext)obj).getMessage();
            } else
                TRACE.warningT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, "no message found");
            if(mo != null && XMBMessageOperator.numberOfPayloads(mo) > 0)
               // String midstr = XMBMessageOperator.getMessageId(mo).toString();
                MessageKey auditkey = new MessageKey(((com.sap.engine.interfaces.messaging.api.Message) mo).getMessageId(), com.sap.engine.interfaces.messaging.api.MessageDirection.INBOUND);
                itr = (Iterator) mo.getAttachments();
                if(swapkey != null && keyvalue != null)
                    StringBuffer textSwappingbyBuf = new StringBuffer();
                    textSwappingbyBuf.append("Swap: swapping by '").append(swapkey).append("' ? '").append(keyvalue).append("'");
                    String textSwappingby = textSwappingbyBuf.toString();
                    TRACE.infoT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, textSwappingby);
                    Audit.addAuditLogEntry(auditkey, AuditLogStatus.SUCCESS, textSwappingby);
                   while (itr.hasNext()){
                    boolean swappedp = swapPayloads(mo, swapkey, keyvalue);
                    String swappedStatus = swappedp ? "Swap: successfully swapped" : "Swap: no matching payload found";
                    Audit.addAuditLogEntry(auditkey, AuditLogStatus.SUCCESS, swappedStatus);
                } else
                    StringBuffer textInvalidBuf = new StringBuffer();
                    textInvalidBuf.append("Swap: parameter missing ");
                    if(swapkey == null)
                        textInvalidBuf.append("swap.keyName");
                    if(swapkey == null && keyvalue == null)
                        textInvalidBuf.append(" and ");
                    if(keyvalue == null)
                        textInvalidBuf.append("swap.keyValue");
                    String textInvalid = textInvalidBuf.toString();
                    TRACE.warningT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, textInvalid);
                    Audit.addAuditLogEntry(auditkey, AuditLogStatus.WARNING, textInvalid);
            } else
                String messageEmpty = "Swap: message is empty or has no payload";
                TRACE.infoT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, messageEmpty);
            return outputModuleData;
        private static boolean swapPayloads(Message mo, String swapkey, String keyvalue)
            swapkey = swapkey.toUpperCase(Locale.ENGLISH);
            keyvalue = keyvalue.toUpperCase(Locale.ENGLISH);
            int ifound = -1;
            for(int i = 0; i < XMBMessageOperator.numberOfPayloads(mo); i++)
                XMBPayload pldi = XMBMessageOperator.getPayload(mo, i);
                String pldivalue = null;
                if(swapkey.equals("PAYLOAD-DESCRIPTION"))
                    pldivalue = pldi.getPayloadDescription();
                } else
                if(swapkey.equals("PAYLOAD-NAME"))
                    pldivalue = pldi.getPayloadName();
                } else
                    pldivalue = pldi.getContentAttribute(swapkey);
                if(pldivalue == null)
                    continue;
                pldivalue = pldivalue.toUpperCase(Locale.ENGLISH);
                if(pldivalue.indexOf(keyvalue) < 0)
                    continue;
                ifound = i;
                break;
            if(ifound >= 0)
                XMBPayload pldfound = XMBMessageOperator.getPayload(mo, ifound);
                if(pldfound.getPayloadType() != PayloadType.APPLICATION)
                    XMBPayload pldapp = XMBMessageOperator.getApplicationPayload(mo);
                    if(pldapp == null)
                        pldfound.setPayloadType(PayloadType.APPLICATION);
                    } else
                        pldapp.setPayloadType(PayloadType.APPLICATION_ATTACHMENT);
                        pldfound.setPayloadType(PayloadType.APPLICATION);
                    TRACE.infoT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, "successfully swapped");
                return true;
            } else
                TRACE.warningT("process(ModuleContext , ModuleData)", ModuleCategories.SAP_MODULE_ROOT, "no matching found");
                return false;
    We couldn't go further. Please have a look in highlighted code.
    Regards,
    Kesava.

  • Sender Mail Adapter Error: exception caught during processing mail message;

    HI , I am configuring mail to file scenario. Need to read mail content (no need to capture From,TO or Subject details) and create a file with the content in the mail.
    Need to read mails from microsoft outlook. Exchange server has been configured for POP3 protocol.
    Following are the details provoding in sender mail adapter:
    URL: provided url in the format: pop://<server name>
    Authentication method: plain
    provided user credinetions to access mails.
    poll interval - 1min
    content encoding none.
    processing parameters : quality of service-exactly once
    Since there is no need to capture From,TO or Subject details, didn't select the option - use mail package.
    Verified for unread mails in the mail box and made sure that there are few unread mails.
    Also, created data types and other components in IR and completed mapping.
    But after starting sender mail communication channel, getting error "exception caught during processing mail message; java.lang.NullPointerException" in RWB-adapter-communication channel monitoring.
    please let me know what needs to be done to resolve this error.
    Thanks.

    HI Stefan, i tried, but still it is giving same error. Yes, i am able to access outlook mail with the user credentials given in the communication channel to access exchange server.
    I am using message protocol: xipayload . Also since i dont have to capture TO,from,subject details., created data type just with one element of type string, not in the standard format .Does this makes any difference.

  • Sender File adapter FCC

    Hi
    I have an excel file which I save as a csv extension. If I use FCC in Sender File Adapter, I need to add a module in my communication channel. Can anyone provide me with that?
    Is this module generally deployed on XI server beforehand or do I have to write a java code and deploy it myself?
    I have already had a look at this blog
    /people/sap.user72/blog/2005/07/04/read-excel-instead-of-xml-through-fileadapter
    Vaibhav

    You will have to create a module in this case.there is no standard module available for this fuctionality as of now.
    Ref: https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/02706f11-0d01-0010-e5ae-ac25e74c4c81 to help create a module.

  • Required Changes in FCC Paramenters for Sender File Adapter.

    Hi
    I am Doing File-File Scenario.I am using FCC in the Sender File Adapter. I have defined the structure as below.
    My Source Structure
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_Source xmlns:ns0="http://city.net/filecopy">
       <Message>
          <Id>123</Id>
          <Head>
             <Id>123</Id>
             <Filename>test.xml</Filename>
          </Head>
          <Body>Helloworld</Body>
       </Message>
    </ns0:MT_Source_FILE>
    So for the above structure, I have defined the FCC Parameters as
    Document Name: MT_Source (Message Type)
    Document Namespace:http://city.net/filecopy(Namespace)
    Recordset Name: Message (root node)
    Recordset Structure: Message,1,Head,1
    Recordset Sequence: Ascending
    Recordsets per message:1
    Keyfield Type: string
    In the Table Rows I have defined
    Message.fieldFixedLengths: 3,10
    Message.fieldNames: Id, Body
    Message.fieldSeparator: ,
    Message.endSeparator: 'nl'
    Head.fieldFixedLengths: 3,8
    Head.fieldSeparator: ,
    Head.endSeparator: 'nl'
    Head.fieldNames: Id, Filename.
    My Input Text file
    123,Helloworld
    123,text.xml
    I am Getting Output as
    <?xml version="1.0" encoding="utf-8" ?>
    - <ns:MT_Source xmlns:ns="http://city.net/filecopy">
    - <Message>
    - <Message>
      <Id>123</Id>
      <Body>HelloWorld</Body>
      </Message>
    - <Head>
      <Id>123</Id>
      <Filename>test.xml</Filename>
      </Head>
      </Message>
      </ns:MT_Source>
    I should get Body field after Head Structure as in the Source Structure, So Please what changes do I need to do in the Parameters Specified above to get the desired Output.
    So How should I define the FCC Paramenters For Sender File Adapter ?
    Any Help Would be Appreciated.
    Regards,
    Varun

    Hi Everyone,
    I could Succeed to some extent.
    I have defined the parameters as follows
    Recordset Structure: Message,*,Head,1
    Key Field Name: KZ
    Key Field Type: integer
    In the table, I defined the Parameters as
    Message.fieldFixedLengths:1,3
    Message.fieldNames:KZ,Id
    Message.keyFieldValue:1
    Message.keyFieldInStructure:ignore
    Message.fieldSeparator:,
    Message.endSeparator:'nl'
    Head.fieldFixedLengths:1,3,8
    Head.fieldNames:KZ,Id,filename
    Head.keyFieldValue:2
    Head.keyFieldInStructure:ignore
    Head.fieldSeparator:,
    Head.endSeparator:'nl'
    Message.fieldFixedLengths:1,11
    Message.fieldNames:KZ,Body
    Message.keyFieldValue:3
    Message.keyFieldInStructure:ignore
    Message.fieldSeparator:,
    Message.endSeparator:'nl'
    My source text file
    1,123
    2,123,test.xml
    3,Hello World
    my output is
    <?xml version="1.0" encoding="utf-8" ?>
    - <ns:MT_Source xmlns:ns="http://city.net/FileCopy">
    - <Message>
    - <Message>
      <Id>123</Id>
      </Message>
    - <Head>
      <Id>123</Id>
      <Filename>test.xml</Filename>
      </Head>
      </Message>
      </ns:MT_Source>
    I got the output almost correct except I am not getting the value in the Body
    Any help would be appreciated.
    Please correct me If I am wrong.
    Regards,
    Varun
    Edited by: Varun on Sep 2, 2008 12:06 PM
    Edited by: Varun on Sep 2, 2008 12:15 PM

  • FCC Sender file adapter : Message Spitting 1:2

    Hi expert
    i am execuing a file to file scenario, with message splitting 1:n
    1 source MT   and 2 Target MT.
    My source MT structure becomes as
    Message               
    ....Message1         
    .......SourceMT 
    ................row          
    ....................Field1
    ....................Field2
    Now how to configure this structure at Sender file adapter
    File Content Converson.
    as after adding to MT  at target side in message mapping...
    2 extra hedder are added at source MT..
    Regards
    ajayp

    > Message               
    > ....Message1         
    > .......SourceMT 
    > ................row          
    > ....................Field1
    > ....................Field2
    >
    > Now how to configure this structure at Sender file adapter
    > File Content Converson.
    >
    > as after adding to MT  at target side in message mapping...
    >
    > 2 extra hedder are added at source MT..
    Ignore 2 extra header and do your FCC as you do in normal scanario.

Maybe you are looking for