Skip to content
Snippets Groups Projects
process.js 97.4 KiB
Newer Older
s.diewald's avatar
s.diewald committed
import("system.logging");
import("system.datetime");
import("KeywordRegistry_basic");
import("system.SQLTYPES");
import("system.text");
import("system.db");
import("Sql_lib");
import("ImporterMappingFunctions_lib")
import("Importer_lib");

///////////////////////////////////////////////////////////////////
/// NOT FINAL!                                                  ///
/// custom mapping for the import handler                       ///
/// edit this, since this is serperate for every project        ///
///////////////////////////////////////////////////////////////////
/*
* Run Import in separate Process sp_runImporterMigration
*/

var aliasFrom = "ADITO5";
var DataAliasTo = "Data_alias";
var systemAliasTo = "_____SYSTEMALIAS";
s.diewald's avatar
s.diewald committed
// List of Frameids in ADITO5 mapped to contextnames in ADITO2020
var listFrameIDS = "1;Organisation;2;Person;3;Person;4;Activity;6;Campaign;12;Employee;13;Complaint;14;OFFER;15;Order;"
+"16;Salesproject;17;Leadimport;18;BulkMail;30;Offeritem;33;Contract;40;Product;45;SupportTicket";
// List of databasetablenames in ADITO5 mapped to databasetablenames in ADITO2020
var listDbTables = "ORG;ORGANISATION;PERS;PERSON;HISTORY;ACTIVITY;COMPLAINT;TICKET;SALESORDER;ORDER;"
+"RELATION;CONTACT;BULKMAILDEF;BULKMAIL";
// Condition to import data of the frames in the lists above
var cond = "OBJECT_ID in (1,2,3,4,6,12,13,14,15,16,17,18,30,33,40,45)";


function runImport(pMappingsToRun)
{
    var bindata = false;
    var mappingsToRun = getMappings(pMappingsToRun);
    

s.diewald's avatar
s.diewald committed
    {
        logging.log("Start Migration: " + pMappingsToRun);
        if(table){
            if(table.hasOwnProperty("truncateTable")) db.runStatement("TRUNCATE TABLE " + table.truncateTable, DataAliasTo)
s.diewald's avatar
s.diewald committed
        
            var imp = new Importer(table);
            imp.Log = "CONSOLE";
            //        imp.ImportUser = "IMPORT_ADITO2020";  //we don' want to override the former User_New of the data
            imp.Preview = false;
            imp.Debug = true;
            imp.LogLevel = imp.LogLevels.Info;
            imp.TableCase = imp.Cases.Lower; // or imp.Cases.Upper
            imp.BatchSize = 50000;
            //If bindata is imported
            if(bindata)
                imp.BatchSize = 500;
s.diewald's avatar
s.diewald committed
        
            //Testing/Debug only
            //imp.MaxRows = 10;
            imp.setTimeout(5000000, null);
            imp.process();
        }
s.diewald's avatar
s.diewald committed
        logging.log("End Migration: " + pMappingsToRun);
    }
}

