Expand my Community achievements bar.

Announcing the launch of new sub-community for Campaign Web UI to cater specifically to the needs of Campaign Web UI users!
SOLVED

Using instance variable (string >255 characters) in delivery

Avatar

Level 2

Hi,

In the script activity I defined a variable (string length>255):

vars.cmpdeliveries = myVar123; //myVar123 is a string with more than 255 characters

In the query activity, where I define the recipients, I add the variable above using 'complementary information' (also tried with enrichment activity, but end up with the same error).

Label: CmpDeliveries

Expression: $(vars/@cmpdeliveries)

Alias: @cmpdeliveries

When running the workflow I get an error:

ORA-210000 Oracle error: ORA-12899: value too large for column "CAMUSER"."WKF28138905_32_1"."SCMPDELIVERIES" (actual: 780, maximum: 255)...

The goal is to use the variable (targetData.cmpdeliveries) in a delivery (continuous delivery activity in the same workflow). It works if the variable has less than 255 characters. Any solution for string >255 characters?

Thanks

Patrick

1 Accepted Solution

Avatar

Correct answer by
Level 5

Hi,

If you just want to use a lengthy variable inside a delivery, you can try using variables in delivery like following.

1855483_pastedImage_0.png

View solution in original post

10 Replies

Avatar

Community Advisor

Hi,

Define your datatype as 'CDATA' or 'Memo' based on how you want to fetch value in your delivery.

Thanks.

Avatar

Level 2

Hi,

How to define datatype CDATA or Memo? Do you have a sample? Is there any documentation?

What I want to do in the delivery is to further process the value of the variable using javascript and output in the HTML. My variable is a string that contains a collection of delivery IDs and Labels (comma separated).

Thanks,

Patrick

Avatar

Community Advisor

Hi,

You need to define datatype in schema:

<element label="Long value" name="longValue" type="CDATA"/>

And then you can store value in your variable using javascript.

Thanks.

Avatar

Level 2

Thanks for your replies.

If I understand you correctly your solution implies to store the value of the variable into a field (of type CDATA or MEMO) of the recipient table. But I don't want to store the data in the database. All I want to do is to enrich the query/temporary-schema with the value of the variable, in order to use it in the delivery.

This is my workflow:

wf1.JPG

JS activity:

wf2.JPG

Query activity (Complementary information):

This activity fails if length(vars.mytestvar)>255; I don't want to store it in the DB.

wf3.JPG

Delivery template for continuous delivery:

wf4.JPG

Avatar

Level 6

Hi,

I think you can not query if it is stored as @data field and I think it is stored as XML.

Avatar

Level 5

Hi,

Hope the following helps you.

1855482_pastedImage_0.png

If you want to store different variable value to different user, you may need to use querydef in js and then update this 1024 characters field.

Avatar

Level 2

Hi,

This looks promising. Output in "View population" looks ok. However, when I use "XML Memo" (@test) in the continuous delivery it is empty.

<%= targetData.test %>

Any idea?

Thanks

Avatar

Correct answer by
Level 5

Hi,

If you just want to use a lengthy variable inside a delivery, you can try using variables in delivery like following.

1855483_pastedImage_0.png

Avatar

Level 2

Thank you! I marked this as the correct answer because it solved my issue.
But with this solution I can't use "Continuous Delivery" because the activity doesn't have a "Script" tab. I use now multiple "Delivery" activities instead and this works. If somebody knows a solution for "Continuous Delivery" activity feel free to post.