cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
lreinhard7
Level 8

Advanced expressions split string

Hi, 

I have a text that contains multiple separators that I can identify by 4 letters in front of a Plus symbol. 

Here is an example:

 

EREF+STZV-EtE06042015-1113-2 SVWZ+Zweite SEPA-Ueberweisung EREFSmiley FrustratedTZV-EtE06042015-1 113-2 IBAN: DE14740618130000033626 BIC: GENODEF1PFK ABWE: TestABWE+Test

 

The good news is that I know all the separators such as "EREF+", "SVWZ+", "ABWE+", etc. 

 

Problem 1:

In my example, I have 3 different separators included but it is possible that I have only two or only one or even more. 

Problem 2:

I am interested in the text behind the separators but (a) the length of the text behind each separator is dynamic and not limited except by the separators and (b) I might not have all separators included in my text. 

Problem 3:

I cannot use multiple nested conditions because in total 12 different separators are feasible and I need the flow to run fast. 

 

Question: 

How can I filter and select the different texts that can be identified behind each separator?

 

Would be great if somebody could help because I already tried a lot of different expressions, filters, etc. but nothing really worked. 

 

Many thanks in advance, 

 

Ludwig

 

2 ACCEPTED SOLUTIONS

Accepted Solutions
Super User
Super User

Re: Advanced expressions split string

Hi @lreinhard7 

I built a Flow with a few actions in it to manipulate the strings to give you the desired outcome. It might not be exactly what you need, but it will definitely put you in the right path. I have attached a copy of the Flow in .zip format for you to import it in your tenant. Since it's manually triggered, there are no dependencies when you import it. Also, each action is named accordingly and they all have comments explaining what they do. Please check it out and let us know.

 

Regards,

Fausto Capellan, Jr





Did I answer your question? Mark my post as a solution!

Proud to be a Flownaut!


Highlighted
Community Support Team
Community Support Team

Re: Advanced expressions split string

Hi @lreinhard7 ,

 

If you want to get the text behind the separators dynamically, please check if the following flow will work for you.

 

Function used in Compose2:

split(outputs('Compose'),'+')

 

Function used in Compose3:

substring(first(skip(outputs('Compose_2'),1)),0,sub(length(first(skip(outputs('Compose_2'),1))),4))

 

Function used in Compose4:

substring(first(skip(outputs('Compose_2'),2)),0,sub(length(first(skip(outputs('Compose_2'),2))),4))

 

Function used in Compose5 will return value dynamically, if there is a text at this position, it will return the corresponding value, otherwise, it returns a null value.

 

The same configuration with other texts. You can modify Compose3 and Compose4 in the same way.

if(empty(first(skip(outputs('Compose_2'),3))),'',substring(first(skip(outputs('Compose_2'),3)),0,sub(length(first(skip(outputs('Compose_2'),3))),4)))

 

1.PNG

 

 

Best regards,

Mabel

 

Community Support Team _ Mabel Mao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
10 REPLIES 10
Super User
Super User

Re: Advanced expressions split string

@lreinhard7 

Hi there - Chasing down some ideas in my head: 

Is the actual separator used important to the Flow?  Meaning: Does your Flow care which separator is preceding the text, or just that there is a separator?  If the latter, I wonder if we could simplify the approach with something like a substitute command (I'd have to look up the odata equivalent).

 

If the actual separator does matter to the Flow (as opposed to the data), then I see having to have a bunch of conditions or filters.  Also, if you're down this path and the separators repeat in a block, I see things getting weird.

 

Another idea might be to parse it before moving onto the next action.

fcapel1023
Level: Powered On

Re: Advanced expressions split string

Hi @lreinhard7 

Let me piggyback on @edgonzales post above to see if we can tackle this together. You mentioned you know the following separators: "EREF+", "SVWZ+", "ABWE+", but do the other separators you don't know follow the same format of "XXX+"? I just ask because you also mentioned the text behind each separator is dynamic. If you can confirm the separators follow the format I mentioned before, that would be great.

 

Regards,

Fausto Capellan, Jr

lreinhard7
Level 8

Re: Advanced expressions split string

Hi,
The separators have always 4 letters that are followed by a + symbol. That is right.
Best regards
Ludwig
Super User
Super User

Re: Advanced expressions split string


@fcapel1023 wrote:

Hi @lreinhard7 

Let me piggyback on @edgonzales post above to see if we can tackle this together. You mentioned you know the following separators: "EREF+", "SVWZ+", "ABWE+", but do the other separators you don't know follow the same format of "XXX+"? I just ask because you also mentioned the text behind each separator is dynamic. If you can confirm the separators follow the format I mentioned before, that would be great.

 

Regards,

Fausto Capellan, Jr


I just realized I posted the above message under the wrong account. I hope I get the notifications for this post to my actual account. My apologies.





Did I answer your question? Mark my post as a solution!

Proud to be a Flownaut!


Super User
Super User

Re: Advanced expressions split string

Hi @lreinhard7  and thank you for the information. Let us come up with a solution and post back.

 

Regards,

Fausto Capellan, Jr





Did I answer your question? Mark my post as a solution!

Proud to be a Flownaut!


lreinhard7
Level 8

Re: Advanced expressions split string

Hi,

Here is another examle how such a text can look like

EREF+987654123497?21MREF+10023?22CRED+DE5
4ZZZ09999999999?23SVWZ+Versicherungsbeitrag 2
?24013?

Do you think that LUIS might help here?

Best regards,

Ludwig

Super User
Super User

Re: Advanced expressions split string

Hi @lreinhard7 

I built a Flow with a few actions in it to manipulate the strings to give you the desired outcome. It might not be exactly what you need, but it will definitely put you in the right path. I have attached a copy of the Flow in .zip format for you to import it in your tenant. Since it's manually triggered, there are no dependencies when you import it. Also, each action is named accordingly and they all have comments explaining what they do. Please check it out and let us know.

 

Regards,

Fausto Capellan, Jr





Did I answer your question? Mark my post as a solution!

Proud to be a Flownaut!


Highlighted
Community Support Team
Community Support Team

Re: Advanced expressions split string

Hi @lreinhard7 ,

 

If you want to get the text behind the separators dynamically, please check if the following flow will work for you.

 

Function used in Compose2:

split(outputs('Compose'),'+')

 

Function used in Compose3:

substring(first(skip(outputs('Compose_2'),1)),0,sub(length(first(skip(outputs('Compose_2'),1))),4))

 

Function used in Compose4:

substring(first(skip(outputs('Compose_2'),2)),0,sub(length(first(skip(outputs('Compose_2'),2))),4))

 

Function used in Compose5 will return value dynamically, if there is a text at this position, it will return the corresponding value, otherwise, it returns a null value.

 

The same configuration with other texts. You can modify Compose3 and Compose4 in the same way.

if(empty(first(skip(outputs('Compose_2'),3))),'',substring(first(skip(outputs('Compose_2'),3)),0,sub(length(first(skip(outputs('Compose_2'),3))),4)))

 

1.PNG

 

 

Best regards,

Mabel

 

Community Support Team _ Mabel Mao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
lreinhard7
Level 8

Re: Advanced expressions split string

Many thanks for all of your feedback! Very much appreciated.

I will be travelling the next days but try to test all this and come back to verify answers assuming that everything works fine.

If I still got stock, I will continue bothering you here :-)

Regards,

Ludwig

lreinhard7
Level 8

Re: Advanced expressions split string

Thank you Fausto and Mabel, You guided me into the correct direction. Now things work. There are a couple of lengthy conversions but at the end of the day things run fast and give me expected result. Thanks for the help! Best regards, Ludwig

>