function getMappings(pMappingsToRun)//@ToDo refactor
{
    var mappingsObject = [];
        switch(mapping){
            case "address":
                mappingsObject.push(getConfig_ADDRESS());                    
                break;
            case "aosys_calendarRights":
                mappingsObject.push(getConfig_AOSYS_CALENDAR_RIGHTS()); 
                break;
            case "aosys_loghist":
                mappingsObject.push(getConfig_AOSYS_LOGHIST()); 
                break;
                mappingsObject.push(getConfig_AOSYS_SYNCCONTACT()); 
                break;
            case "asys_binaries":
                mappingsObject.push(getConfig_ASYS_BINARIES());                                                                
                break;             
//            case "asys_binaries_data":
//                mappingsObject.push(getConfig_ASYS_BINARIES_Data());            
//                bindata = true;                                                                    
            case "asys_calendarbackend":
                mappingsObject.push(getConfig_ASYS_CALENDARBACKEND());                                                                        
                break;                
            case "asys_calendarlink":
                mappingsObject.push(getConfig_ASYS_CALENDARLINK());
                break;                
            case "asys_calendarsync":
                mappingsObject.push(getConfig_ASYS_CALENDARSYNC());
                break;                
            case "asys_mailreposit":
                mappingsObject.push(getConfig_ASYS_MAILREPOSIT()); 
                break;
            case "asys_notification":
                mappingsObject.push(getConfig_ASYS_NOTIFICATIONS()); 
                break;
            case "asys_sequences":
                mappingsObject.push(getConfig_ASYS_SEQUENCES()); 
                break;
            case "asys_users":
                mappingsObject.push(getConfig_ASYS_USERS()); 
                break;
            case "attr":
                mappingsObject.push(getConfig_ATTR());                                                    
                break;            
            case "attrlink":
                mappingsObject.push(getConfig_ATTRLINK());                                                        
                break;  
            case "attreobject":
                mappingsObject.push(getConfig_ATTROBJECT());                                                        
                break;  
            case "bulkmaildef":
                mappingsObject.push(getConfig_BULKMAILDEF()); 
                break;
            case "bulkmailrcpt":
                mappingsObject.push(getConfig_BULKMAILRCPT()); 
                break;
            case "campaing":
                mappingsObject.push(getConfig_CAMPAIGN()); 
                break;
            case "campaigncost":
                mappingsObject.push(getConfig_CAMPAIGNCOST()); 
                break;
            case "campainglog":
                mappingsObject.push(getConfig_CAMPAIGNLOG()); 
                break;
            case "campaignparticipants":
                mappingsObject.push(getConfig_CAMPAIGNPARTICIPANT()); 
                break;
            case "campaingstep":
                mappingsObject.push(getConfig_CAMPAIGNSTEP()); 
                break;
            case "comm":
                mappingsObject.push(getConfig_COMM());                        
                break;            
            case "commrestriction":
                mappingsObject.push(getConfig_COMMRESTRICTION());                        
                break;            
            case "complaint":
                mappingsObject.push(getConfig_COMPLAINT()); 
                break;
            case "contract":
                mappingsObject.push(getConfig_CONTRACT()); 
                break;
            case "countryinfo":
                mappingsObject.push(getConfig_COUNTRYINFO()); 
                break;
            case "dataPrivacy":
                mappingsObject.push(getConfig_DATA_PRIVACY()); 
                break;
            case "document":
                mappingsObject.push(getConfig_DOCUMENT()); 
                break;
            case "history":
                mappingsObject.push(getConfig_HISTORY());                            
                break;            
            case "historylink":
                mappingsObject.push(getConfig_HISTORYLINK());                                
                break;            
            case "history_theme":
                mappingsObject.push(getConfig_HISTORY_THEME());                                                
                break;            
            case "keyword":
                mappingsObject.push(getConfig_KEYWORD());    
                break;            
            case "keyword_attre":
                mappingsObject.push(getConfig_KEYWORD_ATTRE());    
                break;            
            case "knowledgemanagement":
                mappingsObject.push(getConfig_KNOWLEDGEMANAGEMENT()); 
                break;
            case "knowledgemanagementkeyword":
                mappingsObject.push(getConfig_KNOWLEDGEMANAGEMENTKEYWORD()); 
                break;
            case "noduplicate":
                mappingsObject.push(getConfig_NODUPLICATE()); 
                break;
            case "objectrelation":
                mappingsObject.push(getConfig_OBJECTRELATION());
                break;            
            case "offer":
                mappingsObject.push(getConfig_OFFER()); 
                break;
            case "offeritem":
                mappingsObject.push(getConfig_OFFERITEM()); 
                break;
            case "org":
                mappingsObject.push(getConfig_ORG());        
                break;            
            case "pers":
                mappingsObject.push(getConfig_PERS());            
                break;            
            case "prod2prod":
                mappingsObject.push(getConfig_PROD2PROD()); 
                break;
            case "product":
                mappingsObject.push(getConfig_PRODUCT()); 
                break;
            case "productprice":
                mappingsObject.push(getConfig_PRODUCTPRICE()); 
                break;
            case "relation":
                mappingsObject.push(getConfig_RELATION());                
                break;            
            case "salesorder":
                mappingsObject.push(getConfig_SALESORDER()); 
                break;
            case "salesproject":
                mappingsObject.push(getConfig_SALESPROJECT()); 
                break;
            case "salutation":
                mappingsObject.push(getConfig_SALUTATION()); 
                break;
            case "spCycle":
                mappingsObject.push(getConfig_SPCYCLE()); 
                break;
            case "spForcate":
                mappingsObject.push(getConfig_SPFORECAST()); 
                break;
            case "spMember":
                mappingsObject.push(getConfig_SPMEMBER()); 
                break;
            case "spSources":
                mappingsObject.push(getConfig_SPSOURCES()); 
                break;
            case "stock":
                mappingsObject.push(getConfig_STOCK()); 
                break;
            case "supporthistory":
                mappingsObject.push(getConfig_SUPPORTHISTORY()); 
                break;
            case "supportticket":
                mappingsObject.push(getConfig_SUPPORTTICKET()); 
                break;
            case "theme":
                mappingsObject.push(getConfig_THEME());                                            
                break;            
            case "unlinkedmail":
                mappingsObject.push(getConfig_UNLINKEDMAIL()); 
                break;
        }
s.diewald's avatar
s.diewald committed
    }
    
    return mappingsObject;
}

