since ‎06-11-2017
‎08-04-2021
wodnicki
MVP
Re: Verification using Adobe Campaign Classic Web Forms
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Can use JS with querydef, though maybe Preloading activity will work by changing Method to List of fields and using (guessing) the correct field? Thanks,-Jon

Views

62

Like

1

Replies

0
Re: ACC not recognizing bracket notation javascript, alwa...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Use this:<% var td = { passholderName_1: 'passholderName_1', passholderName_2: 'passholderName_2', } Object .keys(td) .filter(function(k){return td[k]}) .forEach(function (k) {%><%= td[k] %><% }); %> Thanks,-Jon

Views

40

Like

1

Replies

0
Re: Package migration and issue around changing file on s...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, 1. Yes, you have to make all the SOAP calls (iirc 3?) and the upload call to do each one. The calls can be captured with Fiddler or any web debugging proxy. You can also cheat and upload a zip file to Public resources then use execCommand() to unpack it, which is what I normally do since it's faster than figuring out the calls.2. Sounds like a bug? File check should be on checksum, md5 in old builds sha in new ones. There's a checkbox in Public resources that controls this, 'Unique file name...

Views

37

Likes

0

Replies

0
Re: Restrict access to /nl/jsp/monitor.jsp
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Security is performed here by hiding the link to the page from non-admin users in the nav bar.The jsp page can be altered (overwritten on upgrade) to add proper authorization check tho, put this at the top somewhere:if (!ctx.hasRight('admin')) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } Thanks,-Jon

Views

54

Likes

2

Replies

1
Re: Input form - Retrieve the old value of an input field
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Use as normal: Not the same Thanks,-Jon

Views

40

Likes

0

Replies

0
Re: Using different schema from recipient schema and pull...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Can use JS with querydef, though maybe Preloading activity will work by changing Method to List of fields and using (guessing) the correct field? Thanks,-Jon

Views

57

Like

1

Replies

0
Re: When the delivery executes,which code writes the data...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Tracking URL table is populated on delivery send, by the nlserver binary.URL's are parsed from delivery content and can be previewed and edited in delivery prior to send. Thanks,-Jon

Views

60

Like

1

Replies

0
Re: Text email tracking URL settings
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Text content will redirect URL's same as HTML content.Recipients will see the tracking server URL. Thanks,-Jon

Views

42

Likes

0

Replies

0
Re: Adobe Campaign Hybrid Installation
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, There isn't a tracking password.In External account for midsource, click 'Use this platform as a proxy to access the tracking servers...' then enter midsource instance name and press button.Pressing the button permanently locks the midsource to the XtkDatabaseId of your instance, so make sure the right instance is pointing to the right midsource.Once configured, the ootb midsource (tracking?) sync workflows will poll for logs every hour. Thanks,-Jon

Views

58

Likes

0

Replies

0
Re: How to change a subject line script into an actual su...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Follow these steps:Add an @subjectLine attribute to nms:broadLogRcp with schema extensionAdd a storage field to recipient target mapping, $string([vars/@subjectLine]) -> @subjectLineUse delivery variable named to match mapping. You can also use a field in targetData instead of variable, just make sure mapping matches.NB this can get expensive storage-wise so be mindful of database sizing and lower retention/increase disk space as appropriate. Thanks,-Jon

Views

105

Like

1

Replies

0
Re: How to cope with send time optimization?
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Create a workflow with at least these parts:Scheduler that runs every hour or whatever recipients are bucketed intoQuery that selects all recipients with time preference below next bucket start, for hourly this would be '@timePreferred before Hour(AddHours(GetDate(), 1) and delivery log does not exist where this delivery was attempted to recipient this cycle'. Safe and allows for 'catch up' as there isn't a lower boundContinuous delivery. If this is a workflow that runs on a recurring basis ...

Views

93

Like

1

Replies

1
Re: sqlGetInt queryDef Equivalent
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, var recipientId = xtk.queryDef.create( ).ExecuteQuery().@id; Thanks,-Jon

Views

80

Like

1

Replies

1
Re: XSV-350012 Invalid login or password. Connection deni...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, I didn't see anything in the release notes:Release 20.2 | Adobe Campaign Are you using password auth without enabling password auth?The server configuration file | Adobe Campaign Thanks,-Jon

Views

102

Like

1

Replies

1
Re: Get recipients from a API to delivery and send an email
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, I once made a workflow activity that allows for arbitrary service enrichment ala the ootb enrichment activity, was not easy (temp schema manipulation is undocumented).The easy way is to not manipulate the temp schema:Query for desired recipients, adding empty fields as desired. E.g. if your email is recipient + credit scores from service, add a field in Additional data called @creditScore with expr=''Use JS to batch query the service to populate the blank cols with xtk. The temp schema is ca...

Views

90

Likes

0

Replies

