Defining a custom noun

You can add the metadata for your own nouns to the Data Catalog.

Customer-defined nouns do not have to fully, adopt all practices as used in standard nouns, such as the way object IDs or references are formatted. They must meet these conditions:

  • The noun content is in XML.
  • The noun has an identifying attribute.
  • The noun's envelope is a BOD.

Nouns are described by XML Schema (XSD) files. The Infor-delivered nouns are the officially published schemas. Customers can create their own XMLSchema for their nouns.

The name of a custom noun must be unique compared to the standard noun names that are already uploaded in the Data Catalog. We recommend that you always precede Custom nouns with "My. " For example, MyMaterialRelease or MyShippingSchedule. Using "My "avoids naming conflicts with standard Infor nouns.

The name of a custom noun may contain:

  • Any standard letter in any language
  • Numbers 0-9
  • Underscore

To add a custom noun to the Data Catalog, you must prepare an archive file containing the metadata. You can upload several custom nouns in one archive simultaneously. For each custom noun, a noun data-set that is composed of two files must be present and must contain the noun name in the title:

  • <nounname>.xml
  • <nounname>.xsd

These additional validations are performed on the archive file upon import by ION Desk:

  • The archive may only contain valid XSD and valid XML files.
  • The noun name of the XSD file must be the same as the noun name that is used inside the XSD file.
  • The custom noun definition may only be defined in one XSD file.
  • The XML files that defined the metadata of the custom noun must refer to this namespace:

    xmlns= “http://schema.infor.com/InforOAGIS/2”

Upon upload of a custom noun, ION Desk assigns this noun a patch number, depending on the first available number for the current tenant. When the same custom noun is uploaded again, the patch number increases. ION Desk does not compare the noun definition contents of the new noun and the noun that already exists in the Data Catalog.

To create the metadata for a custom noun:

  1. Define the custom noun schema file (XSD) and verify that this is a valid schema. Save this file with the name <nounname>.xsd.
    Complete these steps:
    1. Copy the XMLSchema text below into a file with the name of your noun with a “.xsd” extension. For example: MyMaterial.xsd.
      <?xml version="1.0" encoding="utf-8"?>
      <xs:schema targetNamespace="http://schema.infor.com/InforOAGIS/2" xmlns="http://schema.infor.com/InforOAGIS/2" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0">
         <xs:element name="MySampleDocument" type="MySampleDocumentType"/>
         <xs:complexType name="MySampleDocumentType">
            <xs:sequence>
               <xs:element name="SampleHeader" type="SampleHeaderType" minOccurs="1"/>
               <xs:element name="SampleLine" type="SampleLineType"  minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
         </xs:complexType>
         <xs:complexType name="SampleHeaderType">
            <xs:sequence>
               <xs:element name="DocumentID" type="xs:normalizedString" minOccurs="0"/>
               <xs:element name="DocumentDateTime" type="xs:dateTime" minOccurs="0"/>
               <xs:element name="Status" type="xs:string" minOccurs="0"/>
               <xs:element name="Description" type="xs:string" minOccurs="0"/>
               <xs:element name="ShipmentID" type="xs:normalizedString" minOccurs="0"/>
               <xs:element name="IsActive" type="xs:boolean" minOccurs="0"/>
             </xs:sequence>
         </xs:complexType>
         <xs:complexType name="SampleLineType">
            <xs:sequence>
               <xs:element name="LineNumber" type="xs:integer"/>
               <xs:element name="Amount" type="xs:decimal" minOccurs="0"/>
               <xs:element name="Note" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
      </xs:schema>
    2. Open the file in an editor and replace all occurrences of "MySampleDocument " with "MyMaterial".
    3. Adapt the file as required to define the attributes of the custom noun. Do not refer to XSD files from the Standard folder.
  2. Define the custom noun metadata properties file with the name <nounname>.xml. Create a file named [NounName].xml. For example, if your custom noun is called MyMaterial, the file must be named MyMaterial.xml.
    In this file, add an entry to specify this information:
    • The identifier for the custom noun
    • Verbs that are supported
    • The relation it has with other nouns

    Note the ‘IDXPath’ is mandatory, you can leave the ‘Relation’ element empty if there is no other noun to reference.

    For example:
    <?xml version="1.0" encoding="utf-8"?>
    <NounMetadata xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schema.infor.com/InforOAGIS/2">
       <Noun>
          <NounName>MySampleDocument</NounName>
          <NounType>Transactional</NounType>
          <IDXPath>/*/DataArea/MySampleDocument/SampleHeader/DocumentID</IDXPath>
          <DescriptionXPath>/*/DataArea/MySampleDocument/SampleHeader/Description</DescriptionXPath>
          <StatusXPath>/*/DataArea/MySampleDocument/SampleHeader/Status</StatusXPath>
    <DocumentDateTimeXPath>/*/DataArea/MySampleDocument/SampleHeader/DocumentDateTime</DocumentDateTimeXPath>
          <SupportedVerbs>
              <SupportedVerb>Acknowledge</SupportedVerb>
              <SupportedVerb>Process</SupportedVerb>
              <SupportedVerb>Sync</SupportedVerb>
          </SupportedVerbs>
       </Noun>
       <Relation type="Transactional">
          <ToNoun>Shipment</ToNoun>
          <Priority>10</Priority>
          <RelationLabel>My sample document linked to shipment</RelationLabel>
          <RelationPaths>
              <FromNounPath>/*/DataArea/MySampleDocument/SampleHeader/ShipmentID</FromNounPath>
              <ToNounPath>/*/DataArea/Shipment/ShipmentHeader/DocumentID[1]/ID</ToNounPath>
          </RelationPaths>
       </Relation>
    </NounMetadata>
  3. Create a folder for each custom noun and place corresponding xsd schema file and xml file underneath it. The folder name must match the noun name.
  4. Gather the custom noun metadata files into one archive file and import this archive into ION Desk. For information about importing custom nouns into ION Desk, see the Infor ION Desk User Guide.
After the custom noun is uploaded to the Data Catalog, it is visible to all users of the current tenant. You can perform these actions using this custom noun:
  • Select the application object in a connection point.
  • Select the attributes of the object in a filter or content-based routing in an object flow.
  • Select the application object and its attributes in a workflow activation policy.
  • Select the application object, its references, and its attributes in a monitor.
Important notes:

When using namespaces in your XSDs, the local element name must be unique at any level in a BOD. Two elements having the same name but a different namespace must not exist within the same parent element. So, for example, this object is not supported:

<Customer>
  <Address xmlns="namespace1">
    …
  </Address>
  <Address xmlns="namespace2">
    …
  </Address>
</Customer>

When a sequence number is used to track changes on the business object, that number should be defined as the VariationXPath in the noun metadata properties file. For example:

<Noun>
      <NounName>MySampleDocument</NounName>
      <NounType>Transactional</NounType>
      <IDXPath>/*/DataArea/MySampleDocument/SampleHeader/DocumentID</IDXPath>
      <VariationXPath>/*/DataArea/MySampleDocument/SampleHeader/VariationID</VariationXPath>
      <SupportedVerbs>
          <SupportedVerb>Acknowledge</SupportedVerb>
          <SupportedVerb>Process</SupportedVerb>
          <SupportedVerb>Sync</SupportedVerb>
      </SupportedVerbs>
</Noun>