/* 
* Function to import previous ORG into ORGANISATION
*/
function getConfig_ORG() {

    return {
s.diewald's avatar
s.diewald committed
        DataQuery :  
        " select " 
        + " ORGID, " //0
        + " CUSTOMERCODE, " //1
        + " ORGINFO, " //2
        + " ORGNAME, " //3
        + " SALESAREA, " //4
        + " DATE_NEW, " //5
        + " DATE_EDIT, " //6
        + " USER_NEW, " //7
        + " USER_EDIT " //8
        + " from ORG "
        + " where ORGID != '0'", // Exclude organisation 'private' as it already exists
s.diewald's avatar
s.diewald committed


        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "ORGANISATION.ORGANISATIONID", 
            Key: true
        }], //ORGID
        [iMove, {
            Source: 1, 
            Target: "ORGANISATION.CUSTOMERCODE"
        }], //ORGID
        [iMove, {
            Source: 2, 
            Target: "ORGANISATION.INFO"
        }], //ORGINFO
        [iMove, {
            Source: 3, 
            Target: "ORGANISATION.NAME"
        }], //ORGNAME
        [iMove, {
            Source: 4, 
            Target: "ORGANISATION.SALESAREA"
        }], //SALESAREA
        [iMove, {
            Source: 5, 
            Target: "ORGANISATION.DATE_NEW"
        }], //DATE_NEW
        [iMove, {
            Source: 6, 
            Target: "ORGANISATION.DATE_EDIT"
        }], //DATE_EDIT
        [iMove, {
            Source: 7, 
            Target: "ORGANISATION.USER_NEW"
        }], //USER_NEW
        [iMove, {
            Source: 8, 
            Target: "ORGANISATION.USER_EDIT"
        }] //USER_EDIT
        ]
    };
}

/* 
* Function to import previous PERS into PERSON
*/
function getConfig_PERS() {
    
    return {
s.diewald's avatar
s.diewald committed
        DataQuery :  
        " select " 
        + " PERSID, " //0
        + " FIRSTNAME, " //1
        + " MIDDLENAME, " //2
        + " LASTNAME, " //3
        + " SALUTATION, " //4
        + " TITLE, " //5
        + " DOB, " //6
        + " GENDER, " //7
        + " SUFFIX, " //8
        + " DATE_NEW, " //9
        + " DATE_EDIT, " //10
        + " USER_NEW, " //11
        + " USER_EDIT " //12
s.diewald's avatar
s.diewald committed

        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "PERSON.PERSONID", 
            Key: true
        }], // PERSID
        [iMove, {
            Source: 1, 
            Target: "PERSON.FIRSTNAME"
        }],// FIRSTNAME
        [iMove, {
            Source: 2, 
            Target: "PERSON.MIDDLENAME"
        }], // MIDDLENAME
        [iMove, {
            Source: 3, 
            Target: "PERSON.LASTNAME"
        }], // LASTNAME
        [iMove, {
            Source: 4, 
            Target: "PERSON.SALUTATION"
        }], // SALUTATION
        [iMove, {
            Source: 5, 
            Target: "PERSON.TITLE"
        }], // TITLE
        [iMove, {
            Source: 6, 
            Target: "PERSON.DATEOFBIRTH"
        }], // DOB
        [iDecode, {
            Source: 7, 
            List: "M;m;F;f",
            Target: "PERSON.GENDER"
        }], // GENDER
        [iDecode, {
            DoIf: "'{7}' == ''", 
            Source: 4,
            List: "Frau;f;Herr;m", 
            Target: "PERSON.GENDER"
        }],
        [iMove, {
            Source: 9, 
            Target: "PERSON.DATE_NEW"
        }], //DATE_NEW
        [iMove, {
            Source: 10, 
            Target: "PERSON.DATE_EDIT"
        }], //DATE_EDIT
        [iMove, {
            Source: 11, 
            Target: "PERSON.USER_NEW"
        }], //USER_NEW
        [iMove, {
            Source: 12, 
            Target: "PERSON.USER_EDIT"
        }] //USER_NEW
        ]
    };
}

