public RepairOrder CreateRO(RepairOrder ro, int _logIncidentId = 0, int _logContactId = 0) { RepairOrder result = ro; string request = ""; string response = ""; string logMessage, logNote; if (String.IsNullOrWhiteSpace(ROCreateURL) || String.IsNullOrWhiteSpace(ROServiceUsername) || String.IsNullOrWhiteSpace(ROServicePassword)) { throw new Exception("Provider's InitForRO not run."); } RO.CSD_REPAIRS_PUB_Service client = EBSProxyFactory.GetDepotInstance(ROCreateURL, ROServiceUsername, ROServicePassword, ROServiceTimeout); RO.SOAHeader hdr = new RO.SOAHeader(); hdr.Responsibility = "ORACLE_SUPPORT"; hdr.RespApplication = "CSS"; hdr.Org_Id = "204"; hdr.SecurityGroup = "STANDARD"; hdr.NLSLanguage = "AMERICAN"; client.SOAHeaderValue = hdr; if (ro.RepairNumber == null) { RO.InputParameters ip_create_ro = new RO.InputParameters(); ip_create_ro.P_API_VERSION_NUMBER = 1.0M; ip_create_ro.P_API_VERSION_NUMBERSpecified = true; ip_create_ro.P_INIT_MSG_LIST = "T"; ip_create_ro.P_COMMIT = "F"; ip_create_ro.P_CREATE_DEFAULT_LOGISTICS = "N"; RO.APPSCSD_REPAIRS_PUB_RX220752X1X6 ro_info = new RO.APPSCSD_REPAIRS_PUB_RX220752X1X6(); ro_info.INCIDENT_ID = ro.ServiceRequestID; ro_info.INCIDENT_IDSpecified = true; ro_info.UNIT_OF_MEASURE = ro.UnitOfMeasure; ro_info.REPAIR_TYPE_ID = ro.RepairTypeID; ro_info.REPAIR_TYPE_IDSpecified = true; ro_info.QUANTITY = ro.Quantity; ro_info.QUANTITYSpecified = true; ro_info.INVENTORY_ITEM_ID = ro.InventoryItemID; ro_info.INVENTORY_ITEM_IDSpecified = true; ro_info.APPROVAL_REQUIRED_FLAG = ro.ApprovalRequired; ro_info.CURRENCY_CODE = ro.Currency; ro_info.PROBLEM_DESCRIPTION = ro.ProblemDescription; ro_info.RESOURCE_ID = ro.ResourceID; ro_info.RESOURCE_IDSpecified = true; ro_info.AUTO_PROCESS_RMA = String.Empty; ro_info.SERIAL_NUMBER = ro.SerialNumber; if (!string.IsNullOrWhiteSpace(ro.HasValidSerialNumber)) ro_info.ATTRIBUTE15 = ro.HasValidSerialNumber; ip_create_ro.P_REPLN_REC = ro_info; Stopwatch stopwatch = new Stopwatch(); try { request = serializer.Serialize(ip_create_ro); stopwatch.Start(); RO.OutputParameters op_create_ro = client.CREATE_REPAIR_ORDER(ip_create_ro); stopwatch.Stop(); response = serializer.Serialize(op_create_ro); if (op_create_ro.X_RETURN_STATUS == "S") { result.RepairNumber = op_create_ro.X_REPAIR_NUMBER; result.RepairLineID = Convert.ToDecimal(op_create_ro.X_REPAIR_LINE_ID); logMessage = "Request of creating Repair Order (Success). Created RO Number: " + result.RepairNumber; logNote = "Request Payload: " + request; log.DebugLog(_logIncidentId, _logContactId, logMessage, logNote); logMessage = "Response of creating Repair Order (Success). Created RO Number: " + result.RepairNumber; logNote = "Response Payload: " + response; log.DebugLog(_logIncidentId, _logContactId, logMessage, logNote, (int)stopwatch.ElapsedMilliseconds); } else { result.ErrorMessage = "There has been an error communicating with EBS. Please check log for detail."; logMessage = "Request of creating Repair Order (Failure). " + op_create_ro.X_MSG_DATA; logNote = "Request Payload: " + request; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); logMessage = "Response of creating Repair Order (Failure). " + op_create_ro.X_MSG_DATA; logNote = "Response Payload: " + response; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); } } catch (Exception ex) { result.ErrorMessage = "There has been an error communicating with EBS. Please check log for detail."; logMessage = "Request of creating Repair Order (Failure). " + ex.Message; logNote = "Request Payload: " + request; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); logMessage = "Response of creating Repair Order (Failure). " + ex.Message; logNote = "Response Payload: " + response; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); handleEBSException(ex, "Create Repair Order", _logIncidentId, _logContactId); } } return result; }
public RepairOrder UpdateRO(RepairOrder ro, int _logIncidentId = 0, int _logContactId = 0) { //throw new NotImplementedException(); RepairOrder result = ro; string request = ""; string response = ""; string logMessage, logNote; if (String.IsNullOrWhiteSpace(ROUpdateURL) || String.IsNullOrWhiteSpace(ROServiceUsername) || String.IsNullOrWhiteSpace(ROServicePassword)) { throw new Exception("Provider's InitForRO not run."); } RO.CSD_REPAIRS_PUB_Service client = EBSProxyFactory.GetDepotInstance(ROCreateURL, ROServiceUsername, ROServicePassword, ROServiceTimeout); RO.SOAHeader hdr = new RO.SOAHeader(); hdr.Responsibility = "ORACLE_SUPPORT"; hdr.RespApplication = "CSS"; hdr.Org_Id = "204"; hdr.SecurityGroup = "STANDARD"; hdr.NLSLanguage = "AMERICAN"; client.SOAHeaderValue = hdr; if (ro.RepairNumber != null) { RO.InputParameters1 ip_update_ro_status = new RO.InputParameters1(); ip_update_ro_status.P_API_VERSION = 1.0M; ip_update_ro_status.P_API_VERSIONSpecified = true; ip_update_ro_status.P_INIT_MSG_LIST = "F"; ip_update_ro_status.P_COMMIT = "T"; RO.APPSCSD_REPAIRS_PUB_RX220752X3X7 repair_status = new RO.APPSCSD_REPAIRS_PUB_RX220752X3X7(); repair_status.REPAIR_NUMBER = ro.RepairNumber; repair_status.REPAIR_STATUS_ID = ro.RepairStatusID; repair_status.REPAIR_STATUS_IDSpecified = true; repair_status.FROM_STATUS_ID = ro.StoredRepairStatusID; repair_status.FROM_STATUS_IDSpecified = true; repair_status.OBJECT_VERSION_NUMBER = 0; repair_status.OBJECT_VERSION_NUMBERSpecified = true; repair_status.REASON_CODE = String.Empty; ip_update_ro_status.P_REPAIR_STATUS_REC = repair_status; RO.APPSCSD_REPAIRS_PUB_X220752X3X18 other = new RO.APPSCSD_REPAIRS_PUB_X220752X3X18(); other.CHECK_TASK_WIP = String.Empty; ip_update_ro_status.P_STATUS_UPD_CONTROL_REC = other; Stopwatch stopwatch = new Stopwatch(); try { request = serializer.Serialize(ip_update_ro_status); stopwatch.Start(); RO.OutputParameters1 op_update_ro_status = client.UPDATE_RO_STATUS(ip_update_ro_status); stopwatch.Stop(); response = serializer.Serialize(op_update_ro_status); if (op_update_ro_status.X_RETURN_STATUS == "S") { result.RepairNumber = ro.RepairNumber; logMessage = "Request of updating Repair Order (Success). RO Number = " + result.RepairNumber; logNote = "Request Payload: " + request; log.DebugLog(_logIncidentId, _logContactId, logMessage, logNote); logMessage = "Response of updating Repair Order (Success). RO Number = " + result.RepairNumber; logNote = "Response Payload: " + response; log.DebugLog(_logIncidentId, _logContactId, logMessage, logNote, (int)stopwatch.ElapsedMilliseconds); } else if (op_update_ro_status.X_RETURN_STATUS == "U") { result.ErrorMessage = String.Format("Cannot set status from {0} to {1}", ro.StoredRepairStatus, ro.RepairStatus); logMessage = "Request of updating Repair Order(Failure). RO Number = " + result.RepairNumber + " Error: " + result.ErrorMessage; logNote = "Request Payload: " + request; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); logMessage = "Response of updating Repair Order (Failure). RO Number = " + result.RepairNumber + " Error: " + result.ErrorMessage; logNote = "Response Payload: " + response; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); result.RepairNumber = "-1"; } else { result.ErrorMessage = "There has been an error communicating with EBS. Please check log for detail."; logMessage = "Request of updating Repair Order(Failure). RO Number = " +result.RepairNumber + " Error: " + op_update_ro_status.X_MSG_DATA; logNote = "Request Payload: " + request; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); logMessage = "Response of updating Repair Order (Failure). RO Number = " +result.RepairNumber + " Error: " + op_update_ro_status.X_MSG_DATA; logNote = "Response Payload: " + response; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); } } catch (Exception ex) { result.ErrorMessage = "There has been an error communicating with EBS. Please check log for detail."; logMessage = "Request of updating Repair Order(Failure). RO Number = " + result.RepairNumber + " Error: " + ex.Message; logNote = "Request Payload: " + request; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); logMessage = "Response of updating Repair Order (Failure). RO Number = " + result.RepairNumber + " Error: " + ex.Message; logNote = "Response Payload: " + response; log.ErrorLog(_logIncidentId, _logContactId, logMessage, logNote); handleEBSException(ex, "Update Repair Order Status"); } } return result; }