| | |
| | | { |
| | | TextBody: |
| | | [* |
| | | targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = "Chassis - SUV 1" ); |
| | | targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = "ProSports Spider D2.6 M" ); |
| | | |
| | | period_MPS := null( Period_MPs ); |
| | | traverse ( macroPlan, PeriodSpecification_MP, psmp, psmp.ID() = "Planning periods" ) { |
| | |
| | | } |
| | | |
| | | traverse ( targetProduct_MP, ProductInStockingPoint_MP, pisp ) { |
| | | traverse ( period_MPS, Elements, pmp ) { |
| | | traverse ( period_MPS, Elements, pmp, pmp.StartDate() = Date::Construct( 2020, 4, 1 ) ) { |
| | | info( pmp.StartDate().Format( "Y-M2-D2" ), " outputPISPï¼", pisp.Name() ); |
| | | CapacityAllocationResultsRuleConfiguration::RecursiveGeneration( macroPlan, pisp, pisp, pmp.StartDate() ); |
| | | info( "-------------------------------------------------------------------------------------------------------" ); |
| | | } |
| | | } |
| | | *] |
| | |
| | | { |
| | | TextBody: |
| | | [* |
| | | operations := selectset( macroPlan, Routing.RoutingStep.Operation, tempO, |
| | | exists( tempO, OperationOutput, tempOO, tempOO.ProductInStockingPoint_MP() = outputPISP ) ); |
| | | |
| | | traverse ( operations, Elements, o ) { |
| | | traverse ( o, OperationInput, tempOI ) { |
| | | inputPISP := tempOI.ProductInStockingPoint_MP(); |
| | | CapacityAllocationResultsRuleConfiguration::RecursiveGeneration( macroPlan, tempOI.ProductInStockingPoint_MP(), firstPISP, startDate ); |
| | | info( "è¾å
¥PISPï¼", inputPISP.Name(), " è¾åºPISPï¼", outputPISP.Name(), " ç¬¬ä¸æ¬¡PISPï¼", firstPISP.Name() ); |
| | | traverse ( outputPISP, ProcessOutput.AsProcessOutput, pmp ) { |
| | | |
| | | ontype( pmp ) { |
| | | Operation as o : { |
| | | traverse ( o, OperationInput, oi ) { |
| | | oiPISP := oi.ProductInStockingPoint_MP(); |
| | | CapacityAllocationResultsRuleConfiguration::RecursiveGeneration( macroPlan, oiPISP, firstPISP, startDate ); |
| | | info( "è¾å
¥PISPï¼", oiPISP.Name(), " è¾åºPISPï¼", outputPISP.Name(), " ç¬¬ä¸æ¬¡PISPï¼", firstPISP.Name() ); |
| | | } |
| | | } |
| | | |
| | | LaneLeg as ll : { |
| | | traverse ( ll, LaneLegInput, lli ) { |
| | | lliPISP := lli.ProductInStockingPoint_MP(); |
| | | if ( lliPISP.ProductID() = outputPISP.ProductID() ) { |
| | | CapacityAllocationResultsRuleConfiguration::RecursiveGeneration( macroPlan, lliPISP, firstPISP, startDate ); |
| | | info( "è¾å
¥PISPï¼", lliPISP.Name(), " è¾åºPISPï¼", outputPISP.Name(), " ç¬¬ä¸æ¬¡PISPï¼", firstPISP.Name() ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Test ( |
| | | MacroPlan this |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | pispnames := construct( Strings ); |
| | | |
| | | traverse( this, SalesDemand.ProductInStockingPoint_MP, pisp ) |
| | | { |
| | | if( not exists( pisp, ProcessOutput.AsProcessOutput.ProcessInput, processinput, true ) ) |
| | | { |
| | | pispnames.Add( pisp.Name() ); |
| | | } |
| | | else |
| | | { |
| | | dummyprocesses := selectset( pisp, ProcessOutput.AsProcessOutput, process, true ); |
| | | index := 0; |
| | | limit := 10000; |
| | | |
| | | while( index < dummyprocesses.Size() |
| | | and index < limit ) |
| | | { |
| | | dummyprocess := dummyprocesses.Element( index ); |
| | | index++; |
| | | |
| | | pisps := construct( ProductInStockingPoint_MPs ); |
| | | |
| | | if( dummyprocess.istype( Operation ) ) |
| | | { |
| | | pisps := selectset( dummyprocess, astype( Operation ).RoutingStep.Routing.InputPISPNodeInRouting.ProductInStockingPoint_MP, pisp2, |
| | | not pisp2.IsSystem() ); |
| | | } |
| | | else if( dummyprocess.istype( LaneLeg ) ) |
| | | { |
| | | pisps := selectset( dummyprocess, astype( LaneLeg ).LaneLegInput.ProductInStockingPoint_MP, pisp2, |
| | | pisp2.Product_MP() = pisp.Product_MP() ); |
| | | } |
| | | |
| | | traverse( pisps, Elements, pisp2 ) |
| | | { |
| | | if( not exists( pisp2, ProcessOutput.AsProcessOutput.ProcessInput, processinput, true ) ) |
| | | { |
| | | pispnames.Add( pisp2.Name() ); |
| | | } |
| | | else |
| | | { |
| | | dummyprocesses2 := selectset( pisp2, ProcessOutput.AsProcessOutput, process, true ); |
| | | dummyprocesses.AddInPlace( dummyprocesses2 ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | pispnames := pispnames.Unique().Sort(); |
| | | info( pispnames.ToString( String::NewLine() ) ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: Button884 |
| | | Response OnClick () id:Response_FormTestButtonCollection_Button884_OnClick |
| | | { |
| | | #keys: '[414702.1.33954101]' |
| | | Body: |
| | | [* |
| | | CapacityAllocationResultsRuleConfiguration::Test( MacroPlan ); |
| | | *] |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_GUIButtonBase_OnClick' |
| | | } |
| | |
| | | Columns: |
| | | [ |
| | | GBFlow.Column { grow: 0 id: 454 parent: 0 } |
| | | GBFlow.Column { grow: 0 id: 968 parent: 0 } |
| | | ] |
| | | Elements: |
| | | [ |
| | |
| | | { |
| | | Component => Button398 |
| | | Position { startcolumn: 454 startrow: 649 endcolumn: 454 endrow: 649 } |
| | | } |
| | | GBElement |
| | | { |
| | | Component => Button884 |
| | | Position { startcolumn: 968 startrow: 649 endcolumn: 968 endrow: 649 } |
| | | } |
| | | ] |
| | | Gaps: [ left: 5 right: 5 top: 5 bottom: 5 inner: 5 ] |
| | |
| | | Properties: |
| | | [ |
| | | Image: 'HARDHAT' |
| | | LayoutGroup: 'Button' |
| | | Text: 'çæäº§è½åé
ç»ææ°æ®' |
| | | ] |
| | | } |
| | | Component Button884 |
| | | { |
| | | #keys: '[414702.1.33954049]' |
| | | BaseType: 'Button' |
| | | Properties: |
| | | [ |
| | | Image: 'CAKE_SLICE' |
| | | LayoutGroup: 'Button' |
| | | Text: 'æ ¹æ®æåçæç©æ' |
| | | ] |
| | | } |
| | | ] |
| | |
| | | IncludeInView: true |
| | | Title: 'åè½æµè¯æé®' |
| | | Width: 535 |
| | | ModeledStringList ChildOrdering |
| | | { |
| | | c: Button398 |
| | | c: Button884 |
| | | } |
| | | ] |
| | | } |
| | |
| | | #keys: '[414724.0.91471552]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnCreated' |
| | | Precondition: |
| | | [* |
| | | |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |