The Infor Communities is globally accessed system by Infor and its customers, please do not post or upload any content that could be deemed as sensitive, confidential or subject to any data regulation requirements. If you are unsure whether or not the content contains sensitive, confidential or has any data regulation requirements, please seek the advice of your internal security, legal, and compliance experts.

ION data flow

FSM to EAM Integration issue :

The BOD has this string  "<ID accountingEntity="MH25@@1001">1001@@787</ID>"

which I would like to capture and modify to " <ID accountingEntity="MH25@@1001">787</ID>" before it gets to EAM.

Help is needed on how to modify the data flow and create a transformation step that will update the BOD and remove the 1001@@ from the store code before it gets to EAM.

Thanks

  • Hi there,

    1) create a mapping in ION Desk

    - choose graphical mapping

    - choose your  source noun; target noun is the same

    - go in XSLT editor, delete all the basic code. Answer "yes" to the question "Manual change in the code". 

    - write the following code, something like this:

    <xsl:stylesheet version="2.0" xmlns:xsl="">www.w3.org/.../Transform">


    <xsl:output method="xml" encoding="utf-8" indent="yes"/>

    <xsl:variable name="id" select="SyncMyNoun/ApplicationArea/ID" />
    <xsl:variable name="ae" select="SyncMyNoun/ApplicationArea/ID[@accountingEntity]" />

    <!-- Identity template : copy all text nodes, elements and attributes -->
    <xsl:template match="@*|node()">
    <xsl:copy>
    <xsl:apply-templates select="@*|node()" />
    </xsl:copy>
    </xsl:template>

    <!-- When matching ID, change value -->
    <xsl:template match="ID">
    <ID>
    <xsl:attribute name="accountingEntity">
    <xsl:value-of select="$ae" />
    </xsl:attribute>
    <xsl:value-of select="substring-after($id,'@@')" />
    </ID>
    </xsl:template>

    </xsl:stylesheet>

    --> replace the noun with the one you are using... and the Xpath of <ID> tag if necessary

    2) save & approve your mapping

    3) Add a mapping step between "CSFSM out" and "EAM in" connection points

    4) Test

  • Maxime, thank you for now. Most likely will have more questions

  • Regarding this statement: "--> replace the noun with the one you are using... and the Xpath of <ID> tag if necessary"

    1. For the Xpath, how do I get it? An example of the <ID> tag string would be helpful for line item 15.

    Super thanks

  • Your BOD seems to be ItemMaster. So XPath for <ID> is:

    SyncItemMaster/DataArea/ItemMaster/ItemMasterHeader/ItemID/ID

  • I get a validation failed for approve

    see code below

    <xsl:stylesheet version="2.0" xmlns:xsl="">www.w3.org/.../Transform">

    <xsl:output method="xml" encoding="utf-8" indent="yes"/>
    <xsl:variable name="id" select="SyncMyNoun/ApplicationArea/ID" />
    <xsl:variable name="ae" select="SyncMyNoun/ApplicationArea/ID[@accountingEntity]" />

    <!-- Identity template : copy all text nodes, elements and attributes -->
    <xsl:template match="@*|node()">
    <xsl:copy>
    <xsl:apply-templates select="@*|node()" />
    </xsl:copy>
    </xsl:template>
    <!-- When matching ID, change value -->
    <xsl:template match="SyncItemMaster/DataArea/ItemMaster/ItemMasterHeader/ItemID/ID">
    <ID "SyncItemMaster/DataArea/ItemMaster/ItemMasterHeader/ItemID/ID">
    <xsl:attribute name="accountingEntity">
    <xsl:value-of select="$ae" />
    </xsl:attribute>
    <xsl:value-of select="substring-after($id,'@@')" />
    </ID>
    </xsl:template>
    </xsl:stylesheet>

    Any ideas!

  • Watch out, this website is changing the content of the first line (put http at the beginning of thr URL).

    <xsl:stylesheet version="2.0" xmlns:xsl="h..p://www.w3.org/1999/XSL/Transform">

    Read again the original code on tag <ID>. You did add an attribute value and you should not.