Coding Multiple TDMS Set Properties Efficientl​y

I am trying to save some test settings as TDMS properties.  I have figured out the mechanics of saving individual properties to the file, but I have 25 or so properties to write to the file.  What is the most efficient way to code this in LV, so that I don't have to use the "TDMS Set Properties" block 25 different times?  I have tried sending the block arrays, but it doesn't like that.  Is there some kind of loop I can use?
Steve
Solved!
Go to Solution.

Another idea is this:
Ton
Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas
LabVIEW, programming like it should be!

Similar Messages

  • TDMS Set Properties in a loop?

    I am using LV 8.5 and am trying to apply TDMS properties to multiple channels in one fell swoop, with the idea of being able to automate it for the number of channels currently active.  I know how to do this, except for one step I'm struggling with.  I keep getting the error:
    "LabVIEW:  An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
    =========================
    NI-488:  Command requires GPIB Controller to be Controller-In-Charge."
    coming from the tdms set properties.  I'm feeding it an an indexing array of strings, which I believe are C-strings so null terminator as the help files says it struggles with such, and no addresses.  I've attached a partially completed VI that is otherwise working.
    Thanks for your assistance,
    Bret Dahme
    Solved!
    Go to Solution.
    Attachments:
    Multiple_inputs.vi ‏102 KB

    Bingo!  Glad that it was a quick and easy solution.  The help file says group or channel and nothing that i can see of requireing either.
    Thanks for the help!
    Attachments:
    Multiple_inputs.vi ‏98 KB

  • TDMS Set Properties fails

    Hi.
    I am currently developing an application which writes some data into a TDMS file.
    I have used the TDMS Set Properties VI to add some special properties as meta data.
    Basically it works, but only once. Now I would like to know why: The error message is:
    "LabVIEW:  An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @. "
    I attached two files. One of them works (the one where only a single Set Properties VI is actually used), the other doesn't - it returns the error above.
    Why is that so?
    Attachments:
    works.jpg ‏85 KB
    doesntwork.jpg ‏87 KB

    Hi Wolfgang
    I am sorry that I can't provide any VIs, because I stopped working for the company (this was just some bonus project to do something). I don't have the VIs here, I also do not have 8.2 here, so I can't build a sample application anymore.
    As soon as I connected the second wire to MF (or LF, it didn't matter), the VI gave me an error (I don't remember the error code, sorry) directly after the VI where I connected. If only one
     was connected, everything worked fine.

  • Query multiple TDMS Files

    Hi,
    I would like to evaluate the option of using TDMS files instead of an SQL database.
    I will need to simply extract/query results that follow some conditions from multiple TDMS files.
    I found many articles but could not find one example of how to extract data from multiple tdms files.
    Should I have Data Finder or DIADEM ? or can I simply use LabVIEW ?
    I am attaching a simple VI that generates 50 TDMS files (at the same folder as the VI), with "random" properties ('Title' and 'Type') and "random" data colums ('Temperature', 'Channel', 'Power').
    Save the VI in a new folder and Run it. it will generate 50 TDMS files (see block diagram).
    Now, considering those files, (for example) how can one extract only the the data where Test='Test2'  and Type='Type1' and (Temperature=25 or Power>0.4) ?
    Amitai.
    Attachments:
    TDMS_Write_Random_Files.vi ‏15 KB

    Hooovahh wrote:
    The DataFinder toolkit is awesome when dealing with TDMS report indexing.  Lots of good stuff can be done with report look ups.  Find me a report that was made after this date, before this date, made on this PC, running this version of software, for a UUT ran in this nest location, with this operator name, that failed.  Queries like that can be made very easily once the indexing is complete.
    As for pricing.  It is included with the developer suite, but I'm pretty sure it isn't included with any professional, or full package.  If you go to a page like the PID Fuzzy Logic Toolkit you'll see in bold at the top it says it is included with Full and Professional.
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/209054
    The DataFinder page doesn't have this.
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/209062
    Oh and there are several examples found in the Example Finder.  Download a trial and see if it is worth it.
    According to here, the DataFinder Toolkit is an add-on that is included in the Developer Suite.  So it looks like Hooovahh is correct.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Advanced TDMS, Set Channel Information

    Hello,
    I have a problem with scaling in and TDMS File. I´ll try to explain what i want to do.
    I work on a system that streams data from 2 PXIe 5122 via peer to peer streaming to 2 NI 7962R FPGA FlexRIO cards. After that I want to stream my measurement data from the FPGA cards to an NI 8260 hdd array via the advanced TDMS API using the "TDMS Advanced Asynchronous Write (Data Ref).vi"
    This works fine, but i have a big problem trying to scale my raw data. When using the "TDMS Set Channel Information.vi" I can decide to split my measurement data into two groups, Digitizer 1 and 2 with 2 channels each digitizer. When doing so, the API sets 2 Properties to the groups called "NI_Scale[0]_Scale_Type == AdvancedAPI" and "NI_Scaling_Status==scaled". When the API Sets these 2 properties i don´t have any chance to scale my raw data directly with the "TDMS Create Scaling Information.vi" because this vi sets the scaling information to each channel. The properties were set, but TDMS viewer and also DIADEM ignores these properties cause the group properties from the Advanced API were set.
    When taking all 4 channels from both digitizers into one group, the group properties "NI_Scale[0]_Scale_Type == AdvancedAPI" and "NI_Scaling_Status==scaled" won´t be set to the group. But i can´t write the data directly to the TDMS file over the data reference, because i have 2 data references from each digitizer, and the API has a problem deciding what sample belongs to which channel.
    So the only thing that worked is to create one group and set channel informations for 2 measurement channels, then get the data reference that contains these two channels and write them to TDMS, then set the other two channels informations and get the second data reference and write them to TDMS.
    But the problem is, that i have to do that in a loop. When setting always the channel informations before getting the datareference and write the raw values to TDMS file this slows the performance of my system.
    I think the right way shoul be that i can use 2 groups for each digitizer and set channel informations for each without getting these two group properties into my TDMS file. Anyone has an idea how i can solve the problem?

    Thanks for your reply,
    i know that the scaling vi works when using one group. It also works when using 2 groups. But you put the scaling infos for the whole group. when using an digitizer you can´t do this because every channel has a little bit different scaling values. so u must set the scaling values to each channel. this is done properly, but when using 2 groups tdms viewer and diadem ignore these scaling values because the Groups have the properties as stated in my first post.
    Here is a little screenshot of what im trying to do.
    Attachments:
    TDMS Advanced.png ‏53 KB

  • Multiple TDMS Questions

    I haev a few questions on TDMS.
    1. Is it true that TDMS file is a LabVIEW specific binary, and you can't read it without using LabVIEW?
    2. I was able to read the TDMS file in excel.  Howcome I can do that?  Is excel supposed to be able to read TDMS?
    3. Is it true that TDMS is smaller than a regular ASCII file, given the same data?  It seems so. 
    4. If 3 is true, I don't understand why, since I was able to look at the raw data of the TDMS directly in excel, i assume that the data is stored as ASCII and not binary inside the TDMS file.
    5. It seeems like TDMS comes in pair, a tdms file and a tdms_index file.  Can the tdms be accessed with only the tdms file without the tdms_index and vice versa?
    Thanks!
    Kudos and Accepted as Solution are welcome!

    And I suppose it should be mentioned that there are a few CAR's pertaining to some of the behavior of if you use the Advanced TDMS functions (which you only really need to use if you need to overwrite or replace data in an existing TDMS file).
    And if you acquire data one point at a time, make sure you don't put the points in one at the time in the TDMS file as you will create a huge file consisting mostly of duplicated header information (which you can then use the TDMS defrag to fix). It can be better to collect the points in a software/memory array and only push them to the TDMS file once every xx samples.
    I find that I enjoy working with TDMS files for my project, but of course my data is awesome  for TDMS too, I get my data in "traces" so each logical unit (channel) comes pre-packaged as an array of thusands of points, so my TDMS files tend to be very "efficient".
    Here is a copy paste of one of the Advanced issues I ran into:
    I have done some more research on the first issue you reported. (Error:
    -2529 in [Adv] [TDMS Set Channel Information])
    Issue/Feature A) Flush required after channel property writes:
    Create some file level properties and write and over-write them.
    Create a group and add and overwrite some properties Create a channel in the
    group, add a property then try to do a synchronous write. You will get an
    error message. Either do a flush between the property write OR write the
    channel data first then do the channel property writes.
    As it turns out, there is already a Corrective Action Report (CAR) filed
    with the LabVIEW Development Team. Here is the CAR#310023 You can look for
    this number in the future releases of LabVIEW.  
    QFang
    CLD LabVIEW 7.1 to 2013

  • Multiple guide sets

    In another thread a poster asked about multiple guide sets:
    http://forums.adobe.com/message/4062904#4062904
    It would seem that this should be fairly simple to achieve with writing guides’ properties into the metadata (possibly a dedidcated layer’s xmpMetaData) in sets and subsequently loading them from there.
    One could even do just one dialog with an entry field for entering a name when saving a guide set and a dropDownList to load or remove such sets.
    So I wonder if anybody either has already done something like this or has a (better) idea on the issue?
    Thanks for any feedback.

    Just a couple of amendments to it...
    #target photoshop
    app.bringToFront();
    // Photoshop CS5 or better
    function main(){
    if(!documents.length) return;
    var startRulerUnits = app.preferences.rulerUnits;
    app.preferences.rulerUnits = Units.PIXELS;
    // Set up metadata namespace
    if (ExternalObject.AdobeXMPScript == undefined)  ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
    var psNamespace = "http://ns.ps-scripts.com/1.0/";
    var psPrefix = "psscripts:";
    XMPMeta.registerNamespace(psNamespace, psPrefix);
    existingGuidePresets = [];
    existingGuidePresets = getGuideArray();
    var guides = app.activeDocument.guides;
    var gH = '';
    var gV = '';
    for( var g = 0; g < guides.length; g++ ){
        if(guides[g].direction.toString() == 'Direction.HORIZONTAL'){
            gH+=(parseInt(guides[g].coordinate.value));
            gH+=',';
            }else{
                gV+=(parseInt(guides[g].coordinate.value));
                gV+=','
    gH=gH.replace(/,$/,'');
    gV=gV.replace(/,$/,'');
    app.preferences.rulerUnits = startRulerUnits;
    var win = new Window( 'dialog', 'Custom Guides' );
    g = win.graphics;
    var myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [0.99, 0.99, 0.99, 1]);
    g.backgroundColor = myBrush;
    win.p1= win.add("panel", undefined, undefined, {borderStyle:"black"});
    win.g1 = win.p1.add('group');
    win.g1.orientation = "row";
    win.title = win.g1.add('statictext',undefined,'Custom Guides');
    win.title.alignment="fill";
    var g = win.title.graphics;
    g.font = ScriptUI.newFont("Georgia","BOLDITALIC",22);
    win.g5 =win.p1.add('group');
    win.g5.orientation = "row";
    win.g5.alignment='fill';
    win.g5.spacing=10;
    win.g5.st1 = win.g5.add('statictext',undefined,'Existing Presets');
    win.g5.dd1 = win.g5.add('dropdownlist');
    win.g5.dd1.preferredSize=[300,20];
    for(var w in existingGuidePresets){
        win.g5.dd1.add('item',existingGuidePresets[w].toString().match(/[^#]*/));
    win.g5.dd1.selection=0;
    win.g10 =win.p1.add('group');
    win.g10.orientation = "row";
    win.g10.alignment='fill';
    win.g10.spacing=10;
    win.g10.bu1 = win.g10.add('button',undefined,'Remove Preset');
    win.g10.bu2 = win.g10.add('button',undefined,'Use and Append Guides');
    win.g10.bu3 = win.g10.add('button',undefined,'Use and Remove Guides');
    win.g15 =win.p1.add('group');
    win.g15.orientation = "row";
    win.g15.alignment='fill';
    win.g15.st1 = win.g15.add('statictext',undefined,'New Preset Name');
    win.g20 =win.p1.add('group');
    win.g20.orientation = "row";
    win.g20.alignment='fill';
    win.g20.spacing=10;
    win.g20.et1 = win.g20.add('edittext');
    win.g20.et1.preferredSize=[300,20];
    win.g20.bu1 = win.g20.add('button',undefined,'Add New Preset');
    win.g200 =win.p1.add('group');
    win.g200.orientation = "row";
    win.g200.bu1 = win.g200.add('button',undefined,'Cancel');
    win.g200.bu1.preferredSize=[350,30];
    win.g10.bu1.onClick=function(){//Remove preset
    if(existingGuidePresets.length == 0) return;
    existingGuidePresets.splice(win.g5.dd1.selection.index,1);
    win.g5.dd1.removeAll();
    for(var w in existingGuidePresets){
        win.g5.dd1.add('item',existingGuidePresets[w].toString().match(/[^#]*/));
    win.g5.dd1.selection=0;
    putGuideArray(existingGuidePresets);
    win.g10.bu2.onClick=function(){//Use and append guides
    if(existingGuidePresets.length == 0) return;
    win.close(0);
    var ar1 = existingGuidePresets[win.g5.dd1.selection.index].toString().split('#');
    var Hor = ar1[1].toString().split(',');
    var Ver = ar1[2].toString().split(',');
    for(var H in Hor){
        activeDocument.guides.add(Direction.HORIZONTAL,new UnitValue(Number(Hor[H]),'px'));
    for(var V in Ver){
        activeDocument.guides.add(Direction.VERTICAL,new UnitValue(Number(Ver[V]),'px'));
    win.g10.bu3.onClick=function(){//Use and remove existing guides
    if(existingGuidePresets.length == 0) return;
    win.close(0);
    clearGuides();
    var ar1 = existingGuidePresets[win.g5.dd1.selection.index].toString().split('#');
    var Hor = ar1[1].toString().split(',');
    var Ver = ar1[2].toString().split(',');
    for(var H in Hor){
        activeDocument.guides.add(Direction.HORIZONTAL,new UnitValue(Number(Hor[H]),'px'));
    for(var V in Ver){
        activeDocument.guides.add(Direction.VERTICAL,new UnitValue(Number(Ver[V]),'px'));
    win.g20.bu1.onClick=function(){//New preset
    if(app.activeDocument.guides.length == 0){
        alert("No guides exist");
        return;
    if(win.g20.et1.text == ''){
        alert("You need to enter a name for the new preset");
        return;
    win.close(0);
    currentGuides = win.g20.et1.text + "#" + gH + "#" + gV;
    existingGuidePresets.push(currentGuides);
    putGuideArray(existingGuidePresets);
    win.center();
    win.show();
    function getGuideArray(){
    var xmp;
    var newGuideArray=[];
    xmp = new XMPMeta( app.activeDocument.xmpMetadata.rawData );
    var Count = xmp.countArrayItems(psNamespace, "GuideArray");
    for(var i = 1;i <= Count;i++){
    newGuideArray.push(xmp.getArrayItem(psNamespace, "GuideArray", i).toString());
    return newGuideArray;
    function putGuideArray(gArray){
    var xmp;
    xmp = new XMPMeta( app.activeDocument.xmpMetadata.rawData );
    xmp.deleteProperty(psNamespace, "GuideArray"); 
    for(var g in gArray){
    xmp.appendArrayItem(psNamespace, "GuideArray", gArray[g].toString(), 0, XMPConst.ARRAY_IS_UNORDERED);
    app.activeDocument.xmpMetadata.rawData = xmp.serialize();
    function clearGuides() {
       var id556 = charIDToTypeID( "Dlt " );
           var desc102 = new ActionDescriptor();
           var id557 = charIDToTypeID( "null" );
               var ref70 = new ActionReference();
               var id558 = charIDToTypeID( "Gd  " );
               var id559 = charIDToTypeID( "Ordn" );
               var id560 = charIDToTypeID( "Al  " );
               ref70.putEnumerated( id558, id559, id560 );
           desc102.putReference( id557, ref70 );
       executeAction( id556, desc102, DialogModes.NO );
    main();

  • I have multiple computers set up on homesharing under one itunes account. Can I use face time on all of them or do i need seperate accounts for each?

    I have multiple computers set up on homesharing under one itunes account. Can I use face time on all of them or do i need seperate accounts for each?

    I'd suggest you consider a cloud-based file sharing service such as Dropbox for this sort of use. iOS is not designed to be synched with more than one iTunes library at a time, so attempting to use it as you describe, connecting a single iPad to multiple computers, almost certainly won't work as you intend and is likely to cause nothing but headaches.
    Regads.

  • How Data Integrator supports multiple character sets in a single ETL transaction

    <p>When using Data Integrator (DI) to process a mix of multi-byte and single-byte data, it is recommended that you use UTF-8 for the job server codepage. You can, however, use different codepages for the individual datastores.</p><p>Imagine this situation : Great Big Company Inc. wants to create a global customer database. To do this, Great Big Company Inc. must read from a database of US customers, and a database of Korean customers. Great Big Company Inc. then wants to load both sets of customers into a single database.</p><p>Can DI manage these requirements? Of course. The codepage is the thing.</p>

    I've never seen this used the way you are using it. In my experience the only way to do this would be to execute a single SQL statement that returns multiple result sets - you are trying to append two SQL statements.
    You could define an in-line procedure wrapping your two select statements, or you could define a stored procedure to do the same thing. Then (either way) use CallableStatement to execute the call to the procedure.

  • "Message from Webpage (error) There was an error in the browser while setting properties into the page HTML, possibly due to invalid URLs or other values. Please try again or use different property values."

    I created a site column at the root of my site and I have publishing turned on.  I selected the Hyperlink with formatting and constraints for publishing.
    I went to my subsite and added the column.  The request was to have "Open in new tab" for their hyperlinks.  I was able to get the column to be added and yesterday we added items without a problem. 
    The problem arose when, today, a user told me that he could not edit the hyperlink.  He has modify / delete permissions on this list.
    He would edit the item, in a custom list, and click on the address "click to add a new hyperlink" and then he would get the error below after succesfully putting in the Selected URL (http://www.xxxxxx.com), Open
    Link in New Window checkbox, the Display Text, and Tooltip:
    "Message from Webpage  There was an error in the browser while setting properties into the page HTML, possibly due to invalid URLs or other values. Please try again or use different property values."
    We are on IE 9.0.8.1112 x86, Windows 7 SP1 Enterprise Edition x64
    The farm is running SharePoint 2010 SP2 Enterprise Edition August 2013 CU Mark 2, 14.0.7106.5002
    and I saw in another post, below with someone who had a similar problem and the IISreset fixed it, as did this problem.  I wonder if this is resolved in the latest updated CU of SharePoint, the April 2014 CU?
    Summary from this link below: Comment out, below, in AssetPickers.js
    //callbackThis.VerifyAnchorElement(HtmlElement, Config);
    perform IISReset
    This is referenced in the item below:
    http://social.technet.microsoft.com/Forums/en-US/d51a3899-e8ea-475e-89e9-770db550c06e/message-from-webpage-error-there-was-an-error-in-the-browser-while-setting?forum=sharepointgeneralprevious
    TThThis is possibly the same information that I saw, possibly from the above link as reference.
    http://seanshares.com/post/69022029652/having-problems-with-sharepoint-publishing-links-after
    Again, if I update my SharePoint 2010 farm to April 2014 CU is this going to resolve the issue I have?
    I don't mind changing the JS file, however I'd like to know / see if there is anything official regarding this instead of my having to change files.
    Thank you!
    Matt

    We had the same issue after applying the SP2 & August CU. we open the case with MSFT and get the same resolution as you mentioned.
    I blog about this issue and having the office reference.
    Later MSFT release the Hotfix for this on December 10, 2013 which i am 100% positive should be part of future CUs.
    So if you apply the April CU then you will be fine.
    Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog

  • How to multiple/ parellal sets of books to generate more than one financial statement based on different (or the same) accounting principles.

    How to multiple/ parallel sets of books to generate more than one financial statement based on different (or the same) accounting principles.
    My Client needs Parallel Ledger in SAP B1 similar like SAP ECC. Is this functionality available ?

    Dear Mr. Nagrajan,
    Thank you for your response. I have already gone through documents but not able to understand. Is there any setup for this ? or its just work around i.e. using template and special field in JV i.e. Ref. 1 /2
    My doubts :
    I understand that Chart of Account structure is one and common for IFRS and other accounting method. We need to create only those account separately ( 2 times with prefix like IFRS revenue account, GAAP Revenue account).
    Now at time of entry, Assume some entries / adjustment are specifically for IFRS and not for other ledger. In this case, What need to do ?
    You have mentioned about DTW approach but do we need to insert all JV's again with other ledger ?
    Someone suggested that if any entry which are specific to IFRS Ledger, We need to user Ref.1 /2 column or Transcation code column and in which we can put IFRS
    Based on this, Need to create 2 seperate template for IFRS and other ledger for all report.
    This is my understanding of Solution in SAP B1. Please help me to clarify my though process
    Please do needful.If you have done implemenation and if you can share doucment, it would be great help.
    Email :[email protected]

  • Matching across multiple character sets

    Would like to know whether anyone has attempted matching across multiple character sets, for example, between English and Japanese: what are the pitfalls to avoid, what are the best practices, and what you would like to see from application/tools perspective as an ideal solution. thanks

    If you upgrade to Logic Pro, you'll get WaveBurner as part of the package which helps you do this, including tweaking your pauses between tracks, fades etc.
    If you have Toast, you can do it there too.
    If you don't have any 3rd. party software, the work around would be to assemble all your songs in order, end to end in a new Logic file, and listen to all your tracks and adjust the relative levels between songs, then bounce out the individual tracks which have volume changes with their new volume settings. Finally you could then use any burning app such as [SimplyBurns|http://bit.ly/c1oglP] to create CDs or bounce them out in Logic with the additional .mp3 option.
    Obviously it's important to listen to your material in order, in context, as some songs will be at the wrong subjective level depending on the tracks either side in the placement. This isn't really important in digital distribution where your material probably won't be listened to as a whole, but as individual downloads.

  • General class and setting properties vs specific inner class

    This is a general question for discussion. I am curious to know how people differentiate between instantiating a standard class and making property adjustments within a method versus defining a new inner class with the property adjustments defined within.
    For example, when laying out a screen do you:
    - instantiate all the objects, set properties, and define the layout all within a method
    - create an inner class that defines the details of the layout (may reference other inner classes if complex) that is then just instantiated within a method
    - use some combination of the two depending on size and complexity.
    - use some other strategy
    Obviously, by breaking the work up into smaller classes you are simplifying the structure since each class is taking on less responsibility, as well as hiding the details of the implementaion from higher level classes. On the other hand, if you are just instantiating an object and making some SET calls is creating an inner class overkill.
    Is there a general consensus for an approach? I am curious to hear the approach of others.

    it's depends on your design..
    usually, if the application is simple and is not expected to be maintain (update..etc..) than I just have all the building of the gui within the same class (usually..the main class that extends JFrame).
    if the application follows the MVC pattern, than I would have a seperate class that build the GUI for a particular View. I would create another class to handle the ActionEvent, and other event (Controller)
    I rarely use inner class...and only use them to implements the Listerner interface (but only for simple application)..

  • SETTING PROPERTIES FOR A MAPPING VIA OMBPLUS ISN'T WORKING

    Hi, i have a problem with OMBPLUS:
    I have a script which creates a mapping and then is supposed to change properties for the mapping and seems to do so via OMBRETRIEVE. But when looking in OWB the properties aren't changed.
    If I change any of the properties inside OWB and then run the script again, then the properties are changed. Does anyone know why the behavior is like this?
    /thanx Joel
    When running the script the output looks like this:
    CREATE MAPPING 'XXX_1_IN'... DONE
    DEFAULT_OPERATING_MODE={SET BASED FAIL OVER TO ROW BASED}
    ALTER MAPPING PROPERTIES FOR 'T_A_TEST_XXX_1_IN'... DONE
    DEFAULT_OPERATING_MODE={SET BASED}
    -- ALL DONE --
    The script:
    set temp_module "TMP"
    set tmp_table1 "XXX_1"
    set tmp_table2 "XXX_2"
    set map_name "XXX_1_IN"
    puts -nonewline "CREATE MAPPING '$map_name'... "
    OMBCREATE MAPPING '$map_name' \
    ADD TABLE OPERATOR '$tmp_table1' BOUND TO TABLE '../$temp_module/$tmp_table1' \
    ADD TABLE OPERATOR '$tmp_table2' BOUND TO TABLE '../$temp_module/$tmp_table2' \
    ADD CONNECTION \
    FROM GROUP 'INOUTGRP1' OF OPERATOR '$tmp_table1' \
    TO GROUP 'INOUTGRP1' OF OPERATOR '$tmp_table2'
    OMBCOMMIT
    puts "DONE"
    set prop [OMBRETRIEVE MAPPING '$map_name' GET PROPERTIES (DEFAULT_OPERATING_MODE) ]
    puts "DEFAULT_OPERATING_MODE=$prop"
    puts -nonewline " ALTER MAPPING PROPERTIES FOR '$map_name'... "
    OMBALTER MAPPING '$map_name' \
    SET PROPERTIES (DEFAULT_OPERATING_MODE) \
    VALUES ('SET BASED')
    OMBCOMMIT
    set prop [OMBRETRIEVE MAPPING '$map_name' GET PROPERTIES (DEFAULT_OPERATING_MODE) ]
    puts "DEFAULT_OPERATING_MODE=$prop"
    puts "-- ALL DONE --"
    puts ""
    OMBDISCONNECT

    Thanks for your idea Roman, but it doesn't solve my problem.
    The problem is regardless of which property (Runtime parameters in OWB) I try to change. Before ANY property is changed via OWB (GUI) the changes via OMB doesn't come to effect (even if RETREIVE after OMBCOMMIT says so).
    Regards, Joel

  • SETTING PROPERTIES FOR A MAPPING VIA OMBPLUS ISN'T WORKING (OWB10gR2)

    Hi, i have a problem with OMBPLUS:
    I have a script which creates a mapping and then is supposed to change properties for the mapping. The script worked in previous releases of OWB but after upgrading to 10gR2 I get an error that DEFAULT_OPERATING_MODE property does not exist.
    Does anyone know why I get the error?
    /thanx Joel
    When running the script the output looks like this:
    CREATE MAPPING 'XXX_1_IN'... DONE
    DEFAULT_OPERATING_MODE={SET BASED FAIL OVER TO ROW BASED}
    ALTER MAPPING PROPERTIES FOR 'T_A_TEST_XXX_1_IN'...
    OMB02902: Error setting property DEFAULT_OPERATING_MODE of T_A_TEST_XXX_1_IN: MMM1034: Property DEFAULT_OPERATING_MODE does not exist.
    -- ALL DONE --
    The script:
    set temp_module "TMP"
    set tmp_table1 "XXX_1"
    set tmp_table2 "XXX_2"
    set map_name "XXX_1_IN"
    puts -nonewline "CREATE MAPPING '$map_name'... "
    OMBCREATE MAPPING '$map_name' \
    ADD TABLE OPERATOR '$tmp_table1' BOUND TO TABLE '../$temp_module/$tmp_table1' \
    ADD TABLE OPERATOR '$tmp_table2' BOUND TO TABLE '../$temp_module/$tmp_table2' \
    ADD CONNECTION \
    FROM GROUP 'INOUTGRP1' OF OPERATOR '$tmp_table1' \
    TO GROUP 'INOUTGRP1' OF OPERATOR '$tmp_table2'
    OMBCOMMIT
    puts "DONE"
    set prop [OMBRETRIEVE MAPPING '$map_name' GET PROPERTIES (DEFAULT_OPERATING_MODE) ]
    puts "DEFAULT_OPERATING_MODE=$prop"
    puts -nonewline " ALTER MAPPING PROPERTIES FOR '$map_name'... "
    OMBALTER MAPPING '$map_name' \
    SET PROPERTIES (DEFAULT_OPERATING_MODE) \
    VALUES ('SET BASED')
    OMBCOMMIT
    puts "-- ALL DONE --"
    puts ""
    OMBDISCONNECT

    Hi, don't look at the script it was copied and pasted from an old thread. The problem is the error I get when trying to execute:
    OMBALTER MAPPING 'map_name' \
    SET PROPERTIES (DEFAULT_OPERATING_MODE) \
    VALUES ('SET BASED')
    OMB02902: Error setting property DEFAULT_OPERATING_MODE of map_name: MMM1034: Property DEFAULT_OPERATING_MODE does not exist.
    //Joel

Maybe you are looking for

  • How to grey out ( make it non editable ) one line in ALV

    hi i am working on a report which is ALV o/p report .the report has some editable and some non editable fields. based on the value of 1 column field i need to make the full line non editable . how is this possible. please guide me. Thanks, Shiva. Edi

  • Could not parse mapping document form resource

    What is meaning of this error Could not parse mapping document from resource user.hbm.xml log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment). log4j:WARN Please initialize the log4j system properly. Exception in thread "

  • Dot1x machine auth before user auth required

    We are looking at setting up dot1x in our libraries however I have been asked to see if there is a way to force a switch port to require machine auth before user auth.  The reason for this is a problem we have that users will disconnect the ethernet

  • Obex push passkey problem on blackberry (including sourcecode)

    I was writing a simple J2ME app sending an inventation (Obex push message) to the desired Device according to it's BT Mac address. It works great on almost all the phones I tried it on, the problem with the BB is that each time I try to search for it

  • ORA-12547 and ORA-28547, Oracle XE 11g, Ubuntu 14.04

    Hello, I installed oracle xe 11g on ubuntu 14.04. When you try to connect locally, I get the error: oracle@server-name:~$ sqlplus oracle/pass SQL*Plus: Release 11.2.0.2.0 Production on Thu Sep 4 00:48:54 2014 Copyright (c) 1982, 2011, Oracle.  All ri