From 0999411258765cbfe4c11c506dd04c25f00c4ef0 Mon Sep 17 00:00:00 2001 From: Tobias Feldmann <t.feldmann@adito.de> Date: Mon, 22 Jun 2020 15:53:08 +0200 Subject: [PATCH] #1058838 added salesproject classification values to the training data --- .../AISalesproject_lib/AISalesproject_lib.aod | 1 + process/AISalesproject_lib/process.js | 61 +++++++++++++++++-- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/process/AISalesproject_lib/AISalesproject_lib.aod b/process/AISalesproject_lib/AISalesproject_lib.aod index c109e9524b..13b8a275db 100644 --- a/process/AISalesproject_lib/AISalesproject_lib.aod +++ b/process/AISalesproject_lib/AISalesproject_lib.aod @@ -3,6 +3,7 @@ <name>AISalesproject_lib</name> <majorModelMode>DISTRIBUTED</majorModelMode> <process>%aditoprj%/process/AISalesproject_lib/process.js</process> + <alias>Data_alias</alias> <variants> <element>LIBRARY</element> </variants> diff --git a/process/AISalesproject_lib/process.js b/process/AISalesproject_lib/process.js index 0521bd2d9e..c1a63392f2 100644 --- a/process/AISalesproject_lib/process.js +++ b/process/AISalesproject_lib/process.js @@ -48,12 +48,30 @@ AISalesprojectUtil.train = function () attributes.push(spRow["PHASE"]) //PHASE if(spRow["VOLUME"] != null && parseFloat(spRow["VOLUME"]) > 0) attributes.push(AISalesprojectUtil.getVolumeClassification(parseFloat(spRow["VOLUME"]))); //VOLUME - if(spRow["PROBABILITY"] != null) + if(spRow["PROBABILITY"] != null) attributes.push(AISalesprojectUtil.getProbabilityValue(spRow["PROBABILITY"])); //PROBABILITY var sectorSP = new AttributeRelationQuery(spRow["CONTACT_ID"], $AttributeRegistry.industry()).getSingleAttributeValue(); if(sectorSP != null) attributes.push(sectorSP); //Sector var doc = new NBDocument(spRow["#UID"], attributes); + + //Classification + + //Department + var department = AISalesprojectUtil.getClassificationValues("SALESPROJ", "Salesproject", spRow["#UID"], "ScoreDepartment"); + if(department) + attributes.push(department); + + //Standard + var standard = AISalesprojectUtil.getClassificationValues("SALESPROJ", "Salesproject", spRow["#UID"], "ScoreStandard"); + if(standard) + attributes.push(standard); + + //Users + var users = AISalesprojectUtil.getClassificationValues("SALESPROJ", "Salesproject", spRow["#UID"], "ScoreUsers"); + if(users) + attributes.push(users); + var loadCompConfig = entities.createConfigForLoadingRows() .entity("Competition_entity") @@ -67,7 +85,9 @@ AISalesprojectUtil.train = function () doc.add(compRow["ORGANISATION_NAME"]); //competitors }); - data.add(spRow["STATUS"], [doc]); // train model with lost and order salesprojects + data.add(spRow["STATUS"], [doc]); // train model with lost and order salesprojects + //logging.log("data:"); + //logging.log(JSON.stringify(doc)); } }); @@ -105,7 +125,25 @@ AISalesprojectUtil.classify = function (pSalesprojectId, pContactId, pPhase, pSt var sectorSP = new AttributeRelationQuery(pContactId, $AttributeRegistry.industry()).getSingleAttributeValue(); if(sectorSP != null) testAttributes.push(sectorSP); //Sector - } + } + + //Classification + + //Department + var department = AISalesprojectUtil.getClassificationValues("SALESPROJ", "Salesproject", pSalesprojectId, "ScoreDepartment"); + if(department) + testAttributes.push(department); + + //Standard + var standard = AISalesprojectUtil.getClassificationValues("SALESPROJ", "Salesproject", pSalesprojectId, "ScoreStandard"); + if(standard) + testAttributes.push(standard); + + //Users + var users = AISalesprojectUtil.getClassificationValues("SALESPROJ", "Salesproject", pSalesprojectId, "ScoreUsers"); + if(users) + testAttributes.push(users); + var loadCompConfig = entities.createConfigForLoadingRows() .entity("Competition_entity") .provider("Links") @@ -154,4 +192,19 @@ AISalesprojectUtil.getProbabilityValue = function (pProbId) else if(pProbId == "SALPROJPROB75" || pProbId == "SALPROJPROB100") return "positive"; return ""; -}; \ No newline at end of file +}; + +AISalesprojectUtil.getClassificationValues = function (pClassificationType, pObjectType, pObjectRowid, pScoreType) +{ + var value = newSelect("TITLE") + .from("CLASSIFICATIONTYPE") + .leftJoin("CLASSIFICATION", newWhere("CLASSIFICATIONTYPEID = CLASSIFICATIONTYPE_ID") + .and("CLASSIFICATION.OBJECT_TYPE", pObjectType) + .and("CLASSIFICATION.OBJECT_ROWID", pObjectRowid)) + .leftJoin("CLASSIFICATIONSCORE", "CLASSIFICATIONSCORE_ID = CLASSIFICATIONSCOREID") + .where("CLASSIFICATIONTYPE.CLASSIFICATIONTYPE", pClassificationType) + .andIfSet("CLASSIFICATIONTYPE.SCORETYPE", pScoreType) + .cell() + + return value; +}; -- GitLab