Is there a glide object replacement for Packages.java.lang.String()?

Marcel H_
Tera Guru

I have a business rule using a script to prevent duplicate attachments to records, but looking to update the code to replace packages calls. For whatever reason the Packages Call Removal Tool doesn't seem to find the calls in the BR, so I'm not sure what the equivalent is specifically.

I've seen mention of using GlideStringUtil() (or previously Packages.com.glide.util.StringUtil) when dealing with attachments, but only in the context of encoding/decoding:

var sa = new Packages.com.glide.ui.SysAttachment();
var binData = sa.getBytes(gr);
var encData = StringUtil.base64Encode(binData);

Would the glide object GlideStringUtil() work the same way? Below is my current script:

(function executeRule(current, previous) {

    var gr = new GlideRecord('sys_attachment');
    gr.addQuery('table_sys_id', current.getValue('table_sys_id'));
    gr.orderByDesc('table_sys_id');
    gr.query();
    while (gr.next()) {
        if (gr.getValue('content_type').toLowerCase() == current.content_type.toLowerCase()) {
            var gr1 = new GlideRecord('sys_attachment');
            gr1.get(gr.getValue('sys_id'));
            var gsa = new GlideSysAttachment();
            var binData = gsa.getBytes(gr1);
            var strData = Packages.java.lang.String(binData);
            var gr2 = new GlideRecord('sys_attachment');
            gr2.get(current.getValue('sys_id'));
            var gsa1 = new GlideSysAttachment();
            var binData1 = gsa1.getBytes(gr2);
            var strData1 = Packages.java.lang.String(binData1);
            if (strData == strData1) {
                current.setAbortAction(true);
                break;
            }
        }
    }
}(current, previous));
2 REPLIES 2

Hitoshi Ozawa
Giga Sage
Giga Sage

Hi Marcel,

I don't think GlideStringUtil() is able to convert byte array to a String. That is, it can't be used to replace the package call.

Hitoshi Ozawa
Giga Sage
Giga Sage

Instead of using .getBytes(), use .getContentBase64() and compare the resulting Strings instead?