since ‎07-08-2017
‎08-10-2020
Florian_Courgey
MVP
Re: How to get password from external account in workflow... Florian_Courgey - Adobe Campaign Classic
Thanks Sukrity, I've updated the answer
41
Views
0
Likes
0
Comments
Re: Delivery Post-processing Workflow Florian_Courgey - Adobe Campaign Standard
Hi Giuseppe,You can get the Delivery id in the Post-Processing workflow with "vars.deliveryId". The below code might help you:logInfo('vars.deliveryId:', vars.deliveryId); // will display "vars.deliveryId: 999999" var delivery = NLWS.nmsDelivery.load(vars.deliveryId); logInfo('delivery.label:', delivery.label); // "My Delivery Label"Also, you will find a lot more details in this blog post about Delivery Post-Processing Best Pratices.BestFlorian
40
Views
0
Likes
0
Answers
Re: Replacement for Crypto library Florian_Courgey - Adobe Campaign Classic
Hi,You may use hmac as follow (hmacStr is deprecated): var appsecret = "SECRET" var text = "hello" //var sig = hmacStr(text, appsecret, 'SHA1'); // @deprecated var mbKey = new MemoryBuffer(); // init memory buffer for the key mbKey.fromString(appsecret, "utf-8"); // convert from string var mbSignature = new MemoryBuffer(); // init memory buffer for the signature mbSignature.fromString(text, "utf-8"); // convert from string var sig = mbSignature.hmac(mbKey, 'SHA1'); // compute SHA-1 HMAC with key...
41
Views
0
Likes
0
Answers
Re: update jquery library in ACC Florian_Courgey - Adobe Campaign Classic
Hi,Web apps are simple JSSP with added codes from XSL templates such as web-webApp.xsl and web-core.xsl. you may find more about web apps generation in this blog post.For example, "xtk:form/web-core.xsl" contains at line 124 the following jQuery inclusion:NL.client.require('/nl/core/controls.js', '/nl/lib/jQuery/js/jquery.js', '/nl/core/uicontroller.js');You can also replace jquery.js on the server (via an FTP upload, then a execCommand('mv').Finally, you may use use a JSSP for full control over...
109
Views
0
Likes
0
Comments
Re: Access current delivery id from the workflow. Florian_Courgey - Adobe Campaign Classic
Hi,You can use vars.deliveryId in a JS activity right after a delivery.To debug workflow variables:Activate workflow menu "Display the tasks and the log"Select the JS paused activity"Details" button"Variables" tabFind all the current variables, available with vars.XXX BestFlorian PS: source and details in this blog post.
72
Views
1
Like
0
Answers
Re: How to get password from external account in workflow... Florian_Courgey - Adobe Campaign Classic
Hi,I tried and it worked well in a JS activity (in a workflow) with decryptPassword on build 9032: var account = NLWS.nmsExtAccount.load(999999); var cryptedPassword = account.password; logInfo('cryptedPassword:', cryptedPassword); // "@Ohdznkl1fre1fs6e4rg68rezbk1==" //var password = decryptString(cryptedPassword); // use before build 8947 var password = decryptPassword(cryptedPassword); // use starting from build 8947 logInfo('password:', password); // "my_P@ssw0rd" disclaimer: the decryptStrin...
221
Views
1
Like
7
Answers
Re: (Announcement) Meet our new talented Adobe Experience League MVPs from Campaign Community (September 2020) Florian_Courgey - Adobe Campaign Classic
Hi Jagpreet, thanks for the nomination! Really looking forward to meeting this exciting community! 🙂BestFlorian
276
Views
2
Likes
0
Replies
Re: Adding additional personalization data in BuildPreviewFromId function Florian_Courgey - Adobe Campaign Classic
Thanks! It worked for our custom cus:deliveryPreview.jssp :var target = request.getParameter("target") || "XXX"; // default to XXX var targetSchema = request.getParameter("targetSchema") || "XXX"; // default to XXX [...] //var deliveryParam = ; // replaced by below code var deliveryParam = ; // using a seed address allows deliveries with targetData to work var res = nms.delivery.BuildPreviewFromId(deliveryId,deliveryParam); You may now use https://xxx.neolane.net/cus/deliveryPreview.jssp?message...
45
Views
0
Likes
0
Comments
Re: New broadlog status for custom deliveries Florian_Courgey - Adobe Campaign Classic
Thanks @wodnicki , I confirm your solution works. We ended up with the following workflow: that updates the following fields:[indicators/@dirty] = 0 (Up To Date)[indicators/@sent][indicators/@success][indicators/@processed][indicators/@error][properties/@toDeliver]The Enrichment activity creates 3 column, one for each stat with an Aggregate Count(@id): This way, we are able to configure it with the standard query editor, instead of a db trigger. It ends up with well formated delivery stats: Than...
76
Views
1
Like
0
Answers
Re: New broadlog status for custom deliveries Florian_Courgey - Adobe Campaign Classic
Hi Jon, thanks for your input! We have many status so we cannot use your solution #1. However, the solution #2 seems the way to go. We didn't know about the @DIRTY flag. Does the system recompute stats for deliveries where @DIRTY=1? If that's the case, we can definitely create a custom worklow that computes the stats for our custom deliveries and sets the dirty flag to 0.
119
Views
0
Likes
0
Comments
New broadlog status for custom deliveries Florian_Courgey - Adobe Campaign Classic
Hi, We would like to add new broadLogRcp status for custom Phoning deliveries:- To contact (by phone call) => equivalent to standard "pending" status - Contacted with success (by phone call) => "sent"- Contacted with failure (by phone call) => "failed"and 10 other status with either pending/sent/failed meaning. We could successfully extend the nms:broadLog enum with:- cus:broadLog - cus:broadLogRcp It works well and we can read/update our broadlogs with custom status. However, it is not mapped ...
175
Views
2
Likes
4
Answers and Comments
Looking for delivery templates with an operation (operation id > 0) Florian_Courgey - Adobe Campaign Classic
Hello, From a delivery (continuous, recurring, create from tpl...), when we look for a delivery template, ACC automatically adds a condition "[@operation-id] = 0". Why is the reason behind this? We would like our deliveries created from the delivery template to be linked to an operation/campaign. With traceview we found out that this condition is added by the workflow input form: Is it safe to comment this line and completely turn off this feature? Best regardsFlorian
3218
Views
2
Likes
1
Answers and Comments
Re: Create hard bounce from offline Delivery Logs (Extern... Florian_Courgey - Adobe Campaign Classic
Thanks! We chose the insert into nms:address
2537
Views
0
Likes
0
Comments
Re: Create hard bounce from offline Delivery Logs (Extern... Florian_Courgey - Adobe Campaign Classic
Thanks! I couldn't mark both of your answers as correct but thanks anyway! This is what we implemented
2245
Views
0
Likes
0
Comments
Re: workflow to check if the servers are running or down Florian_Courgey - Adobe Campaign Classic
Hey Raj, With some JS you can run checks if servers are running:Init code:instance.vars.i = 0; Advanced Javascript code (containing 2 transitions: "continue" and "end":var array = [ 'https://www.google.com/', 'https://blog.floriancourgey.com', 'https://yahoo.com', // returns an HTTP 302 code ]; if(instance.vars.i >= array.length){ task.postEvent(task.transitionByName('end')); return; } instance.vars.website = array[instance.vars.i]; instance.vars.i++; task.postEvent(task.transitionByName('contin...
2632
Views
1
Like
1
Answers
Create hard bounce from offline Delivery Logs (External Agency/Router/SMS) Florian_Courgey - Adobe Campaign Classic
Hi, We are using an external agency to send mobile text messages (SMS & MMS). Our deliveries are configured to call a Post-Processing workflow that makes 1 HTTP call per broadlog (recipient) in realtime. The broadlogs status are then set to "Sent to Service Provider". Finally, another workflow runs daily to update the broadlogs based on the feedback from the external agency. The broadlogs status are updated either to "Success" or "Failed". The thing is that no "nms:address" record is created for...
3742
Views
0
Likes
4
Answers and Comments
Re: workflow to check if the servers are running or down Florian_Courgey - Adobe Campaign Classic
Hi,You can use some JS and a Web Download activity in a loop: The init contains: instance.vars.i = 0; The Advanced JS contains: var array = [ 'https://www.google.com/', 'https://yahoo.com', 'https://blog.floriancourgey.com', ]; if(instance.vars.i >= array.length){ task.postEvent(task.transitionByName('end')); return; } instance.vars.website = array[instance.vars.i]; instance.vars.i++; task.postEvent(task.transitionByName('continue')); with 2 transitions "continue" and "end". Web download activit...
1767
Views
0
Likes
0
Answers
Re: Adobe Classic SFTP Activity Florian_Courgey - Adobe Campaign Classic
Hi, The only fix we found was to add a Javascript activity after the SFTP activity, with the below code: var f = new File(vars.filename); // vars.filename will be automatically set by the previous SFTP activity logInfo('Old path:', f.fullName); // log full path var newPath = f.path + f.name.replace(/_\d{14}[a-z]+(\.\w+)$/, '$1'); // generate new path by replacing "{an underscore}{14 digits}{a few lowercase letters}" by nothing logInfo('New path:', newPath); f.renameTo(newPath); // move file to t...
2223
Views
3
Likes
0
Answers
Re: Increasing delivery logs Florian_Courgey - Adobe Campaign Classic
Hi,Is the "cleanup" workflow running? Alternatively, you may start it manually.This is the workflow responsible of the cleanup task (delete old broad logs, tracking logs...)Best
3569
Views
0
Likes
0
Comments
Re: Increasing delivery logs Florian_Courgey - Adobe Campaign Classic
Hi,You may go to the Toolbar > Tools > Advanced > Deployment wizard. Hit next until the "Purge data" screen. HEre, you can edit the "Delivery logs" option: Alternatively, you can edit the "NmsCleanup_BroadLogPurgeDelay" optionSee https://docs.adobe.com/content/help/en/campaign-classic/using/monitoring-campaign-classic/data-processing/database-cleanup-workflow.html for details
3590
Views
0
Likes
2
Answers
Have a Javascript console everywhere (in a tab or a separate window) Florian_Courgey - Adobe Campaign Classic
Hi,It's painful to create a workflow each time you want to try something, a snippet or a short piece of code.In salesforce commerce cloud/sales cloud/..., there's a console developer window ; on any web browser, there's a console developer panel, etcThanks
1722
Views
4
Likes
0
Comments
Open a delivery in a new tab Florian_Courgey - Adobe Campaign Classic
Hi,It would be nice to be able to open the delivery form in a new tab, like any other entity (campaign, recipient..)This way, users may work on multiple deliveries at the same timeThanks
1713
Views
2
Likes
0
Comments
Re: Survey webApp includes additional css and js after AC... Florian_Courgey - Adobe Campaign Classic
Hi, It may be a duplicate of https://experienceleaguecommunities.adobe.com/t5/Adobe-Campaign-Classic-Questions/Webapp-overriding-standard-dependencies/qaq-p/308770/comment-id/3786#M3786 thank you
1718
Views
0
Likes
0
Answers
Re: Webapp overriding standard dependencies Florian_Courgey - Adobe Campaign Classic
Hi, Web apps are JSSP pages created from an HTML template. The template is the XSLT web-webApp.xsl which further calls web-core.xsl, which contains calls to core.xsl. In your web app, go to the "Code" tab, next to the "Edit" tab in the lower menu bar, and hit "refresh the code". You can then compare the JSSP code with the generated HTML code: If you'd like a full controll over the generated HTML, either create a JSSP from scratch or edit the XSLT Source https://blog.floriancourgey.com/2018/07/us...
1906
Views
0
Likes
0
Answers
Re: Comments below each thread in the documentation Florian_Courgey - Adobe Campaign Classic
Yes, it's definitely a plus! Nice move to have everything now available on github
6757
Views
0
Likes
0
Comments
Re: LINE v2 delivery error with AES key: invalid AES decryption string Florian_Courgey - Adobe Campaign Classic
Hey Connor,I'll dig more in this subjet early 2020, no news at the momentLet me know if you find anything useful!ThanksBest regardsFlorianEdit: glad to know you have the same issue, at least it's not an individual problem
13976
Views
0
Likes
0
Replies
Re: query result to JSON object (using javascript action) Florian_Courgey - Adobe Campaign Classic
Hi,You can use the following for loops:var query = NLWS.xtkQueryDef.create( );query.SelectAll(false);var results = query.ExecuteQuery();for each(var result in results.getElements()){ logInfo(result.$id_region);}And the following for 1 record:var query = NLWS.xtkQueryDef.create( );query.SelectAll(false);var result = query.ExecuteQuery();logInfo(result.$id_region);Regards
2217
Views
0
Likes
0
Answers
Re: Alerts in Workflows Florian_Courgey - Adobe Campaign Standard
Hi,Same error for us:08/06/2019 5:26:43 PM alert2 WKF-560043 Error while sending notification with delivery template 'alertAssignee'.08/06/2019 5:26:43 PM alert2 DLV-490055 Failed to load delivery ID 3611 into the cache: This delivery does not exist, has been deleted or the login does not have the required rights.After giving "READ data" access to the 3 following folders: /Administration/Campaign Management/Technical delivery templates/, it works Thanks!
5508
Views
0
Likes
0
Replies
Add an "Empty List" activity Florian_Courgey - Adobe Campaign Classic
Hi,We can purge and immediately add recipients to a list but we are unable to just purge a list.A "Purge list" activity would be niceAt the moment we have to create a recipient query with 0 result, plugged into a List Update activity with the "purge and re-use" optionRegards
1638
Views
1
Like
0
Comments
Re: OPT out URL shortening in SMS deliveries Florian_Courgey - Adobe Campaign Classic
Hi,Params forwarding works with tiny url. I created your url, it gives https://tinyurl.com/yxtvyv2r, then you can just append your "id" param, ex with 1234: https://tinyurl.com/yxtvyv2r?id=1234 redirects to https://m.comms.ourdomain.com/webApp/smsOptOut?id=1234 Regards
1990
Views
0
Likes
0
Answers