Commit to switch branches.

This commit is contained in:
Infineon\Mitchem
2025-06-10 13:45:52 -07:00
committed by Stieber Daniel (CSC FI SPS MESLEO)
parent df5b217fe7
commit d021ab64b9
3 changed files with 151 additions and 18 deletions

View File

@ -39,6 +39,10 @@
"<8,2>": {
"<8,2,1>": "Update QA Metrology Specs",
"<8,2,2>": "QA_MET"
},
"<8,3>": {
"<8,3,1>": "Update RDS Layer Parameters",
"<8,3,2>": "UPDATE_RDS_LAYER"
}
},
"<9>": {
@ -46,29 +50,21 @@
"<9,1,1>": "1",
"<9,1,2>": "20",
"<9,1,3>": "L",
"<9,1,4>": "",
"<9,1,4>": "L",
"<9,1,5>": "",
"<9,1,6>": "Window Option"
},
"<9,2>": {
"<9,2,1>": "2",
"<9,2,2>": "0",
"<9,2,3>": "L",
"<9,2,4>": "",
"<9,2,3>": "R",
"<9,2,4>": "R",
"<9,2,5>": "",
"<9,2,6>": ""
},
"<9,3>": {
"<9,3,1>": "",
"<9,3,2>": "",
"<9,3,3>": "",
"<9,3,4>": "",
"<9,3,5>": "",
"<9,3,6>": ""
"<9,2,6>": "2"
}
},
"<10>": "L",
"<11>": "3",
"<11>": "2",
"<12>": "Engineering Options",
"<13>": "2",
"<14>": "F",
@ -91,8 +87,18 @@
"<31>": "0",
"<32>": "0",
"<33>": "0",
"<34>": "16777215",
"<35>": "16777215"
"<34>": "-2",
"<35>": "-2",
"<36>": "",
"<37>": "",
"<38>": "",
"<39>": "",
"<40>": "-2",
"<41>": "1000",
"<42>": "",
"<43>": "",
"<44>": "",
"<45>": ""
}
}
}

View File

@ -198,11 +198,32 @@ Event PUB_ENG_OPTIONS.CLICK()
ServiceModules = 'WO_MAT_QA_SERVICES'
Services = 'UpdateQAMet'
Case SelOpt EQ 'UPDATE_RDS_LAYER'
Caption = "Updating RDS Layer specs for selected RDS cassettes..."
ServiceModules = 'RDS_LAYER_SERVICES'
Services = 'UpdateRDSLayerSpecs'
Case SelOpt EQ 'CLEAN_INSP':@VM:'QA_MET'
Caption = "Updating Clean & Insp and QA Metrology specs for selected RDS cassettes..."
ServiceModules = 'CLEAN_INSP_SERVICES':@VM:'WO_MAT_QA_SERVICES'
Services = 'UpdateAllCleanInsp':@VM:'UpdateQAMet'
Case SelOpt EQ 'QA_MET':@VM:'UPDATE_RDS_LAYER'
Caption = "Updating RDS Layer and QA Metrology specs for selected RDS cassettes..."
ServiceModules = 'WO_MAT_QA_SERVICES':@VM:'RDS_LAYER_SERVICES'
Services = 'UpdateQAMet':@VM:'UpdateRDSLayerSpecs'
Case SelOpt EQ 'CLEAN_INSP':@VM: 'UPDATE_RDS_LAYER'
Caption = "Updating RDS Layer and Clean & Insp specs for selected RDS cassettes..."
ServiceModules = 'WO_MAT_QA_SERVICES':@VM:'RDS_LAYER_SERVICES'
Services = 'UpdateAllCleanInsp':@VM:'UpdateRDSLayerSpecs'
Case SelOpt EQ 'CLEAN_INSP':@VM:'QA_MET':@VM: 'UPDATE_RDS_LAYER'
Caption = "Updating Clean & Insp, QA Metrology, and RDS Layer specs for selected RDS cassettes..."
ServiceModules = 'CLEAN_INSP_SERVICES':@VM:'WO_MAT_QA_SERVICES' :@VM: 'RDS_LAYER_SERVICES'
Services = 'UpdateAllCleanInsp':@VM:'UpdateQAMet' :@VM: 'UpdateRDSLayerSpecs'
End Case
If ServiceModules NE '' then
@ -216,7 +237,12 @@ Event PUB_ENG_OPTIONS.CLICK()
Running = Msg(@WINDOW, MsgUp, vPos, MSGINSTUPDATE$) ;* Update gas guage
For each ServiceModule in ServiceModules using @VM setting sPos
Service = Services<0, sPos>
Ans = Function(@ServiceModule(Service, WOMatKey))
If Service = 'UpdateRDSLayerSpecs' then
RDSKey = SelRDSList<4, vPos>
Ans = Function(@ServiceModule(Service, RDSKey))
end else
Ans = Function(@ServiceModule(Service, WOMatKey))
end
If Error_Services('HasError') then
Error_Services('DisplayError')
end
@ -652,3 +678,4 @@ CheckSelectedForHolds:
return

