954 lines
32 KiB
Plaintext
954 lines
32 KiB
Plaintext
Subroutine TEST(Param1, Param2, Param3)
|
|
#pragma precomp SRP_PreCompiler
|
|
|
|
DECLARE SUBROUTINE SEND_INFO, SEND_DYN, Utility, RList, Btree.Extract, msg, ErrMsg,Security_Err_Msg, Set_FSError, obj_Tables, Create_Table, Logging_Services, PrintSetup
|
|
DECLARE SUBROUTINE obj_React_Run,obj_React_Run_CI,obj_RDS_Test, obj_RDS_Layer, Set_Status, BTREE.READ, obj_Post_Log, REACT_RUN_RDS, Reactor_Services, SRP_TcpClient, FTP_Services, Print_Shipment_Dev
|
|
DECLARE SUBROUTINE Extract_SI_Keys, Btree.Extract, Set_List_Box_Data, Print_Shipment, Database_Services, Activate_Save_Select, GetTempPath, obj_Export, obj_WO_Mat, Messaging_Services, SRP_Stopwatch
|
|
DECLARE FUNCTION obj_Popup, Dialog_Box, obj_Install, FindWindow, Security_Check, obj_rds2, obj_Tables, Get_Status, obj_ICAR, obj_Recipe, obj_JCH_Log, Min, Max, obj_Export, obj_Prod_spec
|
|
Declare function Database_Services, Error_Services, RTI_Task_Submit, RTI_Task_Status, RTI_CreateGUID, Environment_Services, Logging_Services, MCP, PrintSetup, FTP_Services, SRP_Encode, RTI_Task_Status
|
|
Declare function SRP_Trim, SRPLogonAPI_ValidateUser, Obj_Calendar, RTI_LH_Info, SRP_TcpClient, Date_Services, obj_WM_In, SRP_Path, RTI_IsMember, RTI_LDAP_Groups_For_User, RTI_LDAP_Groups_For_User_RTI, RTI_Task_Submit
|
|
Declare function SQL_Services, Get_App_Info, HTTPClient_Services, NextKey, Replication_Services, Get_LH_Info
|
|
Declare subroutine SQL_Services, Add_Repos_App, HTTPClient_Services, obj_SAP, Data_Map_Test, Fix_LH
|
|
|
|
$INSERT LOGICAL
|
|
$INSERT SEC_GROUPS_EQU
|
|
$INSERT RDS_EQU
|
|
$INSERT WO_LOG_EQU
|
|
$INSERT WO_MAT_EQUATES
|
|
$INSERT WO_STEP_EQUATES
|
|
$INSERT WM_OUT_EQUATES
|
|
$Insert COC_EQUATES
|
|
$INSERT QUOTE_SPEC_EQU
|
|
$INSERT PROD_SPEC_EQU
|
|
$INSERT RDS_TEST_EQUATES
|
|
$INSERT RDS_LAYER_EQUATES
|
|
$INSERT REACT_RUN_EQUATES
|
|
$INSERT REACT_MODE_EQUATES
|
|
$INSERT POPUP_EQUATES
|
|
$INSERT SECURITY_RIGHTS_EQU
|
|
$INSERT CLEAN_INSP_EQUATES
|
|
$insert RTI_LH_INFO_EQUATES
|
|
$insert PRINTSETUP_EQUATES
|
|
$insert REPOSITORY_EQUATES
|
|
|
|
Declare subroutine Memory_Services
|
|
|
|
Debug
|
|
|
|
* TempList = Database_Services('ReadDataRow', 'SYSLISTS', 'TEST_DANIEL')
|
|
* // Chomp info line
|
|
* TempList = Delete(TempList, 1, 0, 0)
|
|
* For each KeyID in TempList using @FM
|
|
* Record = Database_Services('ReadDataRow', 'RUN_STAGE_WFR', KeyID)
|
|
* Database_Services('WriteDataRow', 'RUN_STAGE_WFR', KeyID, Record, True$, False$, True$)
|
|
* Next KeyID
|
|
|
|
|
|
Debug
|
|
|
|
A = Replication_Services('IsTableAllowedToReplicate', 'WO_MAT', 'LSL2')
|
|
|
|
|
|
Debug
|
|
|
|
QueueTable = 'COC'
|
|
TableInfo = Get_LH_Info(QueueTable)
|
|
Fix_LH(QueueTable, 5, True$, 4)
|
|
a1 = Get_Status(StatusCode)
|
|
a2 = Status()
|
|
TableInfo = Get_LH_Info(QueueTable)
|
|
Fix_LH(QueueTable, 5, True$, 0)
|
|
a1 = Get_Status(StatusCode)
|
|
a2 = Status()
|
|
TableInfo = Get_LH_Info(QueueTable)
|
|
|
|
|
|
Return
|
|
|
|
Debug
|
|
|
|
Value = ''
|
|
If Num(Value) then
|
|
a = 1
|
|
end else
|
|
a = 0
|
|
end
|
|
|
|
Value = Oconv(Trim(Value), 'MD0')
|
|
|
|
|
|
Debug
|
|
KeyCount = 0
|
|
WOMATKEYIDs = Xlate('SYSLISTS', 'CRISP_TEST', '', 'X')
|
|
For Each WOMATKEYID in WOMATKEYIDs using @FM
|
|
KeyCount += 1
|
|
Send_Info('KeyCount = ' : KeyCount : ', KeyID = ' : WOMatKeyID)
|
|
Data_Map_Test('WO_MAT', WOMATKEYID)
|
|
Next WOMATKEYID
|
|
|
|
Return
|
|
|
|
OITableName = 'PROD_SPEC_REV_HIST'
|
|
OIKeyID = '5111'
|
|
|
|
Error = ''
|
|
Memory_Services('ReleaseHashTable')
|
|
Debug
|
|
If (OITableName NE '') AND (OIKeyID NE '') then
|
|
OIRow = Database_Services('ReadDataRow', OITableName, OIKeyID)
|
|
If Error_Services('NoError') then
|
|
SQL_Services('WriteDataRowToSQL', OITablename, OIKeyID, OIRow)
|
|
If Error_Services('HasError') then
|
|
Error = Error_Services('GetMessage')
|
|
end
|
|
end else
|
|
Error = Error_Services('GetMessage')
|
|
end
|
|
end else
|
|
Error = 'TableName or KeyID is missing.'
|
|
end
|
|
|
|
|
|
Return
|
|
|
|
Debug
|
|
|
|
Statement = 'SELECT RETAINED_WAFERS WITH WAFER_SIZE EQ "150 mm 6 in"'
|
|
RList(Statement, 4, 'RETWAF', '', '')
|
|
|
|
|
|
|
|
|
|
|
|
Activate_Save_Select('RETWAF')
|
|
|
|
EOF = False$
|
|
Loop
|
|
ReadNext ID else EOF = True$
|
|
Until EOF EQ True$
|
|
Read Record from hTable, ID then
|
|
|
|
end
|
|
Repeat
|
|
|
|
|
|
|
|
|
|
hDict = Database_Services('GetTableHandle', 'DICT.RETAINED_WAFERS')
|
|
If Error_Services('NoError') then
|
|
Query = 'WAFER_SIZE' : @VM : '150 mm 6 in' : @FM
|
|
* Query := 'LOCATION' : @VM : 'Warehouse' : @VM : 'Cleanroom' : @FM
|
|
KeyList = ''
|
|
Option = ''
|
|
Flag = ''
|
|
Btree.Extract(Query, 'RETAINED_WAFERS', hDict, KeyList, Option, Flag)
|
|
NumKeys = DCount(KeyList, @VM)
|
|
end
|
|
|
|
|
|
return
|
|
|
|
WOLogRow = ''
|
|
WOLogRow<11> = '' ; // Iconv('01/01/2030', 'D4/')
|
|
Database_Services('WriteDataRow', 'WO_LOG', 'TEST', WOLogRow, True$, False$, True$)
|
|
|
|
return
|
|
|
|
|
|
obj_SAP('GetInbound', 1)
|
|
return
|
|
|
|
Today = date() - 15
|
|
return today
|
|
|
|
Set_Status(0)
|
|
NextWO = NextKey('DUMMY')
|
|
If Error_Services('HasError') then
|
|
ErrMesg = Error_Services('GetMessage')
|
|
end
|
|
return
|
|
|
|
|
|
Proc = 'TEST_DANIEL2'
|
|
hSysProcs = Database_Services('GetTableHandle', 'SYSPROCS')
|
|
Lock hSysProcs, Proc then
|
|
HaveLock = True$
|
|
Unlock hSysProcs, Proc else NULL
|
|
end else
|
|
HaveLock = False$
|
|
end
|
|
return
|
|
|
|
SAPID = NextKey('SAP_HOLD')
|
|
return
|
|
|
|
UnloadPSNList = Database_Services('ReadDataRow', 'SYSLISTS', 'PROD_PSNS_UNLOAD')
|
|
// Chomp info line
|
|
UnloadPSNList = Delete(UnloadPSNList, 1, 0, 0)
|
|
|
|
For each PSN in UnloadPSNlist using @FM
|
|
|
|
PRSStageKey = PSN:'*UNLOAD'
|
|
PRSStageRec = Database_Services('ReadDataRow', 'PRS_STAGE', PRSStageKey)
|
|
MetTests = PRSStageRec<PRS_STAGE_MET_TEST$>
|
|
Locate 'THICK_ONLY' in MetTests using @VM setting vPos then
|
|
MetRecipes = PRSStageRec<PRS_STAGE_MET_RECIPE$>
|
|
ThickOnlyRecipe = MetRecipes<0, vPos>
|
|
ThickOnlyRecipe = Trim(ThickOnlyRecipe)
|
|
RecipeFound = True$
|
|
NewProdRecipe = ''
|
|
Begin Case
|
|
Case ThickOnlyRecipe EQ 'PROD_thin6'
|
|
NewProdRecipe = 'thin6inch'
|
|
Case ThickOnlyRecipe EQ 'PROD_8inch'
|
|
NewProdRecipe = '8inch'
|
|
Case ThickOnlyRecipe EQ 'PROD_thin8'
|
|
NewProdRecipe = 'thin8inch'
|
|
Case ThickOnlyRecipe EQ 'PROD_IRC6'
|
|
NewProdRecipe = 'IRC6in_6mm'
|
|
Case ThickOnlyRecipe EQ 'PROD_Wack'
|
|
NewProdRecipe = 'Wacker'
|
|
Case ThickOnlyRecipe EQ 'PROD_INF'
|
|
NewProdRecipe = '8IN_INF'
|
|
Case Otherwise$
|
|
// Unexpected THICK_ONLY recipe name -> proceed to next PSN
|
|
RecipeFound = False$
|
|
End Case
|
|
|
|
If RecipeFound then
|
|
MetRecipes<0, vPos> = NewProdRecipe
|
|
PRSStageRec<PRS_STAGE_MET_RECIPE$> = MetRecipes
|
|
Database_Services('WriteDataRow', 'PRS_STAGE', PRSStageKey, PRSStageRec)
|
|
end
|
|
|
|
end else
|
|
// No THICK_ONLY metrology test -> proceed to next PSN
|
|
NULL
|
|
end
|
|
|
|
|
|
Next PSN
|
|
|
|
Return 3
|
|
|
|
|
|
Query = "Declare @Reactor varchar(10) "
|
|
Query := "Declare @RDS varchar(10) "
|
|
Query := "Declare @PSN varchar(10) "
|
|
Query := "Declare @WAFER varchar(10) "
|
|
Query := "Declare @Title varchar(10) "
|
|
Query := "Set @Reactor = '35' "
|
|
Query := "Set @RDS = '246860' "
|
|
Query := "Set @PSN = '4249' "
|
|
Query := "Set @Wafer = '*09' "
|
|
Query := "SELECT @Title = HeaderData.nvarchar1 "
|
|
Query := "FROM [WSS_Content].[dbo].[AllUserData] HeaderData "
|
|
Query := "WHERE HeaderData.tp_ListId IN ( SELECT AllLists.tp_ID FROM [WSS_Content].[dbo].[AllLists] AllLists WHERE AllLists.tp_Title = 'Tencor Run Header' OR AllLists.tp_Title = 'SP1 Run Header' ) AND "
|
|
Query := "HeaderData.nvarchar6 = @Reactor AND "
|
|
Query := "HeaderData.nvarchar7 = @RDS AND "
|
|
Query := "HeaderData.nvarchar11 = @PSN "
|
|
Query := "SELECT 'http://messa03ec.ec.local/Lists/Tencor Run Data/Attachments/' + cast(RunData.tp_ID as varchar) + '/image.pdf' "
|
|
Query := "FROM [WSS_Content].[dbo].[AllUserData] RunData "
|
|
Query := "WHERE RunData.nvarchar3 = @WAFER AND "
|
|
Query := "RunData.tp_ListId IN ( SELECT AllLists.tp_ID FROM [WSS_Content].[dbo].[AllLists] AllLists WHERE AllLists.tp_Title = 'Tencor Run Data' OR AllLists.tp_Title = 'SP1 Run Data' ) AND "
|
|
Query := "RunData.nvarchar1 LIKE @Title + '%'"
|
|
|
|
debug
|
|
objConnection = SQL_Services('GetConnectionObject', 'messa03ec.ec.local')
|
|
If Error_Services('NoError') then
|
|
Success = True$
|
|
SQL_Services('DestroyConnectionObject', objConnection)
|
|
end
|
|
|
|
|
|
* Method = 'GET'
|
|
* URI = 'http://messa03ec.ec.local/Lists/Tencor Run Data/Attachments/102714/image.pdf'
|
|
* User = 'EC\ECFISysAdmin'
|
|
* Password = 'New@IRpwd12042017'
|
|
* rv = HTTPClient_Services('SendHTTPRequest', Method, URI, '', '', User, Password, '', '')
|
|
* Status = HTTPClient_Services('GetResponseStatusCode')
|
|
* Body = HTTPClient_Services('GetResponseBody')
|
|
* If Status EQ 200 then
|
|
* OSWrite Body to 'C:\Users\ecStieberD\Desktop\Wafer.pdf'
|
|
* end
|
|
|
|
Return
|
|
Debug
|
|
|
|
* ChildApp = 'LSL2'
|
|
* ParentApp = 'FRAMEWORKS'
|
|
* AppInfo = Get_App_Info(ChildApp)
|
|
* AppInfo< SYSAPPS_TEMPLATE_APP$ > = ParentApp
|
|
* Add_Repos_App(ChildApp, AppInfo, 0)
|
|
|
|
|
|
debug
|
|
|
|
* Activate_Save_Select('NEWPORT')
|
|
* EOF = False$
|
|
* RowCnt = 0
|
|
* Loop
|
|
* Readnext ShipNo else EOF = True$
|
|
* Until EOF EQ True$
|
|
* RowCnt += 1
|
|
* ShipRec = Database_Services('ReadDataRow', 'COC', ShipNo)
|
|
* Print_Shipment_Dev(ShipNo, ShipRec, True$, True$)
|
|
* Repeat
|
|
|
|
|
|
Debug
|
|
|
|
objConnection = SQL_Services('GetConnectionObject', 'mesirwdb002.irworld.irf.com')
|
|
If Error_Services('NoError') then
|
|
QueryStatement = 'SELECT [F_MEAN] as ProcessMean,[F_SP] as ProcessSigma '
|
|
QueryStatement := 'FROM [SPCEPIWORLD].[dbo].[CTRL_LIM] CTRL '
|
|
QueryStatement := 'JOIN [SPCEPIWORLD].[dbo].[PART_DAT] PART ON PART.F_PART = CTRL.F_PART '
|
|
QueryStatement := 'JOIN [SPCEPIWORLD].[dbo].[PRCS_DAT] PROCESS ON PROCESS.F_PRCS = CTRL.F_PRCS '
|
|
QueryStatement := 'JOIN [SPCEPIWORLD].[dbo].[TEST_DAT] TEST ON TEST.F_TEST = CTRL.F_TEST '
|
|
QueryStatement := "WHERE PART.F_NAME = '6IN_PTYPE ROTR' AND "
|
|
QueryStatement := "PROCESS.F_NAME = '54' AND "
|
|
QueryStatement := "TEST.F_NAME = 'Average Sum of Defects'"
|
|
*QueryStatement := "WHERE TEST.F_NAME = 'Average Sum of Defects'"
|
|
DataRows = SQL_Services('ExecuteQuery', objConnection, QueryStatement, True$)
|
|
Message = Error_Services('GetMessage')
|
|
SQL_Services('DestroyConnectionObject', objConnection)
|
|
end
|
|
|
|
|
|
|
|
Debug
|
|
// Must run in a separate service on the EC Database Server.
|
|
Host = 'ecsftp.ec.local'
|
|
Username = 'EC\ECFIFTPSVC'
|
|
Password = 'ECTemPwd@07092018'
|
|
LocalDirectory = ''
|
|
RemoteDirectory = '\TEMFTP_EPIMesa\Archive'
|
|
RemoteFile = ''
|
|
ScriptPath = Environment_Services('GetReportsRootPath') : '\ToTemeculaNew.scr'
|
|
DeleteScript = False$
|
|
SSH = True$
|
|
DosPath = 'D:\apps\Ship_Data\IFX_Temeculacsv\'
|
|
InitDir DosPath : '*.csv'
|
|
DosTables = DirList()
|
|
For Each DosTable in DosTables using @FM
|
|
OSRead LocalFile from DosPath : DosTable then
|
|
EncodedData = SRP_Encode(LocalFile, 'BASE64')
|
|
FTP_Services('PostRequest', 'put', Host, 'MESSA01EC', '', EncodedData, Username, Password, LocalDirectory, RemoteDirectory, RemoteFile, ScriptPath, DeleteScript, SSH, '', 3, False$)
|
|
end else
|
|
Debug
|
|
end
|
|
|
|
Next File
|
|
|
|
Debug
|
|
Groups1 = RTI_LDAP_Groups_For_User('smunoz1')
|
|
* Groups2 = RTI_LDAP_Groups_For_User('10.64.152.171\ECrivard')
|
|
* IsMember = RTI_IsMember('MES-APP-FabTimeAllowed', 'infineon\rivard')
|
|
* IsLocal = RTI_IsLocalGroupMember('Administrators', 'infineon\rivard')
|
|
|
|
Debug
|
|
|
|
Host = 'sFTPNA.extra.infineon.com'
|
|
Username = 'DNAMesaFI-FTP'
|
|
Password = 'OpenInsight2018....!'
|
|
Data = '' ; // SRP_Encode('Hello World!', 'BASE64')
|
|
LocalFile = 'D:\Apps\NXP 07-10-17 Pack list 141151.pdf'
|
|
RemoteFile = 'HelloWorld.txt'
|
|
RemoteDirectory = '/Newport'
|
|
SSH = True$
|
|
ProcessDirectory = 'D:\Temp'
|
|
FTPRequestID = FTP_Services('PostRequest', 'send', Host, 'MESSA005', LocalFile, Data, Username, Password, '', RemoteDirectory, RemoteFile, '', True$, True$, ProcessDirectory)
|
|
If Error_Services('NoError') then
|
|
* FTP_Services('ProcessRequest', FTPRequestID)
|
|
end
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
Debug
|
|
SRP_Stopwatch('Reset')
|
|
SRP_Stopwatch('Start', 'Update WO_MAT')
|
|
hWOMat = Database_Services('GetTableHandle', 'WO_MAT')
|
|
Activate_Save_Select('WO_MAT')
|
|
EOF = False$
|
|
RowCount = 0
|
|
TotalRows = @RecCount
|
|
Loop
|
|
Readnext KeyID else EOF = True$
|
|
Until EOF
|
|
RowCount += 1
|
|
Send_Info(' Updating ' : RowCount : ' out of ' : TotalRows : ' rows. KeyID: ' : KeyID)
|
|
WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', KeyID, '', '', False$)
|
|
If (WOMatRow EQ '') OR (WOMatRow[1, 87] EQ (Str(@FM, 86) : '0')) then
|
|
Database_Services('DeleteDataRow', 'WO_MAT', KeyID, '', False$)
|
|
end else
|
|
If (WOMatRow<WO_MAT_SAP_BATCH_NO$> EQ 0) then
|
|
WOMatRow<WO_MAT_SAP_BATCH_NO$> = ''
|
|
Database_Services('WriteDataRow', 'WO_MAT', KeyID, WOMatRow, True$, False$, True$)
|
|
end
|
|
end
|
|
Repeat
|
|
SRP_Stopwatch('Stop', 'Update WO_MAT')
|
|
SRP_Stopwatch('ShowAll')
|
|
|
|
Debug
|
|
|
|
|
|
* Messaging_Services('SendMessage', 'GetLoggedInUsers', 'Request', '', 'STIEBERD', '', 'Procedure', 'TEST2,@MESSAGE,@ARGUMENTS', False$)
|
|
rv = MCP('MESSAGING', 'SendMessage', 'GetLoggedInUsers', 'Request', '', 'CRISP', '', 'Procedure', 'TEST2,@MESSAGE,@ARGUMENTS', False$)
|
|
* call MCP('FLATFINDER', 'ImportFlatFinderFiles')
|
|
|
|
Return
|
|
|
|
Debug
|
|
|
|
Groups1 = RTI_LDAP_Groups_For_User('na\mescatxmuser')
|
|
Groups2 = RTI_LDAP_Groups_For_User('na\ddailey1')
|
|
|
|
|
|
Return
|
|
|
|
|
|
VolumePath = 'LSL\REVMEDIA.LK'
|
|
If SRP_Path('IsRelative', VolumePath) then
|
|
RevbootDrive = Drive()
|
|
VolumePath = SRP_Path('Combine', RevbootDrive, VolumePath)
|
|
end
|
|
VolumePath = SRP_Path('RemoveFilename', VolumePath)
|
|
// Make sure there is a backslash since the RTI_LH_INFO API seems to use this.
|
|
VolumePath = SRP_Path('AddBackslash', VolumePath)
|
|
|
|
Return
|
|
|
|
Debug
|
|
CustNo = 7125
|
|
CustName = XLATE( 'COMPANY', CustNo, 'ABBREV_OR_CO_NAME', 'X' )
|
|
|
|
return
|
|
|
|
Argu = '"foo", "foo1"'
|
|
Argu = Trim(Argu)
|
|
|
|
Debug
|
|
|
|
* Ans = RTI_LH_Info(CMD_LOCK_INFO$, 'E:\APPS\OICURRENT\LSL\', 'REV43432', 'ABOUT', 'REV43432')
|
|
* Ans = RTI_LH_Info(CMD_SESSION_INFO$)
|
|
* Ans = RTI_LH_Info(CMD_LOCKS_INFO$, '')
|
|
* Ans = RTI_LH_Info(CMD_TABLE_INFO$, 'APP_INFO')
|
|
Ans = RTI_LH_Info(CMD_UNLOCK$, 'E:\APPS\OICURRENT\', 'REVREPOS', 'LSL2*STPROC**DATABASE_SERVICES', 'REVREPOS')
|
|
|
|
Return
|
|
|
|
Debug
|
|
|
|
ScheduleDate = Iconv('05/25/2018', 'D')
|
|
NextMonday = ScheduleDate + 3
|
|
NextSunday = ScheduleDate + 9
|
|
* For ScheduleDate = NextMonday to NextSunday
|
|
* Reactor_Services('CreatePerformanceTrackers', ScheduleDate, False$)
|
|
* Next ScheduleDate
|
|
// Create the weekly performance report based on the daily performance tracking data.
|
|
YearWeekNo = Date_Services('GetISOWeekDate', NextMonday)
|
|
YearWeekNo = Field(YearWeekNo, '-', 1, 2)
|
|
Reactor_Services('CreateWeeklyPerformanceReport', YearWeekNo)
|
|
|
|
Debug
|
|
|
|
Command = "RUN DATABASE_SERVICES 'GetUserLocks'"
|
|
// Call the SRPEngineService and pass it the command
|
|
Server = Environment_Services('GetServer')
|
|
TCPServerSettings@ = Database_Services('ReadDataRow', 'APP_INFO', 'SQL_TCPIP_SETTINGS_' : Server)
|
|
TcpClientHandle = 0
|
|
If SRP_TcpClient(TcpClientHandle, 'CONNECT', TCPServerSettings@<1>, TCPServerSettings@<2>) then
|
|
SRP_TcpClient(TcpClientHandle, 'SEND_SES', Command)
|
|
SRP_TcpClient(TcpClientHandle, 'CLOSE_SES')
|
|
end
|
|
|
|
|
|
Return
|
|
|
|
Debug
|
|
|
|
TableName = 'WO_MAT'
|
|
DictVar = Database_Services('GetTableHandle', 'DICT.' : TableName)
|
|
PartNo = '13511'
|
|
SearchString = ''
|
|
IF TableName = 'WO_MAT' THEN
|
|
If @User4 EQ 'DANIEL_ST' then
|
|
SearchString := 'MAKEUP_BOX' : @VM : 1 : @FM
|
|
SearchString := 'PART_NO' : @VM : PartNo : @FM
|
|
end else
|
|
SearchString = 'MU_PART_NO' : @VM : PartNo : @FM
|
|
end
|
|
SearchString := 'CURR_STATUS':@VM:'RTU':@FM
|
|
END ELSE
|
|
SearchString = 'MU_PART_NO':@VM:PartNo:@FM
|
|
END
|
|
|
|
Set_Status(0)
|
|
|
|
OpenRecordIDs = ""
|
|
Option = ""
|
|
Flag = ""
|
|
Btree.Extract(SearchString, TableName, DictVar, OpenRecordIDs, option, flag)
|
|
|
|
|
|
Debug
|
|
|
|
WOMatKey = '165570*9'
|
|
RDSNo = '214802'
|
|
WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
|
WOMatRow<12> = '' ; // Clear the RDS No so the index will be forced to recalculate.
|
|
WOMatRow<23> = False$ ; // Clear the MakeUp box flag so the index will be forced to recalculate.
|
|
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False, True$)
|
|
WOMatRow<12> = RDSNo ; // Restore the RDS No so the index on RDS_FINAL_SIG will be forced to recalculate with the most recent value.
|
|
WOMatRow<23> = True$ ; // Restore the MakeUp box flag so the index will be forced to recalculate.
|
|
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False, True$)
|
|
call Update_Index('WO_MAT', 'MU_PART_NO', False$, True$)
|
|
call Update_Index('WO_MAT', 'CURR_STATUS', False$, True$)
|
|
|
|
|
|
|
|
Debug
|
|
|
|
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Fiscal'
|
|
LogDate = Oconv(Date(), 'D4/')
|
|
LogTime = Oconv(Time(), 'MTS')
|
|
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : '.csv'
|
|
Headers = 'WeekNo' : @FM : 'Start Date' : @FM : 'End Date' : @FM : 'Period'
|
|
ColumnWidths = 10 : @FM : 20 : @FM : 20 : @FM : 20
|
|
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
|
|
LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
|
|
|
|
StartDate = Iconv('10/01/2016', 'D')
|
|
EndDate = Iconv('09/30/2018', 'D')
|
|
For Date = StartDate to EndDate
|
|
FYInfo = Obj_Calendar('IRFiscalWeek2', Oconv(Date, 'D4/'))
|
|
Logging_Services('AppendLog', objLog, FYInfo, CRLF$, @FM, True$)
|
|
Next Date
|
|
|
|
|
|
Debug
|
|
|
|
* Username = 'ddailey1'
|
|
* Domain = 'mes.infineon.com'
|
|
* Password = 'blahblahblah'
|
|
Username = 'bakke'
|
|
Domain = 'na'
|
|
Password = 'TasRGvznjd87Jvi'
|
|
ValidUser = SRPLogonAPI_ValidateUser(Username, Password, Domain)
|
|
|
|
|
|
|
|
|
|
Debug
|
|
|
|
TableName = 'WO_MAT'
|
|
DictVar = Database_Services('GetTableHandle', 'DICT.' : TableName)
|
|
SearchString = 'MAKEUP_BOX':@VM:'1':@FM
|
|
SearchString := 'CURR_STATUS':@VM:'RTU':@FM
|
|
rv = Set_Status(0)
|
|
OpenRecordIDs = ''
|
|
Option = ''
|
|
Flag = ''
|
|
Btree.Extract(SearchString, TableName, DictVar, OpenRecordIDs, option, flag)
|
|
For Each WOMatKeyID in OpenRecordIDs using @VM
|
|
WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKeyID)
|
|
RDSNo = WOMatRow<12>
|
|
If RDSNo NE '' then
|
|
WOMatRow<12> = '' ; // Clear the RDS No so the index will be forced to recalculate.
|
|
Database_Services('WriteDataRow', 'WO_MAT', WOMatKeyID, WOMatRow, True$, False, True$)
|
|
WOMatRow<12> = RDSNo ; // Restore the RDS No so the index on RDS_FINAL_SIG will be forced to recalculate with the most recent value.
|
|
Database_Services('WriteDataRow', 'WO_MAT', WOMatKeyID, WOMatRow, True$, False, True$)
|
|
end
|
|
Next WOMatKeyID
|
|
|
|
|
|
Debug
|
|
|
|
WOMatKey = '165518*1'
|
|
RDSNo = '210351'
|
|
|
|
WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKey)
|
|
WOMatRow<12> = ''
|
|
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False, True$)
|
|
WOMatRow<12> = RDSNo
|
|
Database_Services('WriteDataRow', 'WO_MAT', WOMatKey, WOMatRow, True$, False, True$)
|
|
|
|
|
|
obj_WO_Mat('ChangeFlag',WOMatKey:@RM:12:@RM:'') ; // Clear the RDS No so the index will be forced to recalculate.
|
|
obj_WO_Mat('ChangeFlag',WOMatKey:@RM:12:@RM:RDSNo) ; // Restore the RDS No so the index on RDS_FINAL_SIG will be forced to recalculate with the most recent value.
|
|
|
|
|
|
*
|
|
Debug
|
|
OSRead Log from 'E:\apps\LogFiles\GaNWIP\2018-03-06.csv' then
|
|
NewLog = ''
|
|
Swap \0D0A\ with @FM in Log
|
|
For Each Line in Log using @FM setting LineNum
|
|
If LineNum EQ 1 then
|
|
NewLog := Line : \0D0A\
|
|
end else
|
|
If Index(Line, '165199*7*20', 1) then
|
|
NewLog := Line : \0D0A\
|
|
end
|
|
end
|
|
Next Line
|
|
NewLog[-2, 2] = ''
|
|
OSWrite NewLog to 'E:\apps\LogFiles\GaNWIP\2018-03-06-Review.csv'
|
|
end
|
|
|
|
|
|
Debug
|
|
|
|
COCKeyIDs = Xlate('SYSLISTS', 'COC', '', 'X')
|
|
For Each COCKeyID in COCKeyIDs using @FM
|
|
call obj_Shipment('SendTechnical', COCKeyID : @RM : 1)
|
|
Next COCKeyID
|
|
|
|
Debug
|
|
|
|
*
|
|
* LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\MUBox'
|
|
* LogDate = Oconv(Date(), 'D4/')
|
|
* LogTime = Oconv(Time(), 'MTS')
|
|
* LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : '.csv'
|
|
* Headers = 'Logging DTM' : @FM : 'Service Step' : @FM : 'Service Description'
|
|
* ColumnWidths = 20 : @FM : 40 : @FM : 150
|
|
* objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
|
|
* LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
|
|
* Logging_Services('AppendLog', objLog, LoggingDTM : @FM : ' 1' : @FM : '.', @RM, @FM)
|
|
*
|
|
* Debug
|
|
*
|
|
*
|
|
* ShipNo = '145090'
|
|
* RDSNos = Xlate('COC', ShipNo, 'RDS_NO', 'X')
|
|
* KeyList = RDSNos
|
|
*
|
|
* IF KeyList = '' THEN
|
|
* ErrMsg('There are no RDS records attached to this shipment. No data will be sent to the customer. (EpiPRO process)')
|
|
* obj_Tables('UnlockRec',OtParms)
|
|
*
|
|
* RETURN
|
|
* END
|
|
*
|
|
* SentFlag = 1
|
|
*
|
|
* DosTable = 'C:\OIReports\W':ShipNo:'.csv'
|
|
* DosTable = Environment_Services('GetReportsRootPath') : '\W':ShipNo:'.csv'
|
|
*
|
|
* ExportID = 'WALES_SYSTEM_RDS_DATA'
|
|
* NoHeader = 1
|
|
*
|
|
* obj_Export('ExportDelimited','Comma':@RM:KeyList:@RM:ExportID:@RM:DosTable:@RM:@RM:@RM:NoHeader, AutoFlag)
|
|
*
|
|
*
|
|
* Debug
|
|
*
|
|
* StartDate = Iconv('02/25/2018', 'D')
|
|
* EndDate = Iconv('03/03/2018', 'D')
|
|
*
|
|
* For ScheduleDate = StartDate to EndDate
|
|
* Reactor_Services('CreatePerformanceTrackers', ScheduleDate)
|
|
* Reactor_Services('UpdatePerformanceTrackers', ScheduleDate)
|
|
* Next ScheduleDate
|
|
*
|
|
* Debug
|
|
* CSVList = Database_Services('ReadDataRow', 'SYSLISTS', 'AD_USERS')
|
|
* ADtoLSLUserMap = ''
|
|
* Convert ',' to @VM in CSVList
|
|
* Pos = 0
|
|
* For Each User in CSVList using @FM
|
|
* WindowsUser = User<0, 5>
|
|
* If Trim(WindowsUser) NE 'Windows' AND WindowsUser NE '' then
|
|
* Pos += 1
|
|
* ADtoLSLUserMap<1, Pos> = User<0, 5>
|
|
* ADtoLSLUserMap<2, Pos> = User<0, 2>
|
|
* end
|
|
* Next User
|
|
* Database_Services('WriteDataRow', 'APP_INFO', 'AD_TO_LSL_USER_MAP', ADtoLSLUserMap)
|
|
*
|
|
* Return
|
|
|
|
|
|
|
|
Declare function RTI_IsMember, RTI_LDAP_Groups_For_User, RTI_IsLocalGroupMember
|
|
|
|
* Volume = 'LSL'
|
|
* Table = 'BANG_WO_MAT'
|
|
* Attributes = ''
|
|
* Attributes<1> = 1500000
|
|
* Attributes<2> = 100
|
|
* Attributes<3> = 3
|
|
* Attributes<4> = 4096
|
|
* Attributes<5> = 80
|
|
* rv = Set_Status(0)
|
|
* Create_Table(Volume, Table, False$, 'LSL2', Attributes, False$)
|
|
* Status = Get_Status(StatusCode)
|
|
*
|
|
* Debug
|
|
*
|
|
* hDictWOMat = Database_Services('GetTableHandle', 'DICT.WO_MAT')
|
|
* Select hDictWOMat
|
|
* EOF = False$
|
|
* Loop
|
|
* ReadNext DictKeyID else EOF = True$
|
|
* Until EOF
|
|
* If DictKeyID[1, 1] NE '%' then
|
|
* DictRow = Database_Services('ReadDataRow', 'DICT.WO_MAT', DictKeyID)
|
|
* If DictRow<6> EQ 1 then
|
|
* DictRow<6> = ''
|
|
* Database_Services('WriteDataRow', 'DICT.WO_MAT', DictKeyID, DictRow, True$, '', True$)
|
|
* end
|
|
* end
|
|
* Repeat
|
|
*
|
|
Debug
|
|
|
|
Groups1 = RTI_LDAP_Groups_For_User('na\rbraini1')
|
|
* Groups2 = RTI_LDAP_Groups_For_User('10.64.152.171\ECrivard')
|
|
* IsMember = RTI_IsMember('MES-APP-FabTimeAllowed', 'infineon\rivard')
|
|
* IsLocal = RTI_IsLocalGroupMember('Administrators', 'infineon\rivard')
|
|
*
|
|
*
|
|
* infineon.com/IFX-Groups/NA/SecGrp/MES-APP-FabTimeAllowed
|
|
*
|
|
* Debug
|
|
* NumFields = DCount(@Station, '_')
|
|
* Station = Field(@Station, '_', 1, NumFields - 1)
|
|
*
|
|
* Debug
|
|
*a = RTI_CreateGUID()
|
|
* TempPath = Str(\00\, 1024)
|
|
* GetTempPath(Len(TempPath), TempPath)
|
|
* Convert \00\ to '' in TempPath
|
|
* Transfer TempPath to b
|
|
|
|
|
|
Debug
|
|
EOF = False$
|
|
NumChanged = 0
|
|
Activate_Save_Select('WO_LOG')
|
|
Loop
|
|
Readnext WorkOrderNo else EOF = True$
|
|
Until EOF
|
|
WOLogRow = Database_Services('ReadDataRow', 'WO_LOG', WorkOrderNo)
|
|
WOMatKeyIDs = WOLogRow<31>
|
|
For Each WOMatKeyID in WOMatKeyIDs using @VM
|
|
WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKeyID)
|
|
CustPartNo = WOMatRow<WO_MAT_CUST_PART_NO$>
|
|
CassNo = WOMatKeyID[-1, 'B*']
|
|
CustNo = Xlate('WO_MAT', WorkOrderNo : '*' : CassNo, 'CUST_NO', 'X')
|
|
CassShipQty = Xlate('CUST_EPI_PART', CustNo : '*' : CustPartNo, 'CASS_SHIP_QTY', 'X')
|
|
If (WOMatRow<WO_MAT_CASS_SHIP_QTY$> NE CassShipQty) AND (WOMatRow<WO_MAT_CASS_SHIP_QTY$> EQ 23) then
|
|
WOMatRow<WO_MAT_CASS_SHIP_QTY$> = CassShipQty
|
|
NumChanged += 1
|
|
Database_Services('WriteDataRow', 'WO_MAT', WOMatKeyID, WOMatRow, True$)
|
|
end
|
|
Next WOMatKeyID
|
|
Repeat
|
|
Debug
|
|
|
|
Return
|
|
|
|
|
|
|
|
// This method uses the missing SAP batch numbers and converts them into product order numbers and then searches
|
|
// WO_LOG for a match. From here, all shipments (COC table) are searched for a matching SAP batch number which will
|
|
// then allow the associated RDS number to be derived.
|
|
UnmatchedShippingNos = ''
|
|
RDSNos = ''
|
|
EOF = False$
|
|
Activate_Save_Select('WO_LOG')
|
|
Loop
|
|
Readnext WorkOrderNo else EOF = True$
|
|
Until EOF
|
|
RDSFound = False$
|
|
ShipmentNos = Database_Services('SearchIndex', 'COC', 'WO', WorkOrderNo, False$)
|
|
If Error_Services('NoError') then
|
|
For Each ShipmentNo in ShipmentNos using @FM
|
|
If ShipmentNo NE '' then
|
|
COCRow = Database_Services('ReadDataRow', 'COC', ShipmentNo)
|
|
CassNos = COCRow<COC_CASS_NO$>
|
|
For Each CassNo in CassNos using @VM setting vPos
|
|
WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WorkOrderNo : '*' : CassNo)
|
|
If WOMatRow<WO_MAT_SHIP_NO$> EQ '' then
|
|
WOMatRow<WO_MAT_SHIP_NO$> = ShipmentNo
|
|
Database_Services('WriteDataRow', 'WO_MAT', WorkOrderNo : '*' : CassNo, WOMatRow, True$, '', True$)
|
|
UnmatchedShippingNos := WorkOrderNo : '*' : CassNo : @VM : ShipmentNo : @FM
|
|
end
|
|
Next CassNo
|
|
end
|
|
Next ShipmentNo
|
|
end
|
|
Repeat
|
|
UnmatchedShippingNos[-1, 1] = ''
|
|
Database_Services('WriteDataRow', 'SYSLISTS', 'UMATCHED_SHIPPING_NOS', UnmatchedShippingNos, True$)
|
|
Debug
|
|
|
|
|
|
Return
|
|
|
|
|
|
hCustEpiPart = Database_Services('GetTableHandle', 'CUST_EPI_PART')
|
|
Select hCustEpiPart
|
|
EOF = 0
|
|
Loop
|
|
ReadNext ID else EOF = 1
|
|
Until EOF = 1
|
|
CustEpiPartRow = Database_Services('ReadDataRow', 'CUST_EPI_PART', ID)
|
|
CustEpiPartRow<47> = CustEpiPartRow<27>
|
|
Database_Services('WriteDataRow', 'CUST_EPI_PART', ID, CustEpiPartRow, 1, '', 1)
|
|
Repeat
|
|
|
|
|
|
return
|
|
|
|
Open 'DICT.WO_MAT' to hDict then
|
|
WONos = ''
|
|
GoodSAPs = ''
|
|
BadSAPs = ''
|
|
SAPBatchNos = Xlate('SYSLISTS', 'SAP_BATCH_NO', '', 'X')
|
|
* SAPBatchNos = 'M007868.1'
|
|
For Each SAPBatchNo in SAPBatchNos using @FM
|
|
Btree.Extract('SAP_BATCH_NO' : @VM : SAPBatchNo : @FM, 'WO_MAT', hDict, Keys, 'E', Flag)
|
|
If (Flag EQ 0) AND (Keys NE '') then
|
|
WONos := Keys : @FM
|
|
GoodSAPs := SAPBatchNo : @FM
|
|
end else
|
|
BadSAPs := SAPBatchNo : @FM
|
|
end
|
|
Next SAPBatchNo
|
|
end
|
|
|
|
Database_Services('WriteDataRow', 'SYSLISTS', 'SAP_GOOD', GoodSAPs, True$)
|
|
Database_Services('WriteDataRow', 'SYSLISTS', 'SAP_BAD', BadSAPs, True$)
|
|
Database_Services('WriteDataRow', 'SYSLISTS', 'SAP_WO_MATS', WONos, True$)
|
|
|
|
Debug
|
|
|
|
* StartDate = Iconv('01/11/2018', 'D')
|
|
* EndDate = Iconv('01/11/2018', 'D')
|
|
*
|
|
* For ScheduleDate = StartDate to EndDate
|
|
* Reactor_Services('ClearWafersExpected', ScheduleDate)
|
|
* Reactor_Services('ClearWafersProcessed', ScheduleDate)
|
|
* Next ScheduleDate
|
|
*
|
|
* For ScheduleDate = StartDate to EndDate
|
|
* Reactor_Services('CreatePerformanceTrackers', ScheduleDate)
|
|
* Reactor_Services('UpdatePerformanceTrackers', ScheduleDate)
|
|
* Next ScheduleDate
|
|
*
|
|
* Debug
|
|
*
|
|
*
|
|
* Return
|
|
*
|
|
* Debug
|
|
*
|
|
* Log = ''
|
|
* WONos = '161483'
|
|
* For Each WONo in WONos using ','
|
|
* ShipNos = Xlate('WO_LOG', WONo, 'SHIP_NO', 'X')
|
|
* For Each ShipNo in ShipNos using @VM
|
|
* COCRow = Database_Services('ReadDataRow', 'COC', ShipNo)
|
|
* Cassettes = COCRow<COC_CASS_NO$>
|
|
* For Each Cassette in Cassettes using @VM
|
|
* WOMatKeyID = WONo : '*' : Cassette
|
|
* WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKeyID)
|
|
* If WOMatRow<WO_MAT_SHIP_NO$> EQ '' then
|
|
* Log := WONo : @VM : Cassette : @VM : ShipNo : @FM
|
|
* WOMatRow<WO_MAT_SHIP_NO$> = ShipNo
|
|
* Database_Services('WriteDataRow', 'WO_MAT', WOMatKeyID, WOMatRow)
|
|
* end
|
|
* Next Cassette
|
|
* Next ShipNo
|
|
* Next WONo
|
|
*
|
|
* Debug
|
|
*
|
|
* Return
|
|
*
|
|
*
|
|
* Debug
|
|
* call Activate_Save_Select('COC')
|
|
* EOF = False$
|
|
* Loop
|
|
* ReadNext ShipNo else EOF = True$
|
|
* Until EOF
|
|
* ShipRec = Database_Services('ReadDataRow', 'COC', ShipNo)
|
|
* Database_Services('WriteDataRow', 'FTP_QUEUE', ShipNo, ShipRec<21>, True$, '', True$)
|
|
* Repeat
|
|
*
|
|
* return
|
|
|
|
Debug
|
|
|
|
* SAPDelNos = '81159268,81159269,81159270,81159484,81162527,87052828,87056093,87057263,87057268,87057302,87057826,87057828,87057829,87057994,87058617,87058704,87058709,97059199,97059200'
|
|
* SAPDelNos = '87057263'
|
|
* MissingDelNos = ''
|
|
* For Each SAPDelNo in SAPDelNos using ','
|
|
* call Activate_Save_Select('COC')
|
|
* Sentence = 'SELECT COC WITH SAP_DEL_NO EQ ' : SAPDelNo
|
|
* ClearSelect 0
|
|
* rv = Set_Status(0)
|
|
* RList(Sentence, 5, '', '', '')
|
|
* If @List_Active EQ 3 AND @RecCount GT 0 then
|
|
* EOF = False$
|
|
* Loop
|
|
* ReadNext ShipNo else EOF = True$
|
|
* Until EOF
|
|
* ShipRec = Database_Services('ReadDataRow', 'COC', ShipNo)
|
|
* If Error_Services('NoError') then
|
|
*
|
|
* eMailShipRec = ICONV(OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS'),'DT')
|
|
* sqParms = 'SHIP_EMAIL_QUEUE':@RM:ShipNo:@RM:@RM:eMailShipRec
|
|
* obj_Tables('WriteRec',sqParms)
|
|
* IF Get_Status(errCode) THEN
|
|
* obj_Tables('UnlockRec',sqParms)
|
|
* END
|
|
* cocParms = 'COC':@RM:ShipNo
|
|
* * ShipRec = obj_Tables('ReadRec',cocParms)
|
|
* If Not(Get_Status(errCode)) then
|
|
* SendReason = 'Resubmit COC'
|
|
* SendDtm = ICONV(OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS'),'DT')
|
|
* SendUser = @User4
|
|
* TaskID = RTI_Task_Submit('', 'PRINT_SHIPMENT_DEV', ShipNo, ShipRec, 1, True$)
|
|
* If TaskID NE 0 then
|
|
* Done = False$
|
|
* Loop
|
|
* Status = RTI_Task_Status(TaskID, TaskResponse)
|
|
* If (Status EQ 'COMPLETED') OR (Status EQ 'ERROR') then Done = True$
|
|
* Until Done
|
|
* Repeat
|
|
* end
|
|
* StatusError = Get_Status(errCode)
|
|
* If (Index(errCode, 'SHELLEXECUTE', 1)) NE 0 then StatusError = 0
|
|
* If Not(StatusError) then
|
|
* CurrTxCnt = COUNT(ShipRec<COC_EMAIL_DTM$>,@VM) + (ShipRec<COC_EMAIL_DTM$> NE '')
|
|
* NewTxPos = CurrTxCnt + 1
|
|
* ShipRec<COC_EMAIL_DTM$,NewTxPos> = SendDtm
|
|
* ShipRec<COC_EMAIL_USER$,NewTxPos> = SendUser
|
|
* ShipRec<COC_EMAIL_REASON$,NewTxPos> = SendReason
|
|
* cocParms = FIELDSTORE(cocParms,@RM,4,0,ShipRec)
|
|
* obj_Tables('WriteOnlyRec',cocParms)
|
|
* end
|
|
* end
|
|
*
|
|
* end
|
|
* Repeat
|
|
* end else
|
|
* MissingDelNos := SAPDelNo : ','
|
|
* end
|
|
* Next SAPDelNo
|
|
|
|
Debug
|
|
|
|
Return
|
|
|
|
|