Retaining a calculated value for iterative calculatio​n

Dear LabVIEW Forum Members,
This may appear to be a trivial question however I am having difficulty trying to solve this problem using the LabVIEW vi's & environment.  I explain as follows:
I need to calculate and display, in graph form, the contents of a Hopper that is initially filled to 100 tonnes.  The hopper is being discharged and filled at the same time, I have the values of filling and discharging in 1 second intervals.  The contents of the Hopper is a simple mass balance calculation, Hopper Contents = Inlet material - Outlet material.  Below are the first few data sets:
Material Into Hopper         Material out of Hopper        Theoretical Hopper contents
               0                                     0                                                 100
               0                                     1.534057                                   98.465943
          0.345                                  5.250186                                   93.560757
          0.6                                       6.801075                                   87.359682
How can I iteratively calculate and use the 'Theoretical Hopper contents' calculation from the Hopper inlet and outlet ?  I am using the Simulation & Control Frame so I cannot use the For Loop within this frame.  Attached is me vi program so far and the Build XY Graph2 is where I'm wanting to display this Hopper contents data.
Any help would be gratefully appreciated.
Regards,
Solved!
Go to Solution.
Attachments:
Plant_Simulator (15-05-2013).vi ‏338 KB

Hi bunnykins,
You've asked a LabVIEW question on the DIAdem Discussion Forum.  Please repost to the LabVIEW Discussion Forum.
Brad Turpin
DIAdem Product Support Engineer
National Instruments

