String attribute overflowing

If your MDriven Server log contains errors like:

String or binary data would be truncated

You have OCL code, or a part of your system generally puts too-long text into an attribute and then tries to save it.

The rest of the message might be like this:

@errorinfo=S_OutgoingEmail.SS_OutgoingEma... (length=1153) (System.String) (DbType: String)

In this example, the problem is that the serverside email action gets an exception and tries to write that error message to a too-short string attribute.

You have two options, and you should probably use both:

  1. Make the string attribute longer to capture what you want to store
  2. Include code that makes sure you don't overflow the attribute

Use the following OCL to ensure that you never try to write a too-long string:

<attribute>.subString(1,<attribute>.maxLength-1)

For the example above:

self.errorinfo.subString(1,self.errorinfo.maxLength-1)

See also: maxLength

This page was edited 158 days ago on 06/17/2024. What links here