Hvordan få standardkontakt-/adressedetaljer for installasjonssted/utstyr på ordre?
Hvilke felt er minimumskravene for å opprette en ordre i Handyman med API?
Teknisk minimumseksempel for et API-kall til Ordre-endepunktet
Business minimum call eksempel
Hvordan få alle åpne/aktive ordrenumre for en bestemt kunde?
Hvilke vedleggsformater er mulige, og hvordan kan vi laste disse opp (TIFF, JPG, PNG, osv.)?
Hvordan får vi ordrene vi trenger, med én eller flere status (f.eks. 1 og 2)?
Hvilke filtre fungerer for API-ene vi planlegger å bruke?
Hvordan få standardkontakt-/adresseopplysninger for installasjonssted/utstyr på en ordre?
Det er ingen standardkontakt for et installasjonssted, du kan samle de tilknyttede kontaktene til et ordreinstallasjonssted med følgende endepunkt: api/installations/{site-id}/contacts. Installasjonsstedets ID kan samles inn via følgende endepunkt: api/orders/{order-id}/installations?installationType=1 --> Id-egenskapen til det returnerte objektet/objektene.
Finnes det noen måte å oppdatere "Kundeordreens kundereferanse" eller "Rekvisisjon"-feltet via API-kall for en åpen ordre?
Begge feltoppdateringer bør fungere på api/orders-endepunktet (POST)
Dette gjelder også for api/weboffice/orders-endepunktet (POST), men siden dette endepunktet bruker en annen POST-modell (OrderCreateModel), er de tilsvarende feltene: CustomerReferenceText og Requisition
Hvilke felt er minimumskravene for å opprette en ordre i Handyman med API?
Det tekniske minimumseksempelet for et kall til Orders-endepunktet:
Eksempel på 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. Fra et forretningsmessig perspektiv er disse dataene ikke en meningsfull ordre.
Eksempel på minimumsforretningsanrop:
[
{
"OrderHead": {
"OrderDate": "{{$isoTimestamp}}",
"OrderName": "Bence Testing CW Export 17",
"EstimatedHours": 32,
"Requsition": "Ekstern referanse for ordren.",
"IsInternalOrder": false,
"DoNotSetAsPassive": false,
"CustomerReference": "Kundereferanse for ordren.",
"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": "Hr. 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,
"Adresse1": "Lebstück Mária",
"StreetNo": "63",
"Adresse2": "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",
"Parent": null,
"FixedPrice": null
},
{
"Level": 1,
"Value": "2",
"Description": "Additional work",
"Parent": null,
"FixedPrice": null
},
{
"Level": 2,
"Value": "1",
"Description": "Indoor work",
"Parent": null,
"FixedPrice": null
},
{
"Level": 2,
"Value": "2",
"Description": "Outdoor work",
"Parent": null,
"FixedPrice": 5000.0
}
]
},
"Status": 12,
"CustomerReference": {
"ExternalId": "31"
},
"ParticipantList": [
{
"EmployeeReference": {
"ExternalId": "10"
},
"MainParticipant": true
}
]
}
]
Eksempel Json oppretter en Ordre som er gyldig for noen forretningsmessige tilfeller.
Hvordan få alle åpne/aktive ordrenumre for en bestemt kunde?
- kun de aktive ordrene:
["Status", "<>", 14]
- s "Passive"-tilstanden i HMO, blir hver ordre med annen verdi betraktet som "Aktiv"
Hvilke vedleggsformater er mulige og hvordan kan vi laste opp disse (TIFF, JPG, PNG..)?
Du kan legge til enhver type vedlegg ved å bruke endepunkter for å legge til dokumenter. For eksempel, i tilfelle av ordre kan du bruke api/orders/{order-id}/documents POST-endepunktet og sende dataen slik (du bør spesifisere filtypen i "FilePath"-egenskapen og i "FileExtension". Bildet bør sendes som en byte array):
[
{
"HSDocumentID": "99",
"DocumentID": "178",
"Date": "2022-10-12T17:04:43.133",
"ChecklistRegistrationReference": null,
"EmployeeReference": {
"Id": 4,
"ExternalId": "2"
},
"Name": "test",
"Comment": "",
"SendToClient": usant,
"FilePath": "test.jpg",
"DocumentData": "000000000000000000000000000000000011000000000000000000000000000000011000000100000100000000000000000000000000000000000000000000000000111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
"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
}
]
Hvordan får vi ordrene vi trenger, med én eller flere Status (f.eks. 1 og 2)?
- Kan vi bruke: GET /api/ordre
- Kan vi gjøre én call for å få dette, eller må vi gjøre flere calls?
Det kommer an på hva slags status vi ser etter. Hvis det handler om statusen på ordren, for eksempel. ny ordre, endret på mobil, osv. Da finnes det ingen slik filter, men det er mulig å filtrere på aktive og fullførte ordre. Med Status spørringsparameter, ved å bruke følgende verdier:
All = 0,
Aktive = 1,
Fullførte = 2
Hva er forskjellen mellom disse:
- Handyman, Swagger (Netel): https://api.netelgroup.com/swagger/ui/index#/
- Handyman, Swagger (New): https://api.gsgroup.io/swagger/index.html
Dette er swagger for Common Api. Legacy-versjon for Handyman Api. Den ble designet for å få tilgang til flere Gsgroup-produkter med én Api. Har mindre funksjonalitet enn Handyman Api. For Handyman-kunder anbefaler vi ikke å bruke den!
Hvilke filtre fungerer for API-ene vi planlegger å bruke?
Det avhenger alltid av endepunktet selv. Noen av GET (liste) endepunktene har en ExternalId spørringsparameter som kan brukes til å filtrere elementer (f.eks. Ordre) etter deres ERP (IdBackoffice) identifikator.
Paginering støttes også for ulike endepunkter med pageSize og startIndex spørringsparametere
Merk: QA swagger har en bredere parameterliste av en eller annen grunn
Filteret er en spørringsparameter, den har en matriseinnhold, kan inneholde filterklausuler og logiske relasjoner.
Hver filterklausul må være en egen matrise med følgende struktur:
["felt","operator","verdi"]
Filtre for nødvendige operasjoner:
- kun de aktive ordrene:
["Status", "<>", 14]
- s tilstanden "Passiv" i HMO, blir hver ordre med en annen verdi betraktet som "Aktiv"
- endret innenfor en tidsperiode
["SistEndret", ">", "2023-04-13 00:00:00"]
Datoen kan være i går
- har en spesifikk kategori
[["Ordrekategori", "inneholder", "Dette er en ordrekategori"], "eller", ["Ordrekategori", "inneholder", "En annen ordrekategori"]]
eller-operatører kan brukes for ulike mulige verdier
Den fulle Filter-spørringsstrengen er som følger:
Filter=[["Status", "<>", 14], "og", ["SistEndret", ">", "2023-04-13 00:00:00"], "og", [["Ordrekategori", "inneholder", "Dette er en ordrekategori"], "eller", ["Ordrekategori", "inneholder", "En annen ordrekategori"]]]
For å redusere "støyen" i JSON-responsen, er det en mulighet til å projisere resultatet med Select spørringsparameter.
Vi kan ha en JSON med OrdreId, Ordrekategori (for bakre sjekk) og Sekundær kunde med verdi for spørringsparameteren:
["OrdreId", "SekundærKunde", "Ordrekategori"]
En full spørringsstreng for denne tilnærmingen ser slik ut:
api/weboffice/orders?Filter=[["Status","<>",14], "og", ["SistEndret", ">", "2023-04-13 00:00:00"], "og", [["Ordrekategori", "inneholder", "Dette er en ordrekategori"], "eller", ["Ordrekategori", "inneholder", "En annen ordrekategori"]]]&Select=["OrdreId", "SekundærKunde", "Ordrekategori"]
Hvilken operasjon skal vi bruke for å sende FinancialTransactionId, POST /api/orders/{orderId}/materials?
Det avhenger av hva FinancialTransactionId er for.
Hvilken operasjon kan vi bruke for å poste i loggfilen i Handyman: POST /api/orders/{orderId}/descriptions
Beskrivelses-endepunktet er ikke det samme som loggene for ordren. Sistnevnte kalles messagelog og endepunktet er tilgjengelig med samme navn.