/* 
* Function to import previous RELATION into CONTACT
*/
function getConfig_RELATION() {
    
    return {
s.diewald's avatar
s.diewald committed
        DataQuery :  
        " select " 
        + " RELATIONID, " //0
        + " ORG_ID, " //1
        + " PERS_ID, " //2
        + " DEPARTMENT, " //3
        + " RELPOSITION, " //4
        + " RELTITLE, " //5
        + " LANG, " //6
        + " STATUS, " //7
        + " ADDRESS_ID, " //8
        + " SOURCE, " //9
        + " RELATION.DATE_NEW, " //10
        + " RELATION.DATE_EDIT, " //11
        + " RELATION.USER_NEW, " //12
        + " RELATION.USER_EDIT, " //13
        + " RELATION.LETTERSALUTATION" //14
s.diewald's avatar
s.diewald committed


        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "CONTACT.CONTACTID", 
            Key: true
        }], // RELATIONID
        [iMove, {
            Source: 1, 
            Target: "CONTACT.ORGANISATION_ID"
        }], // ORG_ID
        [iMove, {
            Source: 2, 
            Target: "CONTACT.PERSON_ID"
        }], // PERS_ID
        [iMove, {
            Source: 3, 
            Target: "CONTACT.DEPARTMENT"
        }], // DEPARTMENT
        [iMove, {
            Source: 4, 
            Target: "CONTACT.CONTACTPOSITION"
        }], // RELPOSITION
        [iMove, {
            Source: 5, 
            Target: "CONTACT.CONTACTROLE"
        }], // RELTITLE
        [iDecode, {
            Source: 6,
            List: "1;deu;2;eng;3;fra;4;spa", 
            Target: "CONTACT.ISOLANGUAGE"
        }], // LANG
        [iDecode, {
            Source: 7,
            List: "1;CONTACTSTATACTIVE;2;CONTACTSTATINACTIVE;3;CONTACTSTATREVIEW", 
            Target: "CONTACT.STATUS"
        }], // STATUS
        [iMove, {
            Source: 8, 
            Target: "CONTACT.ADDRESS_ID"
        }], // ADDRESS_ID
        [iMove, {
            Source: 10, 
            Target: "CONTACT.DATE_NEW"
        }], //DATE_NEW
        [iMove, {
            Source: 11, 
            Target: "CONTACT.DATE_EDIT"
        }], //DATE_EDIT
        [iMove, {
            Source: 12, 
            Target: "CONTACT.USER_NEW"
        }], //USER_NEW
        [iMove, {
            Source: 13, 
            Target: "CONTACT.USER_EDIT"
        }], //USER_EDIT
        [iMove, {
            Source: 14, 
            Target: "CONTACT.LETTERSALUTATION"
        }] //LETTERSALUTATION
        ]
    };
}

