Search code examples
javascriptif-statementvarimacros

How to set var value from a datasource file?


hi everyone :) english isn't my first language so please excuse any mistakes, i want to run imacros with the var value from a datasource file instead of a hardcoded value, I don't have a great knowledge in programming, but i tried some of the methods but it always ends up with fails

Here is the code that i'm trying:

    var load;
    load = 'CODE: ';
    load += 'SET !DATASOURCE eacc.csv' + '\n';
    load += 'SET !DATASOURCE_COLUMNS 3' + '\n';
    iimSet('i', I);
    load += 'SET !DATASOURCE_LINE {{i}}' + '\n';
    load += 'ADD !EXTRACT {{!COL1}}' + '\n';
    load += 'ADD !EXTRACT {{!COL2}}' + '\n';
    load += 'ADD !EXTRACT {{!COL3}}' + '\n';
    iimPlay(load)
    var COLUMN1 = iimGetLastExtract(1);
    var COLUMN2 = iimGetLastExtract(2);
    var COLUMN3 = iimGetLastExtract(3);

var a1 = {{COLUMN3}}
        for(var J = 1; J <= a1; J++)
        {
           xxxxxxxxxx
        }

i'm trying to put the column3 value to the LOOP

Here is my datasource:

XXX,YYY,10
XXX,YYY,20
XXX,YYY,05
XXX,YYY,13

so anyone know how to solve this and thanks in advance :)


Solution

  • Here is something you can work with. With a little modifications on your side you will get what you want.

    var load;
    load = 'CODE: ';
    load += 'SET !DATASOURCE eacc.csv' + '\n';
    load += 'SET !DATASOURCE_COLUMNS 3' + '\n';
    
    load += 'SET !DATASOURCE_LINE {{i}}' + '\n';
    load += 'ADD !EXTRACT {{!COL1}}' + '\n';
    load += 'ADD !EXTRACT {{!COL2}}' + '\n';
    load += 'ADD !EXTRACT {{!COL3}}' + '\n';
    
    I = 1;
    while (true) {
        iimSet('i', I);
        iimPlay(load)
    
        var COLUMN1 = iimGetLastExtract(1);
        var COLUMN2 = iimGetLastExtract(2);
        var COLUMN3 = iimGetLastExtract(3);
    
        if (COLUMN3 == null) {
            break;
        }
    
        var a1 = COLUMN3;
        for (var J = 1; J <= a1; J++) {
            ////xxxxxxxxxx
            alert(a1);
        }
    
        //alert(COLUMN3)
        I++;
    }