SOLVED

Using instance variable (string >255 characters) in delivery

patrick12345
Level 2
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
somasundaramhal
Correct answer by
Level 5
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
Jyoti_Y
Community Advisor
Community Advisor

Hi,

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

Thanks.

patrick12345
Level 2
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

Jyoti_Y
Community Advisor
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.

patrick12345
Level 2
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

Raj_bounteous
Community Advisor
Community Advisor

Hi,

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

somasundaramhal
Level 5
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.

patrick12345
Level 2
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

somasundaramhal
Correct answer by
Level 5
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

patrick12345
Level 2
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.