diff --git a/.liquibase/Data_alias/basic/2021.1.3/changelog.xml b/.liquibase/Data_alias/basic/2021.1.3/changelog.xml index 95973cf3548510a035ef920b440cdc8ffb93c8fb..147d250c82c2d5df2e8f4fec6a4c89ca6a162276 100644 --- a/.liquibase/Data_alias/basic/2021.1.3/changelog.xml +++ b/.liquibase/Data_alias/basic/2021.1.3/changelog.xml @@ -2,6 +2,8 @@ <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + + <include relativeToChangelogFile="true" file="defaultWeblinks/changelog.xml"/> <include relativeToChangelogFile="true" file="Checklist/changelog.xml"/> <include relativeToChangelogFile="true" file="alter_dataTypesToDateTime.xml"/> -</databaseChangeLog> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/alter_webLink.xml b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/alter_webLink.xml new file mode 100644 index 0000000000000000000000000000000000000000..e65e6ece2ef0df1ce72fa401c4ccc0b6c8b63cda --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/alter_webLink.xml @@ -0,0 +1,10 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="" id="eda7428d-4adf-40c9-9395-f0fb6f5954cb"> + <addColumn tableName="WEBLINK"> + <column name="LINKEVALUATIONTYPE" type="VARCHAR(36)"/> + </addColumn> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/changelog.xml b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..44fb76e0ab230a192a5b2cd935b3df6d4c98e571 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/changelog.xml @@ -0,0 +1,8 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <include relativeToChangelogFile="true" file="alter_webLink.xml"/> + <include relativeToChangelogFile="true" file="insert_linkEvaluationTypeKeyword.xml"/> + <include relativeToChangelogFile="true" file="insert_defaultLinks.xml"/> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_defaultLinks.xml b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_defaultLinks.xml new file mode 100644 index 0000000000000000000000000000000000000000..b34a130a761f85fe3b14602f0f7f9f9a91bcc83c --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_defaultLinks.xml @@ -0,0 +1,40 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="m.groppe" id="d29d909a-810e-4306-99da-a8e962d40dca"> + <insert tableName="weblink"> + <column name="WEBLINKID" value="dc0d1d5a-91e8-409f-9926-f5fc9bd17be5"/> + <column name="LINKTYPE" value="WEBLINK_EMAIL"/> + <column name="URL" value="https://www.adito.de/"/> + <column name="USER_NEW" value="Admin"/> + <column name="DATE_NEW" valueComputed="current_datetime"/> + <column name="SCORE" valueNumeric="0"/> + <column name="PLACEHOLDER" value="pixel"/> + <column name="LINKEVALUATIONTYPE" value="LINKEVALUATION_IGNORE"/> + <column name="ISREDIRECT" valueNumeric="1"/> + </insert> + <insert tableName="weblink"> + <column name="WEBLINKID" value="a54c1a08-779a-4a6f-8322-d7ceb77abf39"/> + <column name="LINKTYPE" value="WEBLINK_EMAIL"/> + <column name="URL" value="https://www.adito.de/"/> + <column name="USER_NEW" value="Admin"/> + <column name="DATE_NEW" valueComputed="current_datetime"/> + <column name="SCORE" valueNumeric="0"/> + <column name="PLACEHOLDER" value="rejectEmail"/> + <column name="LINKEVALUATIONTYPE" value="LINKEVALUATION_UNSUBSCRIBE"/> + <column name="ISREDIRECT" valueNumeric="1"/> + </insert> + <insert tableName="weblink"> + <column name="WEBLINKID" value="46d8ddcf-4287-499a-9524-ec08fce6a2f1"/> + <column name="LINKTYPE" value="WEBLINK_EMAIL"/> + <column name="URL" value="https://www.adito.de/"/> + <column name="USER_NEW" value="Admin"/> + <column name="DATE_NEW" valueComputed="current_datetime"/> + <column name="SCORE" valueNumeric="0"/> + <column name="PLACEHOLDER" value="newsletter_confirmation"/> + <column name="LINKEVALUATIONTYPE" value="LINKEVALUATION_DEFAULT"/> + <column name="ISREDIRECT" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_linkEvaluationTypeKeyword.xml b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_linkEvaluationTypeKeyword.xml new file mode 100644 index 0000000000000000000000000000000000000000..437be1c8157a059fc113fa018949223657b2c1b3 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/defaultWeblinks/insert_linkEvaluationTypeKeyword.xml @@ -0,0 +1,43 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="m.groppe" id="199d9675-11d4-4bb3-9a1f-384dd53b6708"> + <insert tableName="AB_KEYWORD_CATEGORY"> + <column name="AB_KEYWORD_CATEGORYID" value="8d7ff560-d24c-4998-995b-27dacc4bfa64"/> + <column name="NAME" value="LinkEvaluationType"/> + <column name="SORTINGBY" valueNumeric="0"/> + <column name="SORTINGDIRECTION" value="ASC"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="404337d9-b7e9-47fd-9401-b859a8142696"/> + <column name="AB_KEYWORD_CATEGORY_ID" value="8d7ff560-d24c-4998-995b-27dacc4bfa64"/> + <column name="KEYID" value="LINKEVALUATION_DEFAULT"/> + <column name="TITLE" value="default"/> + <column name="CONTAINER" value="LinkEvaluationType"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="9143322a-30f1-44ac-b1bc-3190f5da9eef"/> + <column name="AB_KEYWORD_CATEGORY_ID" value="8d7ff560-d24c-4998-995b-27dacc4bfa64"/> + <column name="KEYID" value="LINKEVALUATION_UNSUBSCRIBE"/> + <column name="TITLE" value="unsubscribe"/> + <column name="CONTAINER" value="LinkEvaluationType"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="6f88dd99-ad20-4154-885c-cde4bcb68070"/> + <column name="AB_KEYWORD_CATEGORY_ID" value="8d7ff560-d24c-4998-995b-27dacc4bfa64"/> + <column name="KEYID" value="LINKEVALUATION_IGNORE"/> + <column name="TITLE" value="ignore"/> + <column name="CONTAINER" value="LinkEvaluationType"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index 50495ae21d2e6ed48f4bf060c35606f9c6e676e4..152dc64c464865e94111cb814206be111f972a6f 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -18333,6 +18333,20 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>LINKEVALUATIONTYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod index 0d5114b36d50c84ab07874aa1bbc4ce7ffdd325c..35cd4068f61d3598e4123795f86688b23d151b7d 100644 --- a/entity/BulkMail_entity/BulkMail_entity.aod +++ b/entity/BulkMail_entity/BulkMail_entity.aod @@ -367,6 +367,7 @@ <entityField> <name>recipientCount</name> <title>Recipients</title> + <contentType>NUMBER</contentType> </entityField> <entityField> <name>deliveredMailCount</name> @@ -657,6 +658,7 @@ <dbRecordFieldMapping> <name>recipientCount.value</name> <expression>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/recipientcount.value/expression.js</expression> + <isFilterable v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>bounceCount.value</name> diff --git a/entity/WeblinkClick_entity/WeblinkClick_entity.aod b/entity/WeblinkClick_entity/WeblinkClick_entity.aod index 0d3485450bfc860520b8de02f7385b90ab3f3a0f..e8c1ad77c0a65fbf4c18b89c466b8205ea56a7fb 100644 --- a/entity/WeblinkClick_entity/WeblinkClick_entity.aod +++ b/entity/WeblinkClick_entity/WeblinkClick_entity.aod @@ -141,6 +141,7 @@ <dbRecordFieldMapping> <name>DATE_OPENED.value</name> <recordfield>WEBLINK_CLICK.DATE_OPENED</recordfield> + <isFilterable v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>DEVICE_TYPE.value</name> diff --git a/entity/Weblink_entity/Weblink_entity.aod b/entity/Weblink_entity/Weblink_entity.aod index ca21ff58d12759c64652a0d344620dc4d4de4c9b..44e7dec843a2bf4b16af6f0d93da190908f169bf 100644 --- a/entity/Weblink_entity/Weblink_entity.aod +++ b/entity/Weblink_entity/Weblink_entity.aod @@ -96,6 +96,7 @@ <entityField> <name>PLACEHOLDER</name> <title>Placeholder</title> + <mandatoryProcess>%aditoprj%/entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js</mandatoryProcess> <stateProcess>%aditoprj%/entity/Weblink_entity/entityfields/placeholder/stateProcess.js</stateProcess> <displayValueProcess>%aditoprj%/entity/Weblink_entity/entityfields/placeholder/displayValueProcess.js</displayValueProcess> <onValidation>%aditoprj%/entity/Weblink_entity/entityfields/placeholder/onValidation.js</onValidation> @@ -161,6 +162,27 @@ <title>Signal</title> <stateProcess>%aditoprj%/entity/Weblink_entity/entityfields/workflowsignal_name/stateProcess.js</stateProcess> </entityField> + <entityField> + <name>LINKEVALUATIONTYPE</name> + <title>Evaluation type</title> + <consumer>KeywordLinkEvaluationTypes</consumer> + <mandatoryProcess>%aditoprj%/entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js</mandatoryProcess> + <stateProcess>%aditoprj%/entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js</stateProcess> + </entityField> + <entityConsumer> + <name>KeywordLinkEvaluationTypes</name> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> @@ -231,6 +253,14 @@ <name>WORKFLOWSIGNAL_NAME.value</name> <recordfield>WEBLINK.WORKFLOWSIGNAL_NAME</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>LINKEVALUATIONTYPE.value</name> + <recordfield>WEBLINK.LINKEVALUATIONTYPE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>LINKEVALUATIONTYPE.displayValue</name> + <expression>%aditoprj%/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> <linkInformation> diff --git a/entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js b/entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ea2a19798a6f7620f9e5e78f118a0e73df48a301 --- /dev/null +++ b/entity/Weblink_entity/entityfields/keywordlinkevaluationtypes/children/containername_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.linkEvaluationType()); \ No newline at end of file diff --git a/entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js b/entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..95366a6d95b5cf72d5ea20fe9d27df31fcc6187d --- /dev/null +++ b/entity/Weblink_entity/entityfields/linkevaluationtype/mandatoryProcess.js @@ -0,0 +1,10 @@ +import("Util_lib"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.neon"); + +var linktype = vars.get("$field.LINKTYPE"); +var isRedirect = Utils.toBoolean(vars.get("$field.ISREDIRECT")); + +result.string(linktype == $KeywordRegistry.weblinkType$EMail() && isRedirect); diff --git a/entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js b/entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..eb0cd9f7f6fe891ffaba649ba6e36d28a5b8c0bc --- /dev/null +++ b/entity/Weblink_entity/entityfields/linkevaluationtype/stateProcess.js @@ -0,0 +1,17 @@ +import("Util_lib"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.neon"); + +var linktype = vars.get("$field.LINKTYPE"); +var isRedirect = Utils.toBoolean(vars.get("$field.ISREDIRECT")); + +if (linktype == $KeywordRegistry.weblinkType$EMail() && isRedirect) +{ + result.string(neon.COMPONENTSTATE_EDITABLE); +} +else +{ + result.string(neon.COMPONENTSTATE_INVISIBLE); +} \ No newline at end of file diff --git a/entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js b/entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..95366a6d95b5cf72d5ea20fe9d27df31fcc6187d --- /dev/null +++ b/entity/Weblink_entity/entityfields/placeholder/mandatoryProcess.js @@ -0,0 +1,10 @@ +import("Util_lib"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.neon"); + +var linktype = vars.get("$field.LINKTYPE"); +var isRedirect = Utils.toBoolean(vars.get("$field.ISREDIRECT")); + +result.string(linktype == $KeywordRegistry.weblinkType$EMail() && isRedirect); diff --git a/entity/Weblink_entity/entityfields/placeholder/onValidation.js b/entity/Weblink_entity/entityfields/placeholder/onValidation.js index 8871cd11363addcacdd59d2d79ec312db1973437..523e9437e0a269e264fb68e7ee98d5a3546f71d8 100644 --- a/entity/Weblink_entity/entityfields/placeholder/onValidation.js +++ b/entity/Weblink_entity/entityfields/placeholder/onValidation.js @@ -10,11 +10,12 @@ if (vars.get("$local.value")) .from("WEBLINK") .where("WEBLINK.WEBLINKID", vars.get("$field.WEBLINKID"), SqlBuilder.NOT_EQUAL()) .and("WEBLINK.PLACEHOLDER is not null") - .arrayColumn(); + .arrayColumn() + .map(function (placeholder){return placeholder.toUpperCase()}); - var defaultPlaceholderNames = defaultPlaceholders.map(function(placeholder){return placeholder.placeholderName}); + var defaultPlaceholderNames = defaultPlaceholders.map(function(placeholder){return placeholder.placeholderName.toUpperCase()}); - if(defaultPlaceholderNames.includes(vars.get("$local.value")) || linkPlaceholders.includes(vars.get("$local.value"))) + if(defaultPlaceholderNames.includes(vars.get("$local.value").toUpperCase()) || linkPlaceholders.includes(vars.get("$local.value").toUpperCase())) { result.string("Placeholders must be unique") } diff --git a/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js b/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..0c0f8d3adc5c6d51228ddc4cc968dad7cbec038f --- /dev/null +++ b/entity/Weblink_entity/recordcontainers/db/recordfieldmappings/linkevaluationtype.displayvalue/expression.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.linkEvaluationType(), "WEBLINK.LINKEVALUATIONTYPE")); \ No newline at end of file diff --git a/neonView/WeblinkEdit_view/WeblinkEdit_view.aod b/neonView/WeblinkEdit_view/WeblinkEdit_view.aod index 5c1ae63aadc924030a8f5fd4aa8f9262c82d100c..0591c32d56b9831c6f8e5d43309b14349c0fe85d 100644 --- a/neonView/WeblinkEdit_view/WeblinkEdit_view.aod +++ b/neonView/WeblinkEdit_view/WeblinkEdit_view.aod @@ -47,6 +47,10 @@ <name>8a33e22d-c607-4a56-8384-668cc225225d</name> <entityField>WORKFLOWSIGNAL_NAME</entityField> </entityFieldLink> + <entityFieldLink> + <name>57d8f3b6-2c98-404f-97a6-efcb89828346</name> + <entityField>LINKEVALUATIONTYPE</entityField> + </entityFieldLink> </fields> </genericViewTemplate> <neonViewReference> diff --git a/neonView/WeblinkPreview_view/WeblinkPreview_view.aod b/neonView/WeblinkPreview_view/WeblinkPreview_view.aod index 3feb2f988f85f1ebd50a9621e7d02e05393d0275..e3b35722ae3650b50263fedebd7a6fa992b6ea32 100644 --- a/neonView/WeblinkPreview_view/WeblinkPreview_view.aod +++ b/neonView/WeblinkPreview_view/WeblinkPreview_view.aod @@ -36,6 +36,10 @@ <name>a807f6b9-252c-4545-a2c9-266c64012097</name> <entityField>WORKFLOWPROCESSDEFINITION_KEY</entityField> </entityFieldLink> + <entityFieldLink> + <name>a78a1f2d-4c1f-44cf-b8b8-c5b32ea2a8b9</name> + <entityField>LINKEVALUATIONTYPE</entityField> + </entityFieldLink> </fields> </genericViewTemplate> </children> diff --git a/process/BulkmailAnalysis_lib/process.js b/process/BulkmailAnalysis_lib/process.js index c6ab18a3a11dac3a413a80b5a92be7fa23c00644..0831ae1ed2c62e0aecf47e21f97db5ebfebc901a 100644 --- a/process/BulkmailAnalysis_lib/process.js +++ b/process/BulkmailAnalysis_lib/process.js @@ -78,8 +78,8 @@ BulkMailAnalysisSql.prototype.buildSelect = function() .and("WEBLINK_CLICK.WEBLINK_ID" ,newSelect("WEBLINK.WEBLINKID") .from("WEBLINK") - .where("WEBLINK.PLACEHOLDER","pixel") - ,SqlBuilder.NOT_EQUAL()) + .where("WEBLINK.LINKEVALUATIONTYPE",[$KeywordRegistry.linkEvaluationType$default(),$KeywordRegistry.linkEvaluationType$unsubscribe()],SqlBuilder.IN()) + ,SqlBuilder.IN()) ) .leftJoin("MAIL_BOUNCE","MAIL_BOUNCE.MAIL_LOG_ID = MAIL_LOG.MAIL_LOGID") .where("MAIL_RUN.OBJECT_TYPE","bulkmail"); @@ -123,5 +123,6 @@ BulkMailAnalysisSql.countSelects = HARDBOUNCECOUNT:"count (distinct case when MAIL_BOUNCE.CATEGORY ='"+$KeywordRegistry.emailFilterType$bounceHard()+"' then MAIL_BOUNCE.MAIL_LOG_ID else null end)", SENDCOUNT:"count (distinct MAIL_LOG.MAIL_LOGID)", RECEIVEDCOUNT:"count (distinct case when MAIL_LOG.STATUS='"+$KeywordRegistry.bulkMailRecipientStatus$sent()+"' then MAIL_LOG.MAIL_LOGID else null end)", - UNSUBSCRIBECOUNT:"count (distinct case when WEBLINK_CLICK.WEBLINK_ID = '"+newSelect(["WEBLINK.WEBLINKID"]).from("WEBLINK").where("WEBLINK.PLACEHOLDER","rejectEmail").cell()+"' then WEBLINK_CLICK.MAIL_LOG_ID else null end)" + //Subsql gets executed because mssql doesnt allow subselects in the count. + UNSUBSCRIBECOUNT:"count (distinct case when WEBLINK_CLICK.WEBLINK_ID in ('"+newSelect(["WEBLINK.WEBLINKID"]).from("WEBLINK").where("WEBLINK.LINKEVALUATIONTYPE",$KeywordRegistry.linkEvaluationType$unsubscribe()).arrayColumn().join("','")+"') then WEBLINK_CLICK.MAIL_LOG_ID else null end)" } \ No newline at end of file diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js index 95b3015437131deed5707455a256fa2a0fbb995d..2ce2fca15f40ffb407977edd922c27604f1f101b 100644 --- a/process/KeywordRegistry_basic/process.js +++ b/process/KeywordRegistry_basic/process.js @@ -441,3 +441,8 @@ $KeywordRegistry.visitFrequency$semiannualy = function(){return "VISITFREQUENCYS $KeywordRegistry.visitFrequency$quarterly = function(){return "VISITFREQUENCYQUARTERLY";}; $KeywordRegistry.visitFrequency$monthly = function(){return "VISITFREQUENCYMONTHLY";}; $KeywordRegistry.visitFrequency$weekly = function(){return "VISITFREQUENCYWEEKLY";}; + +$KeywordRegistry.linkEvaluationType = function(){return "LinkEvaluationType";}; +$KeywordRegistry.linkEvaluationType$default = function(){return "LINKEVALUATION_DEFAULT";}; +$KeywordRegistry.linkEvaluationType$ignore = function(){return "LINKEVALUATION_IGNORE";}; +$KeywordRegistry.linkEvaluationType$unsubscribe = function(){return "LINKEVALUATION_UNSUBSCRIBE";}; \ No newline at end of file