/* 
* Function to import previous ADDRESS into ADDRESS
*/
function getConfig_ADDRESS() {
    
    return {
s.diewald's avatar
s.diewald committed
        DataQuery :  
        " select " 
        + " ADDRESSID, " //0
        + " ADDRESSADDITION, " //1
        + " ZIP, " //2
        + " ADDRESS, " //3
        + " DISTRICT, " //4
        + " CITY, " //5
        + " COUNTRY, " //6
        + " RELATION_ID, " //7
        + " ADDRIDENTIFIER, " //8
        + " REGION, " //9
        + " BUILDINGNO, " //10
        + " STATE, " //11
        + " ADDR_TYPE, " //12
        + " ADDRESS.DATE_NEW, " //13
        + " ADDRESS.DATE_EDIT, " //14
        + " ADDRESS.USER_NEW, " //15
        + " ADDRESS.USER_EDIT " //16
s.diewald's avatar
s.diewald committed


        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "ADDRESS.ADDRESSID", 
            Key: true
        }], // ADDRESSID
        [iMove, {
            Source: 1, 
            Target: "ADDRESS.ADDRESSADDITION"
        }], // ADDRESSADDITION
        [iMove, {
            Source: 2, 
            Target: "ADDRESS.ZIP"
        }], //ZIP
        [iMove, {
            Source: 3, 
            Target: "ADDRESS.ADDRESS"
        }], //ADDRESS
        [iMove, {
            Source: 4, 
            Target: "ADDRESS.DISTRICT"
        }], // DISTRICT
        [iMove, {
            Source: 5, 
            Target: "ADDRESS.CITY"
        }], // CITY
        [iMove, {
            Source: 6, 
            Target: "ADDRESS.COUNTRY"
        }], // COUNTRY
        [iMove, {
            Source: 7, 
            Target: "ADDRESS.CONTACT_ID"
        }], // RELATION_ID
        [iMove, {
            Source: 8, 
            Target: "ADDRESS.ADDRIDENTIFIER"
        }], //ADDRIDENTIFIER
        [iMove, {
            Source: 9, 
            Target: "ADDRESS.REGION"
        }], // REGION
        [iMove, {
            Source: 10, 
            Target: "ADDRESS.BUILDINGNO"
        }], // BUILDINGNO
        [iMove, {
            Source: 11, 
            Target: "ADDRESS.PROVINCE"
        }],  //STATE
        [iDecode, {
            Source: 12, 
            List: "1;OFFICEADDR;2;HOMEADDR;4;DELIVERADDR;8;POSTADDR", 
            Target: "ADDRESS.ADDR_TYPE"
        }],
        [iMove, {
            Source: 13, 
            Target: "ADDRESS.DATE_NEW"
        }], //DATE_NEW
        [iMove, {
            Source: 14, 
            Target: "ADDRESS.DATE_EDIT"
        }], //DATE_EDIT
        [iMove, {
            Source: 15, 
            Target: "ADDRESS.USER_NEW"
        }], //USER_NEW
        [iMove, {
            Source: 16, 
            Target: "ADDRESS.USER_EDIT"
        }] //USER_EDIT
        ]
    };
    
}

/* 
* Function to import previous COMM into COMMUNICATION
*/
function getConfig_COMM() {
    
    return {
s.diewald's avatar
s.diewald committed
        DataQuery :  
        " select " 
        + " COMMID, " //0
        + " RELATION_ID, " //1
        + " MEDIUM_ID, " //2
        + " ADDR, " //3
        + " STANDARD, " //4
        + " DATE_NEW, " //5
        + " DATE_EDIT, " //6
        + " USER_NEW, " //7
        + " USER_EDIT " //8
s.diewald's avatar
s.diewald committed


        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "COMMUNICATION.COMMUNICATIONID", 
            Key: true
        }], // COMMID
        [iMove, {
            Source: 1, 
            Target: "COMMUNICATION.CONTACT_ID"
        }], // RELATION_ID
        [iDecode, { 
            Source: 2, 
            List: "1;COMMPHONE;2;COMMPHONE;3;COMMEMAIL;4;COMMINTERNET;5;COMMMOBIL;11;COMMPHONE;12;COMMPHONE;13;COMMEMAIL;"
            +"14;COMMINTERNET;15;COMMPHONE;16;COMMEMAIL;17;COMMXING;18;COMMINTERNET;19;COMMINTERNET;20;COMMINTERNET", 
            Target: "COMMUNICATION.MEDIUM_ID"
        }], // MEDIUM_ID
        [iMove, {
            Source: 3, 
            Target: "COMMUNICATION.ADDR"
        }], // ADDR
        [iMove, {
            DoIf: "'{4}' == '1'", 
            Value: "1", 
            Target: "COMMUNICATION.ISSTANDARD"
        }], // STANDARD
        [iMove, {
            DoIf: "'{4}' != '1'", 
            Value: "0", 
            Target: "COMMUNICATION.ISSTANDARD"
        }], // STANDARD
        [iMove, {
            Source: 5, 
            Target: "COMMUNICATION.DATE_NEW"
        }], //DATE_NEW
        [iMove, {
            Source: 6, 
            Target: "COMMUNICATION.DATE_EDIT"
        }], //DATE_EDIT
        [iMove, {
            Source: 7, 
            Target: "COMMUNICATION.USER_NEW"
        }], //USER_NEW
        [iMove, {
            Source: 8, 
            Target: "COMMUNICATION.USER_EDIT"
        }] //USER_EDIT 
        ]
    };
}

