1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  StaticMethod RequirementProcessing ( 
 |    Archive archive, 
 |    ArchiveExecutionStatus archiveExecutionStatus, 
 |    MacroPlan macroPlan, 
 |    String userName, 
 |    String prFileName, 
 |    BinaryValue prBinaryValue, 
 |    Boolean isPRArchive, 
 |    String ppFileName, 
 |    BinaryValue ppBinaryValue, 
 |    Boolean isPPArchive, 
 |    String budgetFileName, 
 |    BinaryValue budgetBinaryValue, 
 |    Boolean isBudgetArchive, 
 |    String ppaFileName, 
 |    BinaryValue ppaBinaryValue, 
 |    Boolean isPPAArchive, 
 |    String curveFileName, 
 |    BinaryValue curveBinaryValue, 
 |    String idsFileName, 
 |    BinaryValue idsBinaryValue, 
 |    Boolean isOverwriteFile 
 |  ) 
 |  { 
 |    TextBody: 
 |    [* 
 |      filePath := archive.FileArchivePath() + "\" + "temp" + "\"; 
 |      OS::CreateDirectory( filePath ); 
 |       
 |      // 创建执行状态 
 |      archiveExecutionStatus.RequirementImportExecutionStatus( relnew,  
 |                                                               ExecutionCode      := -1, 
 |                                                               ExecutionStatus    := "InProgress", 
 |                                                               ExecutionUserName  := userName ); 
 |       
 |      if ( prBinaryValue.Size() > 0 ) { 
 |        archive -> Archive::HandlePR( macroPlan, userName, prFileName, prBinaryValue, isPRArchive, filePath, isOverwriteFile )  
 |                -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) 
 |                -> Archive::Archive( archive, "PR", ppaBinaryValue, curveFileName, curveBinaryValue ) 
 |                -> Exception()  
 |                -> Archive::OnException( archiveExecutionStatus, userName ); 
 |      } else if ( ppBinaryValue.Size() > 0 ) { 
 |        archive -> Archive::HandlePP( macroPlan, userName, ppFileName, ppBinaryValue, isPPArchive, filePath, isOverwriteFile )  
 |                -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) 
 |                -> Archive::Archive( archive, "PP", ppaBinaryValue, curveFileName, curveBinaryValue ) 
 |                -> Exception()  
 |                -> Archive::OnException( archiveExecutionStatus, userName ); 
 |      } else if ( budgetBinaryValue.Size() > 0 ) { 
 |        archive -> Archive::HandleBudget( macroPlan, userName, budgetFileName, budgetBinaryValue, isBudgetArchive, filePath, isOverwriteFile )  
 |                -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) 
 |                -> Archive::Archive( archive, "Budget", ppaBinaryValue, curveFileName, curveBinaryValue ) 
 |                -> Exception() 
 |                -> Archive::OnException( archiveExecutionStatus, userName ); 
 |      } else { 
 |        archive -> Archive::HandlePPA_Curve_IDS( macroPlan, userName, ppaFileName, ppaBinaryValue, isPPAArchive, curveFileName, curveBinaryValue, idsFileName, idsBinaryValue, filePath, isOverwriteFile )  
 |                -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) 
 |                -> Archive::Archive( archive, "PPA", ppaBinaryValue, curveFileName, curveBinaryValue ) 
 |                -> Exception() 
 |                -> Archive::OnException( archiveExecutionStatus, userName ); 
 |      } 
 |    *] 
 |  } 
 |  
  |