lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
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 );
    }
  *]
}