MQL Query-Based Rules

With an MQL Query-based rule, the Synchronization Server synchronizes the files of business objects selected by an MQL request.

The MQL request is expressed by a set of XML nodes inside the definition of a daily, weekly, monthly, and delay synchronization rule. The semantics of the XML node expressing the MQL query is detailed below.

Here is an example of an MQL Query-based rule:

<syncrule name="DailyQueryRule">
   <store>plmx</store> 
   <source>LocalFCS</source> 
   <dest>plmx</dest> 
   <daily> 
      <synctime>13:11</synctime> <!-- Synchronizes every day at 13:11--> 
   </daily> 
   <query lang="mql" vault="vplm"> 
      <predicate type="PLMRepresentationDS"> 
         <and>
            <attribute name="owner" value="VPLMODTFCSUser" operator="="/>
            <attribute name="attribute[PLMEntity.PLM_ExternalID]" operator="~=" /> 
         </and> 
      </predicate> 
   </query> 
</syncrule>

The SyncServer translates the query part of this synchronization rule into an MQL request:

temp query bus PLMRepresentationDS * * vault vplm where "owner=='VPLMODTFCSUser' AND 
attribute[PLMEntity.PLM_ExternalID]~='*IMPORTX1'" orderby physicalid size 1000;

This synchronization rule is triggered every day at 13:11. It synchronizes all files belonging to business objects of type PLMRepresentationDS having an owner attribute set to VPLMODTFCSUser and having a PLM_ExternalID attribute matching the pattern "*IMPORTX1".

The type attribute in the predicate element is the name of a PLM class. The MQL request result is business objects of this type/class only.

The supported relational operators are:

  • == equal
  • != different
  • > greater than
  • >= greater than or equal
  • < less than
  • <= less than or equal
  • ~= string pattern-matching operator

Attributes used in <attribute/> nodes are PLM attribute names.