public QcInspectionResponse QueryQcInspection(string externalId) { var inspectionQuery = new MaterialInspectionReadByIDQueryMessage_sync(); inspectionQuery.MaterialInspection = new MaterialInspectionReadByIDQuery(); inspectionQuery.MaterialInspection.ID = new BusinessTransactionDocumentID(); inspectionQuery.MaterialInspection.ID.Value = externalId; MaterialInspectionReadByIDResponseMessage_sync sapResponse = new MaterialInspectionReadByIDResponseMessage_sync(); try { sapResponse = _sapClient.Read(inspectionQuery); } catch (Exception e) { return(new QcInspectionResponse { Errors = new List <string> { "Failure to read Qc Inspection: " + e.Message } }); } return(ParseSapQcInspectionRead(sapResponse)); }
public QcInspectionResponse ParseSapQcInspectionRead(MaterialInspectionReadByIDResponseMessage_sync sapResponse) { QcInspectionResponse response = new QcInspectionResponse(); BaseResponse tempRes = SapLogParser.ParseSapResponseLog(sapResponse.Log); response.Errors = tempRes.Errors; response.Warnings = tempRes.Warnings; try { if (sapResponse.MaterialInspection != null) { response.ExternalId = sapResponse.MaterialInspection.ID.Value; if (sapResponse.MaterialInspection.IdentifiedStockKey != null) { response.InventoryId = sapResponse.MaterialInspection.IdentifiedStockKey.ID.Value; } if (sapResponse.MaterialInspection.InspectionQuantity != null) { response.InspectionQty = sapResponse.MaterialInspection.InspectionQuantity.Value; } if (sapResponse.MaterialInspection.Decision != null && sapResponse.MaterialInspection.Decision.AttachmentFolder != null && sapResponse.MaterialInspection.Decision.AttachmentFolder.Document != null) { var documents = sapResponse.MaterialInspection.Decision.AttachmentFolder.Document; var pdfDocument = documents.FirstOrDefault(x => x.CategoryCode == "3" && x.TypeCode != null && x.TypeCode.Value == "10001"); response.DocumentExternalId = (pdfDocument != null && pdfDocument.UUID != null) ? pdfDocument.UUID.Value : null; } } } catch (Exception e) { response.Errors.Add("Failed to parse Qc Inspection Read Response from Sap: " + e.Message); return(response); } return(response); }