Sender CIDX adapter name

Hi mates,
Is the name of sender CIDX adapter constructed at runtime according to the template <Partner Role>”_”<direction>”_”<Action> or is it just the naming convention for the adapter?
I understand from <a href="http://help.sap.com/saphelp_nw04/helpdata/en/a8/502041cfb7f423e10000000a155106/content.htm">Creating a Service</a> that service name is constructed at runtime according the conventione specified there.
My question is it same for adapter name as well?
If not which sender adapter and in turn which sender agrement is used at runtime? How is it determined?
I appreciate your inputs.
thx in adv
praveen

<i>>>>If I want to conifure receiver-dependent receiver determination, I understnad that I've to select Sender Uses Virtual Receiver check box and specify the receiver party and receiver service.</i>
Yes.  But then in your receiver determination, you still configure the non-virtural business system that represents the receiver in your landscape - e.g. an R/3 system.
<i>>>>Should I be informing about these names: receiver party & receiver service to the Elemeica COP?</i>
Let me or someone else get back to you on that...
<i>>>>How are the virtual receiver party & service are handled at runtime? Are these derived from service header?</i>
The virtual receiver party and service gives you the option, as mentioned above, to configure the non-virtual receiver so that at runtime, the message gets routed to this receiver.
Regards,
Jin

