Clarity

Expand all | Collapse all

How can I restrict sub-object instances from an Application XOG read file?

  • 1.  How can I restrict sub-object instances from an Application XOG read file?

    Posted 06-01-2015 09:03 AM

    I am trying to XOG out about 800 applications from one system to import into another. 

    I want to retain the CustomInformation section so I have the <args name="include_custom" value="true"/> in my header.

    However, there are several subobjects attached to the application object and it's including all of the instances of those subobjects. 

     

    I will eventually XOG in those instances, but I want to exclude them from the initial application XOG because including the instances is causing the output file to be huge and I am also noticing issues where if there is a lot of data returned, it stops including the CustomInformation section toward the last several applications in the file.

     

    The issue is that the instances are hanging off the CustomInformation section, and I don't see a way to tell it to not include the instances but retain the CustomInformation.



  • 2.  Re: How can I restrict sub-object instances from an Application XOG read file?

    Posted 06-01-2015 04:42 PM

    Sounds like you were trying to read the application object and the instances with the same input file.

    Use the content pack to read the object definitions, something like

    <?xml version="1.0" encoding="UTF-8"?>

    <NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_read.xsd">

      <Header version="8.0" action="read" objectType="contentPack" externalSource="NIKU">

        <!-- the contentType is used to determine which filter goes where -->

        <args contentType="job_definition" name="order_by_1" value="code"/>

        <args contentType="menu" name="order_by_1" value="code"/>

        <args contentType="view" name="order_by_1" value="code"/>

        <args contentType="process" name="order_by_1" value="code"/>

        <args contentType="object" name="order_by_1" value="code"/>

      </Header>

      <ObjectQuery>

        <Filter name="object_code" criteria="EQUALS">application</Filter>

      </ObjectQuery>

    </NikuDataBus>

     

    and

    inv_applications_read.xml

    to read the application instances.

    Using a between operator for the ID's allows you to read the instances in batches.

     

    Like

    <Filter name="objectID" criteria="BETWEEN">a,b</Filter>



  • 3.  Re: How can I restrict sub-object instances from an Application XOG read file?

    Posted 06-04-2015 05:31 PM

    First of all, I am not a fan of XOGging out large number of instances at once, especially objects like projects or applications were the individual size could be larger. 

     

    With that said, I woudl recommend that you start by splitting up the XOG into 4 or more XOG reads. This will allow you to receive all the data in the XOG write files.

     

    I would then use an XSLT client and remove all instances of the subobject from the XOG write.  I use Saxon for XSLT.

     

    Your XSLT template would be

     

        <xsl:template match="Application/CustomInformation/instance"/>

     

    This would remove all the sub-object instances of all applications in the XOG file.