Product ideas | Community
Skip to main content

Filter by idea status

10000 Ideas

LaurentLam
LaurentLamNew Participant

Updating the documentation with a good practice.Investigating

In the documentation, a bad practice for developper is unwantedly suggested:https://experienceleague.adobe.com/docs/campaign-classic/using/configuring-campaign-classic/api/data-oriented-apis.html?lang=enTo limit the number of records returned by the query to 100:<queryDef schema="nms:recipient" operation="select" lineCount="100">...To retrieve the next 100 records, run the same query again, adding the startLine attribute.<queryDef schema="nms:recipient" operation="select" lineCount="100" startLine="100">...In fact, a dev should never use the startLine attribute as it contribute to a loss of performance:exemple with a SQL translation of the 1rst example:select top 100 from nmsRecipientYou'll get the 1rst 100 records... No issue about that Now is the SQL translation of the 2nd querydef:select top 200 from nmsRecipient=> as the startLine begin at 100, the "top" will start at 100 and add the line count attributes (100) ... Then the JS engine will keep the last 100 recordsThis doc is used by developper to create code in order to loop over all the records of a table as queryDef are limited to 10000 records usually:Imagine a loop with a lineCount of 10K... If you want to use a queryDef in order to operate on a 100K table: it will creates 10 sql queries, retrieving each time 10k more results leading to retrieve 550K results instead of 100K and each requests to be more greedy on performance (10+20+30+40+50+60+70+80+90+100). The good practice should be then to use an Id (directly the id of the schema or a rowId from a wkf work table if possible) in the where clause in order to replace this "startLine" attribute:<queryDef schema="nms:recipient" operation="select" lineCount="100"><where> <condition expr="[@id] > " var.lastProcessedId /></where></queryDef>I observed in the past some workflow JS activity with the "startLine" implementation that were optimized from 4h down to 2 min. Placing a warning in the documentation in order to inform that they should never use startIndex as a way to loop over a schema would be really helpfull, specially for beginners. Ps: TY @cedricrey  for this tip months ago

david--garcia
david--garciaNew Participant

ACC 'File Resources' revampNew

Description - File resources currently has limitations and issues around trying to re-upload files with updated code, annoyingly enough, the only way around is to change the file name and re-upload a new file which fills up file resources folder with a lot of junk. Furthermore, while deleting the file from the file resources folders gives the impression of file deletion, this is not the case, it still lives in the server, even after I run a shell file deletion script which literally removes the file from the server, the file still is accessible from online, as if it was cached by cloudfront perhaps?How would you like the feature to work -Enhance the file resources form provide an actual file manager which allows advance file handling and search functionality.Upon uploading new file, allow file replace so that users don't end up uploading dozens of variants of the same file which fills up file resources folder. (particularly annoying while working with css and js file, where changes are done frequently and require alot of code refresh)Allow acc to call cloudfront, or whatever caching module is being used as to force expiry of cached assets to allow us to test in real time uploaded files.Allow file upload whitelisting control filters from file resources, currently this is configured from within serverfile, perhaps creating an admin control zone that allows these filters to be controlled from within the client will be easier to manage.Current Behaviour - lacking features, bugs, limitations