Similar Messages

  • File name in sender file adapter

    Hi,
    Our ftp server is sending the file names as:
    AP_INV_<i>nn</i>.XI.<i>sss</i>.<i>xxx</i>.D<i>yyyymmdd</i>.T<i>hhmmss</i>
    where nn  sss  xxx yyyymmdd hhmmss are all variable. The only fix part is AP_INV_ & XI. I tried AP_INV_* but it does not work. I tried AP_INV_.XI... but it also does not work.
    Any idea here please !!!!

    Hi Dehra,
       Check these thread. It may help you:
    File name modification in a File adapter
    Regards,
    Subhasha Ranjan

  • Sender Mail Adapter - default interface name

    Hi,
    I need to receive through one e-mail sender channel tree different kind of messages.
    In sender mail adapter I specify ecept other parameters "Default Interface Name". When I send a message with a same as defined in an interface the message is processed correctly.
    But when I send a different kind of message then I get an error : "Receiver could not be determined".
    Is any way around how through one sender e-mail adapter receive a different kinds of messages ?
    Thanks for any help,
    Marian

    Hello Marzian,
    have you find a solution for this problem?
    We're facing the same issue.
    thanks,
    -Peter Ha

  • Dynamic file name of the attachment in sender mail adapter

    Hi
    I have configured a sender mail adapter which receives some attachments.
    Right now the file name of the attachment is hardcoded to "MailAttachment-1" "MailAttachment-2" using the content-description from "AF_Modules/PayloadSwapBean" module.
    I want to set it to dynamic ie. instead of "MailAttachment-1"... i want it with real name of the attach.
    please suggest a solution w/o the need to develop a custom adapter module.
    Thanks!
    Regards,
    Mariano.

    Thanks Prateek,
    Now, i can see that the name of the original file is into the content type named as  text/xml; name"name of the file.xml" when i send the email from outlook.
    If i send it from hotmail, this is not happend.
    Do you know why happend this?
    If i always would have the original name inside the content type, my problem will be solved.
    Edited by: Mariano Vidal on Feb 13, 2009 2:26 PM

  • Email attachment name in sender mail adapter to the receiver file adapter

    HI ,
    Ths is regarding email to file scenario. I am trying to create file (in rceiver file adapter) with the same name as the email attachment that i read from mail sender adapter. I want ro use adapter module for this. I could find from blogs that there is module - GetAttachmentName - available that i can use for this in sender mail adapter.
    Can you please let me know what whetehr i neeed to mention any module key and parameters for this.
    I assume , i need to do following steps :Please confirm.
    1. i can use this module - after payload swap module and before standard mail adapter module in sender mail adapter
    2. select ASMA option in advanced tab in sender mail adapter
    3. In receiver file adapter select ASMA option in advanced tab in sender mail adapter
    4. Also select file name option in ASMA in sender mail adapter
    Thanks,
    Vamsi

    Hi Vamsi,
    your scenario is also described here: Re: sender mail adapter - attachment name
    If you use the Module getAttachmentName, which is described here,
    http://wiki.sdn.sap.com/wiki/display/XI/AdapterModulePI7.0GetAttachmentName
    your scenario should work as you described it.
    You just need to make sure that the Attachment Name that you read in the first place, is mapped to the Filename Attribute of the
    Fileadapter (http://sap.com/xi/XI/System/File/FileName).
    regards,
    Daniel

  • Sender File Adapter : File Name Determination

    Hi All,
    My Scenario :
    1) Im my scenario i need only the "FileName" of the File when picked up by the Sender File Adapter.
    2) Rest Content of the File need not be in the XML file format.
    Now what i did was developed "File Adapter Module " to get the "FileName" when picked up by the Sender File Adapter.
    Outcome : When i put the developed module at first and put the file in specified folder allowint the Sender file Adapter to pick up. Now Everything is fine working when one kind of File is placed as per my Content Coversion paramaters.
    Actual : My Client would place file of any kind (.jpeg -> Mostly , gif ) i need to get only the file name in the Outbound interface , which i would split it further to my Target Interface.
    How could i achieve this , when i took away this content conversion , in sxmb_moni it shows error.I need only the filename in the Outbound not the Content , moreover the hit is i donot know what could be content of my file as it could be different and varing , so i could not set particular content conversion paramters:
    Second Question:
    Now my outbound XML interface looks as below when i test with a file , with proper content conversion paramerters:
      <?xml version="1.0" encoding="UTF-8" ?>
    - <MT_DMS_FINAL>
    - <Record>
    - <Row>
      <FirstName>2323_eer_rtr</FirstName>
      </Row>
      </Record>
      <FileName>d:\mdmtest\srinivaS\padusrini.txt</FileName>
      </MT_DMS_FINAL>
    Well i have designed in my MI only FirstName , how to capture this element "FileName" which i can use it in mapping , if i have to write any UDF to capture it ,please guide me.
    thx in advance for u r help
    with regards
    Srini

    Hi Guys ,
    Can i use File Content Conversion for .pdf document , my pdf doc content is not known, means it"s a complete info doc.I may get .jpeg any picture or drawing.
    I thought i can use below file content conversion paramters:
    Document Name : MT_DMS_FINAL
    RecordSet Name : Record
    RecordSet Structure : Row,*
    Row.fieldNames - FirstName
    Row.fieldSeparator - ;
    Row.processFieldNames - fromConfiguration
    Row.additionalLastFields - ignore
    Row.missingLastfields  -  ignore
    Now i put a pdf doc of unknown content , and my assumption was some set of charater would be dumped in  XML and rest would be ingonered which is least bothered part in my scenario , unless i get the filename from runtime ot Adapter module developed
    But in RWB CC monitoring i see below error :Error: org.xml.sax.SAXParseException: Illegal XML character:  &#xb;.
    Any views on this , can any one help me out with the above requirment. Hope u guys got wat am trying to put out here
    thx in advance for u r help
    with regards
    Srini

  • Vaildating File name with the data in the file using sender file adapter

    Hi,
    Below is the scenario
    1)       Pick up files from a FTP server, the file name is dynamic, how do I put dynamic name in sender file adapter?
    2)       Determine if the user correctly named the file based on data in the file.
    a.       File naming structure that we will be concerned with is <company_code><accounting_time_period>.<extension>
    b.      The company code and the time period in the file name have to match the data in the file.
    i.      For example.  If the file name is 1001_200712.csv and the data in the file is for company code 1005, time period 200712, the file is incorrectly named.  Both values must be correct.
    How do we do this?

    Hi Sachin,
                    As Rightly said by Krishna, You can not put Dynamic name in sender File Adapter .You have to provide the name of the file like "*.txt" in Sender Adapter and at runtime you can access this file name by using following UDF:
    DynamicConfiguration conf  = (DynamicConfiguration) container
      .getTransformationParameters()
      .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String valueOld = conf.get(key);
    return (valueOld);
    As now you have picked up the file name at runtime.
    Now concatenate source file fields Company_code and Accounting_timeperiod using "_" as delimiter in properties.Also concat the extension .Now you have required file name.
    So using EQUALS standard function ,compare it with File Name fetched at runtime using above given UDF, and pass result as you desire to process further or not or to raise Alert to resend the file.
    Thanks & Regards,
    Anurag Garg
    You can validate this file name in Mapping itself.

  • Sender File Adapter- Incrementing the counter in file name

    Hello,
    We have a requirement to read a different file name with every read. Every subsequent file would have a numeric counter updated when we receive it, we need to read that file as the directory would hold the previous files as well.
    File structure :- EP<counter>.txt ; so first file would be EP001.txt, next one would be EP002.txt.
    How could i do this in Sender file adapter, as there is no variable substitution available like receiver file adapter.
    I cannot use wild card characters as the directory would contain previous files as well and we ned to pick the latest file.
    Regards

    Hi,
    >>How could i do this in Sender file adapter, as there is no variable substitution available like receiver file adapter.
    Yes true this is not available in sender channel
    >>I cannot use wild card characters as the directory would contain previous files as well and we ned to pick the latest file.
    You can use EP* as the filename and use processing mode as Set to Read-Only
    Regards
    Suraj

  • Sender FTP Adapter not working with certain name

    Hello,
    We're facing the next problem within XI.
    We configured a sender FTP adapter within the central adapter engine. This adapter is configured correctly however for some reason it is not picking up any file from the FTP server.
    Changing status to inactive-> active again all kinds of modes and configs we tested.
    However when copying this non-working adapter to a new one with a different name (Configuration is exactly the same!!!!!) and use this one in the sender agreement it worked immediately.
    Somebody else faced similar problems and managed to solve it because for this error we don't want to adjust our naming conventions....
    Thanks,
    Emile

    Hi Emile,
    This could happen when AE cache is not getting updated.
    Goto SXI_CACHE.
    Click "Goto" -> AE Cache and check if you get a green symbol with a message saying " Cache contents are up-to-date".
    Regards,
    Anish

  • Change Queue Name in Sender Soap Adapter (or make it dynamic)

    Hello SDN!!!!
    We have a scenario where we want to make a message EOIO and I have set the Queue Name in the Sender Soap Adapter and this works great. BUT it is needed to have a more specific queue name (based on order numbers not interface name) So with this being said, Is there any way to change the queue name or append to it from the Soap Sender Adapter. I see it is possible to write a Module Bean, but the Message object returned from the ModuleContext is a scaled down version of the normal message object. Any help would be greatly appreciated
    Cheers
    Devlin

    Is this the only way to change the queue name for Soap Sender? I don't think it is possible for them to do this, as their urls are static when calling us

  • Sender mail adapter - attachment name

    Hi there
    We have configured a sender email adapter to receive text/csv attachments and save them to a file system. What we are having a problem with is reading the attachment name. So we are using Dynamis Configuration to create the file name using the subject line - Which is not ideal. Ideally we would like to use the same name as the origianl attachment but haven't found any way of doing that. We even tried using Content-type in the Variable Header (XHeaderName1) suing variable transport binding but it doesn't show up in the Dynamic Config part of the SOAP message.
    Is there any way of reading the name of the file attachment? We are on PI release 7.0.
    Any help would be appreciated.
    Cheers
    Salil

    Hi Vitor
    There are 2 scenarios that I can think of -
    1. You are saving the email attachment as a file. In that case use step 3 in the earlier reply to get the attachment name and save the file witht that name.
    2. You are sending the XML straight to a receiver using HTTP, IDOC, JDBC etc. in which case you would need the attachment name much earlier that step 3. For that I guess you would have to write another adapter module on the sender mail adapter(at Position 3 where position1 = payloadswap bean, 2 = custom module to get the attachment name) and add an xml tag to your incoming message. These adapter modules are really powerful and are like user exits in ABAP. In that case you would have to change the Data Type in the Integration repository to reflect that extra tag. Here is some code from a module we wrote to totally change the structure of the xml coming in. The key thing to remember is this module is that you can read the whole message byte by byte. There might be smarter ways of doing it (like using the SAP XML parser factory class) but since I'm not a Java programmer I stuck to the basics. Here's the code( you could also look at the example given in sap help where they remove (or add I'm not sure) CR(carriage return) from CRLF (CR Line feed).
    Created on Aug 8, 2007
    To change the template for this generated file go to
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
    package jdbcPackage;
    import javax.ejb.CreateException;
    import javax.ejb.SessionBean;
    import javax.ejb.SessionContext;
    import com.sap.aii.af.mp.module.*;
    import com.sap.aii.af.ra.ms.api.*;
    @author Salil.Mehta Soltius NZ Ltd
    To change the template for this generated type comment go to
    Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
    public class jdbcClass implements SessionBean, Module {
         private SessionContext myContext;
         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 {
              //        put your code here
              try {
                   Message msg = (Message) inputModuleData.getPrincipalData();
                   XMLPayload payload = msg.getDocument();
                   String payEnc = payload.getEncoding();
                   byte[] payByte = payload.getContent();
                   byte[] payByteOut = new byte[payByte.length];
                   byte[] payByteTemp = new byte[payByte.length];
                   int i;
                   int j;
                   int actualCount = 0;
                   char xmlTagFound = ' ';
                   char endXmlTagFound = ' ';
                   char tagFound = ' ';
                   System.arraycopy(payByte, 0, payByteTemp, 0, payByte.length);
                   // Step 1 - Conversions 
                   // convert   "&lt; to <"    and     "&gt; to >"
                   // convert   &quot; to "
                   // This will remove any carriage returns and line feeds
                   // and the <XML* and </XML* tags plus the <row> and </row> tags
                   for (i = 0; i < payByte.length; i++) {
                        // convert   &lt; to <    and     &gt; to >
                        if (payByteTemp<i> == '&') {
                             if (payByteTemp[i + 1] == 'l') {
                                  if (payByteTemp[i + 2] == 't') {
                                       if (payByteTemp[i + 3] == ';') {
                                            payByteTemp<i> = '<';
                                            payByteTemp[i + 1] = '\n';
                                            payByteTemp[i + 2] = '\n';
                                            payByteTemp[i + 3] = '\n';
                        if (payByteTemp<i> == '&') {
                             if (payByteTemp[i + 1] == 'g') {
                                  if (payByteTemp[i + 2] == 't') {
                                       if (payByteTemp[i + 3] == ';') {
                                            payByteTemp<i> = '>';
                                            payByteTemp[i + 1] = '\n';
                                            payByteTemp[i + 2] = '\n';
                                            payByteTemp[i + 3] = '\n';
                        if (payByteTemp<i> == '&') {
                             if (payByteTemp[i + 1] == 'q') {
                                  if (payByteTemp[i + 2] == 'u') {
                                       if (payByteTemp[i + 3] == 'o') {
                                            if (payByteTemp[i + 4] == 't') {
                                                 if (payByteTemp[i + 5] == ';') {
                                                      payByteTemp<i> = '"';
                                                      payByteTemp[i + 1] = '\n';
                                                      payByteTemp[i + 2] = '\n';
                                                      payByteTemp[i + 3] = '\n';
                                                      payByteTemp[i + 4] = '\n';
                                                      payByteTemp[i + 5] = '\n';
                        // This will take in the initial xml declaration from the Byte array
                        // And we also don't want the stuff after the xml declaration till
                        // we reach the first <row> tag     
                        if (xmlTagFound == ' ') {
                             if (payByteTemp<i> == '>') {
                                  xmlTagFound = 'X';
                             payByteOut[actualCount++] = payByteTemp<i>;
                             if (xmlTagFound == 'X') {
                                  payByteOut[actualCount++] = '\r';
                             continue;
                        if (xmlTagFound == 'X') {
                             if (payByteTemp<i> == '<') {
                                  if (payByteTemp[i + 1] == 'r') {
                                       if (payByteTemp[i + 2] == 'o') {
                                            if (payByteTemp[i + 3] == 'w') {
                                                 if (payByteTemp[i + 4] == '>') {
                                                      xmlTagFound = 'Y';
                                                 } else {
                                                      continue;
                                            } else {
                                                 continue;
                                       } else {
                                            continue;
                                  } else {
                                       continue;
                             } else {
                                  continue;
                        // Carriage return and line feed
                        if ((payByteTemp<i> == '\r') || (payByteTemp<i> == '\n')) {
                             continue;
                        // <XML_*> tag
                        if (payByteTemp<i> == '<') {
                             if (payByteTemp[i + 1] == 'X') {
                                  if (payByteTemp[i + 2] == 'M') {
                                       if (payByteTemp[i + 3] == 'L') {
                                            tagFound = 'X';
                                            endXmlTagFound = ' ';
                                            continue;
                        // </XML_*> tag
                        if (payByteTemp<i> == '<') {
                             if (payByteTemp[i + 1] == '/') {
                                  if (payByteTemp[i + 2] == 'X') {
                                       if (payByteTemp[i + 3] == 'M') {
                                            if (payByteTemp[i + 4] == 'L') {
                                                 tagFound = 'X';
                                                 endXmlTagFound = 'X';
                                                 continue;
                        // <row> tag
                        if (payByteTemp<i> == '<') {
                             if (payByteTemp[i + 1] == 'r') {
                                  if (payByteTemp[i + 2] == 'o') {
                                       if (payByteTemp[i + 3] == 'w') {
                                            if (payByteTemp[i + 4] == '>') {
                                                 tagFound = 'X';
                                                 continue;
                        // </row> tag
                        if (payByteTemp<i> == '<') {
                             if (payByteTemp[i + 1] == '/') {
                                  if (payByteTemp[i + 2] == 'r') {
                                       if (payByteTemp[i + 3] == 'o') {
                                            if (payByteTemp[i + 4] == 'w') {
                                                 if (payByteTemp[i + 5] == '>') {
                                                      tagFound = 'X';
                                                      continue;
                        if ((payByteTemp<i> == '>') && (tagFound == 'X')) {
                             tagFound = ' ';
                             continue;
                        if (tagFound == ' ') {
                             if (endXmlTagFound == 'X') {
                                  continue;
                             payByteOut[actualCount++] = payByteTemp<i>;
                   byte[] payByteExp = new byte[actualCount];
                   System.arraycopy(payByteOut, 0, payByteExp, 0, actualCount);
                   payload.setContent(payByteExp);
                   msg.setDocument(payload);
                   inputModuleData.setPrincipalData(msg);
              } catch (Exception e) {
                   ModuleException me = new ModuleException(e);
                   throw me;
              return inputModuleData;

  • Getting File Name (Sender File Adapter )

    Hi EveryBody,
    I need to capture only the the FileName in to the outbound xml that is present in the filepath of XI server.
    I checked:
    Adapter Specific Message Attributes:
    Checked box on --> 1)Set Adapter Specific Message Attributes
                                 2) File Name
    And my dt IS OF TYPE :
    <?xml version="1.0" encoding="UTF-8"?>
    <MT_DMS_FINAL>
       <Header>
          <FileName/>
       </Header>
    </MT_DMS_FINAL>
    Now i put the File into the path , i donot need any content of file in XML , only needed the file name.
    i tried above config and it says mapping error, but i test it"s running good with the test tab.
    i guess file picked up by Sender file Adapter is not matching witj the outbound interface ?? is it so ?
    advice. i see in the sxmb_moni that only the content not in xml structure is displayed.
    srini

    Refer to the blog that i asked you to go thru. It has no input fields. It accesses the file name through the Dynamic Configuration. Provides the same as output. Its just a java function without any input parameter. Create an UDF and deleted all the arguments(even "a").
    Code:-
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String ourSourceFileName = conf.get(key);
    return  ourSourceFileName; 
    Oops sorry, i guess i forgot to provide the blog link. Anyway its here:
    /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    Regadrs,
    Sanjeev.
    Edited by: Sanjeev Shekhar Singh on May 30, 2008 2:12 PM

  • How to ignore Recordset name in XML(Sender JMS Adapter)?

    Hi All.
    I am using Sender JMS Adapter along with content conversion.
    I have put in Parameter:
    Plain2XMLService xml.ignoreRecordsetName true
    still the Inbound payload in SXI_MONITOR has Node Recordset, which should not be the case.
    Please advice, does this ignoreRecordsetName works in JMS adapter, if Yes does it works same way as in File Adapter content conversion?
    Thanks in Advance

    >
    Gowtham Peddi wrote:
    > Hi All.
    >
    > I am using Sender JMS Adapter along with content conversion.
    >
    > I have put in Parameter:
    > Plain2XMLService xml.ignoreRecordsetName true
    >
    > still the Inbound payload in SXI_MONITOR has Node Recordset, which should not be the case.
    >
    > Please advice, does this ignoreRecordsetName works in JMS adapter, if Yes does it works same way as in File Adapter content conversion?
    >
    > Thanks in Advance
    can you try
    ignoreRecordsetName true instead of xml.ignoreRecordsetName
    also try to not give any value for the xml.recordsetName parameter.
    I actually doubt if we can ignore the record set name using the module.

  • Queue name in QOS EOIO -Sender SOAP Adapter

    hi,
    While configuring sender soap adapter , if we specify EOIO as QOS , then there is a mandatory parameter Queue name to be specified.
    What is this Queue name ?
    and where is it created
    kindly reply
    Regards,
    loveena

    Hi D' souza
    Goto tcode -> SXMB_ADM -> register queues
    for specifying QOS EOIO you need to assign a queue
    from there you can specify the queue for Outbound side EOIO queue
    Various queue name and there meaning is as follows
    XBT*-Queues for Exactly Once.and time dependent
    XBQ*-Queues Exactly Once In Order.
    XBTI* are inbound queues for EO with time constarint
    XBTO* are outbound queues for EO with time constarint
    XBQI* are inbound queues for EOIO
    XBQO* are outbound queues for EOIO
    for beter understanding of how to configure sender soap channel you may folow this link
    http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/frameset.htm
    thanks
    sandeep
    if helpful reward points
    Thanks
    sandeep
    if helpful rewrad points

  • Response message from CIDX Adapter to IDOC Adapter

    Hi Experts,
                  I have created scenario for "SAP IDOC - PI - CIDX" (OrderCreate_Request)
                  and also need to create respose message for "CIDX - PI - SAP IDOC(OrderCreate_Response)
               Integration Repoistery
                  "SAP IDOC - PI - CIDX" 
                       1,Imported idoc metadata from sender sap r3 .
                       2,Created External Definition and imported OrderCreateV202.xsd from receiver party.
                       3, Done message mapping                 
                       4, Done Interface Mapping
               Integration Directory
                          Under PO_Create(Scenario Name)
                     1,Assigned Business System for Sender SAP R3                 
                     2, Configured Party For receiver Sytem (CIDX)
                     3, No need Communication Channel for Sender IDOC
                     4, Configured Communication Channel for receiver(CIDX Adapter) 
                     5, No need ender Aggrement for Sender               
                     6, Configured Receiver Determination
                     7, Configured Interface Determination
                     8, Configured Receiver Aggrement.
                My Questions are 
                     1,do i need to create new namespace for response msg
                     2,This scenario,sender is 3rd part(cidx) and receiver is sap r3
                     3,Do i need to create again all steps in Integration Repoiestry.
                     4,Can you send me Wat are all the steps involved in integration directory.
                       (ex.ineed to config comm. channel for both)
         Can anybody help me out?
    Thanks

    Sender QoS is BE,
    File adapter does not support sync communication. Therefore the scenario won't work as it is.
    What are you planning to do with the response? If you want to process is further, then:
    1. One way without BPM would be use of adapter module.
    File - RFC - File without a BPM - Possible from SP 19.
    2. Or you may use BPM with Async Sync bridge
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    Regards,
    Prateek

Maybe you are looking for