| POST | /Order |
|---|
import Foundation
import ServiceStack
// @DataContract
public class AddOrder : Codable
{
// @DataMember(Name="Auftrag")
public var Auftrag:Order
required public init(){}
}
// @DataContract
public class Order : Codable
{
// @DataMember(Name="Guid")
public var Guid:String
// @DataMember(Name="LastModified")
public var LastModified:Date?
// @DataMember(Name="AbrechnungseinheitGuid")
public var AbrechnungseinheitGuid:String
// @DataMember(Name="AuftragNummer")
public var AuftragNummer:String
// @DataMember(Name="Bezeichnung")
public var Bezeichnung:String
// @DataMember(Name="Anmerkung")
public var Anmerkung:String
// @DataMember(Name="UnterschriftBenoetigt")
public var UnterschriftBenoetigt:Bool
// @DataMember(Name="Erstellungsdatum")
public var Erstellungsdatum:Date
// @DataMember(Name="AuftragZustand")
public var AuftragZustand:OrderState
// @DataMember(Name="Termine")
public var Termine:IList<Appointment>
// @DataMember(Name="AuftragsPositionen")
public var AuftragsPositionen:IList<OrderPosition>
// @DataMember(Name="NutzeinheitZustaende")
public var NutzeinheitZustaende:IList<NutzeinheitOrderState>
// @DataMember(Name="GeraeteZustaende")
public var GeraeteZustaende:IList<DeviceOrderState>
// @DataMember(Name="Auftraggeber")
public var Auftraggeber:Orderer
// @DataMember(Name="Unterschriften")
public var Unterschriften:IList<Signature>
required public init(){}
}
// @DataContract
public class OrderState : Codable
{
// @DataMember(Name="LastModified")
public var LastModified:Date?
// @DataMember(Name="AuftragArten")
public var AuftragArten:IList<OrderKind?>
// @DataMember(Name="Bearbeitungsstatus")
public var Bearbeitungsstatus:ProcessState?
// @DataMember(Name="AbgeschlossenDatum")
public var AbgeschlossenDatum:Date?
required public init(){}
}
public enum ProcessState : String, Codable
{
case InProgress
case Updating
case Creating
case Completed
}
// @DataContract
public class Appointment : Codable
{
// @DataMember(Name="Guid")
public var Guid:String
// @DataMember(Name="Von")
public var Von:Date
// @DataMember(Name="Bis")
public var Bis:Date
// @DataMember(Name="Monteure")
public var Monteure:IList<AppointmentStoreUser>
// @DataMember(Name="Nutzeinheiten")
public var Nutzeinheiten:IList<AppointmentNutzeinheit>
required public init(){}
}
// @DataContract
public class AppointmentStoreUser : Codable
{
// @DataMember(Name="MonteurGuid")
public var MonteurGuid:String
required public init(){}
}
// @DataContract
public class AppointmentNutzeinheit : Codable
{
// @DataMember(Name="NutzeinheitGuid")
public var NutzeinheitGuid:String
required public init(){}
}
// @DataContract
public class OrderPosition : Codable
{
// @DataMember(Name="Guid")
public var Guid:String
// @DataMember(Name="LastModified")
public var LastModified:Date?
// @DataMember(Name="Anmerkung")
public var Anmerkung:String
// @DataMember(Name="SollMenge")
public var SollMenge:Int
// @DataMember(Name="IstMenge")
public var IstMenge:Int
// @DataMember(Name="NutzeinheitOrderPositions")
public var NutzeinheitOrderPositions:IList<NutzeinheitOrderPosition>
// @DataMember(Name="ArtikelGuid")
public var ArtikelGuid:String
required public init(){}
}
// @DataContract
public class NutzeinheitOrderPosition : Codable
{
// @DataMember(Name="NutzeinheitGuid")
public var NutzeinheitGuid:String
required public init(){}
}
// @DataContract
public class NutzeinheitOrderState : Codable
{
// @DataMember(Name="NutzeinheitGuid")
public var NutzeinheitGuid:String
// @DataMember(Name="LastModified")
public var LastModified:Date?
// @DataMember(Name="AuftragArten")
public var AuftragArten:IList<NutzeinheitOrderKind?>
// @DataMember(Name="Bearbeitungsstatus")
public var Bearbeitungsstatus:ProcessState?
// @DataMember(Name="AbgeschlossenDatum")
public var AbgeschlossenDatum:Date?
// @DataMember(Name="OsVersion")
public var OsVersion:String
// @DataMember(Name="AppVersion")
public var AppVersion:String
// @DataMember(Name="OsPlatform")
public var OsPlatform:String
// @DataMember(Name="AppGeraeteNummmer")
public var AppGeraeteNummmer:String
// @DataMember(Name="AmwInfoKeyGuid")
public var AmwInfoKeyGuid:String?
required public init(){}
}
// @DataContract
public class DeviceOrderState : Codable
{
// @DataMember(Name="GeraeteGuid")
public var GeraeteGuid:String
// @DataMember(Name="AuftragGuid")
public var AuftragGuid:String
// @DataMember(Name="AuftragArt")
public var AuftragArt:DeviceOrderKind?
// @DataMember(Name="Bearbeitungsstatus")
public var Bearbeitungsstatus:ProcessState?
// @DataMember(Name="AbgeschlossenDatum")
public var AbgeschlossenDatum:Date?
// @DataMember(Name="AmwInfo")
public var AmwInfo:String
required public init(){}
}
public enum DeviceOrderKind : String, Codable
{
case Assembly
case Maintenance
case Exchange
case Reading
case Inspection
case MainReading
}
// @DataContract
public class Orderer : Codable
{
// @DataMember(Name="Guid")
public var Guid:String
// @DataMember(Name="Person")
public var Person:Person
// @DataMember(Name="BetrieblichePosition")
public var BetrieblichePosition:String
required public init(){}
}
// @DataContract
public class Person : Codable
{
// @DataMember(Name="Guid")
public var Guid:String
// @DataMember(Name="LastModified")
public var LastModified:Date?
// @DataMember(Name="Nachname1")
public var Nachname1:String
// @DataMember(Name="Nachname2")
public var Nachname2:String
// @DataMember(Name="Nachname3")
public var Nachname3:String
// @DataMember(Name="Vorname1")
public var Vorname1:String
// @DataMember(Name="Vorname2")
public var Vorname2:String
// @DataMember(Name="Anmerkung")
public var Anmerkung:String
// @DataMember(Name="Anrede")
public var Anrede:String
// @DataMember(Name="Titel")
public var Titel:String
// @DataMember(Name="PersonKommunikationen")
public var PersonKommunikationen:[PersonCommunication] = []
required public init(){}
}
// @DataContract
public class PersonCommunication : Codable
{
// @DataMember(Name="Guid")
public var Guid:String
// @DataMember(Name="LastModified")
public var LastModified:Date?
// @DataMember(Name="Adresse")
public var Adresse:String
// @DataMember(Name="Anmerkung")
public var Anmerkung:String
// @DataMember(Name="KommunikationsFunktionGuid")
public var KommunikationsFunktionGuid:String
required public init(){}
}
// @DataContract
public class Signature : Codable
{
// @DataMember(Name="Guid")
public var Guid:String
// @DataMember(Name="Timestamp")
public var Timestamp:Date?
// @DataMember(Name="UnterschriftArt")
public var UnterschriftArt:SignatureKind?
// @DataMember(Name="NutzeinheitGuid")
public var NutzeinheitGuid:String
required public init(){}
}
public enum SignatureKind : String, Codable
{
case Nutzer
case Technician
}
public class AddOrderResponse : Codable
{
public var responseStatus:ResponseStatus
required public init(){}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /Order HTTP/1.1
Host: imm-con-gmbh-servamw.eras-online.de
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<AddOrder xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eras2Amw.Service.Server.ServiceModel.Eras2Client.Order">
<Auftrag xmlns:d2p1="http://schemas.datacontract.org/2004/07/Eras2Amw.Service.Server.ServiceModel.Common">
<d2p1:AbrechnungseinheitGuid>00000000-0000-0000-0000-000000000000</d2p1:AbrechnungseinheitGuid>
<d2p1:Anmerkung>String</d2p1:Anmerkung>
<d2p1:AuftragNummer>String</d2p1:AuftragNummer>
<d2p1:AuftragZustand>
<d2p1:AbgeschlossenDatum>0001-01-01T00:00:00</d2p1:AbgeschlossenDatum>
<d2p1:AuftragArten xmlns:d4p1="http://schemas.datacontract.org/2004/07/System" i:nil="true" />
<d2p1:Bearbeitungsstatus>InProgress</d2p1:Bearbeitungsstatus>
<d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified>
</d2p1:AuftragZustand>
<d2p1:Auftraggeber>
<d2p1:BetrieblichePosition>String</d2p1:BetrieblichePosition>
<d2p1:Guid>00000000-0000-0000-0000-000000000000</d2p1:Guid>
<d2p1:Person>
<d2p1:Anmerkung>String</d2p1:Anmerkung>
<d2p1:Anrede>String</d2p1:Anrede>
<d2p1:Guid>00000000-0000-0000-0000-000000000000</d2p1:Guid>
<d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified>
<d2p1:Nachname1>String</d2p1:Nachname1>
<d2p1:Nachname2>String</d2p1:Nachname2>
<d2p1:Nachname3>String</d2p1:Nachname3>
<d2p1:PersonKommunikationen i:nil="true" />
<d2p1:Titel>String</d2p1:Titel>
<d2p1:Vorname1>String</d2p1:Vorname1>
<d2p1:Vorname2>String</d2p1:Vorname2>
</d2p1:Person>
</d2p1:Auftraggeber>
<d2p1:AuftragsPositionen i:nil="true" />
<d2p1:Bezeichnung>String</d2p1:Bezeichnung>
<d2p1:Erstellungsdatum>0001-01-01T00:00:00</d2p1:Erstellungsdatum>
<d2p1:GeraeteZustaende i:nil="true" />
<d2p1:Guid>00000000-0000-0000-0000-000000000000</d2p1:Guid>
<d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified>
<d2p1:NutzeinheitZustaende i:nil="true" />
<d2p1:Termine i:nil="true" />
<d2p1:UnterschriftBenoetigt>false</d2p1:UnterschriftBenoetigt>
<d2p1:Unterschriften i:nil="true" />
</Auftrag>
</AddOrder>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<AddOrderResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eras2Amw.Service.Server.ServiceModel.Eras2Client.Order">
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
<d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d2p1:Meta>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</d2p1:Meta>
</ResponseStatus>
</AddOrderResponse>