nadir Posted March 19 Posted March 19 In iWay integration tool (8.0.6), is it possible de call for a regex backreference within an _xpath function call ? For instance: _regex(_sreg('SupannEmpProfil',''),'\\[affect=([0-9A-Z]+)\\]', _concat('\\[affect=',_xpath(//domaine/donnees/operation/personne/rattachements/rattachement/roles/role/personneRessource/affectations/affectation[identifiantStructureInterne=$1]/referenceCroisee/identifiantsExternes[identifiantApplication='SINAPS_OPI']/identifiantExterne),'\\]')) I found that the back reference is accessible with $1. It works fine outside the xpath. For instance regex(_sreg('SupannEmpProfil',''),'\\[affect=([0-9A-Z]+)\\]',$1) works. It works also with a _concat function. In this way, _regex(_sreg('SupannEmpProfil',''),'\\[affect=([0-9A-Z]+)\\]',_concat('\\[affect=',_eval(_concat('_xpath(//domaine/donnees/operation/personne/rattachements/rattachement/roles/role/personneRessource/affectations/affectation[identifiantStructureInterne=\'',$1,'\']/referenceCroisee/identifiantsExternes[identifiantApplication=\'SINAPS_OPI\']/identifiantExterne)')),'\\]')) It doesn't work as well event if the xpath request is well constructed. the result is: [affect=] An example for the attribute SupannEmpProfil: [etab={UAI}XXXT][affil=staff][corps={NCORPS}XXX][typeaffect={SUPANN}SXXX][affect=DNU3G][activite=][datefin=]|[etab={UAI}XXXX][affil=staff][corps={NCORPS}XXX][typeaffect={SUPANN}XXXX][affect=DNU][activite=][datefin=] Thanks by advance for any help Best regards
Walter Zublionis Posted March 19 Posted March 19 Hello, When calling multiple IFL (iWay Functional Language) functions it is best practivce to use _concat(). Try removing the multiple _concat() calls. Instead use the IFL you are concatinating in separate special registers then use a single _concat with the defined special registers i.e. _concat(_sreg(myregex),_sreg(myaffact), _sreg(myxpath),_sreg(mybackref)...) Note: _concat - Concatenate any number of items. Operators are not evaluated. Hope this helps. Regards,
nadir Posted March 20 Author Posted March 20 (edited) Hi, Thanks a lot for your answer. Actually i don't kown how to put the backreference as a special register, as it works only within the regexp. Within the _concat $1 is well interpreted, problem is within the _xpath. Also the xpath request is based on the backreference so i don't if it is possible to set it in the register before calling the _regexp. Using something close to one _concat is contructing the text of the whole _xpath call and then using _eval but even if the request is well construted, the _eval doen't execute the _xpath. So actually i don't know how the _eval function really work. Anyway thanks again for your help Best regards Edited March 20 by nadir
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now