/* 
* Function to import previous HISTORY into ACTIVITY
*/
function getConfig_HISTORY() {
    
    return {
s.diewald's avatar
s.diewald committed
        DataQuery :  
        " select " 
        + " HISTORYID, " //0
        + " RELATION_ID, " //1
        + " ENTRYDATE, " //2
        + " SUBJECT, " //3
        + " INFO, " //4
        + " HISTORY_ID, " //5
        + " MEDIUM, " //6
        + " DIRECTION, " //7
        + " DATE_NEW, " //8
        + " DATE_EDIT, " //9
        + " USER_NEW, " //10
        + " USER_EDIT " //11
s.diewald's avatar
s.diewald committed


        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "ACTIVITY.ACTIVITYID", 
            Key: true
        }], // HISTORYID
        [iMove, {
            Source: 1, 
            Target: "ACTIVITY.RESPONSIBLE"
        }], // RELATION_ID
        [iMove, {
            Source: 2, 
            Target: "ACTIVITY.ENTRYDATE"
        }], // ENTRYDATE
        [iMove, {
            Source: 3, 
            Target: "ACTIVITY.SUBJECT"
        }], // SUBJECT
        [iMove, {
            Source: 4, 
            Target: "ACTIVITY.INFO"
        }], // INFO
        [iMove, {
            Source: 5, 
            Target: "ACTIVITY.PARENT_ID"
        }], // HISTORY_ID
        [iMove, {
            DoIf: "'{5}' != ''", 
            Value: "Activity", 
            Target: "ACTIVITY.PARENT_CONTEXT"
        }],
        [iDecode, {
            Source: 6, 
            List: "1;PHONE;2;VISIT;3;LETTER;4;LETTER;5;FAX;8;MAIL;12;MAIL", 
            Target: "ACTIVITY.CATEGORY"
        }], // MEDIUM
        [iMove, {
            Source: 7, 
            Target: "ACTIVITY.DIRECTION"
        }], // DIRECTION
        [iMove, {
            Source: 8, 
            Target: "ACTIVITY.DATE_NEW"
        }], //DATE_NEW
        [iMove, {
            Source: 9, 
            Target: "ACTIVITY.DATE_EDIT"
        }], //DATE_EDIT
        [iMove, {
            Source: 10, 
            Target: "ACTIVITY.USER_NEW"
        }], //USER_NEW
        [iMove, {
            Source: 11, 
            Target: "ACTIVITY.USER_EDIT"
        }] //USER_EDIT
        ]
    };
}

/* 
* Function to import previous HISTORYLINK into ACTIVITYLINK
*/
function getConfig_HISTORYLINK() {
    
    return {
s.diewald's avatar
s.diewald committed
        DataQuery :  
        " select " 
        + " HISTORYLINKID, " //0
        + " HISTORY_ID, " //1
        + " ROW_ID, " //2
        + " OBJECT_ID, " //3
        + " DATE_NEW, " //4
        + " DATE_EDIT, " //5
        + " USER_NEW, " //6
        + " USER_EDIT " //7
s.diewald's avatar
s.diewald committed


        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "ACTIVITYLINK.ACTIVITYLINKID", 
            Key: true
        }], // HISTORYLINKID
        [iMove, {
            Source: 1, 
            Target: "ACTIVITYLINK.ACTIVITY_ID"
        }], // HISTORY_ID
        [iMove, {
            Source: 2, 
            Target: "ACTIVITYLINK.OBJECT_ROWID"
        }], // ROW_ID
        [iDecode, {
            Source: 3, 
            List: listFrameIDS, 
            Target: "ACTIVITYLINK.OBJECT_TYPE"
        }], // OBJECT_ID
        [iMove, {
            Source: 4, 
            Target: "ACTIVITYLINK.DATE_NEW"
        }], //DATE_NEW
        [iMove, {
            Source: 5, 
            Target: "ACTIVITYLINK.DATE_EDIT"
        }], //DATE_EDIT
        [iMove, {
            Source: 6, 
            Target: "ACTIVITYLINK.USER_NEW"
        }], //USER_NEW
        [iMove, {
            Source: 7, 
            Target: "ACTIVITYLINK.USER_EDIT"
        }] //USER_EDIT
        ]
    };
}

