V9: Checking string fields for null

By | January 2, 2018

It seems there is an unexpected change in how V9 (specifically, 9.0.0.3172) is treating string fields on the SDK side.

Normally, if you clear a field, you can use this code in the plugin to see if the field is being cleared:

            if (entity.Contains(“ita_integer”) && entity[“ita_integer”] == null)
             {
                 throw new InvalidPluginExecutionException(“Integer is null”);
             }

For example:

image

image

image

It does not seem to be the case for text fields anymore.

Below I have exactly the same code but for a text field this time:

            if (entity.Contains(“ita_notestallowedmessage”) && entity[“ita_notestallowedmessage”] == null)
             {
                 throw new InvalidPluginExecutionException(“No Test Allowed Message is null”);
             }

And it allows me to save the data just fine:

image

image

Although, if I query all the records where that field does not contain data, the record will come up.

So, for whatever reason, in this version of V9 I have to re-write that code for string fields like this:

if (entity.Contains(“ita_notestallowedmessage”) && (entity[“ita_notestallowedmessage”] == null || (string)entity[“ita_notestallowedmessage”] == “”))
             {
                 throw new InvalidPluginExecutionException(“Integer is null”);
             }

Then it works.. Something to keep in mind.

2 thoughts on “V9: Checking string fields for null

  1. Ahmed el-Sawalhy

    Hello,
    Another form:

    if (string.IsNullOrEmpty(entity.GetAttributeValue(“ita_notestallowedmessage”)))
    {
    throw new InvalidPluginExecutionException(“String is null”);
    }

    Reply
    1. Alex Shlega Post author

      Hi Ahmed,

      that code will work differently – GetAttributeValue will also return null when “ita_notestallowedmessage” is not being updated at all. When this happens, Contains will handle that situation correctly since it will return “false”, so there will be no error message.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *