Function Wizard ReplaceStr()
I am trying to replace OBX.2 value of ED to PDF
Here is what I have in the funcion wizard
..ReplaceStr(source.{OBRgrp().OBXgrp().OBX():ValueType},"ED","PDF")
Inbound Message
OBX|5|ED|PDFReport^PDFReport||PDF^Image^PDF^Base64^JVBERi0xLjMNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL1BhZ2VzIDQgMCBSDQovT3V0bGluZXMgMiAwIFI
Desired Outbound Message
OBX|5|PDF|PDFReport^PDFReport||PDF^Image^PDF^Base64^JVBERi0xLjMNCjEgMCBvYmoNCjw8DQovVHlwZSAvQ2F0YWxvZw0KL1BhZ2VzIDQgMCBSDQovT3V0bGluZXMgMiAwIFI
Product version: IRIS 2022.3
Discussion (1)0
Comments
I'm afraid you cannot use the syntax shortcut () within a StrReplace function.
You can use the () syntax to assign a constant string to ALL the repeating fields, like:
<assignvalue='"PDF"'property='target.{PIDgrpgrp().ORCgrp().OBXgrp().OBX:ValueType}'action='set' />In your case you need to iterate in each of the 3 repeating segments using foreach actions, like:
<foreachproperty='source.{PIDgrpgrp()}'key='k1' ><foreachproperty='source.{PIDgrpgrp(k1).ORCgrp()}'key='k2' ><foreachproperty='source.{PIDgrpgrp(k1).ORCgrp(k2).OBXgrp()}'key='k3' ><assignvalue='..ReplaceStr(source.{PIDgrpgrp(k1).ORCgrp(k2).OBXgrp(k3).OBX:ValueType},"ED","PDF")'property='target.{PIDgrpgrp(k1).ORCgrp(k2).OBXgrp(k3).OBX:ValueType}'action='set' /></foreach></foreach></foreach>Enrico