Skip to Content

Pass through interface (without mapping) using a partial value from a field as filename

Hi Gurus,

I have a bit of a complex requirement :)

We have a pass through interface from a SAP system to a 3rd party system. The connection used is SOAP to PI to SFTP.

I need to fetch a value from a target field. The problem is I only need a part of the value. Sample value: AAA:BBB:CCC:DDD:EEE:Value. If DynamicConfiguration is used, I can use splitByIndex and use : and 5 as 2nd and 3rd parameters for the mapping. Problem is I cannot use DynamicConfiguration since we cannot use mappings. Is this at all possible using variable substitution?

If variable substitution is used, I can only get the whole value of the field. Or is there a way in variable substitution to cut the value from the field? Or is there any adapter module I can use?

Or can I use XSLT in the operation mapping?

By the way we cannot use message mappings since there are additional nodes sent by the SAP system that are not in the schema of PI.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Dec 15, 2016 at 07:49 AM

    Hi SAPenthusiast!

    Yes, you can use XSLT mapping, but I guess in this case you need ESR objects, such as interfaces and message types. Do you have it?

    Another option is to use XSL transformation with MessageTransformBean.

    Regards, Evgeniy.

    Add comment
    10|10000 characters needed characters exceeded

    • Hi again Evgeniy :)

      Do you have an idea if we can use xslt to set the filename? I'm not familiar with this yet.

      As for MessageTransformBean, I also need to do an xsl mapping?

      So there's no way to do my requirement without the use of xsl or java mapping?


  • Dec 15, 2016 at 08:17 AM

    So the XSLT can set the filename using the partial value from the field? Yes, we have the interfaces set already. So we just need the Operation mapping, interfaces and xslt program?

    Thank Sir Evgeniy :)

    Add comment
    10|10000 characters needed characters exceeded