Sender Filename in BPM

Hello
I am trying to bring in the senderu2019s file name into the mapping with the help of several posts in the forum. But all my mappings are inside the BPM and so the file name in dynamic config is lost when it comes into the BPM. Do I need to store it in a container variable and bring it till the end or is there an alternative way?
Teresa

lets say your target has a field called filename
1. before entering BPM, a mapping will store the file name to the field
if your source structure for eg. is
Message_Source
<Data>
<a>
<b>
</Data>
then you can have an extra node created to accommodate the file name
message_source_with_filename
<Data>
<a>
<b>
</Data>
<Filename>XXX</Filename>
so the mapping will be 1:1
Message_Source -> message_source_with_filename
so now you have the file name as part of your XML.
2. In case you need this file name to be used in the ASMA of the receiver adapter then after the BPM you will need to have one more mapping which will take the value from this field and the pass it to dynamic configuration

Similar Messages

  • How to get the sender filename in the mapping

    hi
    I want to get the name of the target file placed by XI at the target into a mapping.I need this to correlate this file with the acknowledgement file to be received later by Xi from the target, which has the same name as the target file.
    I have gone through the following link:[Sender Filename in BPM]
    however i'm unable to understand the precise steps involved in it.
    am using a BPM.
    as of now, my BPM has 3 step:receive , transform and send.
    please help

    In ID sender communication channel
    check the checkboxes for
    setadapter- specific message attributes
    filename
    in message mapping---- create one target elemt for the filename
    Write a UDF to pass the sender filename to the target element
    The UDF is as below
    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;
    I think this may help you.

  • How to Hold Sender Filename for Receiver Filename

    Hello,
    I have a File (xml) -> PI -> File (flat) scenario where I need to maintain a part of the sender filename and use it in the receiver filename.  This value can be one of three values (if that matters). 
    I envision having to get the filename value into my payload and then using receiver filename substitution.  But how would I get the filename into my payload?  Is there another way to "carry" part of the filename over to my output?
    example:
    sender files:  A.123.X, A.456.X, A.789.X
    - need to do mapping into new format and create...
    receiver files: B.123, B.456, B.789
    (the 123, 456 and 789 are not in the original payload data)
    Thanks,
    Keith

    More details on my issue...
    When I remove my XSLT mapping to see if my first message mapping with UDF to get the filename is working....it is.
    <?xml version="1.0" encoding="UTF-8" ?>
    <ns0:UPS_EBR_BILL xmlns:ns0="http://www.ups.com/Billing/v1">
      <ns0:InvoiceDetails>
        <ns0:Invoice>
          <ns0:InvoiceNumber>000000082648018</ns0:InvoiceNumber>
          <ns0:File>APGI-20080105-xml.zip</ns0:File>
    Then the aforementioned ns0 error happens when my XSLT map runs.  Here is the top of my XSLT.  Any suggestions on how to adjust the XSLT to handle the new ns0 or any way to get rid of the ns0 before XSLT mapping?
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://www.ups.com/XMLSchema/EBR/Billing/v1" xmlns:ns1="http://graybar.com/cold/invoice/">
       <xsl:output method="xml"/>
       <xsl:template match="/">
          <ns1:ColdInvoiceData xmlns:ns1="http://graybar.com/cold/invoice/">
             <xsl:for-each select="ns0:UPS_EBR_BILL/ns0:InvoiceDetails/ns0:Invoice">
                        <Invoice>

  • Fault message in synchronous send step in BPM

    Hi,
    When executing a synchronous send step in BPM it is possible to handle application errors (fault messages) with an exception branch. But how do you get hold of the actual data in the Fault message(faultText, faultURL, faultDetail etc) for further processing (mapping)?
    Kind regards Johan

    Johan,
    u have to define another container element in integration process.
    For that container element an Async Abstract interface has to created with falult message as the message.
    Do u have the fault message defined already...
    Also go through this thread.
    Fault message handling in BPM
    -Naveen.

  • Send step in BPM is "logical deleted"

    Hi everybody,
    we are sending IDOCs from BPM to receiver determination (R/3 Backend).
    The BPM protocol marks the send step as "logically deleted".
    In SXMB_MONI strange!
    Sender = Receiver = BPM
    Any ideas?
    Regards Mario

    The required number in the fork was wrong!

  • Transport Acknowledgement in an Ansynchronous Send Step in BPM

    I tried this scenario /people/michal.krawczyk2/blog/2006/06/22/xi-playing-with-the-file-adapters-acknowledgments for a file acknowledgement in an ansynchronous send step in BPM and it worked fine.
    This made me think of something else...
    This SAP help site http://help.sap.com/saphelp_nw04/helpdata/en/43/65ce41ae343e2be10000000a1553f6/content.htm
    says -  for a "Permanent negative acknowledgment" the "Send step triggers system error for which you can define a specific exception handling."
    I understood this as saying "If the tartget file is not placed, a system error is thrown for which we can write our own exception handling"
    In the scenario explained in the blog the 'deadline branch' was made to wait for a few miutes and once exceeded, made to throw an exception "NegAck" which is handled in the "Exception handler branch"
    So what i tried was, I removed the 'deadline branch' and retained only the 'exception handler branch' and made the 'send step' to throw a system error "NegAck" so that if the "Send Step" recieves a negative acknowledgement, it would throw this error "NegAck" which I have handled in the "Exception Handler  Branch"
    However, this did not work. Can anyone kindly explain where was my mistake?

    Dear Bharath,
    hmmm nice question...
    The answer to this is....whenever you configure a async send step with "transport ack" it will never go into error..
    the send step will either get a positive ack(if the file reaches correctly) or a negative ack(if there is some problem like password expires) but it will will never go into error and hence directly the control will never go to exception handler block...
    consider the cases :
    1. Async send step with transport ack and file reaches correctly : +ve ack is generated and BPM will stop
    2. Async send step with transport ack and passowrd expires : the send step will not go in error but you will get error in adapter engine(RWB) so it will keep on restarting and corresponding negative ack will keep on getting generated but here also the send step has not gone to error but the message in AE has gone into error and hence control will not pass directly to exception handler block....what you can do is keep a timelimit thru deadline branch so that after that much time control goes to exception branch...
    This should solve your problem...
    do not forget to close the thread marking useful answers after your query is resolved
    Edited by: Tarang Shah on Mar 30, 2009 4:10 PM

  • Send Filename from j2se FILE Adapter

    Hi,
    I need store filename from local file to xml element. When I use j2ee adapter there is no problem. I sended Filename to Adapter Metadata and through DynamicConfigurationKey in mapping I write it to element.
    My question is: How could i do it in j2se plain adapter? (In our customer there is no way for using j2ee adapter)
    Many thanks,
    Paul.

    hi,
    try this
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    //obtengo la Key del FileName
    DynamicConfigurationKey keyF = DynamicConfigurationKey.getName();
    http://help.sap.com/javadocs/NW04/current/pi/com/sap/aii/mapping/api/DynamicConfigurationKey.html
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70c89607-e4d9-2910-7280-f6746e964516
    /people/mohammed.zabiulla/blog/2008/03/26/have-you-ever-tried-to-determine-mail-cc-dynamically
    Hope it helps
    Thanks
    Rodrigo
    Edited by: Rodrigo Pertierra on Apr 11, 2008 9:31 AM

  • How to determine receivers in the send step in BPM?

    Hi Guys,
    I have 3 send steps in BPM defined with send context and for each send step i have defined a receiver determination in ID. Each Receiver Determination has a condition based on which identifies multiple receivers.
    The BPM is failing and unable to determine the conditional routing. Do i need to add the receiver determination step before each send step so that it identifies the receivers.
    Any help would be appreciated.
    Thanks,
    Raj

    Hi Guys,
    Thanks for all of you for the quick replies and it is really a great help.
    We have resolved the issue. The approach is as below.
    we have a generic design used by multiple customers. For the interface where we have the BPM, we are doing conditional routing for each customer before they hit the BPM that is as soon as we receive the Asynchronus request based on the condition we direct the message to a particular BPM. Basically every customer will have different BPM process. ie we create the same BPM with different names specific to each customer and in this way we dont complicate the BPM process and we will know if any particular customer has problems with his process.
    Please let me know comments or suggestions on the above approach
    Thanks,
    Raj

  • Were can i see synchronous send in the BPM editor

    were can i see synchronous send in the BPM editor
    i can see the send and receive ast the left top
    but could nt find out synchronous send

    Hi,
    When u select Send step, it is by default selected as Asynchronous. U may deselect it and select Synchronous there in the same step (Properties Window on right)
    Regards,
    Prateek

  • How to start a "File Sender" in a BPM?

    Hi Experts,
    Is there a way to start/trigger a File sender from a BPM i.e start it from the BPM? Or even trigger a Communication channel in a BPM?
    The scenario is as follows:
    We need to trigger the File Sender only when XI receives an IDoc from SAP.
    Many thanks in advance.
    Regards,
    Tush

    Thanks Prateek,
    Okay let me explain the full scenario, as follows:
    - IDoc sent to XI -> A file is created in the FTP
    - IDoc is triggered through Change pointers and sent to XI
    - Then, we should check the lines (records) of the file(currently in FTP) for the Material number in the IDoc.
        -If the material number is already in the file, replace that record.
        -If the material number is not yet in the file, add a new record.
    Can you please suggest a way in achiving this?
    Many thanks for your help.
    Best regards,
    Tush

  • Dynamic Filename in BPM process (SOAP with attachm. and PayloadSwapBean)

    Hello together
    I have the following BPM process:
    1. IDoc=>WebServiceRequest
    2. WebServiceResponse (payload) => IDoc
    3. WebServiceResponse (attachment) => File
    XI receivs an IDoc an map it to an WebService. The Webservice is called by XI and we receive the WebServiceResponse including a PDF attachment.
    The challenge is to store the PDF attachment with a dynamic filename from the payload of WebServiceResponse.
    We use the PayloadSwapBean to change the payload to the PDF attachment. But then we are not able to access the required information on the original WebService-XML-Response via variable substitution.
    Is there a solution in the standard or have we to use a custom adapter module?
    Thx
    manuku

    Hi Jayasimha,
    We can do this by "Adapter Specific Message Properties" of ur comunication channels.
    1.If u want to keep the output filename same as input filename, no need to use the UDF. only the 'adapter specific parameters' in both sender n receiver file adapter will do that.
    In case if u want to get the filename inside our mapping we have to create a user defined function
    which will return the filename and map it to one of our XML tags. 2nd point gives solution 4 that:
    2. If u want to generate an output file taking some input from the payload,then u hav to use the UDF.There u hav to populate the name.
    Pretty much.... if you set an attribute from the sender side, for example, you can use a UDF and access the particular attribute sent and use it in the mapping. In another example, where no attributes are sent from the sender, you can still actually set a particular attribute, say a filename derived from the payload, using a UDF, and enable the receiver attribute to use it. That's where the UDFs come in - either to get or set particular adapter specific message attributes.
    This will be a very helpful blog which solves ur query:
    /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    Regards,
    Vinod.

  • XI file sender: filename validation to stop processing a file twice

    Hello folks,
    I have a file sender adapter for a text file with name convention that includes a date - e.g. orders_YYYYMMDD.txt. We have a business requirement to ensure that we don't post the same file more than once. The file can be huge, so it's not really an option to pick up the file contents in one message.
    Options I have tried:
    - I do not know of a setting in the file adapter to achieve this.
    - write a perl script to read the filename and translate [hex-encode] this into a Message GUID, then post the file via HTTP adapter
      - - if the file name is not too long (guid is 32 hex chars) this method works well for small files that are in XML format.
      - - Text files need too much perl coding to translate to XML. Large files that need to be split will fail on the 2nd chunk.
    Options I don't want to use:
    - Use BPM to call an RFC/Proxy that validates the filename - this will cause me to read the whole file, or I have to implement a 'pipe' in BPM to ensure EOIO processing. (We have this elsewhere, but it's not good for performance)
    - Actually, I don't want to manage this in ABAP/Ztables at all if possible.
    I am about to start work on a Module Processor to mangle the GIUD in the file adapter, similar to the HTTP method above (don't have any idea of whether this will be possible yet)...
    Can anyone recommend another method to achieve this?

    Hi Derek,
    Intially when the file is picked then archive it to another directory.
    with this the same file will not be processed twice.
    Rgds,
    Kumar

  • FileName in BPM

    Hello everybody,
    we poll via file adapter. The files we read are processed in BPM.
    Is it possible to access the value of a file name in BPM?
    Regards Mario

    Hi Mario,
    yes,
    set the Set Adapter-Specific Message Attributes indicator at communication channel and choose file name to store adapter attribute "file name" in the message header of the XI message.  Map the value into the message to have it at BPM containter.
    <a href="http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm">SAP Library: Configuring the Sender File/FTP Adapter</a>
    Regards,
    Udo

  • SFTP to AS2(non-seeburger): How to get sender Filename to be used in AS2 Receiver Channel

    Hi Experts,
    I have this scenario,
    SFTP > Process Orchestration > AS2(non-seeburger)
    My interface is not using Message Mapping and I want to use the source Filename as my Receiver Filename.
    Sender
    orders_1234 - source filename
    Receiver
    orders_1234 - target filename
    How to do it in Process Orchestration without Seeburger.
    Thanks and Best Regards,
               Orlan

    Hi Orlan - So are you using SAP AS2 adapter?
    If you so i think you can make use of dynamic configuration bean.
    Unknown use case of DynamicConfigurationBean: Store file name to JMS header without mapping
    Enable adapter specific attributes in sender SFTP channel and in the receiver AS2 channel use the above module to swap the dynamic attributes.
    Dynamic attributes
    http://sap.com/xi/XI/System/SFTP ,FileName 
    http://sap.com/xi/XI/AS2/AS2:  AS2Filename

  • Message is incomplete. No Sender found  ( in BPM )

    Hi my scenario is as follows
    BPM:
    receive
    Send  
    Transform
    Synchronous Send
    Transform
    Send
    I'm getting error in Synch Send as <i>Message is incomplete. No Sender found</i>
    I checked receiver Determinations and Interface Determinations and everything looks fine.  Also in SXMB_MONI no sender or receiver found for this Synchronous step. We are on PI7.0 so I dont think problem can be fixed with any patch.
    Thanks  in Advance

    Hi Ram, Have a look at this forum thread,
    you might get your problem's answer by this :
    BPM Message is incomplete. No Sender found
    thanks,
    pooja

Maybe you are looking for

  • Blocked ALV

    Hi Experts, I want to use Blocked ALV in my report, in which there will be many headers and for each header there will be some line items. So can any one give me the same report which can show multiple headers and Item level descriptions. It should b

  • Needed steps for installing oracle 10R2 on windows server 2003

    Hi to All, Can anybody give me steps for how to install oracle 10R2 on windows 2003 server in production environment and what is the preinstallation task and postinstallation task. Thanks and Regards Mohd Khaja

  • Where can I see my balance

    I just bought the Pages App for my iPhone and iPad, I clicked on buy now and it started to download and it seems that I have purchased the App, but I think I do not have any credit on my balance, so my question is where can I see how I paid for the A

  • How can add two page report in Crystal Report

    Hi experts I want to make a two page report. for example First page is invoice and second page contain some legel information that Fix. Regards Gorge

  • TOTAL OF RECORDS

    As make the total Of records in "resultset"? Ex: rset.next() FOR NEXT RECORD rset.????() FOR TOTAL DE RECORDS THANKS