Yes. The question is essentially asking how to do this without writing a program.
Re: How can I upload a directory tree in CRXDE lite to /etc/fmdita/dita_resources?
Re: How can I upload a directory tree in CRXDE lite to /etc/fmdita/dita_resources?
Well there must be some kind of information [logs] on the webdav client if uploads are not working for certain paths. Please check if there's a difference for the path where upload works and doesn't. It might be worth to try a different webdav client
Re: Sl4j MDC log not printed
A bit late reply but found out during my own debug session.
You need to set up the filter ranking higher. You can do it using either osgi repository based configuration or setup your own mdc filter. This happens when mdc filter is not called up in the hierarchy of filters so setup it's ranking high enough.
This resolved problem for me and my mdc pattern logs started firing up
Re: Setting Marketing Channel's classifications
Re: RTE in AEM 6.4 touchUI
Hi Arun,
Thank you for your reply. We are not using core components, we managed to fix it by using extraClientlibs="cq.authoring.dialog.rte.coralui2" in touchUI dialog. RTE is now showing up but it didn't show "paraformat" options as we were using sling:resourceSuperType and loading RTE from xml file, we had to copy all the RTE options and add uiSettings node to the dialog xml file in order for us to have completely working RTE in touchUI dialog. Classic UI dialog still loads them from generic xml.
TouchUI dialog had to have all them copied to dialog xml file. If anyone knows how to generalise options so that both classic UI and touchUI dialogs load RTE from common xml file, that would great. I saw one of the related post Custom RTE not working with aem page template/property
Thanks,
Rachna
Re: How can I upload a directory tree in CRXDE lite to /etc/fmdita/dita_resources?
Ah. It's only the /etc path that I'm not allowed to write to. It works over webdav if use the full path.
Re: How can I upload a directory tree in CRXDE lite to /etc/fmdita/dita_resources?
Navigate, not write. I can't navigate to /etc over webdav, but I can to /etc/fmdita/dita_resources.
Help: If and statement
using the Campaign Classic expression editor i'm trying to create the following:
- If home phone number is null then display mobile phone number.
- If home phone and mobile phone is null then display "contact customer care to update your contact information".
I'm having trouble getting this to work and would appreciate some direction. Below is what i currently have:
Iif(@MOBILE_NUM is Null, @X_HOME_PH_NUM, Iif(@X_HOME_PH_NUM is Null and @MOBILE_NUM Is Null, "Call Customer Services to Update Number – 1-800-RED-CROSS", @MOBILE_NUM))
Thanks.
Coral UI Multifield add new Field Item
Hi, I'm using the Multifield component on a content fragment model, I want to add a new option from JavaScript, right now I'm doing it with:
$field.append(new Coral.Multifield.Item());
It's working but I don't know how to add a value for that new field item.
There is a way to do this?
Thanks
Re: Tracking Tech Workflow error
Moved to Adobe Campaign Classic.
Please post here directly in the future for Campaign Classic questions and topics
Re: AEM Query result is not in same order
Hi,
There are multiple ways to query AEM. As aemmarc says, Lucene scores your results and so order can differ from instance to instance.
You can however use a JCR SQL2 query to find your content. JCR SQL2 lets you use an ORDER BY clause to sort the results according as you wish (by date created, name, etc.). If you want to learn JCR SQL2, you can find a number of references with examples here, here or here for example.
To use a JCR SQL2 programmatically from Java, follow this example I created (sorry, indentation got a little messed up in transit):
import lombok.extern.slf4j.Slf4j;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.HttpConstants;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.osgi.framework.Constants;
import org.osgi.service.component.annotations.Component;
import javax.jcr.NodeIterator;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
import javax.jcr.query.QueryResult;
import javax.servlet.Servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
@Component(service = Servlet.class,
property = {
Constants.SERVICE_DESCRIPTION + "=Image Viewer Servlet",
"sling.servlet.methods=" + HttpConstants.METHOD_GET,
"sling.servlet.paths=" + "/bin/demoServlet"
})
@Slf4j
public class DemoServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 2598426539166789515L;
@Override
protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws IOException {
final PrintWriter out = response.getWriter();
try {
final QueryManager queryManager = getQueryManager(request);
out.println("No specific order:");
printNodes(out, executeQuery(queryManager,
"SELECT * FROM [cq:Page] AS page " +
"WHERE ISDESCENDANTNODE ([/content/we-retail])"));
out.println();
out.println("Ordered by name");
printNodes(out, executeQuery(queryManager,
"SELECT * FROM [cq:Page] AS page " +
"WHERE ISDESCENDANTNODE ([/content/we-retail]) " +
"ORDER BY NAME(page)"));
} catch (final Exception e) {
out.println("Error during execution: ");
out.println(e);
Arrays.stream(e.getStackTrace()).forEach(out::println);
}
}
private QueryManager getQueryManager(final SlingHttpServletRequest request) throws RepositoryException {
return request.getResourceResolver().adaptTo(Session.class).getWorkspace().getQueryManager();
}
private void printNodes(final PrintWriter out, final QueryResult result) throws RepositoryException {
final NodeIterator nodes = result.getNodes();
while (nodes.hasNext()) {
out.println(nodes.nextNode().getPath());
}
}
private QueryResult executeQuery(final QueryManager queryManager, final String queryString) throws RepositoryException {
final Query query = queryManager.createQuery(queryString, "JCR-SQL2");
query.setLimit(4);
return query.execute();
}
}
Assuming you have the We.Retail demo content on your instance, visiting http://localhost:4502/bin/demoServlet should show you the results of two queries: one with an ORDER BY clause and one without (in this case, the name is the name of the page, ie: the leaf node name for each result):
Re: How to control send audiences to advertising or personalization destination
I have some doubts because..
Facebook & Google Ads are url destinations and we cannot unsegment in the destination side unless we create other segment (with the opt-out trait). What do you think?
On the other hand, once you create a segment in AAM its shared automatically with Adobe Target. How we can prevent activating segments that haven't given consent for personalization? Add the personalization trait doesnt seem to be the right way...
Re: AAM and Safari ITP 2.2 update
Re: Configure Events Contains Data in AA but No Data in AAM
If you want to catch only an specific event in a call you have to configurate as follows:
Contains "eventx" and endswith "eventx" due to a user could send more than one value for event ie "event: event1,event2,event3" and you would collect "event1,event2,event3" I watched it on a video training
shweta_singh could you confirm it?
Re: AEM6.3 Autocomplete with smart search for touch ui
Hi,
Thanks for the inputs
I have written the below code .Could you please suggest if you see any changes on this
1> when i type in any character in one of the auto complete input field it shows both selection results of both tags id with 2 pop up, so i am trying hide one of selection which is not typed. I Have replaced tag id names with TagA1 and TagB2 .
2>How to remove the scroll bar that is coming up when i type in any character in auto complete input field .When we have 2 autocomplete one below another.
(function($, $document) {
"use strict";
// when dialog gets injected
$(document).on("dialog-ready", function(e) {
$(document).on("keyup", "#TagA1 div>input.js-coral-Autocomplete-textfield", function() {
applyFilter($(this).val().toLowerCase(), $("ul.js-coral-Autocomplete-selectList.coral-SelectList li"),
$('#TagB2 ul.js-coral-Autocomplete-selectList'));
});
$(document).on("keyup", "#TagB2 div>input.js-coral-Autocomplete-textfield", function() {
applyFilter($(this).val().toLowerCase(), $("ul.js-coral-Autocomplete-selectList.coral-SelectList li"),
$('#TagA1 ul.js-coral-Autocomplete-selectList'));
});
$(document).on("click", "#TagA1 ul.js-coral-Autocomplete-selectList.coral-SelectList li.is-highlighted", function() {
$(this).closest('ul').removeClass("is-visible").removeClass("is-below");
});
$(document).on("click", "#TagB2 ul.js-coral-Autocomplete-selectList.coral-SelectList li.is-highlighted", function() {
$(this).closest('ul').removeClass("is-visible").removeClass("is-below");
});
});
function applyFilter(txtVal, filterList ,hide ) {
filterList.each(function() {
hide.closest('ul').removeClass("is-visible",true).removeClass("is-below",true);
var $this = $(this);//for timeout function
if ($(this).text().toLowerCase().indexOf(txtVal) > 0) {
setTimeout(function(){
$this.removeClass("is-hidden", false);
$this.closest('ul').addClass("is-visible").addClass("is-below");
hide.closest('ul').removeClass("is-visible",true).removeClass("is-below",true);
},
200);
}
});
}
})($, $(document));
2>How to remove the scroll bar that is coming up when i type in any character in auto complete.When we have 2 autocomplete one below another.
Regular AEM Forms activity creates big load the database
We run AEM Forms 6.4 on Windows 2016 Server, with the database on MS SQL Server. We only use the Document Security module. The database is very large - we have ~ 800,000 security policies (EDCPOLICYENTITY table) and ~ 100,000,000 secured documents (EDCLICENSEENTITY and EDCREVOKATIONENTITY tables).
On a regular basis (maybe once a month or so) we see AEM Forms starting some activity which creates a huge load on the database. SQL Server disk queue jumps from 0.1 to 500 - 1,000 range. SQL Profiler catches the following long running queries:
--------------------------------------------------------------------------
exec sp_executesql N'select count(*) , MIN(sequenceNumber), MAX(sequenceNumber) from EDCLICENSEENTITY where EDCLICENSEENTITY.issueTime >= @P0 ',N'@P0 bigint',1537660800000
3 - 8 min
--------------------------------------------------------------------------
declare @p1 int set @p1=1073741825 declare @p2 int set @p2=180150003 declare @p7 int set @p7=10000 exec sp_cursorprepexec @p1 output,@p2 output,N'@P0 bigint,@P1 int',N'select top 10000 * from EDCREVOKATIONENTITY where (EDCREVOKATIONENTITY.sequenceNumber > @P0 and EDCREVOKATIONENTITY.revokeState > @P1) order by EDCREVOKATIONENTITY.sequenceNumber ASC ',4104,8193,@p7 output,0,1 select @p1, @p2, @p7
10 - 25 min
--------------------------------------------------------------------------
declare @p1 int set @p1=1073741841 declare @p2 int set @p2=180150081 declare @p7 int set @p7=10000 exec sp_cursorprepexec @p1 output,@p2 output,N'@P0 bigint,@P1 int',N'select top 10000 * from EDCPOLICYENTITY where (EDCPOLICYENTITY.sequenceNumber > @P0 and EDCPOLICYENTITY.cacheLocalVersion > @P1) order by EDCPOLICYENTITY.sequenceNumber ASC ',4104,8193,@p7 output,0,1 select @p1, @p2, @p7
1 - 3 min
--------------------------------------------------------------------------
declare @p1 int set @p1=1073741843 declare @p2 int set @p2=180150195 declare @p7 int set @p7=3762 exec sp_cursorprepexec @p1 output,@p2 output,N'@P0 bigint,@P1 int',N'select top 10000 * from EDCLICENSEENTITY where (EDCLICENSEENTITY.sequenceNumber > @P0 and EDCLICENSEENTITY.version > @P1) order by EDCLICENSEENTITY.sequenceNumber ASC ',4104,8193,@p7 output,0,1 select @p1, @p2, @p7
10 - 15 min
--------------------------------------------------------------------------
My question is - what is this activity, and, more importantly, how can we turn it off?
Re: Regular AEM Forms activity creates big load the database
It seems to be due to key rollover : Adobe Experience Manager Help | Configuring client and server options
AEM forms * Working with document security
Thanks
Wasil
Re: TagManager.getNameSpaces giving null
Hi Arun,
resourceResolver is not null and I am doing the same as suggested by you hence confused.
Is it a bug?
Re: unable to get jcr properties in eclipse
Re: xml/DITA IN AEM
Actully I am not able to convert my simple word docx into DITA type . after chnaging the configuration file when i upload a docx into asset a workflow get triggered wordtodita but its not converting my whole docx properly into any dita file .
Suppose if I have images and some text in docx after upolading in asset this worlkflow create the folder (according to the configuration ) and only images will be saved inside the topic folder. I am not getting full dita content .