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: '
| Routing step | VALUE( object.Name()) | 
Drop a unit from the navigation panel here to add the unit as an operation on the routing step
'
          ]
        }
      ]
      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: '| Operation by | VALUE( object.Unit().Name() ) | 
| Throughput | VALUE(ifexpr(object.Unit().CapacityType() ~ \'Time\', object.Throughput().Format("N(Dec(2))")+\' \'+object.Unit().UnitOfMeasureName()+\'/Hour\', \'-\')) | Lead time | VALUE(object.LeadTime()) | 
| VALUE(object.GetDisplayAccount()) | VALUE(object.GetDisplayCost()) | 
Drop a product here to create a new input
Drop this operation on a product to create a new output
Drop this operation on an operation to create a link between the operations
Drop this operation on a routing step to change the assigned routing step
'
          ]
        }
      ]
      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: '| Product in stocking point | VALUE( ifexpr( object.PISPNodeInRouting().IsFloating(), object.PISPNodeInRouting().ProductInStockingPoint_MP().Product_MP().Name(), object.PISPNodeInRouting().ProductInStockingPoint_MP().Name() ) ) | 
Drop this product on an operation to add as input of the operation
Drop an operation here to add this product as output of the operation
Drop a product from the navigation panel here to change the product
Drop a stocking point from the navigation panel here to change the stocking point
 
'
          ]
        }
      ]
      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: "
| Input products | VALUE( selectvalues( object, OperationInputGroup.OperationInput.ProductInStockingPoint_MP.Product_MP, p, p.HasRecipe(), p.Name() ).Concatenate( ', ' ) ) | 
|
Output products | VALUE(guard( select( object, OperationOutput.ProductInStockingPoint_MP.Product_MP , p, p.HasRecipe(), true ).Name(), '' )) | 
"
          ]
        }
        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: "| Input group | 
| Quantity | VALUE(object.InputGroupQuantity() ) VALUE( ' ' + object.UnitOfMeasureName()) | 
Drop an input of this operation here to merge in this input group
Drop a product here to merge in this input group
"
          ]
        }
      ]
      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: "| Input from | VALUE(ifexpr(object.ProductInStockingPoint_MP().IsSystem(),object.BaseOperationLink().OperationOutput().Operation().Name(), object.Name())) |  |  | 
| Quantity | VALUE(object.Quantity()) VALUE( ' ' + object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name()) | 
Drop a product here to merge into a input group
Drop an input of this operation here to merge into a input group
"
          ]
        }
      ]
      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: "| Output | VALUE(object.Name()) | 
| Quantity | VALUE(object.Quantity() )VALUE( ' ' + object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name()) | 
Drop this on an operation to create a link to the operation
"
          ]
        }
      ]
      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: '| Product in stocking point | VALUE( ifexpr( object.PISPNodeInRouting().IsFloating(), object.PISPNodeInRouting().ProductInStockingPoint_MP().Product_MP().Name(), object.PISPNodeInRouting().ProductInStockingPoint_MP().Name() ) ) | 
Drop this product on an operation to add as input of the operation
Drop an operation here to add this product as output of the operation
Drop a product from the navigation panel here to change the product
Drop a stockingpoint from the navigation panel here to change the stockingpoint
 
'
          ]
        }
      ]
      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()'
        }
      ]
    }
  ]
}