Import ASO MAXL syntax question

I have a maxl script I use to load an ASO database. I realize that I need to have not only the load rule set to append data but the import statement as well. I took the syntax straight from the Essbase documentation but I'm still getting an error. Here's my script:
alter database App.DB initialize load_buffer with buffer_id 1;
import database App.DB data from data_file '0947Brand.txt' using server rules_file 'RetailB.rul' to load_buffer with buffer_id 1 on error write to 'RetailB1.err';
import database App.DB data from load_buffer with buffer_id 1 add values;
alter database App.DB initialize load_buffer with buffer_id 1;
import database App.DB data from data_file '0947Generic.txt' using server rules_file 'RetailB.rul' to load_buffer with buffer_id 1 on error write to 'RetailB2.err';
import database App.DB data from load_buffer with buffer_id 1 add values;
My error file shows this as an error:
essmsh error: Parse error near add
Any ideas?

Jeanette R. wrote:
I have a maxl script I use to load an ASO database. I realize that I need to have not only the load rule set to append data but the import statement as well. I took the syntax straight from the Essbase documentation but I'm still getting an error. Here's my script:
alter database App.DB initialize load_buffer with buffer_id 1;
import database App.DB data from data_file '0947Brand.txt' using server rules_file 'RetailB.rul' to load_buffer with buffer_id 1 on error write to 'RetailB1.err';
import database App.DB data from load_buffer with buffer_id 1 add values;
alter database App.DB initialize load_buffer with buffer_id 1;
import database App.DB data from data_file '0947Generic.txt' using server rules_file 'RetailB.rul' to load_buffer with buffer_id 1 on error write to 'RetailB2.err';
import database App.DB data from load_buffer with buffer_id 1 add values;
My error file shows this as an error:
essmsh error: Parse error near add
Any ideas?Not sure of the error, but you are not really using buffers efficiently. You should have a single
alter database App.DB initialize load_buffer with buffer_id 1;
then your two import statements
and finally the
import database App.DB data from load_buffer with buffer_id 1; statement
Your actual import statements should have the add values
When you load multiple files into a buffer at once, it takes and adds the intersections together automatically. you only need the add values if you want to add the values to existing values in the cube.

