Hur får man standardkontakt-/adressuppgifter för anläggning/objekt på en order ?
Vilka fält krävs som minst för att skapa en order i Handyman med API?
Tekniskt minimumexempel för ett anrop till Orders slutpunkt
Hur får man alla öppna/aktiva order# för en specifik kund?
Vilka bifogade filformat är möjliga och hur kan vi ladda upp dessa (TIFF, JPG, PNG..)?
Hur får vi de order som vi behöver, med en eller flera statusar (ex. 1 och 2)?
Vilka filter fungerar för de API:er vi planerar att använda?
Hur man får standardkontakt-/adressuppgifter för anläggning/objekt på order?
Det finns ingen standardkontakt för en anläggning, du kan samla de bifogade kontakterna för en orders anläggning med följande slutpunkt: api/installations/{site-id}/contacts. Anläggnings-id kan samlas in genom följande slutpunkt: api/orders/{order-id}/installations?installationType=1 --> Id-egenskapen för det/de returnerade objektet/objekten.
Finns det något sätt att uppdatera fältet "OrderHead's CustomerReference” eller “OrderHead's Requsition” via API-anrop för en öppen order?
Båda fältuppdateringarna bör fungera på api/orders-slutpunkten (POST)
Detta gäller även för api/weboffice/orders-slutpunkten (POST), men eftersom den slutpunkten använder en annan POST-modell (OrderCreateModel), är de motsvarande fälten: CustomerReferenceText och Requisition
Vilka fält krävs som minst för att skapa en order i Handyman med API?
Det tekniska minimiexemplet för ett anrop till Orders-slutpunkten:
Exempel-JSON:
[
{
"CustomerReference":
{
"ExternalId": "910478658"
},
"OrderHead":
{
"EstimatedHours": 32,
"OrderDate": "2023-03-13T12:46:42.329Z",
"OrderName": " Testing "
}
}
]
The Json above is a technical minimum for the Api call, meaning that the API will not respond with an Error. Från affärssynpunkt är dessa data inte en meningsfull order.
Exempel på affärsminsta samtal:
[
{
"OrderHead": {
"OrderDate": "{{$isoTimestamp}}",
"OrderName": "Bence Testing CW Export 17",
"EstimatedHours": 32,
"Requsition": "Extern referens för ordern.",
"IsInternalOrder": false,
"DoNotSetAsPassive": false,
"CustomerReference": "Kundreferens för ordern.",
"Message": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"ContactName": "Herr Kontakt",
"Telephone1": "+36419871234",
"Telephone2": "+3612045406",
"ContactEmail": "mr.contact@email.com",
"FixedPrice": 12345,
"ManagerReference": {
"ExternalId": "10"
},
"DepartmentReference": {
"ExternalId": "400"
},
"StartDate": "{{Order_start_date}}",
"FinishDate": "{{Order_end_date}}",
"ActualStartDate": "{{Actual_start_date}}",
"ActualFinishDate": "{{Actual_end_date}}",
"CategoryList": [
{
"CategoryBackOfficeId": "12",
"CategoryType": 1
},
{
"CategoryBackOfficeId": "2",
"CategoryType": 0
}
],
"Location": {
"Latitude": 47.563660,
"Longitude": 19.093232,
"AddressName": "HQ",
"BoligmappaEdokNumber": "Lebstück",
"BoligmappaPlantID": 1534,
"Address1": "Lebstück Mária",
"StreetNo": "63",
"Address2": "utca",
"PostalCode": "1041",
"PostalArea": "Budapest",
"Country": "Hu"
},
"KB_ValueList": [
{
"Level": 0,
"Value": "12345678910111",
"Description": "Test med lang id",
"Parent": null,
"FixedPrice": null
},
{
"Level": 0,
"Value": "Kan det være tekst",
"Description": "Test med enda lengre id",
"Parent": null,
"FixedPrice": null
},
{
"Level": 1,
"Value": "1",
"Description": "COntract",
"Förälder": null,
"FastPris": null
},
{
"Nivå": 1,
"Värde": "2",
"Beskrivning": "Ytterligare arbete",
"Förälder": null,
"FastPris": null
},
{
"Nivå": 2,
"Värde": "1",
"Beskrivning": "Inomhusarbete",
"Parent": null,
"FixedPrice": null
},
{
"Nivå": 2,
"Värde": "2",
"Beskrivning": "Utomhusarbete",
"Parent": null,
"FixedPrice": 5000.0
}
]
},
"Status": 12,
"Kundreferens": {
"ExternalId": "31"
},
"ParticipantList": [
{
"EmployeeReference": {
"ExternalId": "10"
},
"MainParticipant": true
}
]
}
]
The sample Json creates an Order which is valid for some businesss cases.
How to get all open/active order# for a specific customer?
- only the active orders:
["Status", "<>", 14]
- s the "Passive" state in HMO, every order with other value is considered as "Active"
Which attachment formats are possible and how can we upload these (TIFF, JPG, PNG..)?
You can add any type of attachment using document-adding endpoints. For example, in case of orders you can use the api/orders/{order-id}/documents POST endpoint and pass the data like this (you should specify the extension in the “FilePath” property and in the “FileExtension”. The image should be passed as a byte array):
[
{
"HSDocumentID": "99",
"DocumentID": "178",
"Date": "2022-10-12T17:04:43.133",
"ChecklistRegistrationReference": null,
"EmployeeReference": {
"Id": 4,
"ExternId": "2"
},
"Namn": "test",
"Kommentar": "",
"SkickaTillKlient": false,
"FilePath": "test.jpg",
"DocumentData": "000000000000000000000000000000000011000000000000000000000000000000011000000100000100000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
"FileExtension": "jpg",
"KB1": "String",
"KB2": "",
"Phase": "",
"AssetID": null,
"AssetPropertyID": null,
"BoligmappaID": null,
"BoligmappaUploadDate": null,
"SyncStatus": 0,
"SiteReference": null,
"EquipmentReference": null,
"DocumentType": 0,
"ResetSyncStatus": null,
"HSId": 99,
"BackOfficeId": "178",
"IsAvailableOnWeb": null
}
']'
Hur får vi de order som vi behöver, med en eller flera statusar (ex. 1 och 2)?
- Kan vi använda: GET /api/orders
- Kan vi göra ett samtal för att få detta eller behöver vi göra flera samtal?
Det beror på vilken typ av status vi letar efter. Om det handlar om statusen för ordern t.ex. ny beställning, ändrad på mobil osv. Då finns det ingen sådan filter, men det finns möjlighet att filtrera på aktiva och slutförda beställningar. Med Status frågeparameter kan du använda följande värden:
Alla = 0,
Aktiva = 1,
Slutförda = 2
Vad är skillnaden mellan dessa:
- Handyman, Swagger (Netel): https://api.netelgroup.com/swagger/ui/index#/
- Handyman, Swagger (Ny): https://api.gsgroup.io/swagger/index.html
Detta är swagger för Common Api. Äldre version för Handyman Api. Den var utformad för att få tillgång till flera Gsgroup-produkter med en Api. Har mindre funktionalitet än Handyman Api. För Handyman-kunder rekommenderar vi inte att använda den!
Vilka filter fungerar för de API:er vi planerar att använda?
Det beror alltid på själva ändpunkten. Några av GET (list) ändpunkterna har en ExternalId frågeparameter som kan användas för att filtrera objekt (t.ex. Order) på deras ERP (IdBackoffice) identifierare.
Sidindelning stöds också för olika ändpunkter med pageSize och startIndex frågeparametrar
Observera: QA-swagger har en bredare parameterlista av någon anledning
Filtret är en frågeparameter, den har en matrisinnehåll, kan innehålla filterklausuler och logiska relationer.
Varje filterklausul måste själv vara en array med följande struktur:
["fält","operator","värde"]
Filter för nödvändiga operationer:
- endast de aktiva order:
["Status", "<>", 14]
- s den "Passiva" statusen i HMO, betraktas varje order med annat värde som "Aktiv"
- ändrad inom en tidsram
["LastChanged", ">", "2023-04-13 00:00:00"]
Datumvärdet kan vara igår
- har en specifik kategori
[["OrderCategory", "contains", "Detta är en orderkategori"], "eller", ["OrderCategory", "contains", "En annan orderkategori"]]
eller operatorer kan användas för olika möjliga värden
Den fullständiga filterfrågesträngen är följande:
Filter=[["Status", "<>", 14], "och", ["LastChanged", ">", "2023-04-13 00:00:00"], "och", [["OrderCategory", "contains", "Detta är en orderkategori"], "eller", ["OrderCategory", "contains", "En annan orderkategori"]]]
För att minska "bruset" i svarsjsonen finns det möjlighet att projicera resultatet med Select frågeparameter.
Vi kan ha en json med OrderId, OrderCategory (för bakåtkontroll) och Sekundär kund med värde för frågeparameter:
["OrderId", "SecondaryCustomer", "OrderCategory"]
En komplett frågesträng för denna metod ser ut så här:
api/weboffice/orders?Filter=[["Status","<>",14], "och", ["LastChanged", ">", "2023-04-13 00:00:00"], "och", [["OrderCategory", "contains", "Detta är en orderkategori"], "eller", ["OrderCategory", "contains", "En annan orderkategori"]]]&Select=["OrderId", "SecondaryCustomer", "OrderCategory"]
Vilken operation ska vi använda för att skicka FinancialTransactionId, POST /api/orders/{orderId}/materials?
Det beror på vad FinancialTransactionId är för.
Vilken operation kan vi använda för att skicka till loggfilen i Handyman: POST /api/orders/{orderId}/descriptions
Beskrivningsändpunkten är inte samma som loggarna för beställningen. Den senare kallas messagelog och ändpunkten är tillgänglig på samma namn.