Liquid Studio 2020
Data Mapping / Data Mapper Functions / By Category / Maths / Multiply
In This Topic
    Multiply
    In This Topic

    Function Name
    Multiply
    Category
    Maths
    Icon
    Multiply
    Description
    Multiply two numeric values
    Inputs
    Value 1 First value to multiply
    Value 2 Second value to multiply
    Outputs
    Result Result of multiplying value 1 and value 2
    Properties
    None -

    Usage

    The Data Mapper Maths Multiply function allows you to carry out multiplication on input values. You can use the Multiply function with input source data or in conjunction with other arithmetic functions in the Maths section. To apply the Maths Multiply function, use the following process:

    Create a new Data Mapper file, dragging your XML data source and targets into the editor area. For this example we are using payroll_source.xsd, an XML Schema Definition inferred from the following source:

    Source XML
    Copy Code
    <payroll>
     <employee payroll_id="126">
      <rate>9.45</rate>
      <hours>35</hours>
      <bonus>50.00</bonus>
      <funding>350</funding>
     </employee>
     <employee payroll_id="129">
      <rate>10.50</rate>
      <hours>40</hours>
      <bonus>150.00</bonus>
      <funding>500</funding>
     </employee>
     <employee payroll_id="130">
      <rate>8.90</rate>
      <hours>35</hours>
      <bonus>100.00</bonus>
      <funding>400</funding>
     </employee>
     <employee payroll_id="133">
      <rate>11.20</rate>
      <hours>40</hours>
      <bonus>200.00</bonus>
      <funding>600</funding>
     </employee>
    </payroll>
    

    For our target schema we will be using payroll_target.xsd, inferred from the following XML:

    Target XML
    Copy Code
    <wages>
     <payee>
      <ref>122</ref>
      <result type="wage">500.50</result>
     </payee>
     <payee>
      <ref>125</ref>
      <result type="wage">475.40</result>
     </payee>
     <payee>
      <ref>126</ref>
      <result type="wage">600.80</result>
     </payee>
    </wages>
    

    The data models payroll data for temporary staff within an organisation. The output is designed to capture some value calculated from the source, using the "type" attribute to indicate what the calculation result represents. Let's assume that we want to calculate the basic weekly wage for each staff member, not including their bonus. To calculate this we will need to multiply the hourly rate by the number of hours worked. Here is the Data Mapper with Source and Target imported:

    Data Mapper Source and Target

    Drag the Maths Multiply function from the Component Palette into the mapping area:

    Multiply Component

    Multiply Added

    The Multiply component has two inputs, representing the values to multiply. Both inputs and output of the Multiply function may be connected to items in the XML Reader/ Writer or other components in the Mapper.

    Connect the Multiply inputs to the "rate" and "hours" outputs in the XML Reader.

    Reader to Multiply

    Now connect the Multiply output to the Element Value input in the XML Writer, so that the multiplication result is written into the "result" element.

    Multiply Mapped

    Now we need to include the "type" attribute in the source, so add a Constant Value from the Data Type section. Right-click it and choose Show Properties. Choose a String Data Type and enter "wage" as the value.

    Constant Properties

    Connect the Constant output to the "type" input in the XML Writer.

    Constant Added

    Finally let's make the remaining input and output connections. We do not want to map all data items in the source, as we are only interested in certain values. Map "payroll" to "wages", "employee" to "payee" and "payroll_id" to "ref". We don't need to map anything to the "result" element as it will be written out each time the Mapper maps the multiplication result to it.

    Inputs and Outputs Connected

    We can now execute the transform by pressing Shift-F5 or the Execute button (Execute). The transform is applied and the file we selected as output opens in the editor:

    Output XML
    Copy Code
    <wages>
     <payee>
      <ref>126</ref>
      <result type="wage">330.75</result>
     </payee>
     <payee>
      <ref>129</ref>
      <result type="wage">420.00</result>
     </payee>
     <payee>
      <ref>130</ref>
      <result type="wage">311.50</result>
     </payee>
     <payee>
      <ref>133</ref>
      <result type="wage">448.00</result>
     </payee>
    </wages>
    

    The output contains an indicator of the weekly wage for each employee, comprising the result of the multiplication.

    This is a scalar function so the standard rules apply if multiple values are presented to one or more inputs.

    See Also