Как преобразовать отображаемую переменную в строку base64 с помощью Mirth

У меня есть:

  1. Необработанный xml, заполненный запросом выбора. Этот xml преобразован в сообщение HL7.
  2. Один из тегов этого xml представляет столбец clob из таблицы в базе данных.
  3. Я сопоставил эти данные (из раздела редактирования трансформатора) как переменную.
  4. Теперь я пытаюсь преобразовать эту переменную в строку base64, а затем заменить ее в своем преобразованном сообщении hl7. 5. Я попробовал это преобразование на целевом канале, который является автором javascript.

Я прочитал и попробовал несколько методов преобразования, таких как

Packages.org.apache.commons.codec.binary.Base64.encodeBase64String();

У меня есть только сообщения об ошибках, например:

EvaluatorException: Can't find method org.apache.commons.codec.binary.Base64.encodeBase64String(java.lang.String);

Часть кода:

var ads=$('V_REPORT_CLOB');
var encoded = Packages.org.apache.commons.codec.binary.Base64.encodeBase64String(ads.toString());

Совершенно ясно, что я новичок в этом. Как мне сделать это преобразование?


person SophisticatedUndoing    schedule 10.07.2018    source источник


Ответы (1)


Вот что я использую для кодирования Base64 строки с заменой вашего var.

//Encode Base 64//
var ads = $('V_REPORT_CLOB');
var adsLength = ads.length;
var base64Bytes = [];

for(i = 0; i < adsLength;i++){
    base64Bytes.push(ads.charCodeAt(i));
}

var encodedData = FileUtil.encode(base64Bytes);
person Boosh    schedule 11.07.2018
comment
Хм, кажется, это не вызывает ошибку, но я получаю null из encodedData, когда регистрирую его в журнале сервера, а также в моем обновленном столбце в БД:/ - person SophisticatedUndoing; 11.07.2018
comment
Является ли ваша переменная «объявления» сгустком или строкой, когда вы пытаетесь ее закодировать? Когда я извлек данные clob из базы данных, их сначала нужно было преобразовать в строку, прежде чем можно было выполнить какие-либо манипуляции. строка = clob.getSubString(1,clob.length()); - person Boosh; 11.07.2018