Repository navigation
v7.1.0 - Journeys
Features
- #1409 deploy
--noUpdateflag that limits deploy to create-only, preventing accidental updates by @JoernBerkefeld in #1427 - #1148 new method
publish journeyby @JoernBerkefeld in #1435 - #1433 the methods
execute,schedule,pauseandpublishnow support the--metadataoption to more easily specify what to target by @JoernBerkefeld in #1436 - #68 + #1444 + #1443 auto-create deployment package with
buildTemplate --dependenciesby @JoernBerkefeld in #1441, #1452, #1469 - #1442 allow specifying multiple values behind
--metadataby @JoernBerkefeld in #1445 - #1459 allow including
PreHeaderin create/update oftriggeredSendand resolve triggeredSend key injourneysby @JoernBerkefeld in #1464 - #1460: Add
describeSoapmethod to support contributors by @JoernBerkefeld in #1465 - #1463: allow version tracking for
/template/ folderby @JoernBerkefeld in #1466 - #1471 make
deploy --noMidSuffixthe default (removing the option) and adddeploy --autoMidSuffixinstead by @JoernBerkefeld in #1477 - #1478 support salesforce data entry events for
journeysby @JoernBerkefeld in #1489
Bugfixes
- #1448 regression-fix: retrieve attempting to save
assetsmultiple times by @JoernBerkefeld in #1449 - #1487 fix "asset folder not found": prefer picking local folder over shared folder during
assetdeployment by @JoernBerkefeld in #1488 - #1475 fix "asset folder not found": ensure we get local
assetfolders from parent for individually shared assets by @JoernBerkefeld in #1476 - #1473 fix
buildDefinitiondoes not rename single extracted code files by @JoernBerkefeld in #1486
Chores
- #1438 upgrade inquirer calls to new decentralized v9 format by @JoernBerkefeld in #1439
- #1446 disable compact folders in standard VSCode config for compatibility with mcdev VSCode Extension by @JoernBerkefeld in #1451
- #1470 improve folder caching to boost speed by @JoernBerkefeld in #1480
Dependencies
- Bump @eslint/js from 9.6.0 to 9.7.0 by @dependabot in #1455
- Bump @types/node from 20.14.9 to 20.14.10 by @dependabot in #1429
- Bump eslint from 9.6.0 to 9.7.0 by @dependabot in #1454
- Bump eslint-plugin-jsdoc from 48.5.2 to 48.8.3 by @dependabot in #1456 and #1484
- Bump eslint-plugin-prettier from 5.1.2 to 5.2.1 by @dependabot in #1481
- Bump inquirer from 9.2.6 to 10.0.1 by @dependabot in #1437
- Bump mocha from 10.6.0 to 10.7.0 by @dependabot in #1482
- Bump p-limit from 5.0.0 to 6.1.0 by @dependabot in #1430
- Bump prettier from 3.3.2 to 3.3.3 by @dependabot in #1458
- Bump prettier-plugin-sql from 0.18.0 to 0.18.1 by @dependabot in #1431
- Bump semver from 7.6.0 to 7.6.3 by @dependabot in #1483
- Bump winston from 3.13.0 to 3.13.1 by @dependabot in #1457
devtools/pull/1476
Full Changelog: v7.0.4...v7.1.0
Details
Templating Commands
build
| CHANGES |
|---|
Now supports --dependencies and --retrieve. |
Command: mcdev build <--fromBu> <--toBu> <--fromMarket> <--toMarket> <--metadata> [--bulk] [--dependencies] [--retrieve]
build with --dependencies (and with --retrieve):
These two parameters are passed through to buildTemplate. Please see buildTemplate's documentation for details. The resulting list of types & keys of whatever buildTemplate will create are then handed over to buildDefinition(Bulk), making this a powerful solution.
buildTemplate
| CHANGES |
|---|
Now supports --dependencies and --retrieve. |
Command: mcdev buildTemplate <business unit> [type] [key] [market] [--metadata] [--market] [--dependencies] [--retrieve]
buildTemplate with --dependencies:
Using the --dependencies option you turn on the most powerful templating feature that allows you to find all related other metadata items across all types. This includes other items linked via r__ field ("r" means "relationship") in their JSON and assets loaded via AMPscript or SSJS using the functions ContentBlockByKey, ContentBlockByName and ContentBlockById. The logic works recursively, finding dependencies of dependencies on all levels.
Example:
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --dependenciesbuildTemplate with --retrieve:
When running buildTemplate you are solely using whats saved locally on your computer. If you want to get a fresh version from the server first, you can of course run mcdev retrieve yourself - or you include the --retrieve option here.
If used together with --dependencies, this will download all metadata types for the selected BU. If used without --dependencies option it will only retrieve the types you specified as part of your buildTemplate command.
Example:
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --retrieve
mcdev bt MyProject/DEV --market pilotMarketDEV1 -m dataExtension:MyUserTable --dependencies --retrieveStandard Commands
deploy
| CHANGES |
|---|
Now supports --noUpdate, --publish and --skipStatusCheck |
Command: mcdev deploy [business unit] [metadata type] [metadata key] [--metadata] [--fromRetrieve] [--refresh] [--keySuffix] [--noMidSuffix] [--changeKeyValue=yourNewKey] [--changeKeyField=otherFieldInJson] [--execute] [--schedule] [--fixShared] [--noUpdate] [--publish] [--skipStatusCheck]
deploy with --noUpdate
If you want to ensure that your deployment does not override existing metadata but instead is limited to creating new elements, then add the --noUpdate option to your call.
mcdev deploy cred/bu --noUpdatedeploy with --publish (and --skipStatusCheck)
By adding the --publish flag, you tell deploy to run mcdev publish for supported types as a post-deployment step. See publish method for more details
mcdev deploy cred/bu journey --publish
mcdev deploy cred/bu journey --publish --skipStatusCheckpublish
| CHANGES |
|---|
| New command |
Command: mcdev publish <business unit> [metadata type] [metadata key] [--like] [--skipStatusCheck] [--metadata]
You can publish a draft journey using this command. This is the same as clicking on Publish in the web interface. If you don't care about the publishing result, you can skip that check (it might be useful in CI/CD environments). Generally, we recommend against using—-skipStatusCheck because it happens often that something is blocking the publishing, and without that check, you would not know about the problem.
mcdev publish cred/bu journey myJourneyKey
mcdev publish cred/bu journey id:myJourneyId
mcdev publish cred/bu -m journey:myJourneyKey -m journey:id:myJourneyId
mcdev publish cred/bu journey myJourneyKey --skipStatusCheckexecute
| CHANGES |
|---|
Now supports --metadata. |
Command: mcdev execute <business unit> [type] [key] [--like] [--schedule] [--metadata]
Example:
mcdev execute MyProject/DEV -m automation:key1 -m automation:key2 -m query:keyA
mcdev execute MyProject/DEV -m automation:key1 automation:key2 query:keyBpause
| CHANGES |
|---|
Now supports --metadata. |
Command: mcdev pause <business unit> [type] [key] [--like] [--metadata]
Example:
mcdev pause MyProject/DEV -m automation:key1 -m automation:key2
mcdev pause MyProject/DEV -m automation:key1 automation:key2schedule
| CHANGES |
|---|
Now supports --metadata. |
Command: mcdev schedule <business unit> [type] [key] [--like] [--metadata]
Example:
mcdev schedule MyProject/DEV -m automation:key1 -m automation:key2
mcdev schedule MyProject/DEV -m automation:key1 automation:key2Admin Commands
describeSoap
| CHANGES |
|---|
| New command |
Command: mcdev describeSoap [soap object]
Alias: mcdev describe, mcdev soap
This is mainly aimed at contributors to get a quick overview on available fields for the various SOAP Web Service API Objects. While there is a (not always correct) overview on possible SOAP operations per object, there is no good page that shows which fields can be retrieved or deployed.
Example:
mcdev soap DataFolderResponse:
Name DataType IsUpdatable IsRetrievable MaxLength IsRequired
-------------------------- ------------- ----------- ------------- --------- ----------
ID Int32 true true true
Client.ID Int32 true true true
ParentFolder.ID Int32 true true false
ParentFolder.CustomerKey String true true 36 false
ParentFolder.ObjectID Guid true true false
ParentFolder.Name String true true 100 false
ParentFolder.Description String true true 200 false
ParentFolder.ContentType String true true 50 false
ParentFolder.IsActive Boolean false true false
ParentFolder.IsEditable Boolean false true false
ParentFolder.AllowChildren Boolean false true false
Name String true true 100 true
Description String true true 200 true
ContentType String true true 50 true
IsActive Boolean true true false
IsEditable Boolean true true false
AllowChildren Boolean true true false
CreatedDate DateTime true true true
ModifiedDate DateTime true true true
Client.ModifiedBy Int32 true true true
ObjectID String true true false
CustomerKey String true true 36 false
Client.EnterpriseID Int64 true true false
Client.CreatedBy Int32 true true false
ParentFolder DataFolder true false
Client ClientID true false
PartnerKey String true false
PartnerProperties APIProperty[] true false
Owner Owner true false
CorrelationID String true false
ObjectState String true false
IsPlatformObject Boolean true false