0
Re: Can I able to publish images in Adobe Campaign Standa...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Standard
Hi, This is the Classic forum, but this link should help:Working with Images | Adobe Campaign Thanks,-Jon

Views

100

Likes

0

Replies

0
Re: Cannot access file JST-310042 Access to file is forbi...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, If you want to keep the sandboxing while also allowing access to that folder, set in instance conf:https://experienceleague.adobe.com/docs/campaign-classic/using/installing-campaign-classic/appendices/the-server-configuration-file.html?lang=en#datastore Thanks,-Jon

Views

53

Likes

0

Replies

0
Re: The output message for recipient '' is empty. Documen...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Set providerId={msg.id} in ? Thanks,-Jon

Views

129

Likes

0

Replies

1
Re: Help with simple SQL activity script
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
It's if you want to disable js permissions for the user? Not clear what org's security policy would say no js but sql's fine, esp since users can just 'update xtkoperatorgroup set myself=admin', but I could see it.

Views

100

Likes

0

Replies

0
Re: Help with simple SQL activity script
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Use a 'JavaScript code' activity in a workflow. Return value will be in the Audit tab of the workflow:logInfo(sqlGetString('select ...')) Thanks,-Jon

Views

138

Likes

0

Replies

3
Re: process missing from the processlist in external data...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Try setting session max_execution_time to 0 in External Account's PostConnect script? Thanks,-Jon

Views

93

Like

1

Replies

0
Re: Compute Delivery Code from TargetData
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Follow these steps, assuming nms:recipient is recipient table:Alter nms:broadLogRcp, adding sql field 'variableX'Alter target mapping mapRecipient, adding variableX to storage. Source field is [targetData/variableX]In future campaign workflows add condition 'broadlogrcp does not exist such as variableX=y' Thanks,-Jon

Views

91

Like

1

Replies

0
Re: New 32bit PK attribute (that references NmsBroadLogId...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
You can leave existing cols in place and just set the sqlNames for the two. Or use sql rename commands. Should be its own sequence, no reason to use up broadlogrcp's.

Views

126

Likes

0

Replies

0
Re: New 32bit PK attribute (that references NmsBroadLogId...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
-

Views

187

Likes

0

Replies

0
Re: How to reference a webapp internal name inside a webapp
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, If it's client-side js can just get it from (window.location + '').replace(/.*\//, '').Server-side doesn't have any info about the webapp afaik. Thanks,-Jon

Views

101

Like

1

Replies

0
Re: New 32bit PK attribute (that references NmsBroadLogId...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, The nms:broadLogEventHisto/@id col is populated by mcSynch_local workflow, which sets it to:$int64(vars/@CELL_OFFSET)*$long(vars/@cellId) + @IDvars/@CELL_OFFSET = '72057594037927936' (string since js doesn't go up that high, 2**52)vars/@cellId = xtk:option NmsExecutionInstanceId@ID= nms:broadLogRtEvent/@id If you only have 1 exec instance, set its execution id to 0 in Deployment wizard, it'll get rid of the offset, no further work needed. If you have >1 exec instances, you'll need the offset...

Views

207

Likes

0

Replies

5
Re: Is it possible to find out what is the filtering dime...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
There's xtk.workflow.get(instance.id), which also returns wppObject. Would have to use queryDef or sqlGetString for the data clob (or specifically [activities/query] for queryDef) and run it through new XML(). Cheaper to iterate over the wppObject in hand.

Views

120

Likes

0

Replies

0
Re: Is it possible to find out what is the filtering dime...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Nah it's not going to work, instance is 'wppObject' not XML. Have to do it the hard way: function getPriorActivityByType(activityType) { for each (var priorActivity in instance.activities[activityType]) { for each (var transition in priorActivity.transitions) { if (transition.target === activity.name) return priorActivity; } } } var priorActivity = getPriorActivityByType('query'); if (priorActivity) logInfo(priorActivity.schema);

Views

152

Likes

0

Replies

0
Re: Workflow command '' is not valid
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Adobe Campaign Classic doesn't ship with a REST API or an xtk:workflow#ProcessCommand action.Maybe custom development? GET method that returns trigger URL? Thanks,-Jon

Views

105

Like

1

Replies

0
Re: Does not work "delivery.variables._var [0] .stringVal...
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, Everything you have there is correct (though it can be reduced to <%= formatDate(new Date(), "%Y") %> ;).You can preview 'without' sending by sending the delivery with confirmation/approvals enabled.Once sent, the executed delivery can be opened and previewed against target population/vars before confirm button is pressed. Thanks,-Jon

Views

155

Likes

0

Replies

2
Re: Currency in French Format
Avatar

wodnicki

MVP

wodnicki
- Adobe Campaign Classic
Hi, It's missing in my postgres db; funcList.xml only shows a definition for SQL Server, which you have.Check db if it's available?sql server - Query to list all stored procedures - Stack Overflow Thanks,-Jon

Views

99

Likes

0

Replies

0