View File

@ -2,9 +2,10 @@ Compile function RDS_LAYER_Services(@Service, @Params)
#pragma precomp SRP_PreCompiler
$insert LOGICAL
$insert RDS_LAYER_EQUATES
$INSERT RECIPE_PARMS_EQU
Declare function Database_Services, Error_Services, SRP_JSONX, SRP_JSONX_END, SRP_JSON
Declare subroutine Error_Services, SRP_JSONX, SRP_JSONX_BEGIN, SRP_JSON
Declare function Database_Services, Error_Services, SRP_JSONX, SRP_JSONX_END, SRP_JSON, Obj_Tables, Obj_Recipe
Declare subroutine Error_Services, SRP_JSONX, SRP_JSONX_BEGIN, SRP_JSON, Obj_Tables, Set_Status
GoToService
@ -78,3 +79,102 @@ Service ConvertRecordToJSON(KeyID, Record, itemURL)
end service
Service UpdateRDSLayerSpecs(RDSNo)
IF RDSNo = '' THEN
Error_Services('RDSNo parameter missing from service')
return
end
RDSLayerKeys = Xlate('RDS', RDSNo, 'RDS_LAYER_KEYS', 'X')
LayerCount = DCount(RDSLayerKeys, @FM)
For I = 1 to LayerCount
RLKey = RDSLayerKeys<I>
LayerSet = Field(RLKey, '*', 2)
Set_Status(0)
RLParms = 'RDS_LAYER':@RM:RLKey
RDSLayerRec = obj_Tables('ReadOnlyRec',RLParms)
IF Get_Status(errCode) THEN
Error_Services('Add', errCode)
RETURN
END
RecipeNo = RDSLayerRec<RDS_LAYER_RECIPE_NO$>
WOStepKey = XLATE('RDS',RDSNo,RDS_WO_STEP_KEY$,'X')
PSNId = XLATE('WO_STEP',WOStepKey,1,'X')
IF INDEX(LayerSet,'L',1) THEN
LayerLimits = obj_Recipe('GetLimits',RecipeNo:@RM:PSNId:@RM:LayerSet)
RDSLayerRec<RDS_LAYER_RECIPE_NO$> = RecipeNo
RDSLayerRec<RDS_LAYER_DOPANT$> = LayerLimits<RP_DOPANT$>
RDSLayerRec<RDS_LAYER_EPI_DILUENT$> = LayerLimits<RP_EPI_DILUENT$>
RDSLayerRec<RDS_LAYER_EPI_TIME_MIN$> = LayerLimits<RP_DEPOSIT_TIME_MIN$>
RDSLayerRec<RDS_LAYER_EPI_TIME_MAX$> = LayerLimits<RP_DEPOSIT_TIME_MAX$>
RDSLayerRec<RDS_LAYER_DILUENT_MIN$> = LayerLimits<RP_DILUENT_FLOW_MIN$>
RDSLayerRec<RDS_LAYER_DILUENT_MAX$> = LayerLimits<RP_DILUENT_FLOW_MAX$>
RDSLayerRec<RDS_LAYER_DOPANT_FLOW_MIN$> = LayerLimits<RP_DOPANT_FLOW_MIN$>
RDSLayerRec<RDS_LAYER_DOPANT_FLOW_MAX$> = LayerLimits<RP_DOPANT_FLOW_MAX$>
RDSLayerRec<RDS_LAYER_HCL_FLOW_MIN$> = LayerLimits<RP_HCL_FLOW_MIN$>
RDSLayerRec<RDS_LAYER_HCL_FLOW_MAX$> = LayerLimits<RP_HCL_FLOW_MAX$>
RDSLayerRec<RDS_LAYER_BAKE_TIME_MIN$> = LayerLimits<RP_BAKE_TIME_MIN$>
RDSLayerRec<RDS_LAYER_BAKE_TIME_MAX$> = LayerLimits<RP_BAKE_TIME_MAX$>
RDSLayerRec<RDS_LAYER_EPI_H2_FLOW_MIN$> = LayerLimits<RP_H2_FLOW_MIN$>
RDSLayerRec<RDS_LAYER_EPI_H2_FLOW_MAX$> = LayerLimits<RP_H2_FLOW_MAX$>
RDSLayerRec<RDS_LAYER_TCS_FLOW_MIN$> = LayerLimits<RP_TCS_FLOW_MIN$>
RDSLayerRec<RDS_LAYER_TCS_FLOW_MAX$> = LayerLimits<RP_TCS_FLOW_MAX$>
RDSLayerRec<RDS_LAYER_DCS_FLOW_MIN$> = LayerLimits<RP_DCS_FLOW_MIN$>
RDSLayerRec<RDS_LAYER_DCS_FLOW_MAX$> = LayerLimits<RP_DCS_FLOW_MAX$>
RDSLayerRec<RDS_LAYER_AUX1_MIN$> = LayerLimits<RP_AUX1_FLOW_MIN$>
RDSLayerRec<RDS_LAYER_AUX1_MAX$> = LayerLimits<RP_AUX1_FLOW_MAX$>
RDSLayerRec<RDS_LAYER_AUX2_MIN$> = LayerLimits<RP_AUX2_FLOW_MIN$>
RDSLayerRec<RDS_LAYER_AUX2_MAX$> = LayerLimits<RP_AUX2_FLOW_MAX$>
RDSLayerRec<RDS_LAYER_F_OFFSET_MIN$> = LayerLimits<RP_FOFFSET_MIN$>
RDSLayerRec<RDS_LAYER_F_OFFSET_MAX$> = LayerLimits<RP_FOFFSET_MAX$>
RDSLayerRec<RDS_LAYER_S_OFFSET_MIN$> = LayerLimits<RP_SOFFSET_MIN$>
RDSLayerRec<RDS_LAYER_S_OFFSET_MAX$> = LayerLimits<RP_SOFFSET_MAX$>
RDSLayerRec<RDS_LAYER_R_OFFSET_MIN$> = LayerLimits<RP_ROFFSET_MIN$>
RDSLayerRec<RDS_LAYER_R_OFFSET_MAX$> = LayerLimits<RP_ROFFSET_MAX$>
RDSLayerRec<RDS_LAYER_SUSC_ETCH_MIN$> = LayerLimits<RP_SUSC_ETCH_MIN$>
RDSLayerRec<RDS_LAYER_SUSC_ETCH_MAX$> = LayerLimits<RP_SUSC_ETCH_MAX$>
RDSLayerRec<RDS_LAYER_ETCH1_MIN$> = LayerLimits<RP_ETCH1_MIN$>
RDSLayerRec<RDS_LAYER_ETCH1_MAX$> = LayerLimits<RP_ETCH1_MAX$>
RDSLayerRec<RDS_LAYER_ETCH2_MIN$> = LayerLimits<RP_ETCH2_MIN$>
RDSLayerRec<RDS_LAYER_ETCH2_MAX$> = LayerLimits<RP_ETCH2_MAX$>
RDSLayerRec<RDS_LAYER_ETCH3_MIN$> = LayerLimits<RP_ETCH3_MIN$>
RDSLayerRec<RDS_LAYER_ETCH3_MAX$> = LayerLimits<RP_ETCH3_MAX$>
RDSLayerRec<RDS_LAYER_UL_TEMP_MIN$> = LayerLimits<RP_UL_TEMP_MIN$>
RDSLayerRec<RDS_LAYER_UL_TEMP_MAX$> = LayerLimits<RP_UL_TEMP_MAX$>
END
RLParms = FieldStore(RLParms, @RM, 4, 1, RDSLayerRec)
obj_Tables('WriteOnlyRec',RLParms)
Next I
end service