2017-01-22 14 views
0

Я хочу использовать Dataweave вытащить текст между первым: и первым (в данном случае «Файл неправильно», но в других случаях это может быть различнымИзвлечение строки из сообщения, используя Dataweave

java.lang.Exception: File incorrect (javax.script.ScriptException). (org.mule.api.transformer.TransformerMessagingException). 

. Я посмотрел на некоторые строки манипуляции доступной и выглядит, как вы могли бы использовать его, только если вы знаете положение текста или текст, который вы хотите извлечь.

Как я могу это сделать?

Благодаря

ответ

1

U можно извлечь его с помощью функции регулярного выражения и соответствия в datatweave. Попробуйте ниже КВЛ

%dw 1.0 

%var exceptionMsg = 'java.lang.Exception: File incorrect(javax.script.ScriptException). (org.mule.api.transformer.TransformerMessagingException).' 
%output application/json 
--- 
trim (exceptionMsg match /^(.*):([^(]*).*$/)[2] 
0

Вы можете сделать вызов заводной функции от вашего Dateweave извлечь требуемую строку, как ниже:

<configuration doc:name="Configuration"> 
<expression-language autoResolveVariables="false"> 
<global-functions> 
def extractmsg(messageString) { 
    int firstindex = messageString.indexOf(":"); 
    int endindex = messageString.indexOf("("); 
    String msg = messageString.substring(firstindex+1, endindex).trim(); 
    return msg; 
} 
</global-functions> 
</expression-language> 
</configuration>