Similar Messages

  • Calculated value for SAP Scripts

    Hi All,
    I have made changes to two seperate print programs which are used to print Invoice and Packing Slip respectively. However, I'm using the dimension details from VEKP in both. When I calculate volume multiplying the length, breadth and height (data fetched from VEKP) table, in one of the programs, the calculated value appears correctly while in the other it is not.
    The Issue:
    While calculating volume in one of the programs the system does not recognize the decimal point and considers it as a thousand separator and hence it arrives at wrong calculated value. Whilst in the other program it is working fine. This appears weird to me since it is the same system, the data being the same, the variable declarations also being the same.
    Please let me know if there is some thing I need to do to make sure I get the correct calculated value.
    You suggestions will be appreciated. Thanks.
    - Niranchan.

    Hi,
    There is no code required for this,
    Volume = Length * Width * Height.
    This data comes from VEKP table from the corresponding fields.
    Thank you.

  • To retain color space value for Monochrome images during flattening.

    In our project, we are extracting image content from PDF file and doing some raster operation by using LeadTool and then flattening the processed image in PDF file.
    Input PDf file: One page which has monochrome image
    For extracting image content from PDF file, we are using below Acro Plugin API:
    AVConversionConvertFromPDFWithHandler
    After this, we will perform some raster operations by using LeadTool and then flattening will happen.
    While doing flatten we are performing below operations in sequence:
    1. Set bitspercomponent  =1.
    2. Create a new color table using DeviceRGB.
    3. Create image by using below Acro Plugin API:
    pdeimage = PDEImageCreate(&attrs, sizeof(attrs), &matrix, 0, cols1, NULL, &fil, asstm, NULL, 0);
    4. Add image in PDF content.
    Now flattening is successful, but monochrome(Original Image format) is changed to RGB. We want to retain the color space(DeviceGrey).
    We have tried the below solution to retain the color space:
    1. Using the old image's color space value for new image creation. But this gives inverted color(Black to White and vice versa)
    Please help us to retain the color space while flattening.

    We are using JPG file format.
    Please find below the code portions which we used to add image in PDF file,
    //Read Image Data
    ========================================================================================== ==================
    ASBool ret = TRUE;
    // analyze img
    ASInt32 index = 0, quadSize = 0;
    BITMAPFILEHEADER* bmfh = NULL;
    // BITMAPFILEHEADER
    if(  !bQuadSize )
      bmfh = (BITMAPFILEHEADER*)img;
      index += sizeof(BITMAPFILEHEADER);
    // BITMAPINFOHEADER
    BITMAPINFOHEADER* bmih = (BITMAPINFOHEADER*)(img+index);
    index += sizeof(BITMAPINFOHEADER);
    // RGBQUAD
    if( !bQuadSize )
      quadSize = bmfh->bfOffBits - sizeof(BITMAPFILEHEADER) - sizeof(BITMAPINFOHEADER);
    else
      quadSize = size -  bmih->biSize -  bmih->biSizeImage;
    ASInt32 rgbquadNum = 0;
    char* quad = NULL;
    if (quadSize > 0)
      rgbquadNum = quadSize/sizeof(RGBQUAD);
      quad = (char*)(img+index);
      index += quadSize;
    // Image
    //ULONG imgSize = size - bmfh->bfOffBits;
    char* image = (img+index);
    DURING
       if(!pd)
        E_RETURN(FALSE);
       PDPage pp = PDDocAcquirePage(pd, page-1); // Get Page(PDPage) of specified page number
       PDEContent pdeContent = PDPageAcquirePDEContent(pp, gExtensionID); // Get PageContent(PDEContent)
       ASInt32 numElems = PDEContentGetNumElems(pdeContent);  // Get PageContent num
       // Check BitMap width, height, biXPelsPerMeter, biYPelsPerMeter changed
       ASFixedRect mb;
       PDPageGetMediaBox(pp, &mb);
       ASFixedRect chgMediaBox;
       memset(&chgMediaBox, 0 , sizeof(ASFixedRect));
       if (paperSizeChangeType == PAPERSIZE_SIZESPECIFICATION)
        chgMediaBox.right = width;
        chgMediaBox.top = height;
       // Get PDEImage's Attributes & Filters & ColorSpace from Old Image in PDF file
    ========================================================================================== ===================================
       PDEElement pdeElement;
       ASInt32 importIndex;
       ASInt32 type;
       PDEImageAttrs attrs1;
       PDEColorSpace cols1;
       //ASAtom colname;
       PDEFilterArray fil1[20];
       ASInt32 filNum1;
       ASFixedMatrix matrix1;
       bool isTransformedPage = false; //EV2.8.02000_19651_Retain color space_20141016
       for (int i = 0; i < numElems; i++)
        pdeElement = PDEContentGetElem(pdeContent, i);
        PDEObject obj=_objHelper.TraversePDPageContentsImage((PDEObject)pdeElement);
         if(obj == NULL)
          continue;
         pdeElement= (PDEElement)obj;
        type = PDEObjectGetType((PDEObject)pdeElement);
        if (type == kPDEImage)
         // Get Attr
         PDEImageGetAttrs((PDEImage)pdeElement, &attrs1, sizeof(PDEImageAttrs));
         // Get ColorSpace
         cols1 = PDEImageGetColorSpace((PDEImage)pdeElement);
         // Get Filter Array
         filNum1 = PDEImageGetFilterArray((PDEImage)pdeElement, fil1);
         // Get ASFixedMatrix
         PDEElementGetMatrix(pdeElement, &matrix1);
         //EV2.8.02000_19651_Retain color space_20141016 - Start
         if (matrix1.a < 0 || matrix1.b < 0 ||
                        matrix1.c < 0 || matrix1.d < 0 ||
                        matrix1.h < 0 || matrix1.v < 0)
          isTransformedPage = true;
         //EV2.8.02000_19651_Retain color space_20141016 - End
         // Set Import and Delete Index
         importIndex = i;
         break;
       // Create image data (for PDEImage)
    ========================================================================================== =================================
       ASInt32 bitPerComponent = bmih->biBitCount;
       ASInt32 bitWidth = 0;
       ASInt32 width1 = bmih->biWidth;
       ASInt32 height1 = bmih->biHeight;
       // Create image size
       if (bitPerComponent == 1)
        if (width1%8)
         bitWidth = (width1/8) + 1;
        else
         bitWidth = width1/8;
       else if (bitPerComponent == 4)
        if (width1%2)
         bitWidth = (width1/2)+1;
        else
         bitWidth = width1/2;
       else if (bitPerComponent == 8)
        bitWidth = width1;
       else if (bitPerComponent == 32)
        bitWidth = width1*4;
       else // if (bitPerComponent == 24)
        bitWidth = width1*3;
       ASInt32 imgSize4Acrobat = height1 * bitWidth;
       char* image4Acrobat = (char*)ASmalloc(imgSize4Acrobat);
       if( image4Acrobat == NULL )
        E_RETURN(FALSE);
       memset(image4Acrobat, 0, imgSize4Acrobat);
       // Create image
       ASInt32 nokori = (bitWidth)%4;
       ASInt32 bitWidth4hokan = 0;
       if (nokori)
        bitWidth4hokan = bitWidth + (4-nokori);
       else
        bitWidth4hokan = bitWidth;
       ASInt32 hbw = 0;
       ASInt32 hbw4hokan = 0;
       if (bitPerComponent == 1)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 4)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 8)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         memcpy((image4Acrobat+hbw), (image+hbw4hokan), bitWidth);
       else if (bitPerComponent == 32)
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         for (int kk = 0; kk < bitWidth; kk += 4)
          *(image4Acrobat+hbw+kk) = *(image+hbw4hokan+(kk+3));
          *(image4Acrobat+hbw+kk+1) = *(image+hbw4hokan+(kk+2));
          *(image4Acrobat+hbw+kk+2) = *(image+hbw4hokan+(kk+1));
          *(image4Acrobat+hbw+kk+3) = *(image+hbw4hokan+(kk));
       else
        for (int k = height1-1, l = 0; k >= 0; k--, l++)
         hbw = l*bitWidth;
         hbw4hokan = k*bitWidth4hokan;
         for (int kk = 0; kk < bitWidth; kk += 3)
          *(image4Acrobat+hbw+kk) = *(image+hbw4hokan+(kk+2));
          *(image4Acrobat+hbw+kk+1) = *(image+hbw4hokan+(kk+1));
          *(image4Acrobat+hbw+kk+2) = *(image+hbw4hokan+(kk));
       //Invert Image Data
    ========================================================================================== ================================
       for(int it = 0; it < imgSize4Acrobat; it++)
          image4Acrobat[it] = 255 -image4Acrobat[it];
       // Open Image Data
    ========================================================================================== ================================
       ASStm asstm = ASMemStmRdOpen(image4Acrobat, imgSize4Acrobat);  
       // Create PDEImage Attribute etc.
    ========================================================================================== ================================
       PDEImageAttrs attrs;
       memset(&attrs, 0, sizeof(PDEImageAttrs)); // necessary
       attrs.width = width1;
       attrs.height = height1;
       if (bitPerComponent == 1) {
        attrs.bitsPerComponent = 1;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
         // B&W
       } else if (bitPerComponent == 4) {
        attrs.bitsPerComponent = 4;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
       } else if (bitPerComponent == 8) {
        attrs.bitsPerComponent = 8;
        if (rgbquadNum) {
         attrs.flags = kPDEImageIsIndexed | kPDEImageExternal; // Indicates image uses an indexed color space.
        } else {
         attrs.flags = kPDEImageExternal; // Indicates image is an XObject.
       } else if (bitPerComponent == 32) {
        // not support (acrobat)
       } else { // (bitPerComponent == 24)
        attrs.flags = kPDEImageExternal;  // Indicates image is an XObject.
        attrs.bitsPerComponent = 8;
       // matrix
       ASFixedMatrix matrix;
       memcpy(&matrix, &matrix1, sizeof(matrix1));
       if (paperSizeChangeType == PAPERSIZE_SIZESPECIFICATION)
        matrix.a = chgMediaBox.right;
        matrix.b = 0;
        matrix.c = 0;
        matrix.d = chgMediaBox.top;
        matrix.h = 0;
        matrix.v = 0;
       // Filter
       PDEFilterArray fil;
       memset (&fil, 0, sizeof (PDEFilterArray));
       PDEFilterSpec spec;
       memset (&spec, 0, sizeof (PDEFilterSpec));
       memcpy(&fil, &fil1, sizeof(PDEFilterArray));
       CosDoc cosDoc;
       CosObj cosDict;
       // Build the CosObj for the filter specification
       cosDoc = PDDocGetCosDoc(pd);
       cosDict = CosNewDict(cosDoc, false, 2);
       CosDictPut(cosDict, ASAtomFromString("K"), CosNewInteger (cosDoc, false, -1));
       CosDictPut(cosDict, ASAtomFromString("Columns"), CosNewInteger (cosDoc, false, width1));
       //memset the filterspec so there are no garbage values if we leave members empty
       spec.encodeParms = cosDict;
       spec.decodeParms = cosDict;
       spec.name = ASAtomFromString("CCITTFaxDecode"); 
       fil.spec[0] = spec;
       // Create PDEImage
    ========================================================================================== =================================
       PDEImage pdeimage;
       pdeimage = PDEImageCreate(&attrs, sizeof(attrs), &matrix, 0, cols1, NULL, &fil, asstm, NULL, 0);
       // Delete PDEImage at importIndex(==j) of page -> Delete old image in PDF file
    ========================================================================================== ====================
       PDEContentRemoveElem(pdeContent, importIndex);
       // Add PDEImage
    ========================================================================================== ==========================
       PDEContentAddElem(pdeContent, importIndex, (PDEElement)pdeimage);
       PDPageSetPDEContent (pp, gExtensionID);
       PDPageReleasePDEContent(pp, gExtensionID);
       // Release object
       PDERelease((PDEObject)pdeimage);
       PDPageNotifyContentsDidChangeEx(pp, TRUE);
       PDPageRelease(pp);
       ASStmClose(asstm);
       if (image4Acrobat)
        ASfree(image4Acrobat);
       if (lookupTable)
        ASfree(lookupTable);
      HANDLER
       ret = FALSE;
      END_HANDLER
    return ret;

  • Calculating values for setPreferredsize

    I am trying to draw a simple graph. However, I can't seem to get the width size right for when I use setPreferredsize (I need to do this because I am using scroll panes). From my calculations the width is 1500, but it seems to be 3000. Can someone please explain why this is?
    for (int i = 0; i < 1500; i++) {
                                     //data is array of integer data values
                        int ran = data;
                        //g2 is the graphics 2d instance
                        g2.drawRect( 2 * i, (100 - ran), 1, ran);

    I am NOT sure what do you want to control. Your code does not show the real question. Generally, setPreferredSize(), setSize*() are difficult to control. Better way is to implement getPreferredSize(). Compute the size from the API implementation. Then it will generally work. In addition, you may have to use in combination with invalidate() and doLayout(). If you use Swing, controling sizes of components will make you crazy!

  • Asset value for Calculation of Tax Depreciation

    We have been told that many of the assets created as of 1/1/2008 have a different (lower) tax value than their beginning book value.  Book value is correct for standard book depreciation.     Is there a process to update the tax value of assets created in SAP similar to the transaction AS92 used to update values for Converted Assets?
    It was suggested that we use the method of Unplanned Depreciation tcode ABAA with TTY 642/652 to change the tax value of the asset.  When I tested this I found the various tax depreciation methods were calculated based on the beginning book value for year 1 and not using taking the special depreciation into consideration until subsequent years.   This is using Depreciation Area 10, MACRS, Dep. Key M200.
    Is there a better method of altering asset book value for tax purposes or a better way to alter the tax depreciation calculation so it takes Unplanned Depreciation into consideration during year 1?
    Current simplified tax depreciation example:
    Beg. BV $1,000
    unplanned dep posted $100
    tax depreciation for year 1 $100
    tax depreciation for years 2-10 $88.88
    The preferred depreciation is $90 years 1 - 10.
    Thanks for your assistance,
    Jeff

    I think I had the cart before the horse on this problem.  The correct way to look at this is what is the best way to get the correct "Net Book Value" and not the correct tax depreciation posting as it never actually gets booked.  
    By knowing the incorrect Beginning BV, the rate depreciation is applied in year 1 and finally the desired Net BV value at the end of year 1 for tax purposes I am able to calculate the correct Unplanned Depreciation for tax to make everything work out correctly.
    correct beginning tax BV $1,200
    Beginning Asset Book Value $1,800
    depreciation $360 (20% of BV)
    Unplanned depreciation  $?
    Net BV for tax at end of Yr1  $960 ;  or  1,200 - (1,200*.2)
    With the know values above that makes my unplanned depreciation for Yr 1 to be $480.  Year 1 and all following years depreciate correctly after the Unplanned Depreciation is posted.
    I am marking this as resolved unless someone sees an error in my thinking.
    Thanks,
    Jeff

  • Retaining Variable Value for Scenario Restart

    I have a slave-package where i use many variables for JDBC connection/url/login/passwd and Target File Path - all have been defined as type HISTORIZE
    My packages are as follows
    (1) There are many odiSqlUnload steps in the slave-package which uses the connection information & file path from the variables which have been declared in it.
    (2) I just have declare variable steps in the slave-package, and have created a master-package which calls this slave-package's scenario using the command[i] "odiStartScen -GLOBAL.var_name=<var_value>"
    so that all variables get their values from the master-package's call with variable values sent thru it
    (3) Now, the problem occurs when I have to re-start my slave-package's scenario. Say for eg, the first step in my slave-package works fine, but errors out on the next step;
    But when I re-start it for the next step, ODI doesn't seem to pick up values from the variables even though they are of type HISTORIZE, and I get an error with empty values for JDBC, URL & file path which I had specified as variables.
    Why is it that the variables are not able to retain their values.
    Any help would be greatly appreciated!

    finally I get it. I have to use #varname instead of :varname, otherwise it won't get error but just cannot get value. and I find out this #varname cannot be defined anywhere, otherwise the value will get lost also.

  • Multiple select list not retaining the value for the first time

    Hi,
    I have a 3 select list depends on each other. select_list1 -- > select_list2 --> multiselect3. I have use denes example to create them.
    For the first time when I select values from 1,2,3 and runs a report based on it, it works fine but *does not retain the selected value in multiselect3.
    for the second time submit the process, it retails value in multiselect3. Please tell me if you came across this issue before
    Here is the code.
    function get_select_list_xml_VL(pThis,pSelect,pSelect1,pSelect2){
    var l_Return = null;
    var l_Select = html_GetElement(pSelect);
    var l_Select1 = html_GetElement(pSelect1);
    var l_Select2 = html_GetElement(pSelect2);
    var get = new htmldb_Get(null,html_GetElement('pFlowId').value,
    'APPLICATION_PROCESS=Cascading_Select_List_VL',0);
    get.add('F660_CASCADING_TEST',l_Select1.value + '_' + pThis.value + '_' + l_Select2.value);
    alert(l_Select1.value + '_' + pThis.value + '_' + l_Select2.value);
    // alert(document.getElementById("F660_CASCADING_TEST").value);
    gReturn = get.get('XML');
    if(gReturn && l_Select ){
    var l_Count = gReturn.getElementsByTagName("option").length;
    l_Select.length = 0;
    for(var i=0;i<l_Count;i++){
    var l_Opt_Xml = gReturn.getElementsByTagName("option");
    appendToSelect(l_Select, l_Opt_Xml.getAttribute('value'),
    l_Opt_Xml.firstChild.nodeValue)
    get = null;
    function appendToSelect(pSelect, pValue, pContent) {
    var l_Opt = document.createElement("option");
    l_Opt.value = pValue;
    if(document.all){
    pSelect.options.add(l_Opt);
    l_Opt.innerText = pContent;
    }else{
    l_Opt.appendChild(document.createTextNode(pContent));
    pSelect.appendChild(l_Opt);

    Please ask any question if you dont understand about the problem.
    Thanks

  • How to retain the presentation variable values for Dashboard Prompt

    I've a dashboard prompt with date and two other drop down field, with default value as yesterday's date set for date and All Values set for other two drop down list. Presentation Variables are D1, P1 and P2 respectivilly
    I'm using GO URL from "Report A" and passing presentation variable to navigate to other report (Report B) that works fine. eg:
    '<a href = saw.dll?GO&path=/shared/Reports/ABC/ReportB&Action=Navigate&p0=1&p1=eq&p2="-%20Time"."Next%20Day"&p3=@{d1}>Test</a>'
    From Report B I'm using Dashoard URL to go back to Previous Report like:
    <div class="XUIPromptEntry minibuttonOn">
    Return to Previous Screen</div>
    This also works fine.
    My problem is that, when users selects different values in the Main dashboard prompt for date and other other two drop down and navigates to other report (Report B), and from Report B, when user returns to previous screen (Main Dashboard), Prompts values gets refreshed to original default values.
    Is there any way to retain the values of presentation variable in dashboard Prompt when I return to main dashboard from Report B?
    I'd appreciate your help.
    Thanks

    Change your dashboard url include the column and column value for the date column sample shown below,
    [a href=saw.dll?Dashboard&PortalPath=/shared/sample/_portal&page=pagename&Action=Navigate&col1=Dim.Date&val1=@1>Return to Previous Screen[/a>
    In my second report Date is the first column so I referenced it's value as @1 in the dashboard URL
    note: replace [ with <
    Thanks,
    Vino                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Problem in retaining the array of values for entire session !!!

    Hi,
    I have a form with multi record block. When user inserts a new line each time , this value should be compared with the previous entered values.
    For this , I tried with the PL/SQL table. Whenever I am coming out of each line after insertion into forms, I am trying to store that values into PL/SQL table. I wrote a procedure to store the value. I am calling this in "new record Instance".
    I need this value in the "Validate item trigger" to compare each new line insertion with the old values which is already stored in Pl/SQL table.
    Now my problem is after storing into PL/SQL table, I am not able to use this values in "Validate item trigger". Because the value stored in the table are getting erased.
    Can you please help me how can I solve this problem. The vaues should retained for a entire session. Its urgent.
    Thanks
    Alaka

    Hi,
    I have already created Package and procedures in it. Declared PL/SQL table in the package specification as a global.
    I am using one procedure to insert into the PL/SQL table which, I am calling in "New record Instance".
    Created another procedure to fetch that value for validation in "When Validate Item" trigger.
    This is not working for me, even though I declared PL/SQL table as global.
    Please suggest If anything wrong in this.
    Thanks
    Alaka

  • Retain Pattern Match Attribute for Next Pattern Match Calculation

    When a MATCH_RECOGNIZE PATTERN match occurs, is there any way to retain the underlying event for the next pattern match?
    It's like I want to replay the underlying event (that triggered the match) into the next "batch" of events.

    Here is an approach
    1) Use a (local) cache to hold the "lastMatchedTime"
    2) Augment each input event with the "lastMatchedTime" by first (left outer join) joining with cache
    3) Run the MATCH_RECOGNIZE on the augmented stream
    4) Use a match to update the cache
    Here are the queries that I tried -
      <view id="S">
            <![CDATA[
                 RSTREAM (
                    SELECT
                           id,
                           obs,
                           epoch,
                           nvl(C.lastMatchedTime, 0) as lastMatchedTime
                    FROM
                           InputChannel[now] AS I LEFT OUTER JOIN lastMatchCache AS C
                    ON
                           C.keyValue = "key"      
            ]]>
          </view>
          <view id="v1">
            <![CDATA[                 
                      SELECT
                              T.id,
                              T.obsTotal,
                              T.elapsedTime,
                              T.firstts,
                              T.lastts
                      FROM S MATCH_RECOGNIZE (
                              PARTITION BY id
                              MEASURES
                                        id as id,
                                        sum(obs) as obsTotal,
                                        B.epoch - decode(B.lastMatchedTime, 0L, min(epoch), B.lastMatchedTime) as elapsedTime,
                                        decode(B.lastMatchedTime, 0L, min(epoch), B.lastMatchedTime) as firstts,
                                        B.epoch as lastts
                              PATTERN ( A+? B )
                              DEFINE
                                       B AS (epoch- decode(lastMatchedTime, 0L, min(epoch), lastMatchedTime)) > 20*60*1000
                      ) as T
            ]]>
          </view>
          <query id="qcache">
             <![CDATA[
                 SELECT
                       "key" as keyValue,
                       lastts as lastMatchedTime
                 FROM
                       v1
             ]]> 
          </query>
           <query id="q1">
             <![CDATA[
                 SELECT
                 FROM
                        v1
             ]]> 
          </query>
        Also, include in the config file
    <channel>
           <name>CacheChannel</name>
           <selector>qcache</selector>
       </channel> 
       <channel>
           <name>OutputChannel</name>
           <selector>q1</selector>
       </channel>The EPN that I used was
      <wlevs:event-type-repository>       
            <wlevs:event-type type-name="CacheEvent">
                <wlevs:class>com.bea.wlevs.event.example.helloworld.CacheEvent</wlevs:class>
            </wlevs:event-type>
            <wlevs:event-type type-name="InputEvent">
               <wlevs:properties>
                  <wlevs:property name="id" type="int"/>
                  <wlevs:property name="obs" type="int"/>
                  <wlevs:property name="epoch" type="bigint"/>
               </wlevs:properties>
            </wlevs:event-type>
            <wlevs:event-type type-name="OutputEvent">
               <wlevs:properties>
                  <wlevs:property name="id" type="int"/>
                  <wlevs:property name="obsTotal" type="int"/>
                  <wlevs:property name="elapsedTime" type="bigint"/>
                  <wlevs:property name="firstts" type="bigint"/>
                  <wlevs:property name="lastts" type="bigint"/>
               </wlevs:properties>
            </wlevs:event-type>
        </wlevs:event-type-repository>
        <wlevs:adapter id="InputAdapter" provider="csvgen">
             <wlevs:instance-property name="port" value="9061" />
             <wlevs:instance-property name="eventTypeName" value="InputEvent" />
             <wlevs:instance-property name="eventPropertyNames" value="id,obs,epoch" />
        </wlevs:adapter>     
        <wlevs:channel id="InputChannel" event-type="InputEvent" >
            <wlevs:listener ref="helloworldProcessor"/>
            <wlevs:source ref="InputAdapter"/>
        </wlevs:channel>
        <wlevs:caching-system id="local-caching"/>
        <wlevs:cache id="lastMatchCache" name="lastMatchCache" key-properties="keyValue" value-type="CacheEvent">
           <wlevs:caching-system ref="local-caching"/>
        </wlevs:cache>
        <!-- The default processor for OCEP 11.0.0.0 is CQL -->
        <wlevs:processor id="helloworldProcessor">
           <wlevs:listener ref="CacheChannel"/>
           <wlevs:cache-source ref="lastMatchCache" />      
        </wlevs:processor>
        <wlevs:channel id="CacheChannel" event-type="CacheEvent">
           <wlevs:listener ref="lastMatchCache"/>
        </wlevs:channel>
        <wlevs:channel id="OutputChannel" event-type="OutputEvent" advertise="true">
            <wlevs:listener>
                <bean class="com.bea.wlevs.example.helloworld.HelloWorldBean"/>
            </wlevs:listener>
            <wlevs:source ref="helloworldProcessor"/>
        </wlevs:channel>And the output that I get seems to match your requirement -
    eventType=OutputEvent object=q1  v1.id=4143, v1.obsTotal=9, v1.elapsedTime=7228000, v1.firstts=1199311210000, v1.lastts=1199318438000
    eventType=OutputEvent object=q1  v1.id=4143, v1.obsTotal=17, v1.elapsedTime=30935000, v1.firstts=1199318438000, v1.lastts=1199349373000
    eventType=OutputEvent object=q1  v1.id=4143, v1.obsTotal=7, v1.elapsedTime=41436000, v1.firstts=1199349373000, v1.lastts=1199390809000
    eventType=OutputEvent object=q1  v1.id=4143, v1.obsTotal=13, v1.elapsedTime=5904000, v1.firstts=1199390809000, v1.lastts=1199396713000Edited by: Anand Srinivasan on Sep 30, 2010 12:49 AM
    Edited by: Anand Srinivasan on Sep 30, 2010 12:50 AM

  • How value for PR00 and VPRS is calculated?

    Hi Everybody,
    Can anyone answer me the below mentioned question....
    1.Standard price in material in a/c view which comes in Pricing procedure as VPRS..............is that manufacturing cost(COGM)? Does it come from production?
    2.We calculate profit comparing standard price(VPRS) with the price which we get after deducting all the discounts and adding all taxes and freght.How do we fix up or determine base price(PR00)?Is it COGS?Who actually give or decide PR00 price in any Organization?
    3.Dfference between PR00 and VPRS.
    I wll really be grateful to get a clear picture of this.
    Thnx in advance.
    With regards,
    Subh

    Hi,
    PR00 - Basically this will be determined automatically during the sales order processing with the use of condition records
    PR00 indicates the basic price exclusive of any addition of discounts, taxes, etc.
    VPRS in requirement is 4,This pulls the condition type,and in item category we mention determine cost,With the help of this the cost of the material is dragged to the sales order
    VPRS is the condition which fetches the moving avg pricce of the material which gets determined by the invoice verification value for purchse orders. it may vary or be constant depending on the fact if its MAP or std price. these settings are in the material master acc./costing views. VPRS works for non-BOM scenarios. in BOM scenarios there is a cond called KUMU. kumu adds the costs of all the shild components to the header part. VPRS and KUMU form and exclusion grp i.e only once can be present in the sales order.
    Hope this helps you.
    Regards,
    Rakesh

  • Calculating Accumulative Value for a particular period

    Hi,
    I want to calculate acumulative values based on 0calmonth for a key figure.
    In Rows, i want 0calmonth and a key figure in Columns. If we select the property of the key figure as "Cumulative". It is adding values like in first month, first month value, in 2nd month it is showing the values by adding 1st and 2nd months. But I gave a Interval variable on 0calmonth (e.g  03.2006 to 09.2006 ) it displaying cumulative values from 3rd month. In 4th month it is showing value for 3rd and 4th month. But i want to see the values as "Accumulative" means from starting of that year. Eventhougth i gave the period value as 03.2006 to 09.2006, it has to display the value of 3rd month as adding of 1st,2nd and 3rd months. like that it has to show up to last month in the given peroid.
    Please can any one suggest me....
    Thanks and Regards
    Rajesh
    Message was edited by:
            rajesh
    Message was edited by:
            rajesh

    Hi ,
    For my Above Problem I am using the code as follows. But it has no errors. but when it is displaying on the web browser. it is not getting values.
    DATA: L_S_RANGE1 TYPE RSR_S_RANGESID.
          DATA: LOC_VAR_RANGE1 LIKE RRRANGEEXIT.
          DATA: L_VALUE LIKE RRRANGEEXIT-HIGH.
    CASE I_VNAM.
        WHEN 'ZCUM_INTERVAL'.
          IF I_STEP = 2.
          LOOP AT i_t_var_range INTO LOC_VAR_RANGE1 WHERE VNAM = '0I_CMNTH'.
             L_VALUE = LOC_VAR_RANGE1-LOW.
             while L_VALUE4(2) < LOC_VAR_RANGE1-HIGH4(2).
                if sy-index > 1.
                  L_VALUE4(2) = L_VALUE4(2) + 1.
                  if strlen( L_value+4(2) ) = 1.
                     concatenate '0' L_VALUE4(2) into L_VALUE4(2).
                  endif.
                endif.
                CLEAR L_S_RANGE1.
                L_S_RANGE1-LOW = LOC_VAR_RANGE1-LOW(4).
                L_S_RANGE1-LOW+4(2) = '01'.
                L_S_RANGE1-HIGH = L_VALUE.
               L_S_RANGE1-SIGN = 'I'.
               L_S_RANGE1-OPT = 'BT'.
                APPEND L_S_RANGE1 TO E_T_RANGE.
              ENDwhile.
            ENDLOOP.
          ENDIF.
    Please can any one suggest me regarding this.
    Thanks in Advance...
    TR
    Rajesh

  • Calculating value based on parent/child relations for a column..

    Hi Friends,
    I have a requirement thus,
    sample table, parts,
    ppart cpart qty
    990 1234 200
    100 100_1 150
    100 100_2 2
    100_1 120 100
    100_1 121 200
    100_2 130 50
    where qty is a number and the rest are varchar fields. Here the ppart 100 is a parent value for cpart values 100_1 and 100_2. So, I need to multiply the qty value for a child with the parent's qty values. The final result would look like,
    ppart cpart qty
    990 1234 200
    100 100_1 150
    100 100_2 2
    100_1 120 15000
    100_1 121 30000
    100_2 130 100
    I have only a basic understanding of SQL but I couldnt figure out a way for this. My best try was to join the table with itself and equate the ppart and cpart columns to retrieve the qty. However, the actual table has about 50 million records and I guess my idea is not going to please my DBA! I would appreciate if you could suggest better ideas.
    Thanks.

    Hi,
    you forgot nvl()
    SQL> with parts as (select '990' ppart, '1234' cpart, 200 qty from dual union all
      2                select '100'  , '100_1', 150 from dual union all
      3                select '100'  , '100_2', 2   from dual union all
      4                select '100_1', '120'  , 100 from dual union all
      5                select '100_1', '121'  , 200 from dual union all
      6                select '100_2', '130'  , 50  from dual)
      7  select p.ppart parent_part, c.ppart child_part, p.qty parent_qty, p.qty * c.qty child_quantity
      8  from   parts c
      9  left join parts p on c.ppart = p.cpart
    10  /
    PAREN CHILD PARENT_QTY CHILD_QUANTITY                                          
    100   100_1        150          30000                                          
    100   100_1        150          15000                                          
    100   100_2          2            100                                          
          990                                                                      
          100                                                                      
          100                                                                      
    6 rows selected.
    SQL> with parts as (select '990' ppart, '1234' cpart, 200 qty from dual union all
      2                select '100'  , '100_1', 150 from dual union all
      3                select '100'  , '100_2', 2   from dual union all
      4                select '100_1', '120'  , 100 from dual union all
      5                select '100_1', '121'  , 200 from dual union all
      6                select '100_2', '130'  , 50  from dual)
      7  select p.ppart,p.cpart, p.qty * nvl(c.qty,1) qty
      8  from   parts p,parts c
      9  where p.ppart = c.cpart(+)
    10  /
    PPART CPART        QTY                                                         
    100_1 121        30000                                                         
    100_1 120        15000                                                         
    100_2 130          100                                                         
    990   1234         200                                                         
    100   100_2          2                                                         
    100   100_1        150                                                         
    6 rows selected.

  • Render link depending on calculated value of another field

    I am using jdeveloper 11.1.2
    I have table with many columns, and the last column contains commandLink
    I want to render this command link depending on calculated function (FileExport.getTranslateFileName) using another fields in the table (row.SciId) as parameters
    <af:column>
    <af:commandLink" rendered="#{FileExport.hasTranslateFile}">
    </af:commandLink>
    </af:column>
    how can I implement that without adding transient field?

    yes FileExport is managed bean
    DCIteratorBinding iterator = getBindings().findIteratorBinding("UpdateRequestDCIterator");
    Row row = iterator.getCurrentRow();
    Object sciIdObject = row.getAttribute("SciId");
    but I don't know how to get the correct value of (row.SciId) for each row in my table
    my code always return the same value for the first row

  • IF statement in Calculated Field for Share point, doesnt calculate sum in my Excel Pivot table.

    Hi Everyone
    I used this in SP calculated column field.
    =IF([Shift Sched]="1pm to 10pm","0",IF([Shift Sched]="2pm to 11pm","1",IF([Shift Sched]="3pm to 12am","2",IF([Shift Sched]="4pm to 1am","3",IF([Shift Sched]="5pm to 2am","4",IF([Shift
    Sched]="6pm to 3am","5",IF([Shift Sched]="7pm to 4am","6",IF([Shift Sched]="8pm to 5am","7",IF([Shift Sched]="9pm to 6am","8",IF([Shift Sched]="10pm to 7am","8",IF([Shift
    Sched]="11pm to 8am","7",IF([Shift Sched]="12pm to 9am","6",IF([Shift Sched]="1am to 10am","5",IF([Shift Sched]="2am to 11am","4",IF([Shift Sched]="3am to 12pm","3",IF([Shift
    Sched]="4am to 1pm","2",IF([Shift Sched]="5am to 2pm","1",IF([Shift Sched]="6am to 3pm","0",IF([Shift Sched]="7am to 4pm","0",IF([Shift Sched]="8am to 5pm","0",IF([Shift
    Sched]="9am to 6pm","0",IF([Shift Sched]="10am to 7pm","0",IF([Shift Sched]="11am to 8pm","0",IF([Shift Sched]="12pm to 9pm","0"))))))))))))))))))))))))    
    it was able to work fine however my issue is when i extract the information to excel and use a pivot table the table is not able to calulate the sum of the value for this field. Can you please help me with this. this is for an Attendance traker for Night
    Differential pay for employees. they create a daily log of their shift schedule and if i summarize this in pivot the value in the calculated field for this is not getting the sum.
    Thanks,
    Norman

    Hi Everyone
    I used this in SP calculated column field.
    =IF([Shift Sched]="1pm to 10pm","0",IF([Shift Sched]="2pm to 11pm","1",IF([Shift Sched]="3pm to 12am","2",IF([Shift Sched]="4pm to 1am","3",IF([Shift Sched]="5pm to 2am","4",IF([Shift
    Sched]="6pm to 3am","5",IF([Shift Sched]="7pm to 4am","6",IF([Shift Sched]="8pm to 5am","7",IF([Shift Sched]="9pm to 6am","8",IF([Shift Sched]="10pm to 7am","8",IF([Shift
    Sched]="11pm to 8am","7",IF([Shift Sched]="12pm to 9am","6",IF([Shift Sched]="1am to 10am","5",IF([Shift Sched]="2am to 11am","4",IF([Shift Sched]="3am to 12pm","3",IF([Shift
    Sched]="4am to 1pm","2",IF([Shift Sched]="5am to 2pm","1",IF([Shift Sched]="6am to 3pm","0",IF([Shift Sched]="7am to 4pm","0",IF([Shift Sched]="8am to 5pm","0",IF([Shift
    Sched]="9am to 6pm","0",IF([Shift Sched]="10am to 7pm","0",IF([Shift Sched]="11am to 8pm","0",IF([Shift Sched]="12pm to 9pm","0"))))))))))))))))))))))))    
    it was able to work fine however my issue is when i extract the information to excel and use a pivot table the table is not able to calulate the sum of the value for this field. Can you please help me with this. this is for an Attendance traker for Night
    Differential pay for employees. they create a daily log of their shift schedule and if i summarize this in pivot the value in the calculated field for this is not getting the sum.
    Thanks,
    Norman

Maybe you are looking for