File adapter: Variables in OS command

Hi All,
Is it possible to put variable (from variable substitution) into OS command line? I need to create a specific filename, that issues from its payload. But substitution doesn't work - filename appears with percentage symbols and var names.
Thank you.

Guys,
Let me explain situation in details.
I have on source message split into several target messages. Then these messages are written as xml files. Finally, these files should be packed into zip archive, and zip archive should be named according to payload values.
In this scenario I can't use payloadzipbean - it creates many archives for each final message, while I need many in one. That's why I've decided to use os command to archive files:
jar -cvf pack_%var1%_%var2%.zip file_xml*
And it works, but at the end archive's name is pack_%var1%_%var2%.zip.
So, I know how variable substitution works, and how os command does... I just need to know if their collaboration is possible...

Similar Messages

  • Change status(Active/Inactive) of file adapter by the external command

    Hi, all.
      Is it possible to change status(Active/Inactive) of file adapter by the external command?
      Let's say, like
      "$ switch_file_adapter_status.sh <File Adapter name> <active|inactive>"
    or something like that.
      Actually, we have the following requirement for the file adapter.
      For example, we have many "file adapter to R/3" scenarios and we only want to allow data transfer between 9:00 a.m. to 9:00 p.m.(R/3 service time).
      In order to achieve this requirement, one option would be to switch file adapter status between active and inactive by external command line.
    And this command will be controlled by the job scheduler(like Tivoli).
      Does XI(3.0 or above) have this kind of feature?
      Best Regards.

    Hi,
    I don't think that this is possible.
    But one Solution for your problem could be a job on xi who execute the Queue.
    So that Adapter work the hole time and send the Message to XI Queue which process them not automatically.
    And the XI Queue you can trigger with a Job like normal R/3 Jobs.
    Hope that helps,
    Regards,
    Robin

  • Receiver File Adapter:Variable substitution :FATAL  ERROR

    HI all
    as per the previous thread :
    <b>Receiver File Name Variable Substitution :payload: Fatal Error
    in our idoc to file sceanrio, we are using simple <b>graphical mapping.</b>
    for dynamic file name , variable field is at <b>Target message type</b>,So  on using <b>Variable substitution</b>, again the error is same :
    SAXException while parsing XML payload: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XMLParser: No data allowed here: (hex) .
    <b>Our XI  Component version : 2004
    WAS 6.4 SP 15</b>
    Thanks
    AR

    Ashutosh,
       There is nothing to do with your mapping programs. Its the mistake in ur reciever file adapter configuration for variable substitution.I asked u whether u changed message mapping in order to implement the UDF!!
    Did u tried checking the audit log. Ok just to see where u are going wrong, instead of using Payload :... in Variable substitution use Message:..... and give some interface name so that to check whether the file is created with Interface name.
    Juz give a try!!!
    Best regards
    raj.

  • Receiver File Adapter Not Executing OS Command

    Hello All!
    We are currently running PI 7.1 and wish to use a Receiver File Adapter to FTP a file to a mainframe and override the FTP system defaults.
    Tried using the 'quote site recfm=fb lrecl=80' OS command but discovered that this would not work as the Adapter Engine is NOT on the mainframe.
    Regrouped a bit and made a second attempt which involved writing a Unix script to ftp a file and override rthe system defaults.   The idea was to use the File Adapter to FTP the data to the server, invoke the script and get the file to the mainframe with the proper attributes.    The script when executed on the server works perfectly.   
    However, when the IDoc comes thru PI, the File Adapter ftp's the file ok but the script is never executed.
    Any ideas why this is so or any suggestions?    
    Thank you.

    Hi Ken,
    Script only executes at Network File sharing (NFS) only. It dont work at FTP level.
    So you can better write the file on NFS and then within the script to connect to ftp and do your processing.
    Regards,
    ---Satish

  • File-Adapter: Variable substitution form payload XML-attribute

    Hi experts,
    is possible to use XML-attribute-content for variable substitution in file-Adapter?
    extract from XML:
    <?xml version="1.0" encoding="utf-8" ?>
    - <all>
    - <transaction <b>file="filename"</b>>
    - <table name="BPAADDRESS" options="insertIfUpdateFails">
    - <record id="1">
      <hkeycol name="BPAMAINHKEY">0010500345</hkeycol>
      <hkeycol name="USAGE">Invoice</hkeycol>
      </transaction>
    I want to get the value "filename" = attribute file of transaction.
    Is this possible?
    Thanks a lot,
    Florian

    I have done this taking a field from the XML.
    You have to map the location of the field within the XML...
    Taken from:
    http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm
    Variable Substitution (Target Directory/File Name Scheme)
    If you set the Enable indicator, you can enter variables for the Target Directory and File Name Scheme. Enter the names of the variables and references in the table.
    &#9679;      Enter each variable that you reference in the Target Directory and File Name Scheme fields without the surrounding percentage sign under Name of Variables in the table.
    The variables can refer to attributes of the message header or elements of the message payload.
    &#9675;       If the variables are to refer to an attribute of the message header, add the prefix message: to the name of the variable under Reference. You can specify the following attributes of the 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 you want to specify the interface name from the message header in the target directory or in the file name scheme, enter message:interface_name as the reference.
    If one of the message attributes contains characters that are not permitted in a file name, for example \, /, :, *, ?, ", <, >, |, then these characters are replaced by an underscore ("_").
    &#9675;       If the variable refers to an element in XML schema, add the prefix payload: to the information under Reference. The reference then comprises a pseudo path description in the form of a comma-separated list with the schema namea,na,nameb,nb,....
    namea,nameb,... corresponds to the element name and na,nb,... corresponds to the occurrence of the element name at the respective level in the document.
    The description begins at the root of the document and ends at the respective element.
    To reference the element that is in bold in the example, the following expression is used: payload:root,1,e1,1,e2,2
    The parser searches for the first occurrence of the root element at the first level. It then searches for the first occurrence of e1 at the second level and for the second occurrence of e2 at the third level. The content of the last element (“Example Value”) is set as the value for a specified variable.
    <?xml version="1.0" encoding="UTF-8" ?>
    <root>
      <dummy>
         <e1>
            <e2>Data_1</e2>
            <f/>
            <g attr="abc">text</g>
            <e2>Data_2</e2>
         </e1>
      </dummy>
      <e1>
         <e2>illegal/value</e2>
         <f/>
         <g attr="abc">text</g>
         <e2 attr="fghij">Example Value</e2>
      </e1>
    </root>
    &#9679;      To disable the check the adapter performs for the element data, set the Disable Security Checks indicator.
    Otherwise, the adapter checks whether the element data contains characters that could lead to security risks in the file system environment. The check includes the characters “/“, “\“, and “..“.

  • File adapter - Variable Substitution

    Hi all,
    I’m trying to use Variable Substitution functionality in my receiver file adapter. The objective is: During process message XI read the payload of an xml message and picks the value of tag <ORIGEM> coming with the File Name and do the substitution of File Name Schema of receiver file adapter.
    This is what I have donned in the configuration of receiver file adapter:
    File Name Schema: <b>R3%var1%.xml</b> (file construction mode: Add Time Stamp)
    Variable Substitution: <b>Enable</b>
    Variable name: <b>var1</b>     
    Reference: <b>payload:nr1:IfContabilizacao_Source_Log,1,INFO_CONTROLO,1,ORIGEM,1</b>
    The XML Message:
    <?xml version="1.0" encoding="utf-8"?>
      <nr1:IfContabilizacao_Source_Log
    xmlns:nr1="http://xi/XI/InterfaceContabilistico">
        <INFO_CONTROLO>
          <ORIGEM>TESTE</ORIGEM>
          <DESTINO>This is a string 2</DESTINO>
          <IDENTIFICACAO>This is a string 3</IDENTIFICACAO>
          <DATA>1999-01-24</DATA>
          <VERSAO>This is a string 4</VERSAO>
        </INFO_CONTROLO>
        <INFO_DADOS>
          <HEADER_DOCUMENTO>
            <BLDAT>1999-01-24</BLDAT>
            <BLART>C</BLART>
            <BUKRS>C</BUKRS>
            <BUDAT>1999-01-24</BUDAT>
        </INFO_DADOS>
      </nr1:IfContabilizacao_Source_Log>
    When I execute the process both sxmb_moni flags are ok! But in the adapter monitoring I receive this error message:
    2005-12-20 10:51:25 WET: Message processing failed: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: var1
    Var1 is the name that I have defined in variable name! Is wrong? Anybody see something wrong in this configuration or something in reference payload of  tags hierarchy… I think that I have checked all…
    Thanks in advance,
    Ricardo.

    Renjith,
    Adapter monitoring continues with this error mesage: VariableDataSourceException: The following variable was not found in the message payload: var1
    This error means that the reference showed bellow have something wrong! But I can't see where is the error!!!
    payload:IfContabilizacao_Source_Log,1,INFO_CONTROLO,1,ORIGEM,1
    Anybody see where is the error of my reference, or any other idea?
    Thanks in advance,
    Ricardo.
    Message was edited by: Ricardo  Quintino

  • PI File Adapter variable substitution

    Hi everybody,
    I do have the following message:
    <?xml version="1.0" encoding="utf-8"?>
    <ns:MT_FileIn_Budget xmlns:ns="urn:rlp.de:test:budgeting">
         <BudgetRecord>
              <Monat>Pa</Monat>
              <Jahr>b_Lie</Jahr>
                                               ................. etc.
    I want to extract the "Monat"  variable in the Receiver File Adapter as a substitution variable in the "Advanced" Tab  in the
    Receiver File Adapter configuration.
    I have the following value in the Substitution table :
    var1     payload:BudgetRecord,1,Monat,1
    (and then use var1 in the filename)
    If I use Header Mapping instead , everythings works.
    Any ideas? something misspelled?
    cheers hs

    Hi Michael,
    maybe you can clarify a better solution for my problem:
    The reason why I am using variable substitution is, that I am not using graphical mapping here.
    I am using a XSLT style sheet translation (PI 7.11) as a mapping step. 
    I need to set the file name depending on the operation mapping.
    For every specific situation (about 10) , there is one OM. This OM (XSLT, no SAP Graphical Mapping) should set a specfic filename.  for every specific situation there is an integration scenario with the specific OM.
    The Business Component with one comm channel should only be there once (we don't want 10 communication channels)
    Do you have a recommendation ?
    thx
    hs

  • How to configure File Adapter along with OS command option

    Hello,
    I want to configure a scenario using File Adapter with OS command option.
    How to use that option in channel configuration of File Adapter.
    What is the default path where it is actually runs this OS command?
    Thanks,
    Soorya

    >
    surya venkat wrote:
    > Hello,
    > I want to configure a scenario using File Adapter with OS command option.
    > How to use that option in channel configuration of File Adapter.
    There are two ways to use the Os command in the file adapter.
    Lets talk about the sender File Adapter.
    First: Run operative system Before Message Processing
    Whenever any operation needs to be performed uppon the source file Just before XI picks it up.
    e.g. Calculate any hash code, backup the file to a given location, create a log at os level, etc...
    ... After Message Processing
    After Xi has processed the message, you can trigger a new os level command:
    e.g. Trigger a mail, check if the archiving was successful, etc.
    > What is the default path where it is actually runs this OS command?
    >
    Theres no default path, you assign the desired path in the Comm Channel configuration.
    > Thanks,
    > Soorya
    I hope it helps.

  • Mainframe Integration using File Adapter (FTP Mode):: ftp commands

    Hi,
    We are trying to integrate with Mainframe system using File Adapter. (FTP mode). We are able to write the file to Mainframe system but not able to format it properly. We had to provide FTP parameter,  <b>ftp.quote site recfm=fb lrecl=150</b>
    As per SAP Note 801926 :: XI 3.0 File Adapter: Additional Parameters, the only parameter that can be used is <b>ftp.timeout</b>. Has anyone tried out using other FTP parameters? (like ftp.quote)
    Any help is grealy appreciated.
    Regards,
    Siva Maranani

    I am looking at running some OS commands especially the QUOTE SITE FILENAME, and found this OSS note:
    https://service.sap.com/sap/support/notes/841704
    In this note it says...
    "Note that for the File Adapter transport protocol "FTP", the operating system command is NOT executed on the FTP server, but on the server hosting the Adapter Engine."

  • File Adapter Variable structure Issue

    I have a requirement where i get a flat file in the format mentioned below:
    01,1218324735,73038740,021205,0601,464,80,1/
    02,73099000,12100035,1,021204,2359,/
    03,12998877650,USD,010,0,015,0,020,0,040,0,045,0,050,0,057,0,072,0,074,0/
    88,075,0,079,0,080,0,100,48930701,110,48930701,400,48930701,570,48930701/
    16,115,48930701,S,0,0,48930701,00051100896,0074014000,/
    16,577,48930701,,00722103104,1233333649/
    88,XXX TO 1233333649
    49,293584206/
    03,12332342319,USD,010,0,015,0,020,0,040,0,045,0,050,0,057,0,072,0,074,0/
    88,075,0,079,0,080,0,100,0,400,0/
    49,0/
    03,1233233772,USD,010,21311449,015,1255572,020,23673363,040,1255572/
    88,045,200000,050,190464,057,0,072,1055572,074,0,075,0,079,0,080,0,100,0/
    88,400,20055877,490,20055877/
    16,508,20055877,,00370004755,/
    88,XXX:021204004755
    88,ZZZ ZZ YYYYZ
    49,109109623/
    98,23827387079,3/
    99,754273628739,4,203/
    The description of the above file:
    Example 1 – List of multiple groups within a file and multiple accounts within a group:
    01 FILE HEADER Begins File
    02 GROUP HEADER Begins First Group
    03 ACCOUNT IDENTIFIER First Account
    16 TRANSACTION DETAIL First Account Detail
    49 ACCOUNT TRAILER Ends First Account
    03 ACCOUNT IDENTIFIER Second Account
    49 ACCOUNT TRAILER Ends Second Account
    98 GROUP TRAILER Ends First Group
    02 GROUP HEADER Begins Second Group
    03 ACCOUNT IDENTIFIER Begins Third Account
    88 CONTINUATION Continues Previous
    49 ACCOUNT TRAILER Ends Third Account
    98 GROUP TRAILER Ends Second Group
    99 FILE TRAILER Ends File
    How to read this kind of variable structure file in File Content Conversion?
    What kind of parameters should i configure in the content conversion parameters?
    Should i use user defined functions otherwise?
    Thanks for your help in advance.
    Regards
    Sudha

    Hi Sudha,
    Please do these in content conversion:
    Your structure which contains these fields
    Take paramater like this:
    <Structure>.fieldNames = allfields separated by commas
    <Structure>.fieldSeparator = ,
    <Structure>.endSeparator = '\n' means newline
    <Parent of this Structure>.endSeparator = '\n'
    use all field names in 1 variable whether they are being used in mapping or not.
    Reward with points if helpful.
    BR,
    Alok

  • Sender File Adapter does not get files when there is a large number ( 300)

    We are on XI 7.0 (SAPKB70015)
    We have an issue picking up a large number of files from a particular server. We are trying to pickup the files based on a wildcard e.g. test
    - we can retreive up to 200 files from the same server (using the same config) no problem
    - we can pull lots of files (>3000) files from other servers (using the same config) no problem
    - we can write an mget command (mget test) to reteive the files no problem
    So the only issue is retrieving a large number of files from a parfticular server. We see no errors in the RWB.
    To get this sorted out we need to find the exact commmands that XI executes to attempt to retrieve the files. Can anyone point me in the right direction on how to find this.
    Thanks
    Richard

    It turned out that this was caused by a limitation on the ftp server.
    The file adapter uses the dir command to get a listing of the files matching a specific mask. The dir command does not return any files if there are a large number (the ls command works fine but the file adapter uses dir instead of ls).
    sap told me that 'According to this FTP server is no compliant with RFC 959 and that is
    why DIR command returns an error.'
    We were able to get this resolved by applying a patch on the ftp server.
    Thanks
    Richard

  • Message traceability in PI - File Adapter

    Hi Experts,
    I have a Idoc to FTP scenario. Idocs are sent from SAP R/3 to PI where they are converted to file format and saved. Another communication channel reads these files one by one and sends them to an FTP folder.
    Now my question is, how will I trace/find the message which was generated by the second channel if I have Idoc number?
    Thanks,
    Netrey

    You can use variable substitution and you can name the file on the basis of Idoc number through dynamic configuration
    By this way the file name will be that of the IDoc number through which it is generated
    http://help.sap.com/saphelp_nwpi711/helpdata/en/44/6830e67f2a6d12e10000000a1553f6/content.htm
    PI File Adapter variable substitution
    regards
    Ninad

  • Calling unix scripts in File Adapter

    All,
    we have a script recindicator.sh in the root of the unix server. This script take 1 parameter.
    In the File adapter - "Run Operatning System Command After Message Processing" - we put the following,
    recindicator.sh %f
    we see the adapter working, but we are not seeing the effects of the script which is supposed to create 2 different files.
    Can we run scripts in the "Run Operatning System Command After Message Processing" ? If yes, what is wrong with our configuration?
    When we run the script directly on the server, with the parameter - it is working. so no issue in the script.
    Thanks,

    Hi,
    Yes, the script is in XI server. we tried with %F also, it is not working.
    At what directory level is the command that we give in the configuration run? is it in the root? or some other SAP folder like - "/SAP/user/..."?
    Thanks.

  • Using a variable in "arrayTerminatedBy" clause while using a file adapter

    Hi All,
    How can read a file of sample shown below using a file adapter.
    ABC|20081010|
    2008|xxxxxxx|
    2007|yyyy|
    2009|zzzzzzz|
    3|20081010|
    first line is the header
    last line is footer
    middle portion is the body
    '3' in the footer is the total no of record count in the body
    I am able to read the header and body.
    The problem i am facing is; when it is reading the footer it is treating the footer as a record in the body and is throwing an error stating - expected the format as "yyyy"
    I have to use "arrayTerminatedBy" to indicate the end of the body. But that terminating field is a varying field. How can i use this variable field in the "arrayTerminatedBy" clause.
    Can any one help in reading this file
    Thanks in advance
    Edited by: user10308218 on 11-Oct-2008 02:23
    Edited by: user10308218 on 11-Oct-2008 02:24

    See if this helps, I haven't tested it but it will give you a hint in how to achieve it. As you can see I use the startsWith command. I'm not sure how to handle your detail as it seems to start with different elements every time.
    cheers
    James
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    targetNamespace="http://TargetNamespace.com/Write_File"
    xmlns:tns="http://TargetNamespace.com/Read_File"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified" nxsd:encoding="ASCII" nxsd:stream="chars" nxsd:version="NXSD">
    <xsd:element name="FileRecord">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Header" nxsd:startsWith="ABC|" maxOccurs="1">
    <xsd:complexType>
    <xsd:sequence nxsd:style="array" nxsd:arrayTerminatedBy="${eol}">
    <xsd:element name="FileDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;"/>
    <xsd:element name="Record" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence nxsd:style="array" nxsd:arrayTerminatedBy="${eol}">
    <xsd:element name="DetailData1" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy="&quot;"/>
    <xsd:element name="DetailData2" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;"/>
    <xsd:element name="Footer" nxsd:startsWith="3|" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence nxsd:style="array" nxsd:arrayTerminatedBy="${eol}">
    <xsd:element name="FooterData" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>

  • File Adapter: Run OS command unix after processing message

    Hi,
    in file adapter configuaration, after processing message, I've configured the channel that it has to call an unix script.
    The sintax in configuration is:
    sh /XS0/usr/sap/XS0/DVEBMGS01/work/TEST_FILE_XI/OUT/rename_lib_contabili.sh <variable>.
    I tried also without the entire path and without the sh command at start of it.
    We have a XI 3.0 sp20.
    I don't understand, What other I have to do.
    Regards,
    Antonello

    Hi Carme,
    I found a warning that "describes" the error...
    2009-09-29 13:36:15     Success     Write to file "/XS0/usr/sap/XS0/DVEBMGS01/work/TEST_FILE_XI/OUT/LIBROGIORNALE_test_mov.zip" as binary, size 7248 bytes
    2009-09-29 13:36:15     Success     Execute OS command "/home/xs0adm/scripts/rename_lib_contabili.sh LIBROGIORNALE_test_mov.zip"
    2009-09-29 13:36:15     Warning     Error when executing OS command "/home/xs0adm/scripts/rename_lib_contabili.sh LIBROGIORNALE_test_mov.zip"
    2009-09-29 13:36:15     Success     File processing complete
    2009-09-29 13:36:15     Success     MP: Leaving module processor
    2009-09-29 13:36:15     Success     The message was successfully delivered to the application using connection
    File_http://sap.com/xi/XI/System.
    2009-09-29 13:36:15     Success     The message status set to DLVD.
    if I try to execute this script from Unix schell or ABAP OS shell this working fine.
    You have any idea?!
    Thanks,
    Antonello

Maybe you are looking for

  • MacBook Air keyboard problems

    Hi, I've got a mid-2013 MBA with 1.7Ghz i7 processor. I tried using an Apple bluetooth keyboard with the MBA connected to a TV. This worked fine, but when I went back to using the MBA's native keyboard, there were functions that disappeared, for inst

  • Laptop taking really long time to restart after battery drain

    Last night I had a weird experience with my mid-2011 MacBook Pro; I went out to dinner and came back to find the cat had kicked the power cord out, draining the battery. I've had this happen before and wasn't too worried; it's always just restarted a

  • Please provide me unix shell script (export and import of database schema)

    please i am new in unix \please give me sample unix shell script (export and import of database schema)

  • B.w analyst job

    Hello Gurus.. i'm new to B.W recently i ve been shortlisted for an interview for B.P as a B.W Analyst..my roles areas shown below..so could anyone guide me as to wht part of b.w i should concentrate n work..and wht should i expect at workplace....thx

  • What is a good download speed for IPad?

    I am curious because I am reading about wifi issues and I'm using a Fios Actiontec router with bars constantly going from three to one bar. So far I have been getting around 10 mpbs download. Is that decent? (Using Speedtest.net Ipad app)