Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

Mirror Page Generation - deliveryPartId

ovot
Level 2
Level 2

Hi,

 

In ACC, the out-of-the-box personalization block that's used for inserting the mirror page url in a delivery looks like this:

 

 

 

<%@ value object="provider" xpath="@mirrorURL" %>/nl/jsp/m.jsp?c=<%=escapeUrl(cryptString(message.deliveryPartId.toString(16)+'|'+message.id.toString(16)))%>

 

 

 

While the message.id is basically the broadLog id of a given delivery, I cannot understand where the message.deliveryPartId comes from, nor how can I retrieve that from an existing table, outside a delivery object.

 

My goal is to recreate the GetMirrorURL() function that's available as part of the nms.delivery schema, and use this in a javascript activity inside a workflow - I have to retrieve several hundreds of thousands of mirror pages per day.

 

Any suggestions on where can I retrieve that from? My intuition tells me it's the remote broad log id that exists on the midsource.

 

p.s.: I have tried the suggestion of @wodnicki  in this post and it doesn't seem to work.

 

 

Thanks.

adobe campaign classic mirror page link function deliveryPartId
1 Accepted Solution
Venu_Reddy
Correct answer by
Community Advisor
Community Advisor
Hi @ovot, The message.deliverypartid comes from the below path Delivery action part (nms: deliveryPart) --> Message (message) --> Part identifier (@deliveryPartId) Here nms: delivery Part is schema Message is linked to above schema @deliveryPartId is the attribute Hope you got the solution. Regards, Venu

View solution in original post

6 Replies
Milan_Vucetic
Community Advisor
Community Advisor

Hi @ovot ,

 

you can use JS activity inside a workflow for example:

 

var url = nms.delivery.GetMirrorURL(000000001,"00000002")

 

000000001 is the delivery id

00000002  is the broadlogId (not the messageID) - passed as string in quotes

 

If you need to use it within variables:

instance.vars.deliveryId = 000000001

instance.vars.broadlogId = 00000002

instance.vars.broadlogId = instance.vars.broadlogId.toString()

 

var url = nms.delivery.GetMirrorURL(instance.vars.deliveryId,instance.vars.broadlogId)

 

Regards,

Milan

 

ovot
Level 2
Level 2

Hi Milan, as I have mentioned in my initial question, I am purposefully trying to avoid using GetMirrorURL(). I am trying to reproduce its functionality, but I cannot seem to find its definition anywhere.

 

Thank you for your answer, but do you know how and where that function is defined? Then I can take its content and reproduce it locally in a JS activity inside a workflow.

 

Ovidiu

Venu_Reddy
Correct answer by
Community Advisor
Community Advisor
Hi @ovot, The message.deliverypartid comes from the below path Delivery action part (nms: deliveryPart) --> Message (message) --> Part identifier (@deliveryPartId) Here nms: delivery Part is schema Message is linked to above schema @deliveryPartId is the attribute Hope you got the solution. Regards, Venu

View solution in original post

ovot
Level 2
Level 2
@Venu_Reddy Alright, that clarifies a bit. The interesting part is that in my nms:deliveryPart table there is no data whatsoever, the table is completely empty. Do you have an idea on why that might be the case?
Venu_Reddy
Community Advisor
Community Advisor

@ovot, There might be a chance of not having access to the schema else some other reason that needs to investigate.

wodnicki
Community Advisor
Community Advisor

Hi,

 

There are at least 3 formats for the mirror url. In a recent build (9032) I see the same fields as in the personalization block you pasted:

<%=escapeUrl(cryptString(message.deliveryPartId.toString(16)+'|'+message.id.toString(16)))%>

 

 Here message.deliveryPartId refers to nms:mirrorPageInfo/@id, on the sending instance.

 

Thanks,

-Jon