Dynamic Filename from source Idoc

Hi All,
  I need to give the filename from the field in the source idoc. the field value need to be picked up as below
ZSSV_GENERIC_IDOC
-IDOC
--Z1SSV_ITEMS_SUMMARY
---HOST_FILENAME
Note: - represent the level in the datastructure.
here the value of HOST_FILENAME need to be given as filename.  I check the Variable Substitution but I hope we can give only the values from message: and payload:
Please let me know how to give this valueas filename.
my filename need to be as
HOST_FILENAMEmatmastimestap.dat
Regards,
Dhill

Dhil,
Check the below code if its feasible to you rather than going for variable substitution.
input --->UDF -
>Root node of  target.
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create(
    "http://sap.com/xi/XI/System/File",
    "FileName");
String fname =input+"MATMAS";
conf.put(key,fname);
return "";
In receiver comm.channel check the checkbox for ASMA -Filename.
Creation mode - AddTimestamp.
Hope it helps!!!
Best regards,
raj.

Similar Messages

  • Dynamic Filename from source IDOC payload

    Hi,
    I have a scenario IDOC --> ABAP Mapping --> Flat File.  I need to create the receiver file name dynamically with the document number from souce IDOC. Since the target payload is flat file I don't know whether I can use the variable substitution. Also can I use the dynamic configuration with ABAP Class mapping.
    Please help.
    Thanks.
    Srini

    Actually Henrique's reply in this thread has the exact code,
    Re: Abap mapping and variable substitution in File adapter
    METHOD if_mapping~execute.
    DATA l_record type mpp_dynamic.
    * copy payload
    result = source.
    * add an adapter specific attribute
    l_record-namespace = 'http://sap.com/xi/XI/System/File'.
    l_record-name = 'FileName'.
    l_record-value = 'test.xml'.
    dynamic_configuration->add_record( l_record ).
    ENDMETHOD.
    Regards
    Bhavesh

  • Node function to use for relating two idoc segments from source in mesmapp

    Hi Sap All.
    here i have got a requirement to do a graphical mapping between Souce Idoc Structure to target file structure .
    here i have got  aspecific requirement from the Functional saying that they want
    for a segment from source idoc with name E1EDL24-NTGEW should be mapped with shipment_detail-nett_weight
    and the conditon here is There should be a corresponding entry in E1EDL24 for each E1EDL44?(other) segment type.
    can nay body help me in guiding  how and what node functions do i need to use here to ge the solution.
    regards.
    Varma

    Varma,
    If you could give a sample that would be great!
    raj.

  • 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.

  • Dynamic Filename in File adapter

    Hi,
    I am doing idoc-file scenario.I get the filename as a field in one of the segments of my idoc.Can anyone please let me know how i can get the filename from my idoc and use this filename in my file adapter.
    --Thanks

    Hi all,
    Thanks a lot for your replies.
    Please find below the inbound message that i get. Now i need to get the filename that i get in one of the segments and use that in the file adapter.
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ZSSV_GENERIC_IDOC>
    - <IDOC BEGIN="1">
    - <EDI_DC40 SEGMENT="1">
        <TABNAM>EDI_DC40</TABNAM>
        <MANDT>100</MANDT>
        <DOCNUM>0000000000203015</DOCNUM>
        <DOCREL>620</DOCREL>
        <STATUS>30</STATUS>
        <DIRECT>1</DIRECT>
        <OUTMOD>2</OUTMOD>
        <IDOCTYP>ZSSV_GENERIC_IDOC</IDOCTYP>
        <MESTYP>ZSSV_GENERIC_MSG</MESTYP>
        <SNDPOR>SAPYRA</SNDPOR>
        <SNDPRT>LS</SNDPRT>
        <SNDPRN>YRACLNT100</SNDPRN>
        <RCVPOR>YXDTEST_GI</RCVPOR>
        <RCVPRT>LS</RCVPRT>
        <RCVPRN>IDES_LS1</RCVPRN>
        <CREDAT>20060420</CREDAT>
        <CRETIM>184948</CRETIM>
        <SERIAL>20060420184948</SERIAL>
        </EDI_DC40>
    - <Z1SSV_ITEMS_SUMMARY SEGMENT="1">
        <IDOC_SEQ_NUM>1</IDOC_SEQ_NUM>
        <TOTAL_REC_COUNT>50</TOTAL_REC_COUNT>
        <IDOC_SEG_COUNT>50</IDOC_SEG_COUNT>
        <OUTPUT_REC_LENGTH>90</OUTPUT_REC_LENGTH>
       <INTERFACE_DESCRIPTOR>OUT_RYDER_0001</INTERFACE_DESCRIPTOR>
      <b><HOST_FILENAME>TEST1</HOST_FILENAME></b>
      <RECORD_DELIMITER>^</RECORD_DELIMITER>
      <SEGMENT_DELIMITER>|</SEGMENT_DELIMITER>
      </Z1SSV_ITEMS_SUMMARY>
    In the file adapter, I have specified "%filename%.xml" as my file name and in variable substitution the reference is  "payload:ZSSV_GENERIC_IDOC,1,IDOC,1,EDI_DC40,1,Z1SSV_ITEMS_SUMMARY,1,HOST_FILENAME,1".
    I still get the same error "Message processing failed: Error during variable substitution: "
    Waiting for your help in this matter.
    Regards,

  • Call ABAP program from Unix script passing dynamic filename

    Hi,
    Does anyone know if it is possible to call an ABAP program from a Unix script passing a dynamic filename to the ABAP program?
    We are receiving a file from an external company and on receipt of the file want to call an ABAP program passing the filename.  The filename is made up of File ID, Date and Time which we need to read in the ABAP program.  We usually use Events to trigger a program which is fine when the filename if static however since this filename will be dynamic we cannot do this.  In addition we cannot just rename the file to a static name in the Unix script as we need to know the value of the date and time from the file ID in the ABAP program.  I can change the ABAP program to check our /in directory for a Filename that starts with the fixed File ID however I thought there must be a better way of doing this.  We want the external company to put this information in a file header record but they don't want to change the file contents.  Any ideas would be appreciated.
    Thanks,
    Sinead.

    You could follow the following method
    1.Let the external file reside in the SAP application layer in a defined path e.g. /usr/sap/tmp/interface/working/
    2.Write an ABAP program which will include the following steps:-
       i) read all files in the file path using function module EPS_GET_DIRECTORY_LISTING
      ii) Read the data from files existing in the directory using OPEN_DATASET statement
    iii) After the files have been read move the files to another directory e.g. /usr/sap/tmp/interface/backup/ or you can delete the file.
    3.Schedule this program to be executed depending on the frequency of the external file being generated.

  • Idoc sending program from source port

    Hi Experts,
      I am sending the Idoc through customized program. I am getting the status 03 & 30. successfully sent to external system.
    Is there any standard program to send the Idoc from source port to destination port.
    Thanks and regards,
    Venkatraman.N

    Run RBDMOIND, then idoc will get the status 12 -Dispatch ok. status 12 is the confirmation that idoc was reached target system.
    Reddy

  • ABAP mapping split messages and dynamic filename

    Hello,
    i have set up a IDOC to file scenario where the IDOC is split into several files, which works fine. In addition to this it is required to set a dynamic filename out of the ABAP mapping for each file. If only one file is created this works already as well but how do you set the dynamic configuration when the messages are split?
    Regards,
    Andreas
    Edited by: Andreas on Feb 26, 2009 9:09 AM

    you cannot do dynamic configuration for message splits. The below is from SAP help.
    Adapter-Specific Attributes and Multi-Mappings
    In multi-mappings, there are multiple message headers with adapter-specific attributes. The mapping API can only access one message header. This has the following consequences depending on whether there are multiple source or target messages:
    u25CF     1:n Transformation
    If there are multiple target messages, the header for the adapter-specific attributes is copied for each message. This means that you can only create one header for all adapter-specific attributes, and not individual headers.
    u25CF     n:1 Transformation
    This variant is only possible for multi-mappings in integration processes. If there is more than one source message, read-access to the adapter-specific attributes of the various message headers is not possible at runtime.
    u25CF     m:n Transformation
    All afore-mentioned restrictions apply here. Developers can at most write the same adapter-specific attributes for all target messages to the header, without read-access to the attributes of the source messages. m:n transformations are only supported within integration processes.
    What i will suggest is to use BPM to have the message split i.e 1:N mapping and then after that have another mapping 1-1 to have the dynamic configuration

  • Dynamic FileName generation

    Hi,
    I have a source idoc xml file and the target structure has only 2 fields. Mapping contains only 2 fields which is used from the idoc and put to the fields in the target strucuture.
    After transformation, I need to create a file with the filename in the format <idoctype>_<idocnumber>.xml. And also the idocnumber will be of certain length like 15 digits. if the idoc number is 2343 then the file name should be <idoctype>_000000000002343.xml.
    If the value was to be picked in target payload then variable substitution would be the answer. But in this case it is from the source payload,
    Please guide me.
    Regards
    Shashi

    Hi
    refer this blogs..
    /people/jayakrishnan.nair/blog/2005/06/20/dynamic-file-name-using-xi-30-sp12-part--i - Dynamic File Name Part 1
    /people/jayakrishnan.nair/blog/2005/06/28/dynamic-file-namexslt-mapping-with-java-enhancement-using-xi-30-sp12-part-ii - Dynamic File Name Part 2
    Might help you
    Thanks,
    vasanth.

  • Dynamic filename to payload

    Hi Guys,
    I have a file to IDoc scenario in which the Sender system places a file on FTP Directory at source side. PI picks up the file, generates a IDoc and take a "FileName" from the name of the source file.
    For example, If "Sender A" sends a file "20140404.TXT" then I have take the name like
    <IDOC>
    <filename>20140404.TXT </filename>
    </IDOC>
    It would be helpful if some helpful suggestions/approach can be provided for this scenario. Thanks, PM

    Hi Peter,
    you have to create udf for this.
    DynamicConfiguration conf1 = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key1 = DynamicConfigurationKey.create( "http:/"+"/sap.com/xi/XI/System/File","FileName");
    String name = conf1.get(key1);
    return name;
    in the sender file adapter check ASMA properties. and select File name.
    Regards,
    Muni.

  • File proxy to poll for a dynamic filename

    I have a requirement to move a file from one folder(A) to another(B) but I do not want to move every file thats created/placed in source folder(A). I get the filename thats dynamically created from a JMS queue and want to copy that particular file alone to the destination. Is there is possibility to pass the filename dynamically and call the business service only when this filename is same as the proxyservice has read. Something like $body/*[1]/text() = $inbound/ctx:transport/ctx:request/tp:headers/file:fileName but it does not seem to work.
    Can any one guide me in right direction.

    Hi,
    What adapters do you use? File / FTP? - If yes you cannot pass the filename. Both adapters listen for files in the input folder. They could filter the files which have to be process by input file mask or regexp.
    Another approach is to use JMS adapter and directly dequeue the message and write it to 2 folders using file or ftp adapter
    Regards,

  • To retain the same file name in target(File) that coming from source system(AS2).

    Hi All,
    I have a requirement to send the two file from the third party system(GXS) to SAP ECC via SAP PI(version - 7.4). We are using AS2 adapter at the sender side to pick the file and using File Adapter to place the file in ECC.
    Its a pass through scenarion(No ESR part is used).
    Requirement:
    We are going to get 2 files ->Example:  one from Axis and another one from ICICI -> each bank file will have a file name ->
    We have to post the file at the target system with the same name as source file name, the source file name could come dynamically(with diff time stamp).
    Please let me know, Is it possible to achieve the above requirement(we have to retain the file name in target that coming from source system) with Sender AS2 adapter, If yes then please suggest the best approach.
    Regards,
    Pradeep Bawlia

    Hi Guys,
    The above requirement is solved now.
    Solution - I used java mapping for extracting the same source file name and assignning the same to the target system.
    Code:
    public class ExtractFileName_ASMA extends AbstractTransformation{
    public void transform(TransformationInput in, TransformationOutput out) throws StreamTransformationException  
    DynamicConfiguration conf=in.getDynamicConfiguration();
    DynamicConfigurationKey key_AS2FileNmae = DynamicConfigurationKey.create("http://sap.com/xi/XI/AS2/AS2", "AS2Filename");
    DynamicConfigurationKey key_FileNmae = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File", "FileName");
    String As2FileName=conf.get(key_AS2FileNmae);
    conf.put(key_FileNmae, As2FileName);
    try{
    byte b[]=new byte[in.getInputPayload().getInputStream().available()];
    in.getInputPayload().getInputStream().read(b);
    out.getOutputPayload().getOutputStream().write(b);
    catch(Exception e)
    2. Another solution we can use the graphical mapping and need to use the dynamic config UDF at mapping level to acheive this requirement but here is one drawback - we need to do content conversion is this case.
    In case of Java mapping, no need to play with source file.
    WITHOUT USING ESR, WE CAN NOT ACHEIVE THIS REQUIREMENT.
    Regards,
    Pradeep Bawlia

  • Dynamic Filename in Fileadapter

    Hi all,
    I like to use the new feature (SP15) of the "Adapter Specific Message Properties" but with out success. I have read Michaels Blog "XI: The same filename from a sender to a receiver file adapter - SP14" but it give me not a clue how to use these properties during the normal receiver configuration and also the manual is not very clear about it. I have set a Variable with "FileName    message:FileName" (I have tried also "message:File_Name") Than I have used this filename Variable in the field "Filename Schema" like %FileName%. But I allways got this error: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: Unknown message header category 'FileName' for variable 'FileName'.
    What have I missed out here?
    Thankx
    Manfred Schmidt-Voigt

    Hi Manfred,
    The dynamic filename generation concept is as follows.
    In your filename field. just give a variable with % symbols. (eg: %file% ).
    Now, under the option Variable Name Substitution, you can give how the value has to be created.
    It can be your interface name, sender service name, etc or it can be some value dynamically from your payload.
    For the former, your give
    message:interface_name ,etc
    and for the payload part you give,
    Payload: "your element root which u wanna acecss"
    Just check this link out,
    http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm
    And read the contents under variable substitution and it will help you understand the concepts better.
    If you have any clarifications, do get back,
    Regards,
    Bhavesh

  • Dynamic filename in XI

    Hi,
    In XI SP12 is possible to use dynamic filename? I need to generate a filename in Adapter using the content of an element in message, how I do it?
    thanks.

    Hi Elton,
    The dynamic filename generation concept is as follows.
    In your filename field. just give a variable with % symbols. (eg: %file% ).
    Now, under the option Variable Name Substitution, you can give how the value has to be created.
    It can be your interface name, sender service name, etc or it can be some value dynamically from your payload.
    For the former, your give
    message:interface_name ,etc
    and for the payload part you give,
    Payload: "your element root which u wanna acecss"
    Just check this link out,
    http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm
    And read the contents under variable substitution and it will help you understand the concepts better.
    If you have any clarifications, do get back,
    Regards,
    Bhavesh

  • How to acces the filename from Message Header during variable substitution

    Hi,
    We need to access the attribute filename from Message Header during Variable Substitution.We are able to access the following attributes of Message Header
    sender_party, sender_service, receiver_party, receiver_service, interface_name, interface_namespace,
    message_id (message ID with hyphens, for example 9fbe1ff1-9a0d-11d9-8665-cbf10a126331)
    message_id_hex (message ID in hexadecimal format, for example 9fbe1ff19a0d11d98665cbf10a126331)
    For example, if we want to specify the interface name from the message header in the target directory or in the file name scheme, we enter message:interface_name as the reference.
    In the same way i need to access the filename which we get in the Message Header(which we get in the Message Header when we check the Adaptor specific message properties and filename in sender CC).Any suggestions on the same
    Thanks and Regards,
    Bhargav
    Message was edited by:
            bhargav gundabolu
    Message was edited by:
            bhargav gundabolu

    Hi Bhargav,
    Use this UDF to retreive the file name from the Dynamic Configuration Payload in the mapping.
    getFileName(UDF) -
    > Filename(node in the target structure).
    public String getFileName(Container container)
       //write your code here
    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; 
    Create a node in the target structure top hold the filename returned by the UDF.
    Now your payload will have the filename along with the actual data.
    U can use the variable substution now as u use for the other data in the payload since the filename is now a part of your payload.
    Regards
    San

Maybe you are looking for

  • Need help with watching DVD-R from dubbed VHS

    For some reason when I try to play a DVD-r that I recorded from a VHS tape, it will not play.  I get the message that the disc is empty and yet I know it is not because it will play in the DVD player

  • Can't remember keychain password - help!

    I ran the latest software updates on my six month old MBPro, then got a message that I needed to enter my keychain password. After many attempts, and then finally telling the computer to restore the keychain to its original settings, I now can't acce

  • FI-COPA Links

    Hi, I have returned to look into this again and was wondering if any one could help find the links between FI and COPA again. Can some one tell me if these links are possible to find out and how. Any help on CO-PA would be great. For example a COPA f

  • Step by step screen shots fro APO and SRM, CRM , SCM extractions.

    hi friends, can i get step by step screen shots fro APO and SRM, CRM , SCM extractions. Thanking u suneel.

  • Extract the messaje from an exception

    Hello, When an exception is raised, i insert in the audit table the error         err_msg := substr(sqlerrm, 1, 200);         update cr15394_1 set [...], error = err_msg where id_client = r.id_client; [...]The error looks like: ORA-20100: <PSCON_SCT_