Quintiq file version 2.0
Component CustomDrawRC
{
  #keys: '[139394.0.1274469910]'
  BaseType: 'WebCustomDraw'
  Children:
  [
    #child: customdrawContextMenuRC
    Component CustomDrawDataLayerRC
    {
      #keys: '[139394.0.1274470045]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorRC
        {
          #keys: '[139394.0.1274470046]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
          ]
        }
      ]
      Properties:
      [
        AutoDrawHighlighting: 'none'
        AutoDrawSelection: 'none'
        ContextMenu: 'customdrawContextMenuRC'
        Taborder: 6
      ]
    }
    Component CustomDrawDataLayerRS
    {
      #keys: '[139394.0.1276708762]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorRS
        {
          #keys: '[139394.0.1276708763]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'RoutingStep'
          ]
        }
        Component UserConfigurableInformationRS
        {
          #keys: '[139394.0.1282166082]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'RoutingStep'
            Taborder: 1
            Tooltip: '<table><tr><td><b>Routing step</b></td><td>VALUE( object.Name())</td></tr></table><hr><table><tr>Drop a <b>unit from the navigation panel</b> here to add the unit as an operation on the routing step</tr></table>'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuRoutingStep'
        Taborder: 7
      ]
    }
    Component CustomDrawDataLayerOp
    {
      #keys: '[139394.0.1282171555]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOp
        {
          #keys: '[139394.0.1282171556]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'RoutingStep.Operation'
          ]
        }
        Component UserConfigurableInformationOp
        {
          #keys: '[139394.0.1282171691]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'Operation'
            Taborder: 1
            Text: 'VALUE( object.Unit().Name() ) VALUE(ifexpr(object.Unit().CapacityType() ~ \'Time\', \'(\'+object.Throughput().Format("N(Dec(2))")+\' \'+object.Unit().UnitOfMeasureName()+\'/Hour\'+\')\', \' \'))'
            Tooltip: '<table><tr><td><b>Operation by</b></td><td>VALUE( object.Unit().Name() )</td></tr></table><hr><table><tr><td><b>Throughput</b></td><td>VALUE(ifexpr(object.Unit().CapacityType() ~ \'Time\', object.Throughput().Format("N(Dec(2))")+\' \'+object.Unit().UnitOfMeasureName()+\'/Hour\', \'-\'))</td><td><b>Lead time</b></td><td>VALUE(object.LeadTime())</td></tr><tr><td><b>VALUE(object.GetDisplayAccount())</b></td><td>VALUE(object.GetDisplayCost())</td></tr></table><hr><table><tr>Drop a <b>product</b> here to create a new input</tr><tr>Drop this <b>operation</b> on a product to create a new output</tr><tr>Drop this <b>operation</b> on an operation to create a link between the operations</tr><tr>Drop this <b>operation</b> on a routing step to change the assigned routing step</tr></table>'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOp'
        Taborder: 10
      ]
    }
    Component CustomDrawDataLayerInputGroupGrouping
    {
      #keys: '[139394.0.1283366448]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorInputGroupGrouping
        {
          #keys: '[139394.0.1283366449]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'RoutingStep.OperationInput.OperationInputGroup'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOpInputOutputPISP'
        Taborder: 8
      ]
    }
    Component CustomDrawDataLayerPISPInputNodeInRouting
    {
      #keys: '[139394.0.1283361994]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorPISPInputNodeInRouting
        {
          #keys: '[139394.0.1283361995]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'OperationInput.OperationInputPISPNode'
          ]
        }
        Component UserConfigurableInformationPISPInputNodeInRouting
        {
          #keys: '[139394.0.1283355963]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'OperationInputPISPNode'
            Taborder: 1
            Tooltip: '<table><tr><td><b>Product in stocking point</b></td><td>VALUE( ifexpr( object.PISPNodeInRouting().IsFloating(), object.PISPNodeInRouting().ProductInStockingPoint_MP().Product_MP().Name(), object.PISPNodeInRouting().ProductInStockingPoint_MP().Name() ) )</td></tr></table><hr><table><tr>Drop this <b>product</b> on an operation to add as input of the operation</tr><tr>Drop an <b>operation</b> here to add this product as output of the operation</tr><tr>Drop a <b>product from the navigation panel</b> here to change the product</tr><tr>Drop a <b>stocking point from the navigation panel</b> here to change the stocking point</tr> </table>'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOpInputOutputPISP'
        Taborder: 9
      ]
    }
    Component CustomDrawDataLayerBlendingOperation
    {
      #keys: '[139394.0.1283380409]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component UserConfigurableInformationBlending
        {
          #keys: '[139394.0.1283380411]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'Operation'
            Taborder: 1
            Tooltip: "<table><tr>Blending operation</tr></table><hr><table><tr><td>Input products</td><td>VALUE( selectvalues( object, OperationInputGroup.OperationInput.ProductInStockingPoint_MP.Product_MP, p, p.HasRecipe(), p.Name() ).Concatenate( ', ' ) )</td><tr></tr><td>Output products</td><td>VALUE(guard( select( object, OperationOutput.ProductInStockingPoint_MP.Product_MP , p, p.HasRecipe(), true ).Name(), '<product name>' ))</td></tr></table>"
          ]
        }
        Component DataExtractorOpBlend
        {
          #keys: '[139276.1.713440273]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'RoutingStep.Operation'
          ]
        }
      ]
      Properties:
      [
        Taborder: 11
      ]
    }
    Component CustomDrawDataLayerOperationInputGroup
    {
      #keys: '[139394.0.1283393003]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOperationInputGroup
        {
          #keys: '[139394.0.1283393004]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'RoutingStep.OperationInput.OperationInputGroup'
          ]
        }
        Component UserConfigurableInformationOperationInputGroup
        {
          #keys: '[139394.0.1283392348]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'OperationInputGroup'
            Taborder: 1
            Text: 'VALUE( object.InputGroupQuantity()  ) VALUE(object.UnitOfMeasureName())'
            Tooltip: "<table><tr><td><b>Input group</b></td></tr><tr><td><b>Quantity</b></td><td>VALUE(object.InputGroupQuantity() ) VALUE( ' ' + object.UnitOfMeasureName())</td></tr></table><hr><table><tr>Drop an <b>input of this operation</b> here to merge in this input group</tr><tr>Drop a <b>product</b> here to merge in this input group</tr></table>"
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOpInputOutputPISP'
        Taborder: 12
      ]
    }
    Component CustomDrawDataLayerOperationInput
    {
      #keys: '[139394.0.1283387096]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOperationInput
        {
          #keys: '[139394.0.1283387097]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'RoutingStep.OperationInput'
          ]
        }
        Component UserConfigurableInformationOperationInput
        {
          #keys: '[139394.0.1283387098]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'OperationInput'
            Taborder: 1
            Text: 'VALUE( object.Quantity()  ) VALUE(object.PISPUnitOfMeasurement().Name())'
            Tooltip: "<table><tr><td><b>Input from</b></td><td>VALUE(ifexpr(object.ProductInStockingPoint_MP().IsSystem(),object.BaseOperationLink().OperationOutput().Operation().Name(), object.Name()))</td><td></td><td></td></tr><tr><td><b>Quantity</b></td><td>VALUE(object.Quantity()) VALUE( ' ' + object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name())</td></tr></table><hr><table><tr>Drop a <b>product</b> here to merge into a input group</tr><tr>Drop an <b>input of this operation</b> here to merge into a input group</tr></table>"
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOpInputOutputPISP'
        Taborder: 13
      ]
    }
    Component CustomDrawDataLayerOperationOutput
    {
      #keys: '[139394.0.1290756940]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOperationOutput
        {
          #keys: '[139394.0.1290756941]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'RoutingStep.OperationOutput'
          ]
        }
        Component UserConfigurableInformationOperationOutput
        {
          #keys: '[139394.0.1290772095]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'OperationOutput'
            Taborder: 1
            Text: 'VALUE( object.Quantity()  ) VALUE(object.PISPUnitOfMeasurement().Name())'
            Tooltip: "<table><tr><td><b>Output</b></td><td>VALUE(object.Name())</td></tr><tr><td><b>Quantity</b></td><td>VALUE(object.Quantity() )VALUE( ' ' + object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name())</td></tr></table><hr><table><tr>Drop <b>this</b> on an operation to create a link to the operation</tr></table>"
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOpInputOutputPISP'
        Taborder: 14
      ]
    }
    Component CustomDrawDataLayerExcludedOperationInput
    {
      #keys: '[139394.0.1292638250]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component UserConfigurableInformationExcludedOperationInput
        {
          #keys: '[139394.0.1292648328]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'OperationInput'
            Taborder: 0
            Tooltip: 'Operation input or output is excluded from the utilization of unit.'
          ]
        }
        Component DataExtractorOperationInput743
        {
          #keys: '[139276.1.721133530]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 1
            Transformation: 'RoutingStep.OperationInput'
          ]
        }
      ]
      Properties:
      [
        Taborder: 15
      ]
    }
    Component CustomDrawDataLayerExcludedOperationOutput
    {
      #keys: '[139394.0.1292638851]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component UserConfigurableInformationExcludedOperationOutput
        {
          #keys: '[139394.0.1292649468]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'OperationOutput'
            Taborder: 0
            Tooltip: 'Operation input or output is excluded from the utilization of unit.'
          ]
        }
        Component DataExtractorOperationOutput642
        {
          #keys: '[139276.1.721133589]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 1
            Transformation: 'RoutingStep.OperationOutput'
          ]
        }
      ]
      Properties:
      [
        Taborder: 16
      ]
    }
    Component CustomDrawDataLayerOperationLinkEdge
    {
      #keys: '[139394.0.1292636138]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOperationLinkEdge
        {
          #keys: '[139394.0.1292636139]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'RoutingStep.Operation.SourceOperationLink.OperationLinkEdge'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOperationLink'
        Taborder: 17
      ]
    }
    Component CustomDrawDataLayerOperationInputEdge
    {
      #keys: '[139394.0.1302353904]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOperationInputEdge
        {
          #keys: '[139394.0.1302353905]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'PISPNodeInRouting.PISPOperationInputEdge'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOperationLink'
        Taborder: 18
      ]
    }
    Component CustomDrawDataLayerOperationOutputEdge
    {
      #keys: '[139394.0.1302356354]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOperationOutputEdge
        {
          #keys: '[139394.0.1302356355]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'PISPNodeInRouting.PISPOperationOutputEdge'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOperationLink'
        Taborder: 19
      ]
    }
    Component CustomDrawDataLayerOutputPISPNodeInRouting
    {
      #keys: '[139394.0.1306664908]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOutputPISPNodeInRouting
        {
          #keys: '[139394.0.1306664909]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'OperationOutput.OperationOutputPISPNode'
          ]
        }
        Component UserConfigurableInformationOutputPISPNodeInRouting
        {
          #keys: '[139394.0.1306666250]'
          BaseType: 'WebUserConfigurableInformation'
          Properties:
          [
            ObjectType: 'OperationOutputPISPNode'
            Taborder: 1
            Tooltip: '<table><tr><td><b>Product in stocking point</b></td><td>VALUE( ifexpr( object.PISPNodeInRouting().IsFloating(), object.PISPNodeInRouting().ProductInStockingPoint_MP().Product_MP().Name(), object.PISPNodeInRouting().ProductInStockingPoint_MP().Name() ) )</td></tr></table><hr><table><tr>Drop this <b>product</b> on an operation to add as input of the operation</tr><tr>Drop an <b>operation</b> here to add this product as output of the operation</tr><tr>Drop a <b>product from the navigation panel</b> here to change the product</tr><tr>Drop a <b>stockingpoint from the navigation panel</b> here to change the stockingpoint</tr> </table>'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOpInputOutputPISP'
        Taborder: 20
      ]
    }
    Component CustomDrawDataLayerOperationInputGroupEdge
    {
      #keys: '[139394.0.1306656146]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorOperationInputGroupEdge
        {
          #keys: '[139394.0.1306656147]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'Routing'
            Source: 'DataHolderRouting'
            Taborder: 0
            Transformation: 'OperationInput.OperationInputGroupEdge'
          ]
        }
      ]
      Properties:
      [
        ContextMenu: 'ContextMenuOperationLink'
        Taborder: 21
      ]
    }
    #child: ContextMenuOpInputOutputPISP_549
    #child: ContextMenuOp_593
    #child: ContextMenuOperationLink
    #child: ContextMenuRoutingStep
    Component CustomDrawDataLayerMacroPlan
    {
      #keys: '[139394.0.1649356437]'
      BaseType: 'WebCustomDrawDataLayer'
      Children:
      [
        Component DataExtractorMacroPlan
        {
          #keys: '[139394.0.1649356438]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
          ]
        }
      ]
      Properties:
      [
        AutoDrawHighlighting: 'none'
        AutoDrawSelection: 'none'
        ContextMenu: 'customdrawContextMenuRC'
        Taborder: 5
      ]
    }
  ]
  Properties:
  [
    Taborder: 1
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_CustomDrawRC_WebButton_OnClick
    {
      #keys: '[139394.0.2086142299]'
      Initiator: 'WebButton'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[6763.0.7984767]'
          Binding: 'this.Selection()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_CustomDrawRC_WebMenu_OnClick
    {
      #keys: '[139394.0.2086142300]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[6763.0.7984840]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
