Non-XML Files

To send non-XML files through PeopleSoft Integration Broker to their destination, you must wrap them in the PeopleSoft non-XML message element, CDATA. However, when you send messages to third-party systems, the recipient systems may not be able to interpret that element.

The Message class features a method, SetXMLDoc, that you can use to remove the tags upon execution of the method. Another alternative to removing the tags is to write a transformation to do so. If you do not use either option, the data remains in the wrapper through to the destination.

The following code example shows a non-XML file wrapped in the PeopleSoft non-XML message element, PsNonXmL, for transport through PeopleSoft Integration Broker:

Note:

The element PsNonXml is not case-sensitive.

<?xml version="1.0"?>
<AsyncRequest>
  <data PsNonXml="Yes">
    <![CDATA[<?xml version="1.0"?>101 123456789 
    12345678902 0510145 60094101First Bank First Bank 5200 University 
    000001 PPDDIRECT PAY020510020510000112345678000000162200000111 222
    0000001000USA0000001 USA0000001 0000001110000001627123456
    789131415511 0000001000 University 0123456780000
    002 82000000020012345789000000001000000000001000 123456780000001
    90000010000010000000200123457890000000010000000000010009999999999
    99999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999999999999
   ]]>
    </data>
</AsyncRequest>

The following example shows an alternative way to wrap a non-XML file in the PeopleSoft non-XML message element for transport through PeopleSoft Integration Broker:

<?xml version="1.0"?>
<AsyncRequest PsNonXml = ’Yes’>
<![CDATA[<?xml version="1.0"?>101 123456789 12345678902
0510145 60094101First Bank First Bank 5200 University 000001 PPDDIRECT 
PAY020510020510000112345678000000162200000111 222
0000001000USA0000001 USA0000001 0000001110000001627123456
789131415511 0000001000 University 0123456780000
002 82000000020012345789000000001000000000001000 123456780000001
900000100000100000002001234578900000000100000000000100099999999999999999
999999999999999999999999999999999999999999999999999999999999999999999999
999999999999999999999999999999999999999999999999999999999999999999999999
999999999999999999999999999999999999999999999999999999999999999999999999
999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999
]]>
</AsyncRequest>

The following example shows using the SetXMLDoc method to remove the PsNonXML wrapper from a message:

// create xmldoc with PSNonXml tag and load it into the message 

// create an instance of the Message object  
&MSG = CreateMessage(OPERATION.QE_F18_ASYNC_XMLDOC);

// Load the Message object via the SetXmlDoc method with the xmldoc data. 
// This will also remove the PSNonXml wrapper
&MSG.SetXmlDoc(&XmlDoc); 

// perform a publish for the nonrowset-based message
%IntBroker.Publish(&MSG);

As stated previously in this section, if you do not use the SetXMLDoc method to remove the PsNonXml wrapper, you must write a transformation to physically remove the tags.