Subroutine FIX_WALES(Dummy) #pragma precomp SRP_PreCompiler DECLARE SUBROUTINE SEND_INFO, SEND_DYN, RList,Btree.Extract, Set_Status, Get_Status, ErrMsg, obj_Export, Activate_Save_Select, Database_Services, FTP_Services DECLARE FUNCTION obj_Export, Utility, Environment_Services, Database_Services, Error_Services $INSERT RLIST_EQUATES $INSERT COC_EQUATES $Insert WO_MAT_EQUATES $insert WO_LOG_EQUATES $insert LOGICAL EQU CRLF$ TO \0D0A\ EQU TAB$ TO CHAR(9) Debug GoSub GetRDSNosByProdOrdNo * GoSub GetRDSNosHardList * GoSub GetRDSNosByWOMat * GoSub GetRDSNosByCOC GoSub SendRDSNos Return SendRDSNos: If RDSNos EQ '' then ErrMsg('There are no RDS records attached to this shipment. No data will be sent to the customer. (EpiPRO process)') return end DosTable = Environment_Services('GetFTPRootPath') : '\FTP_OUT\W_FIX':'.csv' ExportID = 'WALES_SYSTEM_RDS_DATA' NoHeader = 1 obj_Export('ExportDelimited', 'Comma' : @RM : RDSNos : @RM : ExportID : @RM : DosTable : @RM : @RM : @RM : NoHeader) // Default Remote Directory "/NPTirep" ToWalesScript = 'open 10.131.104.18' : CRLF$ ; *New EU Newport FTP server deployed 7/26/16 dkk ToWalesScript := 'user' : CRLF$ ToWalesScript := 'EU\NPTirep' : CRLF$ ToWalesScript := 'Wk4F6X61!2016Friday1' : CRLF$ ToWalesScript := 'pwd ' : CRLF$ ToWalesScript := 'append ':DosTable:' EpiMesa_2018.csv' : CRLF$ ; *Append to master file D E P R E C A T E D; *Changed from EpiMesa to EpiMesa_2017 - dkk 4/4/15 * ToWalesScript := 'bye' : CRLF$ * OSWrite ToWalesScript ON 'C:\OIReports\ToWales.scr' * OSWrite ToWalesScript ON Environment_Services('GetReportsRootPath') : '\ToWales.scr' * stat = UTILITY('RUNWIN',"ftp -i -n -s:C:\OIReport\ToWales.scr", 3) ;*********************** * stat = 'DOSOPEN' * call SRP_Run_Command("ftp -i -n -s:C:\OIReports\ToWales.scr", stat, '', '', '', 'Fix_Wales') * * If Get_Status(errCode) then * ErrMsg(errCode) * end *OSDelete DosTable ;* Removes table from C: drive Host = 'sFTPNA.extra.infineon.com' LocalFile = DosTable Username = 'DNAMesaFI-FTP' Password = 'OpenInsight2018....!' LocalDirectory = '' RemoteDirectory = '/Newport' RemoteFile = 'EpiMesa_2018.csv' ScriptPath = Environment_Services('GetReportsRootPath') : '\ToWalesNew.scr' DeleteScript = False$ SSH = True$ * FTP_Services('AppendFile', Host, LocalFile, '', Username, Password, LocalDirectory, RemoteDirectory, RemoteFile, ScriptPath, DeleteScript, SSH) * Message = Error_Services('GetMessage') FTP_Services('PostRequest', 'append', Host, 'MESSA01EC', LocalFile, '', Username, Password, LocalDirectory, RemoteDirectory, RemoteFile, ScriptPath, DeleteScript, SSH, '', 3, False$) return GetRDSNosByProdOrdNo: // 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. UnmatchedBatchNos = '' RDSNos = '' COCNos = '' EOF = False$ Activate_Save_Select('SAP_BATCH_NOS') Loop Readnext SAPBatchNo else EOF = True$ Until EOF RDSFound = False$ ProdOrderNo = SAPBatchNo[1, 'F.'] : '.1' WorkOrderNo = Database_Services('SearchIndex', 'WO_LOG', 'PROD_ORD_NO', ProdOrderNo, False$) If Error_Services('NoError') then ShipmentNos = Database_Services('SearchIndex', 'COC', 'WO', WorkOrderNo, False$) If Error_Services('NoError') then For Each ShipmentNo in ShipmentNos using @FM COCRow = Database_Services('ReadDataRow', 'COC', ShipmentNo) CassNos = COCRow For Each CassNo in CassNos using @VM setting vPos WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WorkOrderNo : '*' : CassNo) ThisSAPBatchNo = WOMatRow<87> If ThisSAPBatchno EQ SAPBatchNo then If WOMatRow EQ '' then WOMatRow = ShipmentNo Database_Services('WriteDataRow', 'WO_MAT', WorkOrderNo : '*' : CassNo, WOMatRow, True$, '', True$) end else If ShipmentNo NE WOMatRow then Debug end RDSNo = COCRow If RDSNo NE '' then RDSNos := RDSNo : @VM COCNos := ShipmentNo : @FM end else Debug end RDSFound = True$ end Until RDSFound Next CassNo Until RDSFound Next ShipmentNo end end If Not(RDSFound) then UnmatchedBatchNos := SAPBatchNo : @FM Repeat RDSNos[-1, 1] = '' COCNos[-1, 1] = '' Database_Services('WriteDataRow', 'SYSLISTS', 'COC_NOS', COCNos, True$, '', True$) UnmatchedBatchNos[-1, 1] = '' Debug return GetRDSNosHardList: // This method just hardcodes a list of RDS numbers. RDSNos = 118500 : @VM RDSNos := 118647 : @VM RDSNos := 118947 : @VM RDSNos := 119373 : @VM RDSNos := 119879 : @VM RDSNos := 121245 : @VM RDSNos := 126190 : @VM RDSNos := 126372 : @VM RDSNos := 131528 : @VM RDSNos := 134709 : @VM RDSNos := 135747 : @VM RDSNos := 141739 : @VM RDSNos := 141753 : @VM RDSNos := 143486 return GetRDSNosByWOMat: // This method uses Work Order Material Key ID and pulls the RDS numbers directly from these rows. See the TEST // routine for code that produces the list of Work Order Material Key IDs. RDSNos = '' EOF = False$ Activate_Save_Select('SAP_WO_MATS') Loop Readnext WOMatKeyID else EOF = True$ Until EOF WOMatRow = Database_Services('ReadDataRow', 'WO_MAT', WOMatKeyID) RDSNos := WOMatRow : @VM Repeat RDSNos[-1, 1] = '' RDSCount = DCount(RDSNos, @VM) return GetRDSNosByCOC: Debug // 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. RDSNos = '' EOF = False$ Activate_Save_Select('COC_NOS') Loop Readnext ShipmentNo else EOF = True$ Until EOF COCRow = Database_Services('ReadDataRow', 'COC', ShipmentNo) CassNos = COCRow WorkOrderNo = COCRow WorkOrderRow = Database_Services('ReadDataRow', 'WO_LOG', WorkOrderNo) CustNo = WorkOrderRow If CustNo = '6874' OR CustNo = '7055' then RDSNos := COCRow : @VM end Repeat RDSNos[-1, 1] = '' return