Measurement of the dynamic pressure by IEPE sensor

Hello, I work on cylinder pressure measurement in combustion engine. I have a piezoelectric pressure sensor with charge output 1 pC/psi and an inline charge amplifier 20 mV/pC
what gives overall sensitivity 20 mV/psi.
As my instrumenst are of an IEPE standard I decided to use NI9233 acquisition board. Unfortunately the output signal is far from the truth. I have checked sensor/amplifier with another acquisition device and they work correctly. I have 2 modules and both give same results. I have checked some parameters  and seems that the output signal is proportional to the logarithm from the pressure differential.  When I try to set the module configuration in MAX there is no pressure measurement available however there is force and acceleration.
Is it possible to use this module for pressure measurement? Somebody experienced similar problems?
Regards,
Przemek

Here are the parameters: Sensor Maker: Dytran, type: 2200C5
Charge amplifier Maker: Dytran, Type: 4705M5, charge amplifier is of an IEPE standard.
 I have attached their specification cards too.
In the file signals.jpg you can find my calibration experiment record. I was applying step-like pressure (blue line) to simulate rapid pressure increase. the value was 120 bar. I was expecting that the answer signal will be a pulse proportional to the step pressure. I have noticed that the answer depends from how fast the pressure increase, that means from the derivative of the pressure signal. I will attach one more file where you can see that it is proportional to the logarithm from that derivative.
Honestly I do not understand it at all now.
Attachments:
4705M5.pdf ‏91 KB
sensor 2200C.pdf ‏24 KB
signals.jpg ‏96 KB