Similar Messages

  • Maxl syntax error

    Hi,
    I tried to export data form an ASO cube with below maxl syntax.
    SPOOL ON TO   '/.../DATA1.txt';
    WITH
    SET [Period1] AS '{[Period].LEVELS (0).MEMBERS}'
    SET [Version11] AS '{[Final]}'
    SET [Scenario1] AS '{[Actual]}'
    SET [CostCenters1] AS '{[CostCenters].LEVELS (0).MEMBERS}'
    SET [Account1] AS '{[Account].LEVELS (0).MEMBERS}'
    SELECT
    {[Year].[FY12],[Year].[FY13]} ON COLUMNS,
    {CROSSJOIN ({[Period1]},CROSSJOIN({[Version11]},CROSSJOIN({[Cost_Centers1]},{[Account1]})))))))) ON ROWS
    FROM
    [APPLICATION].[DATABASE]
    SPOOL OFF;
    but it showed an error with the line :
    {[Year].[FY12],[Year].[FY13]} ON COLUMNS,
    i don't understand why.
    BTW, the data in the cube got about 1,500,000 records, can i export it with the above syntax?

    You may get around the 2^32cell limitation by using NonEmptySubset.  See the documentation.
    Given an input set, NonEmptySubset returns a subset of that input set in which all tuples evaluate to nonempty. An optional value expression may be specified for the nonempty check.
    This function can help optimize queries that are based on a large set for which the set of nonempty combinations is known to be small. NonEmptySubset reduces the size of the set in the presense of a metric; for example, you might request the nonempty subset of descendants for specific Units.  NonEmptySubset is used to reduce the size of a set before a subsequent analytical retrieval.
    This function trims members from some of the dimensions by including only those member combinations that have data associated with them. Instead of processing all dimension combinations at once, it processes crossjoined set of only a subset of dimensions first, trims them to include only those tuples that have data,then combines it with other dimensions.
    DATAEXPORT is also an option.
    Of course you could always pull smaller sets.

  • ASO Allocation EXCLUDERANGE syntax question

    am developing an allocation script and need to be able to exclude certain members identified by UDAs from the allocation. When I try to use the UDA function in the excludedrange specification I cannot find a solution to the requirement to have the excluded range statement in double quotes as well as the UDA value. Script is as follows:
    execute allocation process on database app.db with
    pov "Crossjoin({[Final]},
    Crossjoin({[b701]},
    Crossjoin({[c21001]},
    Crossjoin({[i000]},
    Crossjoin({[All Reports]},
    Crossjoin({[All Channels]},{[a41510]})
    amount "[PD08]"
    amountcontext "([l0999],[Act],[2013])"
    target "([Alloc],[PD08],[2013])"
    range "Attribute([Status_Open])"
    excludedrange "UDA([Location], "Exclude_Alloc_1")"
    spread
    Can anyone suggest an escape character combination that might work ?
    Thanks,
    Gavin

    I really don't understand what you are trying to do (may be because you are in 11 version{allocation in ASO cube sounds kool).
    but I can tell you the syntax error you are getting at first line.
    change it to:
    "crossjoin([Year].[FY10],crossjoin([period].[Jan],crossjoin([account].[a111],[Entity].levels(0))))"
    Thanks,
    Jeeth
    Edited by: Jithendra on Oct 14, 2010 5:20 PM

  • Import Data Maxl Linux path specification

    Hi,
    Import data 'ap'.'db' data from data_file production://Oracle//Middleware//user_projects//epmsystem//EssbaseServer//essbaseserver1//app//filename.txt  on error write to 'err.log';
    above statement errors out " syntax error at 'production'
    How does maxl recognize linux production machine path?
    Thanks.

    Before running the maxl, did you check whether you can get to the file using the path that you specified?
    You can mount that shared drive to a local drive and then access the file as local, or create a soft link and do that same.
    Regards
    Celvin

  • Only importing 3 of 20 questions in the GIFT file

    I followed Vish's instructions carefully on how to import the GIFT files into adobe captivate 7. I used a txt format. There are 20 questions, but it keeps stopping the import after question 3 and putting in a result side. I cannot see a syntax error in my document. What could possibly cause this problem? I spent so much time on formatting 300 questions and answer sets.

    Hi there, I see that the problem was that the txt file had to be encoded as a UTF-8 format. Thank you

  • I can't import more than 5 questions in GIFT format, even though I am not getting any errors during the process.

    I created a GIFT file with 25 questions, but when I import into Captivate 8.0.1.242 I can only see the first 5 questions.  I have triple-checked my import file for any syntax or other problems, but it seems perfectly fine.
    Any ideas?

    The info on Adobe's online help needs to be updated.  You must save your text file in UTF-8 format, otherwise only the first five questions will be imported.

  • Need Help with FCP7 import and plug in question.

    Hello,
    I just registered and would like to ask two questions. Everything else I'll use the search function for but I need the answer right away.
    Ok First question. I have a mac pro at home and a intel macbook both with FCS4 during the holiday season I'd like to work on a project on my laptop. Now I have all my files on a 2.0 USB drive(I know its not that fast for video) but this is only temp. while traveling. I'm trying to figure out why it wont import the files into another project. Even when I'm at my home Mac Pro when I try to import a projects footage into another project it doesn't read it. This comes up
    "File Error: 0 file(s) recognized, 0 access denied 254 unknown"
    But all the files will work in the project that it was originally captured too.
    If this helps the codec is sonys HDV 1080 60i converted to Apple ProRes 422(HQ) which I found out I should only use the regular Apple ProRes 422. I'm stuck now b/c I cannot import the files into a new project to work in on my laptop. Plus my Macbook doesn't have Firewire800 so I have no way to get the footage from tape to my laptop other then my USB Hard Drive.
    I also have problem importing the files in Motion and Cinema Tools they also are not recognizing the files which is getting me upset since they are FCP7 generated files after I convert them to ProRes.
    Whenever I try to import/use the files in anything other the original project they are grey'ed out.
    I'm also confused on how to import effects plug-ins I've downloaded effects from apple only to have now directions to import them into the program.
    Sorry for the Noob questions I'm a film student learning FCP7 by myself so I have the upper hand come next semester. Thanks in advance.

    Can't tell for sure but it sounds as if the drive is not properly formatted, or you do not have correct read/write permissions for it. There is no way you can use this drive with HQ video. You're going to get into problem if you even try.

  • Simple Task - Syntax Question (how do you pass variables from one component to another component - databinding)?

    Hi all,
    I'm trying to pass some width/height/URLs from a Video Player component to a Social Bookmarking component's embed text input field. (for people to grab and share videos).
    I know this is a simple task, but it's the end of the day and I seem to be having a brain failure... What's the syntax to achieve this? Do I have to import the video player component? These widths/heights/URLs are all being dynamically generated from an XML... should I be pulling it from the XML or just reuse the variables that already exist in the Video Player component?
    Here's my code...
    Video Player:
    [Bindable]
    public var source:String = "";
    [Bindable]
    public var autoPlay:Boolean = false;
    [Bindable]
    public var fullScreenMode:Boolean = false;
    [Bindable]
    public var clipTag:String = "_movie";
    [Bindable]
    public var iag_code:String = "";
    [Bindable]
    public var officialURL:String = "http://www.movies.com/";
    [Bindable]
    public var referer:String = "unknown";
    [Bindable]
    public var gID:String;
    [Bindable]
    public var starterImageURL:String = 'http://www.movies.com/jazzmaster/images/default_starter_image.
    [Bindable]
    public var oldWidth:Number;
    [Bindable]
    public var oldHeight:Number;
    Sharing Component:
    <mx:HBox
      height="10%"
      horizontalCenter="-25"
      verticalCenter="0"
      paddingBottom="5">
      <mx:Text text="Embed Code:" paddingTop="1" color="#FFFFFF" fontSize="12"/>
      <mx:TextInput  text="{oldWidth}"/>
    </mx:HBox>
    The code above throws an error... "Attempted access of inaccessible property oldWidth through a reference with a static type com:SharingBookmarks."
    Thanks all!
    DK

    Try this..
    create a new flex project and add a folder called "src"
    create a new MXML component named "VideoComp.mxml" and copy/paste
    <?xml version="1.0" encoding="utf-8"?>
    <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
    <mx:Script>
    <![CDATA[
    [Bindable]
    public var videoWidth:int = 300;
    [Bindable]
    public var videoHeight:int = 300;
    ]]>
    </mx:Script>
    <mx:Label text="Vidoe" />
    <mx:TextInput text="{videoWidth}" id="w" change="this.videoWidth = int(w.text);" />
    <mx:TextInput text="{videoHeight}" id="h" change="this.videoHeight = int(h.text);" />
    </mx:VBox>
    create a new MXML component named, "SharingComp.mxml" add copy/paste this..
    <?xml version="1.0" encoding="utf-8"?>
    <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
    <mx:Script>
    <![CDATA[
    [Bindable]
    public var videoWidth:int;
    [Bindable]
    public var videoHeight:int;
    ]]>
    </mx:Script>
    <mx:Label text="Sharing Comp." />
    <mx:Label text="{videoWidth}" />
    <mx:Label text="{videoHeight}" />
    </mx:VBox>
    and here is the main.mxml file
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:src="src.*">
        <mx:Script>
            <![CDATA[
                private function doSomething():void
                 sharingComp.videoHeight = videoComp.videoHeight;
                 sharingComp.videoWidth = videoComp.videoWidth;
            ]]>
        </mx:Script>
       <src:VideoComp id="videoComp" />
       <mx:Button click="doSomething()" label="copy" />
       <src:SharingComp id="sharingComp" />
    </mx:Application>
    Hope this helps,
    BaBo,

  • A syntaxic question...

    Hi guys,
    I've posted about this on this very forum before, but I can't find my own question... and the answers that you people provided, so I'll do it again: what's wrong with the following, knowing that I have Developer Tools installed and that I clearly remember writing a script along those lines a long time ago, when I was still using Tiger?
    Here goes:
    "move mouse
    720, 450 {from left, from top}"
    Where the goal is to move the mouse pointer center screen on startup (don't bother about compiling and saving as an app, just about the right syntax). Something's missing, but I can't put my finger on it...

    The app developer once told me that the delay in activating the mouse was built-in, because it took the Trackpad some time (usually no more than a second or two) to fully activate. So I guess I can't get anything better than what I already have: at least I don't accidentally trigger the Apple menu by trying to move my mouse pointer to screen center...
    Well, trying to stress my brain to figure out an impossible solution.
    FWIW, here's the code, before modification:
    move mouse {720, 450} -- {from left, from top}
    click mouse
    delay 0.1
    click mouse
    delay 0.1
    move mouse {730, 460} -- {from left, from top}
    I'm going to add a two-second delay between the two mouse clicks, just in case. I'll keep you posted. As for the compliment, it's amply deserved, and I'm not the only one on this forum who says so...
    I you are trying to simulate a double click, you need to make the delay closer to what a human would do. Two seconds will most likely turn the double click into two single click.
    2
    All this is probably not need since you fessed up to it being a driver problem.
    Cheers!
    Thanks again for your rewarding comments.

  • Import u2013 MDIS handling Question

    This is for auto import and I have two fields and both are lookup fields.
    FIELD  A  -  Lookup field
    FIELD B  - Lookup field
    Requirements
    FIELD A,  I have a new lookup field value in the import file and I want to add this new field value to the lookup table  then map and import the file.
    FIELD B,  I have a new lookup field value in the import file but I want to set this as ERROR and  donu2019t import this record.
    How  do we handle these two fields differently?
    The Import manager configuration section of the default  MDIS handling,  unmapped value handling, I have  IGNORE, ADD & FAIL.  I can select one of the option and continue.
    But how to handle this based on individual fields has individual requirements?
    My another question is:-
    My import file has 100 records.  Import Manager configuration option, Default MDIS handling -> Unmapped value handling = Fail.
    Out of the 100 records, only one record has the error so that record will not be loaded  and remaining 99 records will be loaded.
    But the exception folder, the file has all the records (100 records) if I am not mistaken. So it is pretty difficult to identify which record has error.  Again if the input file has more records then it is more difficult.
    Is there a way we can identify only records that are in error instead of looking the whole file in the exception folder?

    Hi,
    The Import manager configuration section of the default MDIS handling, unmapped value handling which you set, by default is applicable to all of the look up fields.
    But if you want to handle it individually for two fields, you can.
    In Map Fields/Values Tab Say Source Field A map with Target Destination field TrgA, Right click on TrgA Set Unmapped Value handling as Add.
    IIy, you can set for Field B as per your requirement as Add, Ignore, Fail etc. As i see select here Fail.
    For Second Question you asked,
    Is there a way we can identify only records that are in error instead of looking the whole file in the exception folder
    Whenever you get file into exception folder, Go to Import Manager, Select Type as Port, Remote system as per your requirement, Port as Filename(Exception) select and Finish it. Once your Import Manager opens, Go to Import Status Tab check Action Items for take the desired action to import that file. In this way you will come to know what are the fields and values which need to be mapped. Once it maps you can import this file in one shot and data will be populated into MDM.
    Thanks and Regards,
    Mandeep Saini

  • 11g pivot query syntax question

    I searched the forums and I have seen questions similiar to the one I am asking, but its not the exact same issue.
    I need 3 fields in my 'for' clause. I get 'column ambiguously defined. I think I get this error for a different reason that other people asking the question.
    The others seem to be doing more than 1 function in the pivot clause and those need an alias. I give an alias with my 1 function and still get an error.
    ORA-00918: column ambiguously defined
    I used aliases like the recommendation in other posts and I still get the same error. I think I need 3 columns in the for clause.
    --note that this is just a test table. These are not real names going into production
    create table pivot_tab (
    pk1 number,
    pk2 number,
    myElement varchar2(30),
    myElementDate date);
    pk1,pk2 are the unique key.
    I need this to return as: the vlaues after pk2, can be any alias. This is just an example.
    pk1  pk2  MY1_DATE, MY2_DATE, MY3_DATE
    select *
         from pivot_tab
        PIVOT ( max(myElementDate) for myElement
                in (''MY1','MY2','MY3'))
    I saw a couple of references to this syntax, but I get syntax errors.
    ora--00906: missing parentheses. So I dont think this syntax works.
    select *
         from pivot_tab
        PIVOT ( max(myElementDate) for (pk1,pk2,myElement)
                in (''MY1','MY2','MY3'))Edited by: Guess2 on May 6, 2013 6:50 AM

    don't have any sample data or expected results to test this with maybe
    SELECT *
      FROM (SELECT pk1,
                   pk2,
                   myelement,
                   myelementdate
              FROM pivot_tab) PIVOT (MAX (myElementDate)
                              FOR myElement
                              IN ('MY1' AS MY1, 'MY2' AS MY2, 'MY3' AS MY3));or maybe you are trying to pivot by the first part of the pk?
    with pivot_tab as (select 1 pk1, 2 pk2, 'MY1' myelement, sysdate myelementdate from dual union all
                       select  1 pk1, 3 pk2, 'MY2' myelement, add_months(sysdate,2) myelementdate from dual union all
                       select  1 pk1, 4 pk2, 'MY3' myelement, add_months(sysdate,3) myelementdate from dual union all
                       select 2 pk1, 5 pk2, 'MY1' myelement, sysdate myelementdate from dual union all
                       select  2 pk1, 6 pk2, 'MY2' myelement, add_months(sysdate,6) myelementdate from dual union all
                       select  2 pk1, 7 pk2, 'MY3' myelement, add_months(sysdate,7) myelementdate from dual )
    SELECT *
      FROM (SELECT pk1,
                   myelement,
                   myelementdate
              FROM pivot_tab) PIVOT (MAX (myElementDate)
                              FOR myElement
                              IN ('MY1' AS MY1, 'MY2' AS MY2, 'MY3' AS MY3));
    PK1     MY1     MY2     MY3
    1     5/6/2013 10:07:40 AM     7/6/2013 10:07:40 AM     8/6/2013 10:07:40 AM
    2     5/6/2013 10:07:40 AM     11/6/2013 10:07:40 AM     12/6/2013 10:07:40 AMEdited by: pollywog on May 6, 2013 10:08 AM

  • Export-Import and Naming convention question

    All,
    Newbie here. Have a question related to the naming convention for SAP R/3 system and XI manual export/import process. We are currently in the development environment where our R/3 systems are named as D55CLNT400, D56CLNT300 etc (first 3 characters are the system id, and last 3 are the client number.) This is per the XI best practices convention.
    The question i have is - if we name the technical system as above - and export the configuration objects from the Dev to Test environment - where the R/3 systems are named as T55CLNT400, T56CLNT300 (similar naming structure). Does it mean that we need to manually change almost all of the items in the Test environment on the configuration side (like business sytem name, interface determination, receiver determination etc)
    Is this the correct way or are we missing something??? I would have preferred a way - where we needed to only update the communication channel parameters.
    Thanks.
    Message was edited by:
            thezone

    In the SLD, create three Business System Groups: DEV, QAS and PRD.
    In each of these groups, you must have the relevant application servers (in your case, R/3s) and one integration server (XI).
    Then, for each Business System in Group DEV, define a transport target in QAS group.
    In your case, the transport landscape should be like this:
    D55CLNT400 -> T55CLNT400
    D56CLNT300 -> T56CLNT300
    XI_DEV -> XI_QAS
    Do the same for the QAS group (defining transport targets in PRD group). Observe that you need to have the same number of Business Systems in each group for this to work properly.
    Now, when you transport your configuration objects from XI_DEV to XI_QAS, all the Business Systems in DEV landscape will be replaced for the equivalent ones in QAS landscape.
    More info: http://help.sap.com/saphelp_nw2004s/helpdata/en/ef/a21e3e0987760be10000000a114084/frameset.htm
    Regards,
    Henrique.

  • More syntax questions about nested symbols

    I have a symbol timeline that does everything I need it to do except to access a function within the stage symbol. I would have thought that calling the function in the stage symbol from a nested symbol (which is loaded dynamically, if that makes any difference) would be something along the lines of:
    sym.getComposition().getStage().gotoNextSlide("slide5");
    but no luck. I can alert the stage itself as [Object Object], which brings up another question. Is there an always-available property of objects that one can alert or trace to make sure the correct object is being targeted? I've had no luck with the symbol's id, name, or symbolName.

    Sure. You've seen one form of the project I'm working on, though I'm at the next speedbump. Here's an excerpt of the involved parts.
    I have the stage symbol and within that symbol, I have a function:
    function gotoSlide(slideName){
              fadeTo(slideName);
    function fadeTo(slideName){
         /// this all works fine, when called from the main timeline
    In the composition, I'm loading slides from the library and on the timeline of one of those slides is the following.
    navHidden = true;
    var trueButton = sym.getSymbol("answers").$("true");
    trueButton.bind('click',goNext);
    function goNext(){
              sym.getComposition().getStage().gotoSlide("slide_05");
    I know there are other syntaxes I could use but refactoring is in the future. The console log I get is:
    Object [object Object] has no method 'gotoSlide'
    It's slide 5 in these:

  • Another syntax question about two dots

    i'd learned that the meaning of " .. " is to access the child nodes in XML.
    but i saw this in source of flex, <mx.skins.halo.RadioButtonIcon.as>
       override protected function updateDisplayList(w:Number, h:Number):void
                 g..beginFill(radioColor);
       where variable g is a graphics object. ordinary, this should be "g.beginFill", i thought.
       now my question is, what does the ".." mean ?
       thank you for any helps.

    I'll ask people I know on the Apache team. I know they code review everything, but it seems to me if they're going to use nonstandard notation they should comment so people know what it means. I don't see any possible way this could be referring to xml, since there is no beginFill method on XML, and hacking the XML object on that scale through prototype would be highly destructive to the codebase.
    Note that just because source is being picked up and shown as the source code doesn't 100% mean that this code was what the swc is compiled from.
    Note that if you try
    import flash.display.Graphics;
    var g:Graphics = graphics;
    g.beginFill(0xFF0000);
    g.drawCircle(100, 100, 100);
    and
    import flash.display.Graphics;
    var g:Graphics = graphics;
    g..beginFill(0xFF0000);
    g..drawCircle(100, 100, 100);
    They both yield the same visual result. My suspicion is maybe this is a shortcut to the GPU.

  • MaxL Syntax

    I can't quite get the syntax down on this MaxL statement,<BR><BR>Can anybody?<BR><BR>MAXL> alter system kill request on database 'Reportng';<BR><BR> ERROR - 1242020 - (1) Syntax error near end of statement.<BR><BR><BR>Thanks,<BR>Jim

    Jim:<BR><BR>Use the [not available in ESSCMD] <b>msh</b> feature, which allows you to call a different MaxL script from within the first one. Example, you have a "master" script called <b>one.mxl</b> where you set the SPOOL on. It calls other scripts such as <b>two.mxl</b>, one at a time, which then return to the master, and all of it goes into your <b>one.txt</b> log, as follows:<BR><BR><b>/* ONE.MXL */<BR>/* turn on the log - note the need to 'escape' the backslashes */<BR> spool on to "f:\\temp\\one.txt";<BR>/* call the first script - be sure <u>not</u> to end it with <u>exit;</u> */<BR> msh two.mxl;<BR>/* continue with other scripts as necessary */<BR> msh whatever.mxl;<BR>/* turn off the log */<BR> spool off;<BR>/* bounce out */<BR> exit;</b>

Maybe you are looking for

  • Creation of Dashboard with WAD!!

    Hi Guys,   Does anyone has idea about dashboard requirements with <b>the speedometer chart item in WAD??</b>What are the steps to do?How to do steps or help with aby document?? It is a survey report for which i need to creta a classification with a s

  • Adobe Photoshop Elements 13 Won't launch

    My motherboard died.  I put a new motherboard in and have been reinstalling the OS (Windows 7 Professional) and reinstalling all of the programs.  I successfully re-downloaded Adobe Photoshop Elements 13 and entered my license key and it installs.  W

  • How do I lock my default language to English for all web pages?

    I have discovered that my language keeps reverting back to French for my web pages. Not for the sites per se, but for anything that I manually enter into a field or form. And since I have my work and home computers set to sync, it keeps reverting bac

  • E-recruiting - CX_WD_GENERAL exception

    Hello, when trying to run the startpage of e-recruiting (Webdynpro for ABAP) I get the following error: Method: RAISE of program CX_WD_GENERAL=================CP Method: IF_WDR_RUNTIME~GET_RR_APPLICATION of program CL_WDR_MAIN_TASK==============CP Me

  • Count from a string

    i am using this formula {USR_CR_RISK_CHANGE;1.DETAIL}[instrrev({USR_CR_RISK_CHANGE;1.DETAIL},'OLD: LowRisk')-1 to length({USR_CR_RISK_CHANGE;1.DETAIL})]; this retrieves OLD: LowRisk NEW: MediumRisk which is what i want i want to then get a count of h