diff --git a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod index ce1dcd2d2b93817595ec64e9fb98930a9641e821..fea71ba1d13cd9ec46ebd171175fa52c6214c55a 100644 --- a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod +++ b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod @@ -116,14 +116,6 @@ <iconId>VAADIN:BAN</iconId> <tooltipProcess>%aditoprj%/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js</tooltipProcess> </entityActionField> - <entityActionField> - <name>startMarketingWorkflows</name> - <title>Start marketing mailing</title> - <onActionProcess>%aditoprj%/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js</onActionProcess> - <isObjectAction v="false" /> - <iconId>VAADIN:ENVELOPES</iconId> - <tooltipProcess>%aditoprj%/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/tooltipProcess.js</tooltipProcess> - </entityActionField> </children> </entityActionGroup> <entityField> diff --git a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js b/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js deleted file mode 100644 index 5c87295ed514398e4496a25bb605369cdd9adbe6..0000000000000000000000000000000000000000 --- a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js +++ /dev/null @@ -1,36 +0,0 @@ -import("system.neonFilter"); -import("Util_lib"); -import("system.entities"); -import("Context_lib"); -import("system.vars"); -import("system.neon"); - -var rows = vars.get("$sys.selectionRows"); -var filter = vars.get("$sys.filter").filter; -var targets = []; - -if (Utils.isNullOrEmpty(rows)) -{ - let loadConfig = entities.createConfigForLoadingRows() - .entity("BulkMailRecipient_entity") - .provider("BulkMailRecipients") - .fields(["CONTACT_ID", "TARGETCONTEXT"]) - .addParameter("BulkMailId_param", vars.get("$param.BulkMailId_param")); - - if (filter) - loadConfig.filter(JSON.stringify(filter)); - - rows = entities.getRows(loadConfig); -} - -rows = rows.map(function (row) -{ - return [row["CONTACT_ID"], row["TARGETCONTEXT"]]; -}); - - -var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({ - "ObjectIds_param": JSON.stringify(rows), - "ObjectType_param": ContextUtils.getCurrentContextId() -}).toString(); -neon.openContextWithRecipe("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", recipe, neon.OPERATINGSTATE_VIEW); diff --git a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/tooltipProcess.js b/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/tooltipProcess.js deleted file mode 100644 index f10ca98d11889935121eb5c675e17e66ff5bf004..0000000000000000000000000000000000000000 --- a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/tooltipProcess.js +++ /dev/null @@ -1,4 +0,0 @@ -import("system.translate"); -import("system.result"); - -result.string(translate.text("Start marketing mailing")); \ No newline at end of file diff --git a/entity/DocumentTemplatePlaceOfUse_entity/entityfields/contextdocumenttemplateplaceofuse/children/blacklist_param/valueProcess.js b/entity/DocumentTemplatePlaceOfUse_entity/entityfields/contextdocumenttemplateplaceofuse/children/blacklist_param/valueProcess.js index 664501b0a72d2311cda8a0c0f435b5a9cdf2c087..410591c8047c2b4a82f31f24f8f37697bdb924ee 100644 --- a/entity/DocumentTemplatePlaceOfUse_entity/entityfields/contextdocumenttemplateplaceofuse/children/blacklist_param/valueProcess.js +++ b/entity/DocumentTemplatePlaceOfUse_entity/entityfields/contextdocumenttemplateplaceofuse/children/blacklist_param/valueProcess.js @@ -1,3 +1,3 @@ import("system.result"); -result.object(["SupportTicket","Person", "Organisation", "Offer", "MarketingWorkflowLauncher", "Advertising"]); \ No newline at end of file +result.object(["SupportTicket","Person", "Organisation", "Offer", "Advertising"]); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod index 28282a213de8c608abf44e08dfff6c21ca0ed590..83929ce1e780a18979c94cd5716189833be06e38 100644 --- a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod +++ b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod @@ -273,7 +273,6 @@ <entityConsumer> <name>DocumentTemplatePlaceOfUse</name> <stateProcess>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documenttemplateplaceofuse/stateProcess.js</stateProcess> - <onValidation>%aditoprj%/entity/DocumentTemplate_entity/entityfields/documenttemplateplaceofuse/onValidation.js</onValidation> <dependency> <name>dependency</name> <entityName>DocumentTemplatePlaceOfUse_entity</entityName> diff --git a/entity/DocumentTemplate_entity/entityfields/documenttemplateplaceofuse/onValidation.js b/entity/DocumentTemplate_entity/entityfields/documenttemplateplaceofuse/onValidation.js deleted file mode 100644 index a40be7eb7d8e21b088a3cf4683b41849239e35ee..0000000000000000000000000000000000000000 --- a/entity/DocumentTemplate_entity/entityfields/documenttemplateplaceofuse/onValidation.js +++ /dev/null @@ -1,14 +0,0 @@ -import("system.translate"); -import("system.result"); -import("system.vars"); -import("Entity_lib"); - -var usages = EntityConsumerRowsHelper.getCurrentConsumerRows("DocumentTemplatePlaceOfUse", ["PLACEOFUSE"]); -var hasMarketingWorkflowUsage = usages.some(function (usage) -{ - return usage["PLACEOFUSE"] == "MarketingWorkflowLauncher"; -}); -if (hasMarketingWorkflowUsage && !vars.get("$field.Content").includes("{@workflowActionLink@}")) -{ - result.string(translate.text("The template must contain the placeholder for the worklow-link to use it with the marketing workflow")); -} diff --git a/entity/MarketingWorkflowLauncher_entity/MarketingWorkflowLauncher_entity.aod b/entity/MarketingWorkflowLauncher_entity/MarketingWorkflowLauncher_entity.aod deleted file mode 100644 index 9980732627b5b44ff362c0ddaa369015d83c5ac6..0000000000000000000000000000000000000000 --- a/entity/MarketingWorkflowLauncher_entity/MarketingWorkflowLauncher_entity.aod +++ /dev/null @@ -1,86 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.22" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.22"> - <name>MarketingWorkflowLauncher_entity</name> - <title>Marketing workflow</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <recordContainer>dataLess</recordContainer> - <entityFields> - <entityProvider> - <name>#PROVIDER</name> - </entityProvider> - <entityProvider> - <name>#PROVIDER_AGGREGATES</name> - <useAggregates v="true" /> - </entityProvider> - <entityField> - <name>DOCUMENTTEMPLATE_ID</name> - <title>Document Template</title> - <consumer>EmailTemplates</consumer> - <mandatory v="true" /> - <state>EDITABLE</state> - </entityField> - <entityConsumer> - <name>WorkflowLauncherIntegration</name> - <isOneToOneRelationship v="true" /> - <dependency> - <name>dependency</name> - <entityName>WorkflowLauncher_entity</entityName> - <fieldName>Integration</fieldName> - </dependency> - <children> - <entityParameter> - <name>Validationerrors_param</name> - <valueProcess>%aditoprj%/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/validationerrors_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>ProcessVariables_param</name> - <valueProcess>%aditoprj%/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/processvariables_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>Targets_param</name> - <valueProcess>%aditoprj%/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/targets_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>TargetContext_param</name> - <valueProcess>%aditoprj%/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/targetcontext_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - <entityParameter> - <name>ObjectType_param</name> - <expose v="true" /> - </entityParameter> - <entityParameter> - <name>ObjectIds_param</name> - <expose v="true" /> - </entityParameter> - <entityParameter> - <name>ObjectFilter_param</name> - <expose v="true" /> - </entityParameter> - <entityConsumer> - <name>EmailTemplates</name> - <dependency> - <name>dependency</name> - <entityName>DocumentTemplate_entity</entityName> - <fieldName>DocumentTemplateProvider</fieldName> - </dependency> - <children> - <entityParameter> - <name>DocumentTemplateType_param</name> - <valueProcess>%aditoprj%/entity/MarketingWorkflowLauncher_entity/entityfields/emailtemplates/children/documenttemplatetype_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>ComingFrom_param</name> - <valueProcess>%aditoprj%/entity/MarketingWorkflowLauncher_entity/entityfields/emailtemplates/children/comingfrom_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - </entityFields> - <recordContainers> - <datalessRecordContainer> - <name>dataLess</name> - <alias>Data_alias</alias> - </datalessRecordContainer> - </recordContainers> -</entity> diff --git a/entity/MarketingWorkflowLauncher_entity/entityfields/emailtemplates/children/comingfrom_param/valueProcess.js b/entity/MarketingWorkflowLauncher_entity/entityfields/emailtemplates/children/comingfrom_param/valueProcess.js deleted file mode 100644 index cc6924394ae950c43386275dda2c8db5d7a9c0ed..0000000000000000000000000000000000000000 --- a/entity/MarketingWorkflowLauncher_entity/entityfields/emailtemplates/children/comingfrom_param/valueProcess.js +++ /dev/null @@ -1,4 +0,0 @@ -import("Context_lib"); -import("system.result"); - -result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/MarketingWorkflowLauncher_entity/entityfields/emailtemplates/children/documenttemplatetype_param/valueProcess.js b/entity/MarketingWorkflowLauncher_entity/entityfields/emailtemplates/children/documenttemplatetype_param/valueProcess.js deleted file mode 100644 index 28aacde92d62b929b1e883596dc7fbefc8adc604..0000000000000000000000000000000000000000 --- a/entity/MarketingWorkflowLauncher_entity/entityfields/emailtemplates/children/documenttemplatetype_param/valueProcess.js +++ /dev/null @@ -1,4 +0,0 @@ -import("system.result"); -import("KeywordRegistry_basic"); - -result.string($KeywordRegistry.documentTemplateType$mail()); \ No newline at end of file diff --git a/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/processvariables_param/valueProcess.js b/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/processvariables_param/valueProcess.js deleted file mode 100644 index cea637a710a0e3e0903248241654aec944c88137..0000000000000000000000000000000000000000 --- a/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/processvariables_param/valueProcess.js +++ /dev/null @@ -1,8 +0,0 @@ -import("system.vars"); -import("system.result"); - -var variables = { - documentTemplateId: vars.get("$field.DOCUMENTTEMPLATE_ID"), - originUrl: vars.get("$sys.origin") -}; -result.string(JSON.stringify(variables)); \ No newline at end of file diff --git a/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/targetcontext_param/valueProcess.js b/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/targetcontext_param/valueProcess.js deleted file mode 100644 index cc6924394ae950c43386275dda2c8db5d7a9c0ed..0000000000000000000000000000000000000000 --- a/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/targetcontext_param/valueProcess.js +++ /dev/null @@ -1,4 +0,0 @@ -import("Context_lib"); -import("system.result"); - -result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/targets_param/valueProcess.js b/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/targets_param/valueProcess.js deleted file mode 100644 index 1bfc02a3f326e8e82420c38d5f60d1faee9cdf6b..0000000000000000000000000000000000000000 --- a/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/targets_param/valueProcess.js +++ /dev/null @@ -1,43 +0,0 @@ -import("Sql_lib"); -import("Util_lib"); -import("system.vars"); -import("system.result"); -import("FilterViewAction_lib"); - -var context = vars.get("$param.ObjectType_param"); -var targets = Utils.parseJSON(vars.get("$param.ObjectIds_param")); -var filter = Utils.parseJSON(vars.get("$param.ObjectFilter_param")); - -var personContactIds = []; - -targets = FilterViewActionUtils.getUidsBySelectionOrFilter(context, targets, filter).map(function (target) -{ - if (Utils.isString(target)) - target = [target, context]; - if (target[1] == "Person") - personContactIds.push(target[0]); - return target; -}); - -if (personContactIds.length !== 0) -{ - var orgContactIds = newSelect(["anyContact.CONTACTID", "orgContact.CONTACTID"]) - .from("CONTACT", "orgContact") - .join("CONTACT", "anyContact.ORGANISATION_ID = orgContact.ORGANISATION_ID and orgContact.PERSON_ID is null", "anyContact") - .where(["CONTACT", "CONTACTID", "anyContact"], personContactIds, SqlBuilder.IN()) - .table(); - var contactIdMap = new Map(orgContactIds); - targets.forEach(function ([targetId, targetContext, variables], i, allTargets) - { - if (contactIdMap.has(targetId)) - { - if (!variables) - variables = {}; - variables.attributeRowId = contactIdMap.get(targetId); - variables.attributeContext = "Organisation"; - allTargets[i][2] = variables; - } - }); -} - -result.string(JSON.stringify(targets)); \ No newline at end of file diff --git a/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/validationerrors_param/valueProcess.js b/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/validationerrors_param/valueProcess.js deleted file mode 100644 index 30356844f1b46d5f02bf716149cdc80470bc01d6..0000000000000000000000000000000000000000 --- a/entity/MarketingWorkflowLauncher_entity/entityfields/workflowlauncherintegration/children/validationerrors_param/valueProcess.js +++ /dev/null @@ -1,4 +0,0 @@ -import("system.vars"); -import("system.result"); - -result.string(vars.get("$sys.validationerrors")); \ No newline at end of file diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index 6c66d90b9193913044811aa5b08ec3225e1661fd..e6ac49616d2f08bae4ba7c875166aadc4e12c4e3 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -1172,13 +1172,6 @@ <tooltip>Export fields of this table</tooltip> <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/tooltipProcess.js</tooltipProcess> </entityActionField> - <entityActionField> - <name>startMarketingWorkflows</name> - <title>Start marketing mailing</title> - <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js</onActionProcess> - <isObjectAction v="false" /> - <iconId>VAADIN:ENVELOPES</iconId> - </entityActionField> <entityActionField> <name>addPlanningToOrganisations</name> <title>Create planning</title> diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js deleted file mode 100644 index 4fed7407fa53f2786ea2a229ed6414667217bf53..0000000000000000000000000000000000000000 --- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js +++ /dev/null @@ -1,11 +0,0 @@ -import("system.neonFilter"); -import("Context_lib"); -import("system.vars"); -import("system.neon"); - -var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({ - "ObjectIds_param": JSON.stringify(vars.get("$sys.selection")), - "ObjectFilter_param": JSON.stringify(vars.get("$sys.filter")), - "ObjectType_param": ContextUtils.getCurrentContextId() -}).toString(); -neon.openContextWithRecipe("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", recipe, neon.OPERATINGSTATE_VIEW); diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index 0a84080c9f8896c00a574db0773b24eb31f3db2b..473c893c9bd59ff5d01b46221987a4b19a53c1d6 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -1141,13 +1141,6 @@ <iconId>VAADIN:PLAY</iconId> <stateProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/startmultipleworkflows/stateProcess.js</stateProcess> </entityActionField> - <entityActionField> - <name>startMarketingWorkflows</name> - <title>Start marketing mailing</title> - <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js</onActionProcess> - <isObjectAction v="false" /> - <iconId>VAADIN:ENVELOPES</iconId> - </entityActionField> <entityActionField> <name>addToContactSync</name> <title>add Contact to Sync</title> diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js deleted file mode 100644 index 4fed7407fa53f2786ea2a229ed6414667217bf53..0000000000000000000000000000000000000000 --- a/entity/Person_entity/entityfields/filterviewactiongroup/children/startmarketingworkflows/onActionProcess.js +++ /dev/null @@ -1,11 +0,0 @@ -import("system.neonFilter"); -import("Context_lib"); -import("system.vars"); -import("system.neon"); - -var recipe = neonFilter.createEntityRecordsRecipeBuilder().parameters({ - "ObjectIds_param": JSON.stringify(vars.get("$sys.selection")), - "ObjectFilter_param": JSON.stringify(vars.get("$sys.filter")), - "ObjectType_param": ContextUtils.getCurrentContextId() -}).toString(); -neon.openContextWithRecipe("MarketingWorkflowLauncher", "MarketingWorkflowLauncherEdit_view", recipe, neon.OPERATINGSTATE_VIEW); diff --git a/neonContext/MarketingWorkflowLauncher/MarketingWorkflowLauncher.aod b/neonContext/MarketingWorkflowLauncher/MarketingWorkflowLauncher.aod deleted file mode 100644 index e200a8a70f878ecb8c691752d3585cf3880e5bef..0000000000000000000000000000000000000000 --- a/neonContext/MarketingWorkflowLauncher/MarketingWorkflowLauncher.aod +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> - <name>MarketingWorkflowLauncher</name> - <title>Marketing workflow</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <entity>MarketingWorkflowLauncher_entity</entity> - <references> - <neonViewReference> - <name>39e62b1f-b27f-4f74-8521-d95e27748c6c</name> - <view>MarketingWorkflowLauncherEdit_view</view> - </neonViewReference> - </references> -</neonContext> diff --git a/neonView/MarketingWorkflowLauncherEdit_view/MarketingWorkflowLauncherEdit_view.aod b/neonView/MarketingWorkflowLauncherEdit_view/MarketingWorkflowLauncherEdit_view.aod deleted file mode 100644 index 251902906a051ebae83b2af60ca8582cbf7f3cb1..0000000000000000000000000000000000000000 --- a/neonView/MarketingWorkflowLauncherEdit_view/MarketingWorkflowLauncherEdit_view.aod +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> - <name>MarketingWorkflowLauncherEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <size>SMALL</size> - <layout> - <noneLayout> - <name>layout</name> - </noneLayout> - </layout> - <children> - <genericViewTemplate> - <name>TemplateSelection</name> - <editMode v="true" /> - <hideEmptyFields v="false" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>13b27604-86ee-41cb-80bd-7b0b4d834c8d</name> - <entityField>DOCUMENTTEMPLATE_ID</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>e091c680-ee26-466a-a20e-52469dc28cfe</name> - <entityField>WorkflowLauncherIntegration</entityField> - <view>WorkflowLauncherEdit_view</view> - </neonViewReference> - </children> -</neonView> diff --git a/process/Workflow_lib/process.js b/process/Workflow_lib/process.js index 9fcd029adb869db690b74b2ea94f944c9be34225..6062e0eece258228cca8b633b727014a4377e442 100644 --- a/process/Workflow_lib/process.js +++ b/process/Workflow_lib/process.js @@ -75,7 +75,6 @@ WorkflowUtils.getPossibleTargetContexts = function () "Person", "Offer", "Salesproject", - "MarketingWorkflowLauncher", "AdvertisingItem", ]; }