Similar Messages

  • Check IEPE sensor connectivity and IEPE status (PCI 4472)

    Can someone tell me if it is possible to do the following in a LabVIREW program (with PCI 4472, LabVIEW and DAQmx).
    1) check the connectivity of an IEPE sensor/cable,i.e., if the cable connecting to an IEPE accelerometer is broken.
    2) check the IEPE status of a PCI 4472 channel, i.e, if IEPE of ai0 is turned on. 
    Thanks.
    Ian

    Hi, Ima
    Yes, When the IEPE is turned on, it remains on until you specifically turn it off.
    For my application, I need to have some channel IEPE on and some off, and the configuration changes frequenctly.
    If I have already turned IEPE on, and on the new task I need to call the DAQmx Create AI Channel (Sub).vi with "Voltage" input, IEPE will be turned off, unless I specify in the property node to set IEPE of desired channels on.   
    Ideally, this is what I want to do. If the IEPE was on before I call DAQmx Create AI Channel (Sub).vi, I  will to start measurement straight away; if the IEPE was off before I call DAQmx Create AI Channel (Sub).vi and property node to turn IEPE on, then after commit, I will wait for few seconds to let IEPE sensor to settle.  Therefore, I need to "poll" the device to determine the current IEPE status of individual channels. I guess I can track this from my software, but "polling" may be more reliable.
    Is there any way I do this?
    Thanks.
    Ian
    Attachments:
    Physical Chan.gif ‏3 KB

  • What's the dynamic range of PCI-6289?

    Dear Sir:
    Could you tell me the dynamic range of PCI-6289?
    Is there any difference using PCI-4472 or PCI-6289 when measuring vibration signal?
    Thank you!
    Regards,

    Hello,
    The PCI-4472 would be best suited for vibration measurments. It has 24-bit resolution, Simultaneous Sampling, Hardware Time-to-Frequency Domain Conversion, 110 dB Dynamic Range, and hardware filtering. See the following Link for more details on the 4472: http://sine.ni.com/apps/we/nioc.vp?cid=10572〈=US
    The 6289 was not built with vibration analysis in mind, the the dynamic range is not spec'd.
    Let me know if you have any further questions.
    Sean C.

  • Populate data into the dynamic table ie using field symbols

    Dear All,
    I need to convert the XML data into internal table. I did this using the guidelines in the forum. Using all those i can get my data
    in the format of
    Cname Cvalue
    id          1
    name    XX
    id          2
    name    YY
    But i need the values in the format of int_tab like,
    ID      Name
    1       XX
    2       YY
    I used the below code to create the dynamic table strucure.
    call method cl_alv_table_create=>create_dynamic_table
                   exporting
                      it_fieldcatalog = ifc
                   importing
                      ep_table        = dy_table.
    assign dy_table->* to <itab>.
    * Create dynamic work area and assign to FS
      create data dy_line like line of <itab>.
      assign dy_line->* to <wa>.
    So now my strucure will be like ID Name.
    I strucked in the place of populating the data into this like 1,XX,2,YY into the dynamic table.
    If you come across with this scenario, can anyone suggest me on this.
    Regards,
    Anita Vizhi Arasi B

    Hi Anita,
    Try to understand below given code. It works same as you want. But I used Function module not any method.
    TYPES: BEGIN OF ty_xml,
              raw(255) TYPE x,
             END OF ty_xml.
      DATA: lv_file_name TYPE                   rlgrap-filename,
            lit_hdr      TYPE TABLE OF          ty_hdr,
            ls_hdr       TYPE                   ty_hdr,
            lv_file      TYPE                   string,
            wa_xml       TYPE                   ty_xml,
            lit_xml      TYPE STANDARD TABLE OF ty_xml,
            lv_filename  TYPE                   string ,
            ls_xmldata   TYPE                   xstring ,
            lit_result   TYPE STANDARD TABLE OF smum_xmltb,
            ls_result    TYPE                   smum_xmltb,
            lit_return   TYPE STANDARD TABLE OF bapiret2,
            lv_size      TYPE                   i,
            lv_count     TYPE                   i.
      CONSTANTS: line_size TYPE i VALUE 255.
      REFRESH lit_hdr.
    *~ File selected from Local System
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          program_name  = syst-repid
          dynpro_number = syst-dynnr
        CHANGING
          file_name     = lv_file_name
        EXCEPTIONS
          mask_too_long = 1
          OTHERS        = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      lv_file = lv_file_name.
    *~ Upload for Data Provider
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename            = lv_file
          filetype            = 'BIN'
          has_field_separator = ' '
          header_length       = 0
        IMPORTING
          filelength          = lv_size
        TABLES
          data_tab            = lit_xml
        EXCEPTIONS
          OTHERS              = 1.
    *~ Convert from Binary to String
      CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
        EXPORTING
          input_length = lv_size
        IMPORTING
          buffer       = ls_xmldata
        TABLES
          binary_tab   = lit_xml
        EXCEPTIONS
          failed       = 1
          OTHERS       = 2.
    *~ Parse XML docment into a table structure
      CALL FUNCTION 'SMUM_XML_PARSE'
        EXPORTING
          xml_input = ls_xmldata                  " Buffered data
        TABLES
          xml_table = lit_result                  " final internal table which contain records
          return    = lit_return.
      LOOP AT lit_result INTO ls_result.
        IF ls_result-hier = '3'.
          IF ls_result-type = 'V'.
            CASE ls_result-cname.
              WHEN 'intno'.                       "Internal Number
                ls_hdr-intno = ls_result-cvalue.
              WHEN 'acode'.                       "Article Code
                ls_hdr-matnr = ls_result-cvalue.
              WHEN 'adesc'.                       "Article Description
                ls_hdr-maktx = ls_result-cvalue.
              WHEN 'idesc'.                       "Item Description
                ls_hdr-itmds = ls_result-cvalue.
              WHEN 'sdesc'.                       "Standard Description
                ls_hdr-stdds = ls_result-cvalue.
              WHEN 'at'.                          "Article Type
                ls_hdr-mtart = ls_result-cvalue.
              WHEN 'mc'.                          "Merchandise Category
                ls_hdr-matkl = ls_result-cvalue.
              WHEN 'cp'.                          "Characteristic Profile
                ls_hdr-charp = ls_result-cvalue.
                CONDENSE ls_hdr-charp.
              WHEN 'c1'.
                ls_hdr-col01 = ls_result-cvalue.
              WHEN 'c2'.
                ls_hdr-col02 = ls_result-cvalue.
              WHEN 'c3'.
                ls_hdr-col03 = ls_result-cvalue.
              WHEN 'c4'.
                ls_hdr-col04 = ls_result-cvalue.
              WHEN 'c5'.
                ls_hdr-col05 = ls_result-cvalue.
              WHEN 'c6'.
                ls_hdr-col06 = ls_result-cvalue.
              WHEN 'tc'.                          "Tax Classification
                ls_hdr-taklv = ls_result-cvalue.
              WHEN 's'.                           "Season
                ls_hdr-saiso = ls_result-cvalue.
              WHEN 'sy'.                          "Season Year
                ls_hdr-saisj = ls_result-cvalue.
              WHEN 'fg'.                          "Fashion Grade
                ls_hdr-fashg = ls_result-cvalue.
              WHEN 'rm'.                          "Reference Material
                ls_hdr-rfmat = ls_result-cvalue.
              WHEN 'fcv'.                         "Free Character Value
                ls_hdr-frecv = ls_result-cvalue.
              WHEN 'uom'.                         "Unit of Measure
                ls_hdr-uom = ls_result-cvalue.
              WHEN 'pou'.                         "PO Unit
                ls_hdr-pount = ls_result-cvalue.
              WHEN 'v'.                           "Vendor
                ls_hdr-lifnr = ls_result-cvalue.
              WHEN 'b'.                           "Vendor
                ls_hdr-brand = ls_result-cvalue.
              WHEN 'pg'.                          "Purchasing Group
                ls_hdr-wekgr = ls_result-cvalue.
              WHEN 'rv'.                          "Regular Vendor
                ls_hdr-rlifn = ls_result-cvalue.
              WHEN 'pp'.                          "Pricing Profile
                ls_hdr-sprof = ls_result-cvalue.
              WHEN 'sp'.                          "Sales Price
                ls_hdr-spric = ls_result-cvalue.
              WHEN 'm'.                           "Margin
                ls_hdr-margn = ls_result-cvalue.
              WHEN 'c'.                           "Calculate
                ls_hdr-pcalc = ls_result-cvalue.
              WHEN 'purp'.                        "Purchase Price
                ls_hdr-ppric = ls_result-cvalue.
              WHEN 'a'.                            "Assortment
                ls_hdr-asort = ls_result-cvalue.
              WHEN 'bm'.                           "Batch Management
                ls_hdr-batch = ls_result-cvalue.
              WHEN 'mrl'.                          "Min. Remaining Life
                ls_hdr-minrl = ls_result-cvalue.
              WHEN 'aag'.                          "Account Assignment Group
                ls_hdr-acass = ls_result-cvalue.
              WHEN 'vc'.                           "Valuation Class
                ls_hdr-valcl = ls_result-cvalue.
              WHEN 'eancat'.                       "EAN Category
                ls_hdr-eanct = ls_result-cvalue.
              WHEN 'ean11'.
                ls_hdr-ean11 = ls_result-cvalue.
            ENDCASE.
            AT END OF hier.
              APPEND ls_hdr TO lit_hdr.
            ENDAT.
          ENDIF.
        ENDIF.
      ENDLOOP.
      APPEND LINES OF lit_hdr TO git_hdr.
      DELETE git_hdr  WHERE maktx IS INITIAL            "Article Description
                          AND mtart IS INITIAL          "Article Type
                          AND matkl IS INITIAL          "Merchandise Category
                          AND charp IS INITIAL          "Characteristic Profile
                          AND taklv IS INITIAL          "Tax Classification
                          AND uom   IS INITIAL          "Unit of Measure
                          AND pount IS INITIAL          "PO Unit
                          AND lifnr IS INITIAL          "Vendor
                          AND brand IS INITIAL          "Brand
                          AND wekgr IS INITIAL          "Purchasing Group
                          AND ppric IS INITIAL          "Purchasing Price
                          AND spric IS INITIAL          "Sales Price
                          AND acass IS INITIAL          "A/c Assign. Grp.
                          AND valcl IS INITIAL          "Valuation Class
                          AND saiso IS INITIAL          "Season
                          AND saisj IS INITIAL.         "Season Year
      IF git_hdr[] IS NOT INITIAL.
        CLEAR: lv_count.
        LOOP AT git_hdr INTO ls_hdr.
          lv_count  = lv_count + 1.
          ls_hdr-intno = lv_count.
          MODIFY git_hdr FROM ls_hdr TRANSPORTING intno.
          CLEAR: ls_hdr.
        ENDLOOP.
      ENDIF.
    Code written is part of my program. Try to understand it. I hope it will help you out.
    Regards,
    Narendra

  • Can we debug the dynamic action code

    Dear Freinds,
                 I want to debug the standard code written for dynamic action for infotype 0002 and to that of infotype 0021. How can i debug is there any standard program for dynamic action please let me know .
    regards
    divya.

    Hi Divya,
    It's possible to debug the dynamic measure. Just go to include MPPERS00 and put a break-point inside subrotines DYN_MEASURE and MEASURE. Then, in PA30, trigger the dynamic action and the system automaticaly will enter in debug mode.
    I'm assuming that you understand ABAP (in order to realize what SAP is doing behind the scenes) and know how to create a break-point in the ABAP editor.
    Good luck,
    Bruno Quental

  • How to know the dynamic values for this :AND category_id_query IN (1, :3, )

    Hi Team,
    R12 Instance :
    Oracle Installed Base Agent User Responsibility --> Item Instances -->
    Item Instance: Item Instances > View : Item Instance : xxxxx> Contracts : Item Instance : xxxxx> Service Contract: xxxxx>
    In the above page there are two table regions.
    Notes.
    -------------------------------------Table Region---------------------------
    Attachments
    -------------------------------------Table Region---------------------------
    --the attachments are shown using the query from the fnd_lobs and fnd_docs etc...
    I want to know what are the document types are displayed in this page ?
    --We developed a custom program to attach the attachments to the  services contracts and the above seeded OAF page displays those ..as needed.
    But after recent changes..the Attachments--> table region is not showing the attachments.
    I have verified the query..and could not find any clue in that..
    but i need some help if you guys can provide..
    SELECT *
    FROM
    *(SELECT d.DOCUMENT_ID,*
    d.DATATYPE_ID,
    d.DATATYPE_NAME,
    d.DESCRIPTION,
    DECODE(d.FILE_NAME, NULL,
    *(SELECT message_text*
    FROM fnd_new_messages
    WHERE message_name = 'FND_UNDEFINED'
    AND application_id = 0
    AND language_code  = userenv('LANG')
    *), d.FILE_NAME)FileName,*
    d.MEDIA_ID,
    d.CATEGORY_ID,
    d.DM_NODE,
    d.DM_FOLDER_PATH,
    d.DM_TYPE,
    d.DM_DOCUMENT_ID,
    d.DM_VERSION_NUMBER,
    ad.ATTACHED_DOCUMENT_ID,
    ad.ENTITY_NAME,
    ad.PK1_VALUE,
    ad.PK2_VALUE,
    ad.PK3_VALUE,
    ad.PK4_VALUE,
    ad.PK5_VALUE,
    d.usage_type,
    d.security_type,
    d.security_id,
    ad.category_id attachment_catgeory_id,
    ad.status,
    d.storage_type,
    d.image_type,
    d.START_DATE_ACTIVE,
    d.END_DATE_ACTIVE,
    d.REQUEST_ID,
    d.PROGRAM_APPLICATION_ID,
    d.PROGRAM_ID,
    d.category_description,
    d.publish_flag,
    DECODE(ad.category_id, NULL, d.category_id, ad.category_id) category_id_query,
    d.URL,
    d.TITLE
    FROM FND_DOCUMENTS_VL d,
    FND_ATTACHED_DOCUMENTS ad
    WHERE d.DOCUMENT_ID = ad.DOCUMENT_ID
    *) QRSLT*
    WHERE ((entity_name    ='OKC_K_HEADERS_V'-- :1
    AND pk1_value          IN ( 600144,599046) --:2
    AND category_id_query IN (1, :3, :4, :5, :6, :7) )
    AND datatype_id       IN (6,2,1,5)
    AND (SECURITY_TYPE     =4
    OR PUBLISH_FLAG        ='Y')))
    --='000180931' -- 'ADP118'
    The above seeded query is the one which is used for table region to retrieve the data..
    how to know the dynamic values for this : AND category_id_query IN (1, :3, :4, :5, :6, :7) )
    --Sridhar                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Hi Patricia,
    is it working for restricted key figure and calculated key figure ??
    Note Number Fisc Period Opening Days
    1 1 2
    2 1 3
    3 1 0
    because I have other restriction, so I create two restricted key figure..
    RK1  with restriction :  Total Number of Note,
    RK2  with restriction :  Total Opening Days ,
    then I Created a calculated key figure, average opening days in a period
    CK1 = RK2 / RK1..
    in this case, I am not sure if it will work or not..
    for example, during RK2 calclation, it might be this   2+3 = 5, the line with 0 will be ignored..
    during RK1 calcualtion, it might be 1 + 1 + 1 = 3. ---> Not sure in this case, the line with opening days 0 will be calculated or not..
    could you please confirm..

  • Firedox did a restart, now it wont open i get the message The procedure point js_UnwrapObjectAndInnerize could not be located in the dynamic link library

    firefox did a restart now it wont open, i get the following message,
    The procedure point js_UnwrapObjectAndInnerize could not be located in the dynamic link library
    have tried system restore but this didnt help

    Do a clean reinstall and delete the Firefox program folder (C:\Program Files\Mozilla Firefox\) before reinstalling a fresh copy of Firefox.
    *http://kb.mozillazine.org/Installation_directory
    Download a fresh Firefox copy and save the file to the desktop.
    *Firefox 15.0.x: http://www.mozilla.org/en-US/firefox/all.html
    Uninstall your current Firefox version, if possible, to cleanup the Windows registry and settings in security software.
    *Do NOT remove personal data when you uninstall your current Firefox version, because all profile folders will be removed and you will also lose your personal data like bookmarks and passwords from profiles of other Firefox versions.
    Remove the Firefox program folder before installing that newly downloaded copy of the Firefox installer.
    *It is important to delete the Firefox program folder to remove all the files and make sure that there are no problems with files that were leftover after uninstalling.
    *http://kb.mozillazine.org/Uninstalling_Firefox
    Your bookmarks and other profile data are stored in the Firefox Profile Folder and won't be affected by an uninstall and (re)install, but make sure that "remove personal data" is NOT selected when you uninstall Firefox.
    *http://kb.mozillazine.org/Profile_folder_-_Firefox
    *http://kb.mozillazine.org/Profile_backup
    *http://kb.mozillazine.org/Standard_diagnostic_-_Firefox#Clean_reinstall

  • How can I get the dynamic zoom tool to work in my PDF all the time?

    I have designed an interactive PDF to open in full-screen view only. Of course, when it does so, none of Reader's tool bars are available to the end-user. But as the PDF is meant to be used on screen, I want the recipient to access the dynamic zoom tool. So I have introduced access to it from within the PDF itself.
    This I have done using the Button tool to create a button that appears on each page of the PDF that, when clicked, turns the cursor into the dynamic tool. Another button I created alongside it brings back the cursor.
    However, having done this, some recipients receiving the PDF have been able to access the dynamic zoom tool from within my lovingly crafted PDF but others have not (the dynamic zoom tool worked on a PC machine running XP/Home & Reader 7, but not on PCs running XP/Home & Reader 8 or 9).
    And of course, the tool works fine when the user exits out of full-screen view & accesses the tool via the menu, or the toolbar.
    But we don't want the menu or tool bars to be visible!!
    So my question is, does anyone know why this specific function on the PDF I created is working for some and not for others? Do you know if there is something specific I need to apply within the Button tool's settings or the PDF's settings that once actioned will completely avoid this problem from reoccurring? Or is there a bug in the software that you are aware of that prevents me from creating a PDF that includes access to the dynamic zoom tool from within itself (not via the toolbar) and which works fine in different versions of Reader & across PC/Mac platforms & operating systems?
    (I created the PDF using Acrobat Pro 9 on a Mac running Leopard, 10.5.9. And if anyone wants to know, you can create the interactive button as I did from the menu bar: go to Tools > Advanced editing > Button tool. Clicking Button tool brings up a cross-hair cursor. Click & drag to marquee the area you want to make interactive (in my case, over the icon I designed & introduced to each page of the PDF to represent the dynamic zoom tool).
    This brings up a dialogue box where you can select the appearance of the button (eg visible or invisible), which trigger is needed to activate it (clicking, hovering, etc), & what action is generated once you've done so (like going to another page in the document, run a javascript, play a sound, or execute any of the menu items).
    So all I did is told it which menu item to activate, by selecting 'execute menu item' in the drop-down menu, going to the menu to select it & clicking okay. Simples!)

    Download the Adobe Flash Player installer directly by right clicking the following link and selecting "Save Link as".
    Flash Player Plug-in (All other browsers)
    THAT's the Flash Player.
    Shockwave Player 12
    THAT's the Shockwave plugin.
    BOTH should be up to date.

  • How to create the dynamic report

    Hi,
    please help me, how to create the dynamic report

    Hi,
      Try this..
    DATA: p_temp(30)  TYPE c DEFAULT 'ZTEST_REPORT'.
    TYPES: BEGIN OF t_abapcode occurs 0,
            row(72) TYPE c,
           END OF t_abapcod.
    T_ABAPCODE-ROW = 'REPORT ZTEST_REPORT.'.
    APPEND T_ABAPCODE.
    T_ABAPCODE-ROW = 'WRITE: / ''TEST REPORT''. '.
    APPEND T_ABAPCODE.
    INSERT REPORT p_temp FROM it_abapcode.
          SUBMIT (p_temp) AND RETURN.
          DELETE REPORT p_temp.
    Thanks,
    naren

  • What do I do when I try to open Fifrefox 4 & get the message: The procedure entry point NS_SetDllDirectory could not be located in the dynamic link library xul.dll?

    2 days ago, I got a message about upgrading to Firefox 4.0. I didn't do it immediately, due to lack of time. Later that day, I tried to open Firfox & got the message: Firefox can't start because xul.dll is missing. Reinstall the program to fix this. I tried several times to open Firefox & got the same result. I tried rebooting. Same result. So I opened Internet Explorer & went to the Firefox website & followed the instructions to download Firefox 4. After that, I used it last night & left my laptop hibernating last night, then continued to use it this morning. Then I closed Firefox. When I next tried to reopen Firefox, I got the new message: The procedure entry point NS_SetDllDirectory could not be located in the dynamic link library xul.dll. Again, I can only access the internet with Internet Explorer. Also, I have a done a good many Windows updates over the last 2 days as well. What can I do to get Firefox to open? Thank you for your help.

    This is what I did to resolve this problem. First, I uninstalled Firefox 4 & removed the Firefox folder left behind. I made sure to NOT select the option to delete personal information. Next, I backed up all of the important files on my computer. Next, I upgraded my Windows 7 to Service Pack 1, which was pending in my updates folder. Then, I went to Mozilla's website & downloaded Firefox 4 again, making sure to select only the Firefox browser and not Thunderbird too. http://www.mozilla.org/ When prompted to close any open programs, I closed Internet Explorer (which I had used to get to the Mozilla website) and I disabled my Norton anti-virus. I then completed the installation & it works just fine now. It loaded all of my personal data, such as bookmarks, it remembered my password, etc. It's fine for my needs, as I'm not a heavy user of special add-ons & plug-ins. Some of those may not work yet with the new version.

  • How to use the Dynamic Expression in BRFplus

    Hi Experts
                   I am new to BRFplus. Can you give any document on BRFplus how to use the Dynamic Expression.
    Thankyou
    Venkat

    OK I tried it and worked but for one condition:
    WHERE DECODE (E.qualification_sid, 1104,
         (TO_DATE(E.RANK_DATE, 'DD-MM-RR')+(365*M.spe_per)+1),
         (TO_DATE(E.RANK_DATE, 'DD-MM-RR')+(365*M.mili_yea_per)+1))
         BETWEEN TO_DATE('01-07-2011', 'DD-MM-RR') AND TO_DATE('31-07-2011', 'DD-MM-RR')
    But how to put two conditions for the same Expression:
    WHERE DECODE ((E.qualification_sid, 1104) AND (E.RANK_SID, 8),
         (TO_DATE(E.RANK_DATE, 'DD-MM-RR')+(365*M.spe_per)+1),
         (TO_DATE(E.RANK_DATE, 'DD-MM-RR')+(365*M.mili_yea_per)+1))
         BETWEEN TO_DATE('01-07-2011', 'DD-MM-RR') AND TO_DATE('31-07-2011', 'DD-MM-RR')
    The previous code gives me this error: missing right parenthesis

  • How to evaluate the dynamic condition string in PL/SQL ?

    Hello, I am solving the issue of checking and validating the event table.
    For Example, the event table namely "Contract_validated" contains some atts about a contract as follow:
    CONTRACT_VALIDATED (SEQ_ID, CO_ID, VALID_T, CHANGE_KEY, ATT1, ATT1_FROM, ATT2, ATT2_FROM, REASON, CHANGE_KEY_ORIG, ATT1_ORIG, ATT2_ORIG)
    In this table, the pairs (ATT1 and ATT1_FROM), (ATT2 and ATT2_FROM) must be compared to check whether the values are changed or not in the update event (change_key = U). If some records have change_key = U but the values does not change, I need to protocol and correct such records.
    The table name and attributes list could be dynamic, and will be provided as parameters. Therefore, I use Dynamic PL/SQL to generate the code to test the conditions between the values between the pairs columns for detecting the invalid event. However, I am stucking in testing the condition phrases because I can not evaluate the condition string in the SELECT statement. I can not use IF because parts of this condition string take the value from a record and collection type. Anyone has the idea how to evaluate the condition in such case, please give me instructions or recommendations (it could be other alternatives to solve the problems)
    Here is the code which generated from my Dynamic PL/SQL string, however, Oracle raise exception error at the EXECUTE IMMEDIATE v_sql command
    SELECT 'x' FROM DUAL WHERE (NVL(v_rec.ATT1, NULL) <> NVL(v_rec.ATT1_FROM , NULL) OR (NVL(v_rec.ATT2, NULL) <> NVL(v_rec.ATT2_FROM , NULL))
    E-0008: Unkown Exception raised in Loop. ORACLE:ORA-00904: "V_REC"."ATT2_FROM": invalid identifier
    vo_traced_list has type Table of VARCHAR2(2000), storing the atts list of table (CONTRACT_VALIDATED), it has value already from other procedure invocation.
    Here is the dynmic PL/SQL code generated dynamically depends on the table name, and attr list:
    DECLARE v_rec CONTRACT_VALIDATED%ROWTYPE;
    TYPE cv_type IS REF CURSOR;
    v_rec_cv CV_TYPE;
    v_cond VARCHAR2(4000);
    cond BOOLEAN := FALSE;
    v_exec VARCHAR2(1000);
    v_default VARCHAR2(10):= 'NULL';
    tk_val CONTRACT_VALIDATED.VALID_T%TYPE;
    pk_val CONTRACT_VALIDATED.CO_ID%TYPE;
    v_cnt NUMBER;
    BEGIN
    OPEN v_rec_cv FOR SELECT /*+ parallel(x,4) */ x.* FROM CONTRACT_VALIDATED x WHERE CHANGE_KEY = 'U' ORDER BY VALID_T;
    FETCH v_rec_cv INTO v_rec;
    IF v_rec_cv%NOTFOUND THEN
    Add_Log('Event_Validating',v_user,v_event_validated,'INFO','I-0001: No-Procession needed');
    ELSE
    BEGIN
    LOOP
    pk_val := v_rec.co_id;
    tk_val := v_rec.valid_t;
    v_cnt := vo_traced_atts_list.COUNT;
    v_cond := '(NVL(v_rec.'|| vo_traced_atts_list(1)||', ' || v_default || ') <> NVL(v_rec.' || vo_traced_atts_list(1)||'_FROM'
    ||' , ' || v_default || '))';
    cond := (BOOLEAN) v_cond;
    FOR v_i IN 2..v_cnt LOOP
    BEGIN
    v_cond := v_cond ||CHR(13)||CHR(10)||'OR (NVL(v_rec.'||vo_traced_atts_list(v_i)||', ' || v_default || ') <> NVL(v_rec.'||vo_traced_atts_list(v_i)||'_FROM'
    ||' , ' || v_default || '))';
    END;
    END LOOP;
    v_exec := 'SELECT ''x'' FROM DUAL WHERE '||v_cond;
    Add_Log('Event_Validating',v_user,v_event_validated,'INFO',v_exec);
    EXECUTE IMMEDIATE v_exec;
    /* Exception raised from here
    E-0008: Unkown Exception raised in Loop. ORACLE:ORA-00904: "V_REC"."ATT2_FROM": invalid identifier
    It seems that Oracle does not understand the dynamic reference v_rec.ATT2_FROM, v_rec.ATT2,... to test the condtion
    IF SQL%ROWCOUNT = 0     THEN -- condition is false ==> traced attributes does not changed
    -- update the REASON = 4 - not interested event
    v_exec := 'UPDATE CONTRACT_VALIDATED SET REASON = 4 WHERE CO_ID = '||pk_val||' AND VALID_T = '||tk_val;
    EXECUTE IMMEDIATE v_exec;
    END IF;
    FETCH v_rec_cv INTO v_rec;
    EXIT WHEN v_rec_cv%NOTFOUND;
    END LOOP;
    EXCEPTION
    WHEN OTHERS THEN
    Add_Log('SCD_VALIDATION',v_user,v_event_validated,'ERROR','E-0008: Unkown Exception raised in Loop. ORACLE:'||SQLERRM);
    RAISE ge_raise_error;
    END;
    END IF;
    CLOSE v_rec_cv;
    EXCEPTION
    WHEN OTHERS THEN
    Add_Log('SCD_VALIDATION',v_user,v_event_validated,'ERROR','E-0008: Unkown Exception raised in Loop. ORACLE:'||SQLERRM);
    RAISE ge_raise_error;
    END;

    Dear Andrew,
    Thank you so much for your suggestions, however, I think it will be better to let me explain more about the situation.
    I am working at Data Warehousing and Analysis part. The event tables are provided by other applications such as Customer OTLP system, Sales Management, etc. We therefore just have the results stored in the event tables (which could be wrong or inconsistency) and no way to force them to be valid by constraints. Before further processing the events , their records should be checked and overridden if possible, and that is the point I am trying to solve now.
    The Event table names, their attributes list, data types, primary key, timestamp columns etc are dynamic and are provided via parameters. I would like to write a procedure which can check the invalid events (not only update, but also insert, delete), protocol them, and override them if possible before processing further. Because the table name, attribute lists, data type, etc are not known in advanced, to my best knowledge, the only choice is generating dynamic PL/SQL code although it could suck the performance. The code you have seen in my first question is the output from the follwoing procedure, where the i_att_list provides the atts list has been parsed from other procedure invocation, i_pk is the primary key, i_tk is the time key, i_table_name is the table name (which is Event_Validation in previous example). The stucking point I have met now is that I do not know how to test the condition to detect the different between column pairs (ATT1 and ATT1_FROM, ...). Using Select from dual is just a dummy select for testing the where condition which must be formed as a string by that way.
    Thank you very much for your answer and looking forward to seeing your further recommendations or suggestions.
    Regards,
    Tho.
    CREATE OR REPLACE PROCEDURE Update_Validation
    ( i_att_list enum_string, -- list of attributes
    i_pk IN VARCHAR2, -- primary key column
    i_tk IN VARCHAR2, -- time key column
    i_table_name IN VARCHAR2 -- table_name - the columns format be checked
    ) AUTHID Current_User IS
    TYPE LoopCurType           IS REF CURSOR;
    ln_parallel NUMBER := 4;
    ge_raise_error EXCEPTION;
    v_user VARCHAR2(100);
    v_sql VARCHAR2(4000);
    v_string VARCHAR2(4000);
    v_crlf VARCHAR2(2) := CHR(13)||CHR(10);
    BEGIN
    SELECT sys_context('USERENV','current_schema') INTO v_user FROM DUAL;
    v_sql:= 'SELECT /*+ parallel(x,'||ln_parallel||') */ x.* FROM ' ||i_table_name|| ' x '||
              'WHERE CHANGE_KEY = ''U'''||
    ' order by '||i_tk;
    v_string := 'DECLARE v_rec '||i_table_name||'%ROWTYPE;' ||v_crlf||
              ' TYPE cv_type IS REF CURSOR; ' ||v_crlf||
    ' v_rec_cv CV_TYPE; ' ||v_crlf||
              ' v_cond VARCHAR2(4000); ' ||v_crlf||
         ' v_exec VARCHAR2(100);' ||v_crlf||
              ' v_default VARCHAR2(10):= ''~~''; ' ||v_crlf||
    ' tk_val '||i_table_name||'.'||i_tk||'.%TYPE;'||v_crlf||
    ' pk_val '||i_table_name||'.'||i_pk||'.%TYPE;'||v_crlf||
              ' v_cnt NUMBER;' ||v_crlf||
              'BEGIN ' ||v_crlf||
                        'OPEN v_rec_cv FOR ' ||v_sql ||';' ||v_crlf||
                        'FETCH v_rec_cv INTO v_rec;' ||v_crlf||
                             ' IF v_rec_cv%NOTFOUND THEN ' ||v_crlf||
                                  'Add_Log(''Event_Validating'',v_user,i_table_name,''INFO'',''I-0001: No-Procession needed'');'||v_crlf||
                             ' ELSE ' ||v_crlf||
                                  ' BEGIN '||v_crlf||
                                  ' LOOP '||v_crlf||
                                  'pk_val := v_rec.'||i_pk||';'||v_crlf||
    'tk_val := v_rec.'||i_tk||';'||v_crlf||
    'v_cnt := i_att_list.COUNT;' ||v_crlf||
                                            'v_cond := ''NVL(v_rec.''|| i_att_list(1)||'', '' || v_default || '') <> NVL(v_rec.'' || i_att_list(1)||''_FROM'''||v_crlf||
                             '||'' , '' || v_default || '')'';'||v_crlf||
                                            'FOR v_i IN 2..v_cnt LOOP'||v_crlf||
                                                 'BEGIN'||v_crlf||
                                                 'v_cond := v_cond ||CHR(13)||CHR(10)||''OR NVL(v_rec.''||i_att_list(v_i)||''), <> NVL(v_rec.''||i_att_list(v_i)||''_FROM'''||v_crlf||
                                                 '||'' , '' || v_default || '')'';'||v_crlf||
                                                 'END;'||v_crlf||
                                            'END LOOP;'||v_crlf||
                                            'v_exec := ''SELECT ''x'' FROM DUAL WHERE ''||v_cond;'||v_crlf||
                                            'EXECUTE IMMEDIATE v_exec;'||v_crlf||
                                            'IF SQL%ROWCOUNT = 0     THEN -- condition is false ==> traced attributes does not changed'||v_crlf||
                                            '-- update the REASON = 4 - not interested event'||v_crlf||
                                            'UPDATE '||i_table_name||' SET REASON = 4 WHERE '||i_pk||' = '||v_tk||' AND '||i_tk||' = '||tk_val||';'||v_crlf||
                                            'END IF;'||v_crlf||
                                       'FETCH v_rec_cv INTO v_rec;' ||v_crlf||
                                       'EXIT WHEN v_rec_cv%NOTFOUND;'||v_crlf||
                        ' END LOOP;'||v_crlf||
                                  'EXCEPTION' ||v_crlf||
                             'WHEN OTHERS THEN'||v_crlf||
                        'Add_Log(''SCD_VALIDATION'',v_user,i_table_name,''ERROR'',''E-0008: Unkown Exception raised in Loop. ORACLE:''||SQLERRM);'||v_crlf||
                        'RAISE ge_raise_error;'||v_crlf||
                                  'END;'||v_crlf||
                                  'END IF;'|| v_crlf||
                        'Close v_rec_cv;'||v_crlf||
                        'EXCEPTION' ||v_crlf||
                   'WHEN OTHERS THEN'||v_crlf||
              'Add_Log(''SCD_VALIDATION'',v_user,i_table_name,''ERROR'',''E-0008: Unkown Exception raised in Loop. ORACLE:''||SQLERRM);'||v_crlf||
              'RAISE ge_raise_error;'||v_crlf||
                   'END;';               
         Add_Log('SCD_UPDATE_VALIDATION',v_user,i_table_name,'INFO','I-0006: Update Validation : '||v_string);     
         EXECUTE IMMEDIATE v_string;
    EXCEPTION
    WHEN OTHERS THEN
    Add_Log('SCD_VALIDATION',v_user,i_table_name,'ERROR','E-0008: Unkown Exception raised in Loop. ORACLE:'||SQLERRM);
    END Update_Validation;

  • Can we catch the dynamic item value in Apex?

    Hi All,
    In my application i am using SELECT_LIST_FROM_QUERY_XL Function. The select list will be populated based on some product group id.
    Some times the list will be 2 or 5 based on prgr id. Now how to catch the dynamic list item name. Is it possible?
    Thanks,
    Anoo..

    Not directly. You can have two items and then dynamically switch between those two items. This can lead to other issues of cause. For example if the item value should be stored in the database, you have to decide which item to store and how to do that.
    The field type itself should not be changed. There are a lot of other things that depend on that. Possible ? Yes. Advisable? No. Check the page source text to see the difference between a select item and a normal text field. Then think if you want to set all this dynamically.
    Maybe a popup list would be better suited?
    One more point: In my experience adding too many dynamic stuff onto a page will not improve the user experience, but will decrease it. So you should carefully consider if this is something. Dynamic actions are great, but they are not always the best tool for the job.

  • I only see the image outline sometimes instead of the "dynamic graphics preview"?

    I'm sure everyone who uses InDesign for any amount of time is aware of something I just recently found out is called the "dynamic graphics preview." [See Fig. 2, below]
    The dynamic graphics preview is the whole image you temporarily see when your trying to crop, or position an image within a frame. It's the part of the image that falls outside of the frame. The parts of the image that fall outside of the image are temporarily "seen" transparently (faded), to indicate that those areas are not within the viewable area of the frame. You usually see this when you are trying to crop the image with the direct selection tool, after you click and hold on the image for a few seconds with the direct selection tool. The temporary transparent preview goes away once you decide on the position and let go of the mouse click.
    So my issue is: when I click and hold, on certain images with the direct selection tool (white arrow) the dynamic graphics preview doesn't show up? All I see is the outline of the path of the image, with NO PREVIEW, or the outline of the shape (usually a rectangle), with NO PREVIEW.
    For instance there was this one situation at work (where I work on catalogs) where the same image was copied six times, in order to make swatches, and when I clicked and held on those particular images the dynamic graphics preview would show, but not on the other images, even though they're the same image!? Meaning, the same exact image file, just copied six times.
    So why can I see the temporary transparent preview for certain instances of the same image but not for others?
    Has anyone else ever experienced this?
    Again any answers are completely appreciated.
    Fig. 1
    Fig. 2

    Peter Spier wrote:
    The first question would be does it work if you try again and wait a bit longer before moving the mouse?
    Next, does it happen in more than this file?
    Does it continue to happen if you restart the computer?
    Does it happen if you use a ne user account?
    – Nope. Tried that.
    – It happens in other files as well. The situation is similar also, where one copy of the same file will show the dynamic graphic preview but the other copies will not.
    – Yes, even after restart, it persists. It occured again today in fact.
    – Yes. Even after I login in with a different account, I get the same issue. Others in my office have had the same issue. Can it be server related? Or permisions related? I don't see how that can be when it's the same exact file, and on one copy it works but on the others it doesn't.
    ..Makes no sense at all.
    By the way this is all happening on CS 5.5 - version 7.5.2 [Fig. 3].
    NOTE: The images above [Fig. 1-2] show CS 3 screen shots because they were made from my computer at home, which as far as I know don't have the same problem with the dynamic graphics preview (DGP). Those images are only there to help illustrate what the DGP is. All the issues with the DGP are occuring in CS 5.5.
    Fig. 3

  • How do I set two different beat measures in the same project, e.g. 2/4 and 3/4?

    How do I set two different beat measures in the same project, e.g. 2/4 and 3/4?

    mpcsouza wrote:
    How do I set two different beat measures in the same project, e.g. 2/4 and 3/4?
    you can't, GB is restricted to a single time signature per project
    however, the time sig is really more cosmetic, it doesn't affect the way the project plays back, so you could set the project to 2/4 when working on the 2/4 parts, and 3/4 when working on the 3/4 parts

Maybe you are looking for

  • IPhone Genius bar...

    when i go online to reserve a time the earliest i can get is for tomorrow. if i go to the apple store today i can just sign in and be seen today correct? i was doing so well with my 3G service. i would have it most of the day. occasionally it would g

  • Disk Utility Hangs "Closing Session" when attempting to burn a disk image

    I have been trying to burn a DVD of a disk image created with Disk Utility and the process repeatedly gets hung up on "Closing session". I have let it go for 15 hours (I assume that is long enough) before force quitting DU. Additionally, the drive is

  • Sign in Acrobat 9.4

    Dear all, i need your support I can not sign any documents, when i try a message error appears. Appear this message: "Creation of this signature could not be completed Error encountered while BER decoding Internal error: a function parameter had a in

  • Java Servlet BUG (Possibly)-Servlet classname replaces retrieved doc name

    I created a test servlet (TestServlet.java) which reads data from a file which could be pdf/doc/xls/zip etc and presents the file to the user for download. When the user clicks on the save option to save the file the default name before the file exte

  • 1099 Misc reporting

    am trying to run 1099 forms, I am using tcode S_P00_07000134 - Generic Withholding Tax Reporting. When I run program I only see Copy B, which is for the vendors records, I will still need Copy A in order to send to Federal. Does anyone knows the proc