/* 
* Function to import previous OBJECTRELATION into AB_OBJECTRELATION
* Attention! The objectrelations have to be defined in ADITO 2020 first. Then change the IDs and import the relations as shown in the example.
*/
function getConfig_OBJECTRELATION() {
    
    return {
s.diewald's avatar
s.diewald committed
        DataQuery :  
        " select " 
        + " OBJECTRELATIONID, " //0
        + " SOURCE_ID, " //1
        + " DEST_ID, " //2
        + " SOURCE_OBJECT, " //3
        + " DEST_OBJECT, " //4
        + " RELVALUE, " //5
        + " RELDESC, " //6
        + " DATE_NEW, " //7
        + " DATE_EDIT, " //8
        + " USER_NEW, " //9
        + " USER_EDIT " //10
s.diewald's avatar
s.diewald committed


        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "AB_OBJECTRELATION.AB_OBJECTRELATIONID", 
            Key: true
        }], // OBJECTRELATIONID
        [iMove, {
            Source: 1, 
            Target: "AB_OBJECTRELATION.OBJECT1_ROWID"
        }], // SOURCE_ID
        [iMove, {
            Source: 2, 
            Target: "AB_OBJECTRELATION.OBJECT2_ROWID"
        }], // DEST_ID
        //        //Example
        //        [iMove, {
        //            DoIf: "'{5}' == '1'", 
        //            Value: "c9b7ce6b-1100-46f6-8498-2da6ac24189e", 
        //            Target: "AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE1"
        //        }],
        //        [iMove, {
        //            DoIf: "'{5}' == '1'", 
        //            Value: "259babbd-7827-44d4-b9ec-8245d27b5f70", 
        //            Target: "AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE2"
        //        }]
        ]
    };
}

/* 
* Function to import previous COMPLAINT into TASK and TICKET
*/
function getConfig_COMPLAINT(){
    
    return {
        DataQuery :  
        " select " 
        + " COMPLAINTID, " //0
        + " RELATION_ID, " //1
        + " RESPONSIBLE_ID, " //2
        + " STATUS, " //3
        + " SUBJECT, " //4
        + " DESCRIPTION, " //5
        + " COMPLAINTNUMBER, " //6
        + " DATE_NEW " //7
s.diewald's avatar
s.diewald committed


        AliasFrom: aliasFrom,
s.diewald's avatar
s.diewald committed
        ImportCommand: "insert+update",

        Mapping: [
        [iMove, {
            Source: 0, 
            Target: "TASK.TASKID", 
            Key: true
        }], // COMPLAINTID
        [iMove, {
            Source: 1, 
            Target: "TASK.REQUESTOR_CONTACT_ID"
        }], // RELATION_ID
        [iMove, {
            Source: 2, 
            Target: "TASK.EDITOR_CONTACT_ID"
        }], // RESPONSIBLE_ID
        [iDecode, {
            Source: 3, 
            List: "1;UNASSIGNED;2;IN-PROGRESS;3;WAITING;4;ENDED", 
            Target: "TASK.STATUS"
        }], // STATUS
        [iMove, {
            Source: 4, 
            Target: "TASK.SUBJECT"
        }], // SUBJECT
        [iMove, {
            Source: 5, 
            Target: "TASK.DESCRIPTION"
        }], // DESCRIPTION
        [iMove, {
            Source: 6, 
            Target: "TICKET.CODE"
        }], // COMPLAINTNUMBER
        [iMove, {
            Source: 7, 
            Target: "TASK.START_DATE"
        }], // DATE_NEW
        [iMove, {
            Value: "TICKET", 
            Target: "TASK.KIND"
        }], // Link to new dataset in databasetable ticket
        [iSql, {
            Target: "var.TicketId", 
s.diewald's avatar
s.diewald committed
            Command: "select TICKETID from TICKET where TASK_ID = '{0}'"
        }],
        [iNewID, {
            Target: "var.NewId", 
            Key: true
        }],
        [iMove, {
            DoIf: "'{var.TicketId}' == ''", 
            Value: "{var.NewId}", 
            Target: "TICKET.TICKETID"
        }],
        [iMove, {
            Source: 0, 
            Target: "TICKET.TASK_ID", 
            Key: true
        }],
        [iMove, {
            Value: "SUPPORTTICKET", 
            Target: "TICKET.TICKETTYPE"
        }]
        ]
    };
}

/* 
* Function to import previous THEME into AB_ATTRIBUTE and AB_ATTRIBUTEUSAGE
*/
function getConfig_THEME() {
    
    return {
        DataQuery :  
        " select " 
        + " THEMEID, " //0
        + " THEME, " //1
        + " THEME_ID, " //2
        + " ISACTIVE, " //3
        + " DESCRIPTION, " //4