| Quintiq file version 2.0 | 
| #parent: #root | 
| Method RunSmartPlanPlanningMatrix ( | 
|   MacroPlan macroplan, | 
|   ProductInStockingPointInPeriodPlannings smartplanpispips, | 
|   Real userqty | 
| ) as Stream | 
| { | 
|   TextBody: | 
|   [* | 
|     macroplan->RunSmartPlanFromPlanningMatrix( smartplanpispips, userqty, this.GetScenarioManagerStream() ); | 
|      | 
|     /* As per notes for UTF library, using this as running MP optimizer could trigger multiple transactions so need to wait for all them to finish before continue | 
|     // Below is the Reactive version of Transaction.GetCurrentTask.RestartOnFinish(). | 
|     // It waits for pending transactions, which means wait until *all* logic that is initiated by the test-method is finished, even if it concerns a Job or Multi-Transaction. | 
|     // This makes it possible to support test methods that are in principle asynchronous, i.e. that are for example calling a Job; the next test-method | 
|     // will only be triggered when also the asynchronous call is finished. | 
|      | 
|     // MIND | 
|     // * This statement is meant to be only be used in the UTF Library. | 
|     // * The statement works as indicated only for Jobs and Multi-Transactions and reactivly triggered methods. Asynchronous SOAP is *not* supported. | 
|     */     | 
|      | 
|     return Transaction::GetCurrentTask().OnFinish(); | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |