Variable substitution do not function

Hello All,
I have a problem to implement dynamique variable in my scenarii
I read many blogs but I did not find the solution.
I create a very simple configuration abap proxy to file.
My goal is to create my file name with a message_id
in Advanced
under Variable Name :        var2
under Reference :               message:message_id
I also selected in Advanced
Use Adapter-Specific Message Attributes
Fail If Adapter-specific Message Attributes Missing
File Name
in my target
Target directory :        E:\XI\out\wjb
File Name scheme :   test%var2%
The message is sent in abap proxy (ERP system) and received in file adapter (NFS) (PI System, 7.0 SP16)  who normally creates a file.
The message appears in sxmb_moni (status processed successfully in ERP and PI) BUT the file is not created !!!!
Thanks in advance
Regards

indeed i have a problem with my receiver (file adapt) CC
Message processing failed.
Cause: com.sap.aii.af.ra.ms.api.RecoverableException: The Adapter Message Property 'FileName' was configured as mandatory element, but there is no 'DynamicConfiguration' element in the XI Message header: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: The Adapter Message Property 'FileName' was configured as mandatory element, but there is no 'DynamicConfiguration' element in the XI Message header
thanks
Edited by: Nor Goudjil on Dec 17, 2008 8:43 PM

Similar Messages

  • Variable Substitution does not work

    I am trying to use Variable Substitution to dynamically generate the filename but it doesnot work.
    Below is the info on my communication channel
    Adapter type: File
    Transport protocol: NFS
    Target directory: /usr/test
    File Name Schema: %var1%.txt
    Enabled the Variable Substitution:
    var1     payload:MT_MLS_IN,1,line,1
    Here is my payload:
    <nr1:MT_MLS_IN xmlns:nr1="http://mls-clientproxies">
      <line>testing</line>
      </nr1:MT_MLS_IN>
    Am I missing something? Why isnt it writing the file to the filesystem?
    Any help is very much appreciated.
    Thank you
    MLS

    HI
    Enabled the Variable Substitution:
    var1     payload:MT_MLS_IN,1,line,1
    Here is my payload:
    <nr1:MT_MLS_IN xmlns:nr1="http://mls-clientproxies">
    <line>testing</line>
    </nr1:MT_MLS_IN>
    is MT_MLS_IN and line at same level if so
    then define payload:line,1 only
    if they are in hierarchy then you need to do the above.
    Thanks
    Gaurav

  • Error file adapter with variable substitution in PI 7.31

    Hello,
    I'm trying to create a file with a dynamic name, based on the payload of the message.
    We're trying to create a filename with the bold content in the name %batchId%.xml. The subtitution we use is
    payload:batch,1,batch-info,1,id,1
    <ns1:batch xmlns:ns1="http://www.atosworldline.com/archivingPortal/receivers">
    - <ns1:batch-info id="test" isTest="true"> 
    <ns2:sender-identifier xmlns:ns2="http://www.atosworldline.com/archivingPortal/batchInfo">String 2</ns2:sender-identifier>  
    <ns2:nb-elements xmlns:ns2="http://www.atosworldline.com/archivingPortal/batchInfo">3</ns2:nb-elements>  
    <ns2:batch-integration-mode xmlns:ns2="http://www.atosworldline.com/archivingPortal/batchInfo">String 4</ns2:batch-integration-mode>  
    <ns2:creation-datetime xmlns:ns2="http://www.atosworldline.com/archivingPortal/batchInfo">1999-05-31T13:20:00Z</ns2:creation-datetime>  
    </ns1:batch-info>
    - <ns1:receivers> 
    - <ns1:receiver> 
    <ns1:id>String 5</ns1:id>  
    <ns1:action>String 6</ns1:action>  
    <ns1:contact-details />  
    - <ns1:tokenSets> 
    - <ns1:tokenSet startDate="1999-05-31T13:20:00Z" endDate="1999-05-31T13:20:00Z"> 
    - <ns1:token> 
    <ns1:tokenvalue>String 7</ns1:tokenvalue>  
    </ns1:token>
    - <ns1:token> 
    <ns1:tokenvalue>String 9</ns1:tokenvalue>  
    </ns1:token>
    </ns1:tokenSet>
    - <ns1:tokenSet startDate="1999-05-31T13:20:00Z" endDate="1999-05-31T13:20:00Z"> 
    - <ns1:token> 
    <ns1:tokenvalue>String 11</ns1:tokenvalue>  
    </ns1:token>
    - <ns1:token> 
    <ns1:tokenvalue>String 13</ns1:tokenvalue>  
    </ns1:token>
    </ns1:tokenSet>
    </ns1:tokenSets>
    </ns1:receiver>
    </ns1:receivers>
    </ns1:batch>
    The following error is shown, when processing the message through the receiving fileadapter.
    MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: batchId
    kind regards,
    Pieter

    AFAIK - Variable substitution does not support attributes. It only support the elements. (- <ns1:batch-info id="test" isTest="true">)
    May be you can go with dynamic configuration instead of variable substitution.

  • Require variable substitution

    Hi Experts,
    We are passing the file name  as P160511_0001.txt within input field (input field name is File_Name)itself. the same output we want as P160511_0001.txt using variable substitution.please find the pay load message given below.
    <?xml version="1.0" encoding="utf-8" ?>
    - <n0:MT_PositivePaycheque xmlns:n0="urn:logica.com/pi/positivepaycheque" xmlns:prx="urn:sap.com:proxy:ERD:/1SAI/TAS920370786C5BED94B7F7:701:2010/02/19">
    - <RecordSet>
    - <Header>
      <Header_Description>UHL</Header_Description>
      <Description>PositivePay</Description>
      <Reference>R11NOT</Reference>
      <Issued_date>15JUN10</Issued_date>
      <File_Name>P160511_0001.txt</File_Name>
      </Header>
    - <Line>
      <KeyHouseBank>089074</KeyHouseBank>
      <IDAccount>61140019</IDAccount>
    Kindly give the step by step proceedure for creating variable substitution.
    regards
    elton

    reference: payload:Header,1,File_Name,5
    File_Name is the 5 th field name
    it should not be treated as position of the field in your XML....it is the number of occrence...as per your setting the file name should be taked from 5th occurence of File_Name....however this wont be the case....you need it from the only occurence present
    So it should be Header,1,File_Name,1
    below details are selected
    adapter specific message attribute
    file name
    You dont need to set the above as you are using Variable Substitution and not ASMA....these are two different things
    Why not implement Dynamic Configuration? Dont you have mapping in your scenario?

  • Variable substitution not working for dynamic file name in Receiver File CC

    Hi Experts,
    I am doing the scenario of Proxy sender to File receiver and my purpose is to Create the text file
    as per the filename available in Source Message payload.
    I am using the Variable Substitution method for this as shown below.
    Source Message Structure:-
         <Row>            -
    having Cocurence 1.1
             <Filename>     -
    having Cocurence 1.1
             <Item>            -
    having Cocurence 1.Unbounded
              <Field1>
              <field2>
             <Item>
             <Item>
              <Field1>
              <field2>
                <Item>        
         <Row>
    Target structure is same as the source structure and i have mapped the Filename field of the Source
    with the Target structure Filename.
    In ID the following is the File receiver CC Configuration.
    File Name Scheme:- %Dyn_filename%
    In Advance tab, I have selected the Enable option and added one row as Variable name %Dyn_filename%
    and Reference as payload:Row,1,Filename,1
    In testing I am getting the Error as 'variable Dyn_filename is not found in Message payload'.
    Please suggest me.
    Regards,
    Jagesh

    Hi Pooja,
    Hi Pooja,
    Thanks for your valuable reply..
    I  tried with the same. but still Filename is appearing in Output file.Giving you some details regarding my Receiver File Configuration settings.
    Target Message Type:-
              <MT_Target_Struct>
                    <Row>----
    1.1 occurence
                            <Filename_test>----
    1.1 occurence
                            <ITEM>----
    1.unbounded occurence
                                  <Field1>
                                  <Field2>
                            <ITEM>
                            <ITEM>
                                  <Field1>
                                  <Field2>
                            <ITEM>
                    <Row>
              <MT_Target_Struct>
    Recordset structure:-  Row,Filename_test,ITEM
    Row.fieldSeparator----
    >'nl'
    Filename_test.fieldFixedLengths----
    >0  (Zero)
    Filename_test.fixedLengthTooShortHandling----
    >Cut
    ITEM.fieldSeparator----
    >,
    ITEM.endSeparator----
    >'nl'
    I want only ITEM node to be written in the output file.
    Please suggest.
    Regards,
    Jagesh

  • Error: Variable not found in variable substitution table

    Hi,
    I am getting following error in file adapter receiver communication channel.
    error:Could not process due to error: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: Error during variable substitution: java.text.ParseException: Variable 'file' not found in variable substitution table
    <b>variable substitution values:</b>
    Variable name: File
    reference       :payload:MT_DC_Recr,1,Target,1,Filename,1
    file name scheme : %File%.txt
    <b>inpu file:</b>
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_DC_Send xmlns:ns0="http://urn:psr/ff/DC">
       <Source>
          <Filename>dat1</Filename>
          <Record>
             <Name1>123</Name1>
             <Name2>abc</Name2>
             <Name3>XYZ</Name3>
          </Record>
       </Source>
    </ns0:MT_DC_Send>
    Regards,
    Srini

    Hi varun,
    This is the error i am getting now..
    Could not process due to error: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: File
    what i am trying to get is reading filename from the message payload.
    Reg,
    Srini

  • Variable Substitution not working when using ABAP mapping

    Hi all,
    I am doing an IDoc to File scenario.
    Due to some complex mapping requirements, i had to use ABAP mapping for IDoc to File ( IDoc : SHPMNT05)
    There is also one more requirement where in i need to generate the receiver filename dynamically
    i.e the filename is of the form :     
        GW-XYZ-DD/MM/YYYY.csv
    Where
    XYZ is the Shipment number (E1EDT20- TKNUM)
    DD/MM/YYYY is the IDOC creation date in ECC (EDIDC-CREDAT)
    so i used the variable substitution option in receiver file adapter.
    But its not working.
    Is there any limitation for using the variable Substitution, doesnt variable substitution work in case of ABAP mapping?
    Regards,
    Loveena.

    Hi,
      u written ABAP mapping program to get the file name in the required format ,
    is it rt?
    when u test it at message mapping(including ABAP map program)
    u get the the required format of file name in the one of target filed.
    if that was fine, please check the variable substituiton parameters at receiver file adapter.
    i mean, are u maintain variable name and refernece.
    u have to specify the payload information.
    warm regards
    mahesh.

  • Variable substitution not working properly

    Hi,
    I am using variable substitution method for creating receiver file name but file is being created with a different name,not as expected .
    what may be the reason for this .??
    Thanks ,
    rohit

    Hi,
    It may help you.
    http://help.sap.com/saphelp_nw04/helpdata/en/8f/106d42ab7fd142e10000000a1550b0/content.htm
    Thanks,
    Vijaya.

  • Variable Substitution not working correctly?!

    Hello all,
    perhaps some of you faced the same problem. It depends on the variable substitution in XI (PI).
    We have got an IDOC - FILE szenario. As far everything is working fine. The XML is created correctly.
    Now we want to get two fields from the payload to use both in our receiver file adapter as filename.
    The IDOC is a standard ORDRSP.ORDERS05.
    (1) The first field is the "job number" and located in the IDOC element: E1EDK01
    (2) The second field ist the "purchase order number" and located in the IDOC element: E1EDK02
    The fields are both named BELNR (and here seems to be a problem).
    To use the variable substitution we did as it is described in help.sap.com and used the following path to get the variables from the payload:
    (1) variable name: aufnr  ;  reference: payload:ORDERS05,1,IDOC,1,E1EDK01,1,BELNR,1
    (2) variable name: bstnr  ;  reference: payload:ORDERS05,1,IDOC,1,E1EDK02,1,BELNR,1
    these two variables "aufnr" and "bstnr" we want to use in our filenameschema. So we wrote the following for the schema:
    Ordrsp_%aufnr%_%bstnr%.xml
    The effect is that both variables always contain the same value, the value of "bstnr".
    Strange is that, if we delete one substitution i.e. (2) "aufnr" contains the correct payload value. It seems he overwrites the value of "aufnr" with the value of "bstnr" because of the same name in the IDOC structure (BELNR).
    Has anyone any idea what to do?
    Many thanks and kind regards,
    Steven
    PS: Of course points will be rewarded for helpfull answers. :o)

    Thank you for your answers!
    But there are several Problems using a dummy field in an IDOC structure. We have got a naming convension so that we can't create an IDOC-like structure named ORDRSP.ORDERS05.
    But perhaps I am thinking to complex and there is an easier way to add a dummy field to an IDOC structure.
    Could you perhaps also suggest a solution for that dummy field problem?
    Many thanks and kind regards,
    Steven

  • [AIR 3.0] New JSON functionality doesn't work in FlashPro: Error #1065: Variable JSON is not defined

    After upgrading the AIR SDK to 3.0 in Flash Professional CS5.5 I've found some problems.
    First, the JSON class in the as3corelib.swc library now throws a couple of compile errors:
    1061: Call to a possibly undefined method decode through a reference with static type Class.
    1172: Definition com.adobe.serialization.json:JSON could not be found.
    At first I was completely puzzled, since I had the proper "import com.adobe.serialization.json.JSON;" reference,
    and I had the "as3corelib.swc" referenced in my ActionScript Properties, so how could that not be found?
    Then, I found out that's because it conflicts with the new internal JSON class included with AIR 3.0
    (maybe it should have been called something else, to avoid conflicts with Adobe's own as3corelib library).
    The new native JSON class doesn't have the decode() method. Now it's called parse()
    Ok, so I've tried using the new JSON class, but after changing decode() with parse() and removing
    the "import com.adobe.serialization.json.JSON;" reference, Flash tells me that "Variable JSON is not defined".
    Really? The JSON class is showing in the Flash Builder code completion popup,
    complete with its all-new parse() and stringify() methods! So why does it say it's not defined?
    Also, my SWF file gets compiled with no errors at all, so that verifies that the new 3.0 libraries are in place.
    I only get the "JSON is not defined" error at runtime in ADL, not at compile time. Why?
    In order to upgrade to the AIR 3.0 SDK, I've followed this guide:
    http://kb2.adobe.com/cps/908/cpsid_90810.html
    I know that's about upgrading to AIR 2.7, but I suppose the steps to upgrade to AIR 3.0 would be very similar,
    only with the AIR3.0 SDK package, instead of 2.7.
    I also took care to type version="13" in all the XMLs, instead of version="12" as stated in that guide, which is meant for 2.7.
    Also, I followed this advice about adding -swf-version=13 in the Project Properties window in Flash Builder:
    http://blogs.adobe.com/cantrell/archives/2011/08/how-to-use-the-air-3-beta-sdk.html
    But that doesn't seem to make a difference, since, even though I use Flash Builder for code editing (which is usually used for Flex),
    my project is a Flash Professional project, not a Flex one, and when testing the project, Flash Builder runs Flash Professional
    to compile and then runs adl.exe (it's the same as if you click the option "Control / Test movie / in AIR Debug Launcher (Mobile)" inside Flash Pro).
    In the "ActionScript Settings" window in Flash Professional, I also have the proper airglobal.swc referenced (from the AIR 3.0 SDK),
    and the same airglobal.swc is referenced in Flash Builder as well (in "Referenced Libraries"), to get proper code completion.
    I've tried all sorts of things to try to get it to work, but no luck. Still get the "JSON is not defined" error at runtime.
    I'm starting to get desperate about this. I'm going to have to revert back to AIR 2.7.1, to stop wasting time on this issue.
    BTW, I'm also having another unrelated problem (though maybe it happens because of the same reason as the other problem).
    Now Flash Builder underlines the getTime() method in my code, as if it no longer were a method of a Date class instance.
    I have a line where I ask for the timestamp like this:
    ts = new Date().getTime();
    That has worked perfectly fine up until now with AIR 3.0.
    Now, when hovering the mouse cursor over the orange "(?)" icon that appears at the left, Flash Builder tells me
    "Access of undefined property getTime". Why?
    The AS3 documentation doesn't say anything about getTime() getting deprecated of anything of the sort:
    http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Date.html
    In fact, in the code completion popup that Flash Builder shows, now there isn't any mention
    of get or set methods, as you can see here:
    I suppose I can use the .time property instead of .getTime() but I don't know why I'm not getting all the methods I had available before.
    Any ideas why all this is happenning? Specially the dreaded "JSON is not defined" error.

    Well, after much tinkering, I think I've finally found a way to finally make it work!.
    I've created some modified XML files with the profiles needed for AIR 3.0 and after a lot of tries, it finally works!
    I've uploaded them here: http://www.mediafire.com/?d5e761frl5px4
    These are the steps needed to get AIR 3.0 running properly:
    Put all three files into the folder "c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\Players"
    Then, make sure you've unzipped the AIR 3.0 SDK into the folder "c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\AIR3.0" Do not overwrite the contents of the "AIR2.6" folder, as suggested by the "Overlay AIR SDK" article (linked in the above post). It gave me problems. It's best to use a different separate folder. My XML files point to that new "AIR3.0" folder.
    Inside the folder "c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\Common\Configuration\ActionScript 3.0" create a new folder named "AIR3.0". Inside that folder, copy the file "airglobal.swc" located at "c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\AIR3.0\frameworks\libs\air".
    Finally, you will have to keep the file "descriptor-sample.xml" in the "c:\Program Files (x86)\Adobe\Adobe Flash CS5.5\AIR2.6\samples" folder, but change the xmlns attribute to "http://ns.adobe.com/air/application/3.0"
    Yes, you have to change that inside the AIR2.6 folder even if the SDK has been put into AIR3.0. That's because of how the publish settings work in Adobe Flash. It's hardcoded into a DLL, so that can't be changed. Not very intuitive.
    I think AIR SDK installations should be a lot more straightforward than this! I know Adobe AIR is meant for developers, not for final users, but still, all these not very well documented upgrade procedures are a pain in the ***. I've wasted A LOT of hours in this (more than half a day), with what should have been a straightforward upgrade!
    Adobe should make a SDK installer so we do not have to be tinkering with all these error-prone procedures each time a new update is released!
    Well, I hope those XML files are useful to somebody and avoids further frustration.
    Regards,
    OMA2k
    PD: BTW, I still have the .getTime() issue described in my above post, but it's not very important,
    since I can still use the .time property. Still, it puzzles me why this is happening.

  • Filename generation with variable substitution.

    Hi,
    I am currently working on a senerio in which file is receiver.The requirement is to generate file at target with the file name as message id.How can i use VARIABLE SUBSTITUTION and acheive this.
    (Add message id in configuration should not be done.)

    Hello shruthi,
                  Please try this for the filename creation,
    1. Create a UDF in the message mapping named getFileName, select only one input (to pass the messageid) and paste this coding there;
    /* getFileName User Defined  Function
    // function to create name of output file
    String filename;
    filename = strFile;
    try {
    // initialize DynamicConfiguration for create file with given name
    DynamicConfiguration conf = (DynamicConfiguration) container
           .getTransformationParameters()
           .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/File", "FileName");
    //create file with the specified name 
    conf.put(key, filename);
    } catch (Exception ex) {
    return filename;
    2. In the target structure header field perform this mapping,
    Messageid -> getfFileName UDF -> Target Structure Headerfield
    3. Then in the Integration directory under the target tab
    check the Use - adapter specific message attributes and File Name
    Please follow the steps and let me know if u still face the same problem.

  • Communication channel - Variable Substitution error,.

    Hi,
    I am having the following mesage type used in messag emapping as a target structure
    mt_data
       -> Variable1
    I am having a validation on mt_data node in message mapping for generating it, if condition is satisfied mt_data will be generetaed. Under mt_data i am having a variable. This variable is getting populated with some data using normal source to target mapping.
    I am using this variable in my communication channel as a variable substitution, and is used to replace file name.
    The issue I am facing is, when the mt_data fails to get generated (valid reason, since validation to generate it failed), communciation channel in RWB fails saying variable for substitution not found.
    Kindly advice.
    Thanks,
    Mudita

    The issue I am facing is, when the mt_data fails to get generated (valid reason, since validation to generate it failed), communciation channel in RWB fails saying variable for substitution not found.
    1) make a check on the variable in receiver determination itself...so that if fails then the message stops in Receiver determination itself....why to take it forward till channel and then fail.
    2) Make use of some constant term to fill the variable in the mapping if the validation fails.....this will help to put value in the variable even when the validation fails and the message does not fail in channel...filename created.
    You need to check with the functional people on how they want the message prcessing to occur when the variable cannot be created by the mapping logic.
    Regards,
    Abhishek.

  • Variable substitution in error message

    I'm trying to create a document that contains generic error messages in a module used by different projects. I intended to share the messages by including them as a variable substitution within the error message e.g.:
    Error("%message_dob_in_future%") but all I get out in the error message is the stuff between the quote marks (i.e. %message_dob_in_future%).
    I presume that variable substitution doesn't work in error or warning messages? If not, any chance of including it in the future?

    Hi Matthew
    You should be able to use a screen label to achieve the same functionality. Just add the label to the screen on which you want it to appear, substitute in the attribute value, and format it to look like an error.
    Does that help?
    Fiona

  • Used variable substitution to substiture the field 'date' in file name

    Hi gurus
    I have used variable substitution to substiture the field 'date' (dd/MM/yyyy/hh/mm/ss) in the file name so when empty payload (a valid xml ) is generated by Message mapping then the communication channel is failing by showing the following error
    File processing failed with com.sap.aii.adapter.file.configuration.DynamicConfigurationException: Error during
    variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload
    : date
    As of now the business is not getting effected as the business scenarion needs only customer master data at the reciever side But when ever there is no custmer master data in the sourse side the message mapping is generating an empty payload and the communication channel is failing ( so it is an internal issue and is there any way which could solve the both (ie the business must not get effected and as well the communication channel must not fail)
    any coments on this will be higly apreciated
    thanks and regards
    sandeep

    Hi Sandeep -
    Yes If you use the Variable substitution from the payload , that perticular field has to be generated in the target structure.
    To handle this You can do the following:
    Sourcefield --->exists -> IfThenElse-->TargetField
    Where     SourceField>exists(node function)-> If
                   SourceField -
    >Then
                   CurrentDate(Date Function)----->Else
    Hope this will help !!
    Regards.
    Jeet.

  • SQL Injection and variable substitutions

    Hello helpful forum, I'm trying to understand what really goes on "behind" the scenes
    with the variable substitutions in order to protect from sql injections.
    I'm using apex 3.0.0.00.20
    The trickiest component seems to be a Report of type "pl/sql returning sql", since
    multiple dynamic sql interpretations are done there.
    consider the following innocent looking disaster:
    DECLARE
    l_out VARCHAR2(2000);
    BEGIN
    l_out := 'select * from test_injection t where t.name like ''%' || :NAME || '%''';
    RETURN l_out;
    END;
    if NAME is a single quote the report will return:
    failed to parse SQL query: ORA-00911: invalid character
    which hints to the fact that NAME is not escaped, and you are in fact able to access db functions
    as in: '||lower('S')||'
    I also tried to put there a function that runs in a autonomous transaction to log its calls, and
    I see that it's called five times for each request.
    consider now the similar solution (notice the two single quotes):
    DECLARE
    l_out VARCHAR2(2000);
    BEGIN
    l_out := 'select * from test_injection t where t.name like ''%'' || :NAME || ''%''';
    RETURN l_out;
    END;
    with this second example nothing of the above is possible.
    So my theory (please confirm it or refute it) is that there is a first variable substitution done
    at the pl/sql level (and in the second case :NAME is just a string so nothing is substituted).
    Then the dynamic sql is executed and it returns the following string:
    select * from test_injection t where t.name like '%' || :NAME || '%'
    now another substitution is done (at an "APEX" level) and then query is finally executed to return
    the rows to the report.
    The tricky point seems to be that the first substitution doesn't escape the variable (hence the error
    with the single quote), while the second substitution does.
    Please let me know if this makes sense and what are the proper guidelines to avoid sql injection with
    the different kinds of reports and components (SQL, pl/sql returning sql, processes, ...)
    Thanks

    Giovanni,
    You should build report regions like this using the second method so that all bind variables (colon followed by name) appear in the resultant varchar2 variable, l_out in your example, which will then be parsed as the report query. This addresses not only the SQL injection problem but the shared-pool friendliness problem.
    Scott

Maybe you are looking for

  • How to schedule a job in another system.

    Hi, Now i have an ABAP program, which run in system ABC, client 001. i want to schedule a job in the program, with the function modules JOB_OPEN, JOB_SUBMIT, and JOB_CLOSE. But this job should run in ABC/002. How to write code? Who can help me on the

  • Question about posting video in iWeb

    hi, I'm having problems with a video that's I've put on a page in iWeb. it's a quicktime mp4 of about 52 megs. but godaddy.com does not see the video on some sites, and on others it boots very slowly is that too big a video to post? should I do a web

  • Applications Management and Change Management Packs Certified with EM 10gR5

    Applications Management and Change Management Packs Certified with Enterprise Manager Grid Control Release 5 For more details about the new features, documentation, and patches for the latest Application Management Pack and Application Change Managem

  • Why not show another IP address?

    What is the "::" stand for in the file /etc/hosts. Why another IP address is not listed? [root@localhost /]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.lo

  • Trouble with DVCProHD 16x9 aspect ratio in iDVD

    I'll probably get flamed for this, but I've scoured the discussion boards and read thru the manuals and I just cannot figure out what the problem is or find the right answers. Okay... I shot a short with the Panasonic HVX200 in 720p24PN. I cut the fi