Endpoint URI di base dell'API
L'endpoint per tutte le chiamate API è: https://app.prodsmart.com/
Autenticazione
L'API ProdSmart utilizza una semplice autorizzazione con token. Innanzitutto, l'utente crea un nuovo token (o ne acquisisce uno esistente). Dopo aver acquisito il token, è possibile utilizzarlo per accedere ad altre risorse nell'ambito del token.
Il token di autenticazione dura 2 ore e successivamente è necessario richiederne uno nuovo con le credenziali API.
Tipi di supporto
Le richieste con un corpo messaggio utilizzano un JSON standard per impostare o aggiornare gli stati delle risorse.
Stati degli errori
Vengono utilizzati i codici di stato comuni della risposta HTTP.
JSON non valido
Se viene visualizzata una risposta che indica "JSON non valido", verificare il payload JSON in uso in JSONLint.
Limite di frequenza
Le richieste API sono limitate a 120 richieste al minuto per azienda. Una volta superato il limite, le richieste successive otterranno una risposta con il codice di stato HTTP 429 Troppe richieste.
Inoltre, un'intestazione mostra quanti secondi che è necessario attendere prima di ripetere la richiesta:
Retry-After: <delay-seconds>
Procedure consigliate per gestire il limite di frequenza:
Distribuire le richieste in modo uniforme nel tempo per evitare picchi di utilizzo che possono dare luogo a risposte limitate
Sviluppare una logica che utilizzi le informazioni Retry-After per sapere quando è possibile ripetere la richiesta
Assicurarsi che ci siano integrazioni non necessarie in esecuzione in parallelo, perché tutte le integrazioni verranno conteggiate ai fini del limite
Formato data
Il formato dei campi della data dell'API segue la rappresentazione ISO 8601:
AAAA-MM-GGThh:mm:ssZ
In questo formato la lettera T funziona come delimitatore obbligatorio, mentre Z è un indicatore del fuso orario, se necessario. Quando Z non viene utilizzato, il fuso orario applicato alla data coincide con quello impostato dall'azienda Prodsmart. La Z sta per fuso orario Zero, in quanto c'è un offset pari a 0.
Esempio di utilizzo:
Se l'orario utilizzato è un'ora prima dell'UTC, l'indicatore di zona deve essere "+01:00", "+0100" o semplicemente "+01".
Se il fuso orario di un'azienda è impostato su -05:00 e la data inviata ha il seguente formato: 2020-07-20T09:15:15Z, la data verrà visualizzata in Prodsmart nel seguente modo: 07/20/2020 - 04:15:15
Se il formato inviato è: 2020-07-20T09:15:15, la data verrà visualizzata in Prodsmart nel seguente modo: 07/20/2020 - 09:15:15 (con fuso orario -05:00), il che significa che se il fuso orario di un utente è impostato su -04:00 verrà visualizzata in questo modo: 07/20/2020 - 10:15:15
Integrazioni ERP comuni
Gli scenari tipici per le integrazioni ERP sono principalmente la sincronizzazione degli ordini di produzione, del materiale grezzo e del catalogo dei prodotti.
Ordini di produzione
Quando si crea un ordine di produzione sul lato ERP, l'ERP deve inviare i dati dell'ordine di produzione in formato JSON all'API di Prodsmart, utilizzando il servizio di creazione degli ordini di produzione. Per aggiornare il lato ERP quando un ordine di produzione viene creato o aggiornato in Prodsmart, esistono due possibilità. L'ERP può essere contattato dall'esterno e in questo caso, in Prodsmart, è possibile configurare i webhook che verranno chiamati per creare, aggiornare ed eliminare gli ordini di produzione in Prodsmart. Se non è possibile contattare l'ERP dall'esterno, questo deve eseguire il polling attivo del servizio di elenco degli ordini di produzione per rilevare le modifiche.
Materiali grezzi
In genere, il materiale grezzo viene gestito dall'ERP (o da WMS), pertanto Autodesk offre un servizio (aggiornamento del materiale grezzo dei prodotti) che consente all'ERP o a WMS di aggiornare il materiale grezzo corrente di un prodotto a una determinata quantità. Talvolta, è possibile informare l'ERP o WMS sulle modifiche al materiale grezzo di produzione osservando le modifiche agli ordini di produzione, utilizzando i webhook o un servizio Web di materiale grezzo corrente (su richiesta).
Prodotti
Talvolta viene sincronizzato anche il catalogo dei prodotti. In questo caso, viene gestito sempre dall'ERP che può creare prodotti e operazioni utilizzando il servizio di creazione dei prodotti.
Webhook
I webhook sono disponibili per gli eventi relativi agli ordini di produzione nel menu delle integrazioni dell'applicazione. Per utilizzare questa funzionalità, aggiungere la richiamata dell'URL dell'endpoint con gli eventi di notifica che si desidera ascoltare. Autodesk si impegna a inviare notifiche tramite webhook non appena si verificano gli eventi nel sistema. Se si dispone di un numero elevato di ordini di produzione che sono stati modificati contemporaneamente, è possibile che venga inviata una serie di notifiche in un breve periodo di tempo. Attualmente Autodesk non supporta la ripetizione dei tentativi.
Intestazioni
Intestazioni del webhook
x-prodsmart-topic: "productionOrder/create"x-prodsmart-hmac-sha256: "c938fe31379c0d89b37468e1cae9e3aab2d56834"x-prodsmart-api-version: "1"x-prodsmart-webhook-uuid: "91cb972d-b476-4936-947c-4be471b9da5b"x-prodsmart-triggered-at: "2023-08-29T20:39:46.142Z"
Nota:
x-prodsmart-topic: consente di identificare l'argomento del webhook
xx-prodsmart-hmac-sha256: viene utilizzato per verificare l'origine del webhook
x-prodsmart-api-version: versione dell'API utilizzata per inviare il webhook
x-prodsmart-webhook-uuid: consente di identificare un webhook univoco
x-prodsmart-triggered-at: ora in cui è stato attivato il webhook
Come verificare il webhook?
Prima di rispondere con un codice di stato 200, è fondamentale verificare che il webhook sia stato creato da Prodsmart. Questa verifica si esegue calcolando una firma.
Ogni richiesta di webhook include un'intestazione specifica denominata x-prodsmart-hmac-sha1, codificata in formato base64. Questa intestazione viene generata utilizzando sia il segreto API che i dati inclusi nella richiesta del webhook.
Per verificare l'autenticità del webhook, l'utente deve calcolare una firma utilizzando lo stesso segreto API e i dati forniti.
Una volta ottenuta la firma calcolata, confrontarla con il valore trovato nell'intestazione x-prodsmart-hmac-sha1 della richiesta di webhook in entrata.
Se la firma calcolata corrisponde al valore nell'intestazione x-prodsmart-hmac-sha1, si può avere la certezza che il webhook è stato effettivamente inviato da Prodsmart e che si può procedere rispondendo con un codice di stato 200.
Ordini di produzione
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
{ "products": [ { "product": "V23076", "quantity-ordered": 3500, "observations": "", "quantity-produced": 700 } ], "code": "Test Production Order", "shipping": { "code": "shipping 45" }, "serial-number": "", "description": "", "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "workers-assigned": [ { "number": 120 }, { "number": 11 }, { "number": 10 }, { "number": 1 } ], "ended": false, "machines": [ { "code": "A32" }, { "code": "F1" } ], "pieces-by-box": 20, "status": "onschedule", "running-status": "started", "notes": "", "id": 1}
Nota: Lo stato di esecuzione verrà eliminato quando viene eliminato l'ordine di produzione.
Timbro cartellino
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
{ "id": 932015, "date": "2022-05-19T14:35:30.000+01:00", "notification": "punchClock_created", "worker": { "number": 0 }, "entry": 1}
valori possibili della voce:
1 - In
0 - Out
valori possibili della notifica:
punchClock_created
punchClock_updated
punchClock_deleted
Movimento di inventario di spedizione
Movimento di inventario di spedizione creato/aggiornato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "out", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "sales-order": { "id": 555, "code": "sales-order-code", "client": { "id": 777, "code": "client-code" }, "parameters": [{ "name": "parameterX", "value": "valueX" }] }, "shipping": { "id": 666, "code": "shipping-code" }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valori possibili della notifica:
shipping_inventory_movement_created
shipping_inventory_movement_updated
Movimento di inventario di spedizione eliminato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
{ "id": 111}
valori possibili della notifica:
shipping_inventory_movement_deleted
Movimento di inventario di ricezione
Movimento di inventario di ricezione creato/aggiornato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "in", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "purchase-order": { "id": 555, "code": "purchase-order-code", "supplier": "supplier-code", "parameters": [{ "name": "parameterX", "value": "valueX" }] }, "receiving": { "id": 666, "code": "receiving-code" }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valori possibili della notifica:
receiving_inventory_movement_created
receiving_inventory_movement_updated
Movimento di inventario di ricezione eliminato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
{ "id": 111}
valori possibili della notifica:
receiving_inventory_movement_deleted
Movimento di inventario interno
Movimento di inventario interno creato/aggiornato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "in", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valori possibili della notifica:
internal_inventory_movement_created
internal_inventory_movement_updated
Movimento di inventario interno eliminato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
{ "id": 111}
valori possibili della notifica:
internal_inventory_movement_deleted
Movimento di preparazione materiale
Preparazione materiale creata/aggiornata
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "production-order": { "id": 333, "code": "production-order-code" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valori possibili della notifica:
material_staging_created
material_staging_updated
Preparazione materiale eliminata
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
{ "id": 111}
valori possibili della notifica:
material_staging_deleted
Lotto
Lotto creato/aggiornato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
[{ "code": "lot-code", "creation-date": "2022-02-21T00:00:00Z", "expiration-date": "2022-02-21T00:00:00Z", "supplier-lot": "supplier-lot-name", "product": { "id": 222, "code": "product-code", "uom": "uom" }}]
valori possibili della notifica:
lot_created
lot_updated
Lotto eliminato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
{ "id": 111}
valori possibili della notifica:
lot_deleted
Tempo di inattività
Tempo di inattività creato/aggiornato/eliminato
Richiesta (applicazione/JSON)
Metodo: POST
Corpo
{ "id": 1, "start-time": "2000-01-01T00:00:00.000+01:00", "end-time": "2099-12-31T23:59:59.999+01:00", "started-by": {}, "closed-by": { "number": 0 }, "workers": [ { "number": 0 } ], "machines": [], "product": "", "production-order": "", "checked-out": true, "downtime-type": "downtime1 type", "time-spent": "08:00:00", "event-type": "downTime_created"}
valori possibili della notifica:
downTime_created
downTime_updated
downTime_deleted
Modifica dei canali feed
Se per qualsiasi motivo non è possibile utilizzare i webhook, al momento Autodesk offre un'alternativa come stack di modifiche che memorizzerà le modifiche apportate nelle ultime 24 ore o dall'ultima richiesta di modifica tramite il servizio Web fornito. Per utilizzare questa funzionalità, è necessario creare un canale nel menu Integrazioni (https://app.prodsmart.com/admin/integrations). È possibile creare fino a 3 canali per organizzazione.
Sono disponibili sei tipi di canali di modifica:
DOWN_TIME
PRODUCT
PRODUCTION
PRODUCTION_ORDER
PUNCH_CLOCK
MATERIALE GREZZO
Come ottenere le modifiche
GET /api/changes/{channel}{?access_token}
Quando si chiama questo servizio, si ottiene un elenco di entità che sono state modificate perché sono state create/aggiornate/eliminate o perché il loro stato è cambiato. Si riceverà una serie con lo stato corrente delle entità (ordinate a partire dalle modifiche meno recenti a quelle più recenti), con un massimo di 25 per chiamata al servizio. Le entità ottenute dal servizio vengono rimosse dalla pila (fino a quando non vengono forniti nuovi aggiornamenti). Se non vengono apportate modifiche, il servizio restituisce una serie vuota ("[]").
URI di esempio
GET /api/changes/channel?access_token=
Parametri URI
Parametri URI
canale
stringa (obbligatorio)
il canale a cui accedere
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
lavoratori
valore booleano (facoltativo)
mostra l'elenco dei lavoratori nella risposta al canale Ordini di produzione
Richiesta
Richiesta
Content-Type: application/json
TEMPI DI INATTIVITÀ
[ { "id": 1435048, "start-time": "2022-04-22T14:47:00.000+01:00", "end-time": "2022-04-23T00:00:00.000+01:00", "started-by": {}, "closed-by": { "number": 1 }, "workers": [ { "number": 1 } ], "machines": [], "product": "", "production-order": "", "checked-out": true, "downtime-type": "Maintenance", "time-spent": "09:13:00", "event-type": "downTime_deleted", }]
Nota: Il campo event-type è presente solo quando viene eliminato un tempo di inattività.
ORDINI DI PRODUZIONE
[ { "products": [ { "product": "RN2", "quantity-ordered": 30.0, "observations": "", "quantity-produced": 0.0 } ], "code": "Production Order 123", "description": "", "shipping": {}, "start-date": "2022-04-21T00:00:00.000+01:00", "due-date": "2022-04-28T00:00:00.000+01:00", "ended": false, "machines": [], "notes": "", "is-active": true, "running-status": "notstarted", "status": "onschedule", "material-staging-complete": false, "id": 1379919 }]
Nota: Il campo running-status ha il valore deleted quando si elimina un ordine di produzione.
PRODOTTI
[ { "code": "V23076", "name": "V23076", "observations": "", "section": null, "unit-cost": null, "unit-price": null, "families": [], "operations": [], "components": [], "custom-fields": [], "notification": null, "serializable": null, "shipping-package-types": [], "external-stock": null, "stock-max": null, "min-quantity-reorder": null, "quantity-multiple": null, "scrap-allowance": null, "shelf-life": null, "parameters": [] }]
Nota: Il campo notification avrà il valore product_deleted quando viene eliminato un prodotto.
RECORD DI PRODUZIONE
[ { "production-order": { "code": "P1 - Week 14", "id": 3641 }, "operation": { "code": "CUT3", "product": "P1" }, "worker": { "number": 6 }, "machine": { "code": "WJC" }, "quantity": 0.0, "checked-out": false, "produced-waste": [], "consumptions": [], "total-time-factor": 1.0, "rework": false, "work-time": "00H00m00s", "start-time": "2022-04-22T14:43:00.000+01:00", "end-time": "2022-04-22T14:43:00.000+01:00", "status": "deleted", "show-check-in-checklist-and-c-f": false, "id": 12952533 }]
Nota: Il campo status sarà presente solo quando viene eliminato un record di produzione.
TIMBRO CARTELLINI
[ { "id": 932015, "date": "2022-05-19T14:35:30.000+01:00", "notification": "punchClock_deleted", "worker": { "number": 0 }, "entry": 1 }]
Nota: Il campo notification sarà presente solo quando viene eliminata una voce Timbro cartellino.
MATERIALE GREZZO
[ { "product-code": "P1", "stock": 2395.0, "lot": [ { "code": "Lot 0086", "stock": 500.0 } ] }]
Fornitore
Risorse per i fornitori dell'API Prodsmart.
FORNITORE
Un singolo oggetto Fornitore.
La risorsa Fornitore presenta i seguenti attributi:
id (fornito)
code (stringa, obbligatorio, univoco): codice del fornitore
name (stringa, obbligatorio): nome del fornitore
number (stringa, facoltativo): partita IVA del fornitore
expiration-date (data, facoltativo, formato AAAA-MM-GGTHH:MM:SSZ): data di scadenza del fornitore
addresses (serie, facoltativo)
code (stringa, obbligatorio, univoco): codice dell'indirizzo
name (stringa, facoltativo): nome dell'indirizzo
address (stringa, obbligatorio): riga dell'indirizzo
city (stringa, facoltativo): indirizzo della città
post-code (stringa, facoltativo): codice postale dell'indirizzo
state (stringa, facoltativo): stato/regione dell'indirizzo
country (stringa, obbligatorio): codice paese dell'indirizzo
default (valore booleano, facoltativo - impostato per default su false): se è true, è l'indirizzo di default del fornitore
contacts (serie, facoltativo)
phone-number (stringa, obbligatorio se non è presente alcun indirizzo e-mail): numero di telefono del contatto
e-mail (stringa, obbligatorio se non è presente un numero di telefono): e-mail del contatto
name (stringa, facoltativo): nome del contatto
default (valore booleano, facoltativo - impostato per default su false): se è true, è il contatto di default del fornitore
Regole di default per indirizzi/contatti:
Sia i contatti che gli indirizzi possono avere un solo contatto o indirizzo di default, rispettivamente
Se un fornitore ha più indirizzi, uno degli indirizzi deve essere quello di default
Se un fornitore ha più contatti, uno dei contatti deve essere quello di default
Durante la creazione/aggiornamento di un fornitore, se non viene fornito alcun contatto/indirizzo di default, il primo contatto/indirizzo sarà quello di default
Creazione di un fornitore
POST /api/suppliers{?access_token}
Stato: disponibile
Per creare un fornitore specificare un hash JSON degli attributi per il nuovo fornitore. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
POST /api/suppliers?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "email": "supplier@supplier.com", "phone-number": "12345678", "name": "Contact1", "default": true }, { "email": "supplier2@supplier2.com", "phone-number": "123456789", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "city": "Lisbon", "address": "Address 1 Street", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "city": "San Francisco", "address": "Address 1 Street", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Elenco di fornitori
GET /api/suppliers{?access_token}
Come elencare i fornitori. Questa azione richiede un access_token con ambito productions_write. Questo servizio viene impaginato e restituisce 25 fornitori per pagina.
URI di esempio
GET /api/suppliers?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
id
numero (facoltativo)
elenco fornitori filtrati in base all'ID
code
stringa (facoltativo)
elenco fornitori filtrati in base al codice
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }, { "id": 987356124, "code": "Supplier2", "name": "Supplier2", "number": "213457", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier3@supplier3.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier4@supplier4.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address3", "name": "Address3", "address": "Address 3 Street", "city": "Paris", "post-code": "111-111", "state": "Paris", "country": "FR", "default": true }, { "code": "Address4", "name": "Address4", "address": "Address 4 Street", "city": "Madrid", "post-code": "111-111", "state": "Madrid", "country": "ES", "default": false } ] } ]
Risposta 400Show
Risposta 400Show
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Recupero di un fornitore
GET /api/suppliers/{id}{?access_token}
Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/suppliers/id?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
id
numerico (obbligatorio)
ID fornitore
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Aggiornamento di un fornitore
PUT /api/suppliers/{id}{?access_token}
Per aggiornare un fornitore specificare un hash JSON degli attributi per il nuovo fornitore.
Contatti
I contatti del fornitore specificati sostituiranno i contatti correnti.
Se viene specificato un contatto con lo stesso nome di un contatto esistente, i valori del contatto con tale nome verranno sostituiti da quelli specificati.
Se non viene specificato alcun contatto, i contatti esistenti verranno rimossi.
Indirizzi
Gli indirizzi specificati sostituiranno gli indirizzi correnti.
Se viene fornito un indirizzo con lo stesso codice di un indirizzo esistente, i valori dell'indirizzo con tale codice saranno sostituiti da quelli specificati.
Se non viene specificato alcun indirizzo, gli indirizzi esistenti verranno rimossi.
Se ad un indirizzo sono associate delle entità, la richiesta non verrà eseguita poiché non è possibile rimuovere l'indirizzo.
Questa azione richiede un access_token con ambito productions_write.
URI di esempio
PUT /api/suppliers/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID cliente
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 201
Risposta 201
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Rimozione di un fornitore
DELETE /api/suppliers/{id}{?access_token}
URI di esempio
DELETE /api/suppliers/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID fornitore.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 204
Risposta 204
Corpo
Supplier was deleted
Risposta 412
Risposta 412
Corpo
It's not possible to delete this supplier. It has dependent entities.
Cliente
Risorse Cliente dell'API ProdSmart.
CLIENTE
Un singolo oggetto Cliente.
La risorsa Cliente presenta i seguenti attributi:
id (fornito)
code (stringa, obbligatorio, univoco): codice del cliente
name (stringa, obbligatorio): nome del cliente
number (stringa, facoltativo): numero del cliente
phone-number (stringa, facoltativo): numero di telefono del cliente
e-mail (stringa, facoltativo): e-mail del cliente
addresses (serie, facoltativo)
code (stringa, obbligatorio, univoco): codice dell'indirizzo
name (stringa, facoltativo): nome dell'indirizzo
address (stringa, obbligatorio): riga dell'indirizzo
city (stringa, facoltativo): indirizzo della città
post-code (stringa, facoltativo): codice postale dell'indirizzo
state (stringa, facoltativo): stato/regione dell'indirizzo
country (stringa, obbligatorio): codice paese dell'indirizzo
default (valore booleano, facoltativo - impostato per default su false): se è true, è l'indirizzo di default del cliente
contacts (serie, facoltativo)
phone-number (stringa, obbligatorio se non è presente alcun indirizzo e-mail): numero di telefono del contatto
e-mail (stringa, obbligatorio se non è presente un numero di telefono): e-mail del contatto
name (stringa, facoltativo): nome del contatto
default (valore booleano, facoltativo - impostato per default su false): se è true, è il contatto di default del cliente
Regole di default per indirizzi/contatti:
Sia i contatti che gli indirizzi possono avere un solo contatto o indirizzo di default, rispettivamente
Se un cliente ha più indirizzi, uno degli indirizzi deve essere quello di default
Se un cliente ha più contatti, uno dei contatti deve essere quello di default
Durante la creazione/aggiornamento di un cliente, se non viene fornito alcun contatto/indirizzo di default, il primo contatto/indirizzo sarà quello di default
Creazione di un cliente
POST /api/clients{?access_token}
Per creare un cliente specificare un hash JSON degli attributi per il nuovo cliente. Questa azione richiede un access_token con ambito productions_write. Per ora è possibile salvare un solo cliente. In futuro, se la richiesta è una serie anziché una risorsa, tutti gli elementi della serie verranno salvati.
URI di esempio
POST /api/clients?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "email": "supplier@supplier.com", "phone-number": "12345678", "name": "Contact1", "default": true }, { "email": "supplier2@supplier2.com", "phone-number": "123456789", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "city": "Lisbon", "address": "Address 1 Street", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "city": "San Francisco", "address": "Address 1 Street", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Elenco di clienti
GET /api/clients{?access_token}
Come elencare i clienti. Questa azione richiede un access_token con ambito productions_write. Questo servizio viene impaginato e restituisce 25 clienti per pagina.
URI di esempio
GET /api/clients?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
id
numero (facoltativo)
elenco di clienti filtrati in base all'ID
code
stringa (facoltativo)
elenco di clienti filtrati in base al codice
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }, { "id": 987356124, "code": "Supplier2", "name": "Supplier2", "number": "213457", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier3@supplier3.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier4@supplier4.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address3", "name": "Address3", "address": "Address 3 Street", "city": "Paris", "post-code": "111-111", "state": "Paris", "country": "FR", "default": true }, { "code": "Address4", "name": "Address4", "address": "Address 4 Street", "city": "Madrid", "post-code": "111-111", "state": "Madrid", "country": "ES", "default": false } ] } ]
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Recupero di un cliente
GET /api/clients/{id}{?access_token}
Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/clients/id?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
id
numerico (obbligatorio)
ID cliente
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Aggiornamento di un cliente
PUT /api/clients/{id}{?access_token}
Per aggiornare un cliente specificare un hash JSON degli attributi per il nuovo cliente.
Contatti
I contatti del fornitore specificati sostituiranno i contatti correnti.
Se viene specificato un contatto con lo stesso nome di un contatto esistente, i valori del contatto con tale nome verranno sostituiti da quelli specificati.
Se non viene specificato alcun contatto, i contatti esistenti verranno rimossi.
Indirizzi
Gli indirizzi specificati sostituiranno gli indirizzi correnti.
Se viene fornito un indirizzo con lo stesso codice di un indirizzo esistente, i valori dell'indirizzo con tale codice saranno sostituiti da quelli specificati.
Se non viene specificato alcun indirizzo, gli indirizzi esistenti verranno rimossi.
Se ad un indirizzo sono associate delle entità, la richiesta non verrà eseguita poiché non è possibile rimuovere l'indirizzo.
Questa azione richiede un access_token con ambito productions_write.
URI di esempio
PUT /api/clients/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID cliente
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses":[ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ]}
Risposta 201
Risposta 201
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Rimozione di un cliente
DELETE /api/clients/{id}{?access_token}
URI di esempio
DELETE /api/clients/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID cliente
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 204
Risposta 204
Corpo
Client was deleted
Risposta 412
Risposta 412
Corpo
It's not possible to delete this client. It has dependent entities.
Ordine di vendita
Risorse ClientOrder dell'API ProdSmart.
ORDINE DI VENDITA
Un singolo oggetto Ordine di vendita. La risorsa Ordine di vendita è una delle risorse più importanti dell'API ProdSmart.
La risorsa Ordine di vendita presenta i seguenti attributi:
id (fornito)
code (stringa, obbligatorio): codice ordine di vendita
client (stringa, facoltativo): codice del cliente
observations (stringa, facoltativo): osservazioni sull'ordine di vendita
products (serie, obbligatorio, non vuoto)
code (stringa, obbligatorio, univoco): codice del prodotto
quantity (double, obbligatorio, >0): quantità ordinata
due-date (data, facoltativo, formato AAAA-MM-GGTHH:MM:SSZ): data di scadenza della spedizione
requested-date (data, facoltativo, formato AAAA-MM-GGTHH:MM:SSZ): data di richiesta della spedizione
location (stringa, facoltativo): posizione, se multisito
price (double, facoltativo): prezzo del prodotto
parameters (stringa, facoltativo): contiene un attributo specifico dell'ordine di vendita
Creazione di un ordine di vendita
POST /api/client-order/{?access_token}
Per creare un ordine di vendita, fornire un hash JSON degli attributi per il nuovo ordine di vendita. Questa azione richiede un access_token con ambito productions_write. Per ora è possibile salvare un solo ordine di vendita. In futuro, se la richiesta è una serie anziché una risorsa, tutti gli elementi della serie verranno salvati.
URI di esempio
POST /api/client-order/?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "billing-address": "San Francisco", "delivery-address": "Delivery address code", "location": "location code", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "delivery-address":"San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price":502, "delivery-address":"Los Angeles" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ]}
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "billing-address":"San Francisco", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "delivery-address":"San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price":502, "delivery-address":"Los Angeles" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ]}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Elenco di ordini di vendita
GET /api/client-order/{?access_token}
Per elencare gli ordini di vendita. Più parametri verranno trattati come condizione AND. Questa azione richiede un access_token con ambito productions_write. Questo servizio viene impaginato e restituisce 25 ordini di vendita per pagina.
URI di esempio
GET /api/client-order/?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
due-date-before
data (facoltativo)
elenco di ordini di vendita con data di scadenza precedente a questa
due-date-after
data (facoltativo)
elenco di ordini di vendita con data di scadenza successiva a questa
client
stringa (facoltativo)
codice macchina
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ] }, { "id": 987356124, "code": "CO123 - Week 48", "client": "Client X", "observations": "", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 70, "due-date": "2019-08-23T18:00:00Z", "requested-date": "2019-01-16T15:19:54Z", "price": 140 }, { "code": "V23077", "quantity": 69, "due-date": "2016-08-23T18:00:00Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Priority" } ] }]
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Recupero di un ordine di vendita
GET /api/client-order/{id}{?access_token}
Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/client-order/id?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
id
numerico (obbligatorio)
ID ordine di vendita
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Priority" } ]}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Aggiornamento di un ordine di vendita
PUT /api/client-order/{?access_token}
Per aggiornare un ordine di vendita, fornire un hash JSON degli attributi per il nuovo ordine di vendita. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
PUT /api/client-order/?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "billing-address": "San Francisco", "location": "location code", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "billing-address": "San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "billing-address": "Los Angeles" } ]}
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "billing-address": "San Francisco", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "billing-address": "San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "billing-address": "Los Angeles" } ]}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Rimozione di un ordine di vendita
DELETE /api/client-order/{id}{?access_token}
URI di esempio
DELETE /api/client-order/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID ordine di vendita
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 204
Risposta 204
Corpo
Client order was deleted
Risposta 409
Risposta 409
Corpo
Client order already has production orders created or other entities associated, cannot be removed.
Ordine d'acquisto
Risorse Ordine di acquisto dell'API ProdSmart.
ORDINE DI ACQUISTO
Un singolo oggetto Ordine di acquisto. La risorsa Ordine di acquisto è una delle risorse più importanti dell'API ProdSmart.
La risorsa Ordine di acquisto presenta i seguenti attributi:
id (fornito)
code (stringa, obbligatorio): codice dell'ordine fornitore
supplier (stringa, facoltativo): codice del fornitore
billing-address (stringa, facoltativo): indirizzo di fatturazione
observations (stringa, facoltativo): osservazioni sull'ordine di acquisto
products (serie, obbligatorio, non vuoto)
code (stringa, obbligatorio, univoco): codice del prodotto
quantity (double, obbligatorio, >0): quantità richiesta
due-date (data, facoltativo, formato AAAA-MM-GGTHH:MM:SSZ): data di scadenza della ricezione
requested-date (data, facoltativo, formato AAAA-MM-GGTHH:MM:SSZ): data di richiesta della ricezione
cost (double, facoltativo): costo del prodotto
uom (stringa, facoltativo): unità di misura del prodotto
delivery-address (stringa, facoltativo): indirizzo di consegna della ricezione
parameters (stringa, facoltativo): parametri dell'ordine di acquisto
approval-status (stringa, facoltativo): bozza, in revisione, approvato, confermato, rifiutato
Creazione di un ordine di acquisto
POST /api/purchase-orders/{?access_token}
Per creare un ordine di acquisto, specificare un hash JSON degli attributi per il nuovo ordine di acquisto. Questa azione richiede un access_token con ambito productions_write. Per ora è possibile salvare un solo ordine di acquisto. In futuro, se la richiesta è una serie anziché una risorsa, tutti gli elementi della serie verranno salvati.
URI di esempio
POST /api/purchase-orders/?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "billing-address": "Lisbon", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "uom": "Box", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "approval-status": "draft", "active": true}
Risposta 201
Risposta 201
Intestazioni
Content-Type: application/json
Corpo
{ "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "billing-address": "Lisbon", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "uom": "Box", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "approval-status": "draft", "active": true}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Recupero di un ordine di acquisto
GET /api/purchase-orders/{id}{?access_token}
Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/purchase-orders/id?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
id
numerico (obbligatorio)
ID ordine di acquisto
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Aggiornamento di un ordine di acquisto
PUT/api/purchase-orders/{id}{?access_token}
Per aggiornare un ordine di acquisto, specificare un hash JSON degli attributi per il nuovo ordine di acquisto. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
PUT /api/purchase-orders/id?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
id
numerico (obbligatorio)
ID ordine di acquisto
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Risposta 201
Risposta 201
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Rimozione di un ordine di acquisto
DELETE /api/purchase-orders/{id}{?access_token}
URI di esempio
DELETE /api/purchase-orders/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID ordine di acquisto.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 204
Risposta 204
Corpo
Purchase order was deleted
Risposta 409
Risposta 409
Corpo
Purchase order already has production orders created or other entities associated, cannot be removed.
Elenco degli ordini di acquisto
GET /api/purchase-orders{?access_token}
Come elencare gli ordini di acquisto. Più parametri verranno trattati come condizione AND. Questa azione richiede un access_token con ambito productions_write. Questo servizio viene impaginato e restituisce 25 ordini di vendita per pagina.
URI di esempio
GET /api/purchase-orders?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
id
numero (facoltativo)
elenco ordini di acquisto filtrati in base all'ID ordine di acquisto
code
stringa (facoltativo)
elenco ordini di acquisto filtrati in base al codice ordine di acquisto
due-date-before
data (facoltativo)
elenco di ordini di acquisto con data di scadenza precedente a questa
due-date-after
data (facoltativo)
elenco di ordini di acquisto con data di scadenza successiva a questa
fornitore
stringa (facoltativo)
elenco ordini di acquisto filtrati in base al codice fornitore
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "id": 987356123, "code": "PO123 - Week 47", "creation-date": "2023-04-19T08:30:01Z", "supplier": "Supplier X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2023-01-16T15:19:54Z", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2023-01-16T15:19:54Z" } ] }, { "id": 987356124, "code": "PO123 - Week 48", "supplier": "Supplier X", "observations": "", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 70, "due-date": "2023-08-23T18:00:00Z", "requested-date": "2023-01-16T15:19:54Z", "cost": 140 }, { "code": "V23077", "quantity": 69, "due-date": "2023-08-23T18:00:00Z", "requested-date": "2023-01-16T15:19:54Z" } ] }]
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Ordine di produzione
Risorse Ordine di produzione dell'API ProdSmart.
ORDINE DI PRODUZIONE
Un singolo oggetto Ordine di produzione. La risorsa Ordine di produzione è una delle risorse più importanti dell'API ProdSmart. Rappresenta l'ordine di gestione per la produzione di una quantità predeterminata di prodotti da parte di lavoratori definiti durante un periodo prestabilito.
La risorsa Ordine di produzione presenta i seguenti attributi:
id (fornito)
code (stringa, obbligatorio): codice dell'ordine di produzione
start-date (data, obbligatorio, formato AAAA-MM-GGTHH:MM:SSZ): data di pianificazione dell'inizio dell'ordine di produzione
due-date (data, obbligatorio, formato AAAA-MM-GGTHH:MM:SSZ): data di scadenza dell'ordine di produzione
products (serie, obbligatorio, non vuoto): prodotti e quantità ordinate
product (stringa, obbligatorio, univoco): codice del prodotto
quantity-ordered (numero intero, obbligatorio, >0): quantità ordinata
observations (facoltativo): nota relativa a questo prodotto
quantity-produced (numero intero, fornito, >0): quantità prodotta
description (facoltativo): descrizione per questo ordine di produzione
shipping (facoltativo): codice di spedizione per questo ordine
workers-assigned (serie, facoltativo) -
number: numero del lavoratore
machines (serie, facoltativo)
code: codice macchina
serial-number (facoltativo)
description (facoltativo)
note (facoltativo)
status (fornito): pianificato (prima di start_date e completezza = 0), in pianificazione (prima di end_date e completezza < 100%), in ritardo (dopo end_date completezza < 100%), completato (completezza >= 100%)
running-status (fornito): non avviato (nessuna produzione), avviato (con produzioni), chiuso (chiuso manualmente o per completamento), archiviato (archiviato manualmente)
L'ID dello stato viene assegnato dall'API ProdSmart al momento della creazione.
Recupero di un ordine di produzione
GET /api/production-orders/{id}{?access_token}
Per recuperare un ordine di produzione, è sufficiente eseguire una richiesta GET con l'ID dell'ordine di produzione. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/production-orders/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID ordine di produzione.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
lavoratori
valore booleano (facoltativo)
mostrare l'elenco di lavoratori nella risposta
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
{ "products": [ { "product": "V23076", "quantity-ordered": 3500, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "material-staging-complete": true, "id": 3990}
Aggiornamento/sostituzione di un ordine di produzione
PUT /api/production-orders/{id}{?access_token}
Per aggiornare un ordine di produzione, è sufficiente eseguire una richiesta PUT con l'ID dell'ordine di produzione. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
PUT /api/production-orders/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID ordine di produzione.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
lavoratori
valore booleano (facoltativo)
mostrare l'elenco di lavoratori nella risposta
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "products": [ { "product": "V23076", "quantity-ordered": 4000, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": "location code", "material-staging-complete": true, "id": 3990}
Risposta 200
Risposta 200
Corpo
{ "products": [ { "product": "V23076", "quantity-ordered": 4000, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "material-staging-complete": true, "id": 3990}
Rimozione di un ordine di produzione
DELETE /api/production-orders/{id}{?access_token}
URI di esempio
DELETE /api/production-orders/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID ordine di produzione.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 204
Risposta 204
Corpo
Production order was deleted
Creazione di un ordine di produzione
POST /api/production-orders/{?access_token}
Per creare un ordine di produzione specificare un hash JSON degli attributi per il nuovo ordine di produzione. Questa azione richiede un access_token con ambito productions_write. Per ora è possibile salvare un solo ordine di produzione. In futuro, se la richiesta è una serie anziché una risorsa, tutti gli elementi della serie verranno salvati.
URI di esempio
POST /api/production-orders/?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
lavoratori
valore booleano (facoltativo)
mostrare l'elenco di lavoratori nella risposta
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "products": [ { "product": "productExample", "quantity-ordered": 4500, "observations": "" } ], "code": "exampleCode", "shipping": "shippingExample", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "parameters": [ { "name": "Custom Field Name", "value": "123" }, { "name": "Custom Field Name 2", "value": "456" } ], "workers-assigned": [ { "number": 1 }, { "number": 3 } ], "worker-groups": [ { "name": "All" } ], "ended": false, "machines": [ { "code": "exampleMachine" }, { "code": "F1" } ], "pieces-by-box": 20, "notes": "", "location": "location code", "active": true}
Risposta 201
Risposta 201
Corpo
{ "products": [ { "product": "productExample", "quantity-ordered": 4500, "observations": "", "quantity-produced": 0 } ], "code": "exampleCode", "shipping": "shippingExample", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "workers-assigned": [ { "number": 1 }, { "number": 2 } { "number": 3 } { "number": 4 } ], "ended": false, "machines": [ {"code": "exampleMachine"}, {"code": "F1"} ], "pieces-by-box": 20, "status": "scheduled", "running-status": "notstarted", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "active": true, "id": 11110}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Elenco degli ordini di produzione
GET /api/production-orders/{?access_token}
Come elencare gli ordini di produzione. Più parametri verranno trattati come condizione AND. Questa azione richiede un access_token con ambito productions_write. Questo servizio viene impaginato e restituisce 25 ordini di produzione per pagina.
URI di esempio
GET /api/production-orders/?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
start-date-before
data (facoltativo)
elenco ordini di produzione con data di inizio precedente a questa
start-date-after
data (facoltativo)
elenco ordini di produzione con data di inizio successiva a questa
due-date-before
data (facoltativo)
elenco ordini di produzione con data di scadenza precedente a questa
due-date-after
data (facoltativo)
elenco ordini di produzione con data di scadenza successiva a questa
running-status
stringa (facoltativo)
non avviato, avviato, chiuso, archiviato
attivo
valore booleano (facoltativo)
elenco dei soli ordini di produzione attivi (true) o non attivi (false)
prodotto
stringa (facoltativo)
codice prodotto
macchina
stringa (facoltativo)
codice macchina
lavoratori
valore booleano (facoltativo)
mostrare l'elenco di lavoratori nella risposta
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "products": [ { "product": "exampleProduct", "quantity-ordered": 4500, "observations": "", "quantity-produced": 0 } ], "code": "exampleCode", "shipping": "Shipping 45", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "workers-assigned": [ { "number": 10 }, { "number": 1 } ], "ended": false, "machines": [ { "code": "exampleMachine" }, { "code": "F1" } ], "pieces-by-box": 20, "status": "scheduled", "running-status": "notstarted", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "active": true, "id": 8763990 }]
Notifica di un problema relativo all'ordine di produzione
POST /api/production-orders/{id}/notify{?access_token}
Servizio che invia un breve messaggio sul feed e aggiunge un messaggio sull'ordine di produzione.
short-message (stringa, obbligatorio): messaggio pubblicato nel feed, lunghezza massima 140 caratteri
message (stringa,facoltativo): messaggio aggiunto alla sezione delle note nel PO
URI di esempio
POST /api/production-orders/id/notify?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID ordine di produzione.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "short-message": "example", "message": "complete message "}
Risposta 200
Risposta 200
Attivazione di un ordine di produzione
POST /api/production-orders/{id}/activate{?access_token}
Servizio che attiva l'ordine di produzione.
URI di esempio
POST /api/production-orders/id/activate?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID ordine di produzione.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{}
Risposta 200
Risposta 200
Risposta 204
Risposta 204
Corpo
Production Order was already active
Risposta 405
Risposta 405
Corpo
Production Order was closed or archived and cannot be activated
Prodotti
Risorse del prodotto dell'API ProdSmart.
PRODOTTO
Un singolo oggetto Prodotto. La risorsa Prodotto è una delle risorse più importanti dell'API ProdSmart. Rappresenta i prodotti di una fabbrica e contiene le operazioni necessarie per la produzione. Questo metodo crea nuovi prodotti e le relative operazioni. Può essere utilizzato anche
La risorsa Prodotto presenta i seguenti attributi:
code (stringa, obbligatorio): codice del prodotto
name (stringa, obbligatorio): nome del prodotto
section (stringa, facoltativo)
families (serie, facoltativo)
operations (serie, facoltativo): operazioni per la produzione del prodotto
code (stringa, obbligatorio): codice dell'operazione
name (stringa, obbligatorio): nome dell'operazione
waste (serie, facoltativo)
task-durations (serie, facoltativo, max:1)
durata (tempo, facoltativo, ad esempio formato "10H59m59s"): tempo medio di esecuzione dell'operazione, in teoria
duration-customer (tempo, facoltativo, ad esempio formato "10H59m59s"): tempo previsto nel budget
ratio-quantity (double, facoltativo, default: 1.0): volume prodotto in ogni istanza di questa operazione
times-per-product (numero intero, facoltativo, default: 1): numero di volte in cui deve essere eseguita l'operazione per completare un'unità di prodotto
custom-fields (serie, facoltativo, deve esistere nel sistema): campi personalizzati da aggiungere all'operazione
name (stringa, obbligatorio): nome del campo personalizzato, già creato nel sistema
machines (serie, facoltativo, deve esistere nel sistema): macchine che possono essere utilizzate per eseguire l'operazione
code (stringa, obbligatorio): codice macchina, già creato nel sistema
disabled (valore booleano, facoltativo): disabilita l'operazione
optional (valore booleano, facoltativo): imposta l'operazione come facoltativa
recovery (valore booleano, facoltativo): imposta l'operazione come recupero
no-time (valore booleano, facoltativo): non registra i tempi di produzione
no-quantity (valore booleano, facoltativo): non registra la quantità di produzione
as-team (valore booleano, facoltativo): operazione da eseguire come team
max-waste-threshold (double, facoltativo):- rapporto massimo di sprechi da consentire
I campi non presenti nella richiesta verranno impostati con i valori di default. Quando si utilizza questo metodo per prodotti/operazioni esistenti, i campi non presenti verranno considerati eliminazioni.
Recupero di un prodotto
GET /api/products/{code}{?access_token}
Per recuperare un prodotto, è sufficiente eseguire una richiesta GET con il codice del prodotto. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/products/code?access_token=
Parametri URI
Parametri URI
code
Stringa (obbligatorio)
Codice prodotto.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
{ "code": "P11", "name": "Product 11", "section": null, "families": null, "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": null, "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "custom-fields": null, "machines": null, "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "max-waste-threshold": null, "section": { "name": "specialsection" }, "id": 100 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "label": { "code": "labelCode" }, "serializable": true, "id": 24}
Risposta 404
Risposta 404
Corpo
If product with the provided code doesn't exist.
Creazione di un prodotto
POST /api/products{?access_token}
Per creare un prodotto, specificare un hash JSON degli attributi per il nuovo prodotto e le relative operazioni. Questa azione richiede un access_token con ambito productions_write. È possibile creare più operazioni contemporaneamente.
URI di esempio
POST /api/products?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": false, "no-time": false, "no-quantity": false, "as-team": false, "multi-po": false, "print-production-barcode": false, "prepare-batch-order": false, "section": { "name": "CUT" } } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true}
Risposta 201
Risposta 201
Corpo
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } "id":560 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true "id":120}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Aggiornamento di un prodotto
PUT /api/products/{code}{?access_token}
Per aggiornare un prodotto, specificare un codice e un hash JSON degli attributi per il prodotto esistente e le relative operazioni. Questa azione richiede un access_token con ambito productions_write. Per ora è possibile salvare un solo prodotto, ma è possibile creare più operazioni contemporaneamente.
URI di esempio
PUT /api/products/code?access_token=
Parametri URI
Parametri URI
code
stringa (obbligatorio)
Codice prodotto.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true}
Risposta 201
Risposta 201
Corpo
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } "id":560 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true "id":120}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Eliminazione di un prodotto
DELETE /api/products/{code}{?access_token}
Per eliminare un prodotto, specificare il codice del prodotto.
URI di esempio
DELETE /api/products/code?access_token=
Parametri URI
Parametri URI
code
stringa (obbligatorio)
Codice prodotto.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
Content-Type: application/json
Risposta 204
Risposta 204
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Elenco di prodotti
GET /api/products{?access_token}
Come elencare i prodotti e le relative operazioni. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/products?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
product-family-code
stringa (facoltativo)
elenco di prodotti appartenenti alla famiglia di prodotti specificata
modification-date
data (facoltativo)
elenco di prodotti modificati tramite il back office successivamente alla data specificata
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
{ "code": "P11", "name": "Product 11", "observations": "", "section": null, "unit-cost": null, "unit-price": 4.32000, "families": [ { "code": "FG", "name": "Finished Goods" } ], "operations": [ { "code": "op1", "name": "op1", "waste": null, "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" } ], "machines": null, "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "max-waste-threshold": null, "section": { "name": "specialsection" }, "id": 123 } ], "components": [ { "code": "SUGAR", "name": "Sugar", "quantity": 0.0015, "operation": "MIXING" }, { "code": "VANILLA", "name": "Vanilla", "quantity": 0.0008, "operation": "MIXING" } ], "serializable": false, "custom-fields": null}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
DISTINTA COMPONENTI DEL PRODOTTO
La risorsa Distinta componenti del prodotto stabilisce i materiali utilizzati per la produzione di un prodotto specifico. La distinta componenti presenta i seguenti attributi:
product-code: prodotto principale
bom (serie, obbligatorio)
product-code (stringa, obbligatorio): codice prodotto del componente/consumo
quantity (double, obbligatorio): quantità
operation-code (stringa, facoltativo): codice dell'operazione in cui viene utilizzato il materiale definito in product-code. Se vuoto, il consumo si verifica durante la prima operazione del processo di produzione per questo prodotto.
Aggiornamento della distinta componenti del prodotto
POST /api/bom{?access_token}
Per aggiornare la distinta componenti di un prodotto, specificare un hash JSON degli attributi del nuovo prodotto e le relative operazioni. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
POST /api/bom?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "product-code": "bicycle", "bom": [ { "product-code": "wheel", "quantity": 2, "operation-code": "assemble" }, { "product-code": "seat", "quantity": 1, "operation-code": "assemble" } ]}
Risposta 201
Risposta 201
{ "product-code": "bicycle", "bom": [ { "product-code": "wheel", "quantity": 2, "operation-code": "assemble" }, { "product-code": "seat", "quantity": 1, "operation-code": "assemble" } ]}
Risposta 404
Risposta 404
Corpo
Main product not found
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
MATERIALE GREZZO PRODOTTI
La risorsa Materiale grezzo specifica l'inventario disponibile per un determinato prodotto.
product-code (stringa, obbligatorio)
stock (double, obbligatorio)
date (data, facoltativo): data di conteggio materiale grezzo
Aggiornamento materiale grezzo del prodotto
POST /api/stock{?access_token}
Per aggiornare il materiale grezzo di un prodotto, specificare un hash JSON degli attributi per il materiale grezzo corrente. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
POST /api/stock?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "product-code": "bicycle", "stock": 200.5, "date": "2023-08-16T17:15:15Z"}
Risposta 201
Risposta 201
Corpo
Request successful
Risposta 404
Risposta 404
Corpo
Product not found
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Famiglie di prodotti
Risorse del prodotto dell'API ProdSmart.
FAMIGLIA DI PRODOTTI
L'oggetto Famiglia di prodotti rappresenta la famiglia o le famiglie a cui appartiene un prodotto.
La risorsa Famiglia di prodotti presenta i seguenti attributi:
code (stringa, obbligatorio): codice della famiglia di prodotti
name (stringa, obbligatorio): nome della famiglia di prodotti
Creazione di una famiglia di prodotti
POST /api/product-families{?access_token}
Come creare una o più famiglie di prodotti Questa azione richiede un access_token con ambito productions_write.
URI di esempio
POST /api/product-families?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "product-families": [ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" } ]}
Risposta 201
Risposta 201
Corpo
[ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" }]
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Eliminazione di una famiglia di prodotti
DELETE /api/product-family/{code}{?access_token}
Per eliminare una famiglia di prodotti, specificare il codice ProductFamily
URI di esempio
DELETE /api/product-family/code?access_token=
Parametri URI
Parametri URI
code
stringa (obbligatorio)
Codice prodotto.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
Content-Type: application/json
Risposta 204
Risposta 204
Corpo
Product Family was deleted
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Elenco di famiglie di prodotti
GET /api/product-families{?access_token}
Come elencare le famiglie di prodotti. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/product-families?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 201
Risposta 201
Corpo
[ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" }]
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Macchine
Risorse di produzione dell'API ProdSmart.
CONTATORE
Aggiornamento del contatore
POST /api/machines/{machine_code}/counter{?access_token}
Per aggiornare il contatore corrente nella macchina, è sufficiente inviare la seguente richiesta. Per semplificare la connessione della macchina, è possibile utilizzare access_token o inviare le credenziali API nell'intestazione di autenticazione con l'autenticazione di base. Prodsmart aggiornerà automaticamente la produzione avviata dal lavoratore su tale macchina. Il numero della quantità e le quantità di sprechi devono essere incrementali (ossia sempre superiori alle quantità inviate in precedenza).
URI di esempio
POST /api/machines/machine_code/counter?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
machine_code
stringa (obbligatorio)
Codice macchina definito nella piattaforma Prodsmart
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "count": 500, "waste": [ { "code": "Waste1", "quantity": 20 } ], "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ]}
Risposta 200
Risposta 200
Corpo
Returns the new value for the machine's counter.
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
PARAMETRI
Aggiornamento dei parametri
POST /api/machines/{machine_code}/parameters{?access_token}
Per aggiornare i parametri di una macchina, è sufficiente inviare la seguente richiesta. Per semplificare la connessione della macchina, è possibile utilizzare access_token o inviare le credenziali API nell'intestazione di autenticazione con l'autenticazione di base. Quando vengono passati questi parametri, se un record di produzione è
URI di esempio
POST /api/machines/machine_code/parameters?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
machine_code
stringa (obbligatorio)
Codice macchina definito nella piattaforma Prodsmart
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "parameters": [ { "code": "temperature", "value": 25 }, { "code": "valid", "value": "yes" } ]}
Risposta 200
Risposta 200
TEMPO DI INATTIVITÀ
Aggiornamento del tempo di inattività
POST /api/machines/{machine_code}/startstop{?access_token}
Per aggiornare lo stato corrente nella macchina, è sufficiente inviare la seguente richiesta. Per semplificare la connessione della macchina, è possibile utilizzare access_token o inviare le credenziali API nell'intestazione di autenticazione con l'autenticazione di base. In base alle informazioni ricevute, Prodsmart registrerà automaticamente un tempo di inattività o lo interromperà. Inviare 0 se la macchina è stata arrestata, 1 se è attiva e specificare il tipo di tempo di inattività.
Per aggiornare lo stato di una macchina, specificare i seguenti attributi:
type (stringa, obbligatorio, deve essere un tipo di tempo di inattività già assegnato alla macchina): tipo di tempo di inattività
running (numero, obbligatorio, 0 o 1): la macchina è arrestata (0) o in esecuzione (1)
URI di esempio
POST /api/machines/machine_code/startstop?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
machine_code
stringa (obbligatorio)
Codice macchina definito nella piattaforma Prodsmart
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "type": "Maintenance", "running": 0}
Risposta 200
Risposta 200
Produzione
Risorse di produzione dell'API ProdSmart.
PRODUZIONE
Un singolo oggetto Produzione. La risorsa Produzione è la risorsa centrale dell'API ProdSmart. Rappresenta la manodopera di un lavoratore in una posizione durante un periodo di tempo.
La risorsa Produzione presenta i seguenti attributi:
id
start-time (data, obbligatorio, formato AAAA-MM-GGTHH:MM:SSZ): ora di inizio della produzione
end-time (data, obbligatorio, formato AAAA-MM-GGTHH:MM:SSZ): ora di fine della produzione
work-time (durata, specificato, formato 00H00m00s): tempo di lavoro della produzione (entro il tempo di pianificazione/timbro cartellini, esclusi i tempi di inattività)
production-order (facoltativo): ordine di produzione per il quale è stata eseguita la produzione
code (stringa, obbligatorio): codice dell'ordine di produzione
id (stringa, obbligatorio)
operation (obbligatorio): operazione eseguita in questa produzione
code (stringa, obbligatorio, univoco): codice dell'attività
product (obbligatorio): bene materiale utilizzato dal lavoratore in questa posizione
quantity (numero intero, obbligatorio, >0): quantità prodotta in questa produzione
worker (obbligatorio): persona che esegue le attività
number (lungo, obbligatorio, univoco): numero del lavoratore
produced-waste (serie, facoltativo): emissione di materiali difettosi in un'operazione
quantity (numerico, obbligatorio): codice di sprechi
waste: tipo di materiale difettoso
code (stringa, obbligatorio, univoco): codice di sprechi
description (stringa, obbligatorio): descrizione degli sprechi
flaw (stringa, obbligatorio): tipo di sprechi
quantity (numero intero, obbligatorio): quantità di sprechi prodotti
L'ID dello stato viene assegnato dall'API ProdSmart al momento della creazione.
Aggiornamento di una produzione
PUT /api/productions/{id}{?access_token}
Per aggiornare una produzione, specificare un codice e un hash JSON degli attributi per la produzione esistente. Questa azione richiede un access_token con ambito productions_write. Per ora è possibile salvare un solo prodotto, ma è possibile creare più operazioni contemporaneamente.
URI di esempio
PUT /api/productions/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID produzione.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "shipping": { "code": "shippingexamplecode00" }, "production-order": { "code": "productionorderexample00" }, "operation": { "product-code": "otherProductCode", "code": "OtherOperationCode" }, "worker": { "number": "1000" }, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "quantity": 100, "start-time": "2023-07-20T09:15:15Z", "end-time": "2023-07-20T09:15:16Z", "lot-number": "other lot", "finished": false}
Risposta 200
Risposta 200
Corpo
{ "id": 4629374, "production-order": { "code": "productionorderexample00", "id": 365315 }, "shipping": { "code": "shippingexamplecode00", "id": 41741 }, "operation": { "code": "OtherOperationCode", "product-code": "otherProductCode", "id": 790486 }, "worker": { "number": 1000, "name": "Worker Name", "id": 15890 }, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "quantity": 100, "lot-number": "other lot", "start-time": "2023-07-20T09:15:15.000Z", "end-time": "2023-07-20T09:15:16.000Z", "finished": false}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Eliminazione di una produzione
DELETE /api/productions/{id}{?access_token}
Per eliminare una produzione, specificare l'ID della produzione.
URI di esempio
DELETE /api/productions/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID produzione.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
Content-Type: application/json
Risposta 201
Risposta 201
Corpo
{ "id": 4629376, "production-order": { "code": "productionorderexample00", "id": 365315 }, "shipping": { "code": "shippingexamplecode00", "id": 41741 }, "operation": { "code": "operationexample0001", "product-code": "productcodeexample001", "id": 790486 }, "worker": { "number": 1000, "name": "worker example", "id": 15890 }, "parameters": [{ "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1.0 }], "quantity": 100.0, "lot-number": "lotX", "start-time": "2023-07-20T09:15:15.000Z", "end-time": "2023-07-20T09:15:16.000Z", "finished": false}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Elenco di produzioni
GET /api/productions{?access_token}
Come elencare le produzioni. Più parametri verranno trattati come condizione AND. Questa azione richiede un access_token con ambito productions_write. Questo servizio viene impaginato e restituisce 25 produzioni per pagina.
URI di esempio
GET /api/productions?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
production-order-id
numerico (facoltativo)
elenco di produzioni con questo ordine di produzione
production-order-code
stringa (facoltativo)
elenco di produzioni con questo (o questi) ordine di produzione
lavoratore
numerico (facoltativo)
elenco di produzioni con questo lavoratore (numero lavoratore)
start-time-before
data (facoltativo)
elenco di produzioni con ora di inizio precedente a questa
start-time-after
data (facoltativo)
elenco di produzioni con ora di inizio successiva a questa
end-time-before
data (facoltativo)
elenco di produzioni con ora di fine precedente a questa
end-time-after
data (facoltativo)
elenco di produzioni con ora di fine successiva a questa
start-time
data (facoltativo)
elenco di produzioni in esecuzione successiva a questa ora di inizio (non utilizzare in combinazione con -before -after)
checked-out
valore booleano (facoltativo)
elenco di produzioni estratte.
worker-name
valore booleano (facoltativo)
recupera il nome e il numero del lavoratore anziché il solo numero del lavoratore.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "production-order": { "code": "PO1", "id": 36530 }, "operation": { "code": "2", "product": "Product 1" }, "worker": { "number": 2 }, "machine": { "code": "Machine Code" }, "produced-waste": [ { "quantity": 21, "waste": { "code": "Waste code", "description": "Description of this type of waste", "flaw": "Flaw", "recoverable": true, "billable": false, "id": 333 } } ], "parameters": [ { "parameter1": "value1" }, { "parameter2": 2 } ], "quantity": 0, "checked-out": false, "work-time": "00H00m00s", "start-time": "2023-09-20T17:55:32.000+01:00", "end-time": "2023-09-20T18:45:00.000+01:00", "id": 575354 }]
Tempo di inattività
Risorse Tempo di inattività dell'API ProdSmart.
TEMPI DI INATTIVITÀ
Elenco dei tempi di inattività
GET /api/downtimes{?access_token}
Come elencare i tempi di inattività. Più parametri verranno trattati come condizione AND. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/downtimes?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
start-time-before
data (facoltativo)
elenco dei tempi di inattività con ora di inizio precedente a questa
start-time-after
data (facoltativo)
elenco degli ordini con tempi di inattività con ora di inizio successiva a questa
end-time-before
data (facoltativo)
elenco dei tempi di inattività con ora di fine precedente a questa
end-time-after
data (facoltativo)
elenco dei tempi di inattività con ora di fine successiva a questa
macchina
numerico (facoltativo)
elenco dei tempi di inattività su questa macchina
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "id": 20146, "start-time": "2017-12-21T10:30:21.000Z", "end-time": "2017-12-21T10:32:21.000Z", "started-by": { "number": 2 }, "closed-by": { "number": 2 }, "workers": [], "machines": [ { "code": "M2", "name": "Machine 2" } ], "product": "ProdX", "production-order": "OP XPTO", "checked-out": true, "downtime-type": "Malfunction", "time-spent": "00H02m00s" }]
Timbro cartellino
Risorse Timbro cartellino dell'API ProdSmart.
TIMBRO CARTELLINO
I webhook sono disponibili per gli eventi relativi al timbro cartellino nel menu delle integrazioni nell'applicazione. Per utilizzare questa funzionalità, aggiungere la richiamata dell'URL dell'endpoint con gli eventi di notifica che si desidera ascoltare. Autodesk si impegna a inviare notifiche tramite webhook non appena si verificano gli eventi nel sistema. Attualmente Autodesk non supporta la ripetizione dei tentativi.
Elenco Timbro cartellini
GET /api/punchclocks{?access_token}
Come elencare i Timbro cartellini. Più parametri verranno trattati come condizione AND. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/punchclocks?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
date-before
data (facoltativo)
elenco di voci timbro cartellino con data precedente a questa
date-after
data (facoltativo)
elenco di voci timbro cartellino con data successiva a questa
lavoratore
numerico (facoltativo)
elenco di voci timbro cartellino per questo lavoratore
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[{ "id": 372179, "date": "2018-09-21T09:24:06.000+01:00", "worker": { "number": 2 }, "type": 1},{ "id": 372180, "date": "2018-09-21T16:34:12.000+01:00", "worker": { "number": 2 }, "type": 0}]"type": 0 ('out') or 1 ('in')
Movimento di inventario
Risorse Movimento di inventario dell'API ProdSmart.
MOVIMENTO DI INVENTARIO
Un singolo oggetto Movimento di inventario. La risorsa Movimento di inventario è una delle risorse più importanti dell'API ProdSmart.
La risorsa Movimento di inventario presenta i seguenti attributi:
id (fornito)
product (stringa, obbligatorio): codice del prodotto
date-time (data, facoltativo, formato AAAA-MM-GGTHH:MM:SSZ): data di creazione del movimento di inventario
quantity (double, obbligatorio): quantità del movimento di inventario
type (stringa, obbligatorio): tipo di movimento di inventario: in, out, consumo, produzione
lot (stringa, facoltativo): lotto del movimento di inventario da utilizzare
total-cost (bigdecimal, facoltativo): costo totale del movimento di inventario per la quantità
warehouse-location (stringa, facoltativo): codice di posizione magazzino
warehouse (stringa, facoltativo): codice del magazzino
location (stringa, facoltativo): posizione, se multisito
comment (stringa, facoltativo): commento del movimento di inventario
Recupero di un movimento di inventario
GET /api/inventory-movements/{id}{?access_token}
Per recuperare un movimento di inventario, è sufficiente eseguire una richiesta GET con l'ID del movimento di inventario. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/inventory-movements/id?access_token=
Parametri URI
Parametri URI
id
numerico (obbligatorio)
ID movimento di inventario.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }}
Creazione di un movimenti di inventario
POST /api/inventory-movements/{?access_token}
Per creare un movimento di inventario, specificare un hash JSON degli attributi per il nuovo movimento di inventario. Questa azione richiede un access_token con ambito productions_write. Per ora è possibile salvare un solo movimento di inventario. In futuro, se la richiesta è una serie anziché una risorsa, tutti gli elementi della serie verranno salvati.
URI di esempio
POST /api/inventory-movements/?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse": "A", "warehouse-location": "Zone2", "location": "location code", "shipping": "shippingCode", "client-order": "clientOrderCode", "receiving": "receivingCode", "purchase-order": "purchaseOrderCode"}
Risposta 200
Risposta 200
Corpo
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "id": 12345, "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body.
Aggiornamento di un movimento di inventario
PUT /api/inventory-movements/{id}{?access_token}
Per aggiornare un movimento di inventario, fornire un JSON con gli attributi che si desidera aggiornare nel movimento di inventario (tutti gli attributi sono facoltativi). Questa azione richiede un access_token
with productions_write scope
.
URI di esempio
PUT /
api/inventory-movements/id?access_token=
Parametri URI
Parametri URI
id
numeric
(obbligatorio)
ID movimento di inventario.
access_token
string
(obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Corpo
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse": "A", "warehouse-location": "Zone2", "receiving": "receivingCode" }
Eliminazione di un movimento di inventario
DELETE /api/inventory-movement/{id}{?access_token}
Per eliminare un movimento di inventario, fornire un ID movimento di inventario.
URI di esempio
DELETE /api/inventory-movement/id?access_token=
Parametri URI
Parametri URI
id
numeric
(obbligatorio)
ID movimento di inventario.
access_token
string
(obbligatorio)
Token di accesso dell'API ProdSmart.
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 204
Risposta 400
Risposta 400
It's not possible to delete this inventory-movement.
Elenco di movimenti di inventario
GET /api/inventory-movements/{?access_token}
Come elencare i movimenti di inventario. Più parametri verranno trattati come condizione AND. Questa azione richiede un access_token con ambito productions_write. Questo servizio viene impaginato e restituisce 25 movimenti di inventario per pagina.
URI di esempio
GET /api/inventory-movements/?access_token=
Parametri URI
Parametri URI
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
product-code
stringa (facoltativo)
codice prodotto
tipo
stringa (facoltativo)
tipo di movimento di inventario: in, out, consumo, produzione
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "id": 12345, "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } } }]
Materiale grezzo
Risorse Materiale grezzo dell'API ProdSmart.
Recupero del materiale grezzo del prodotto
GET /api/stock/{code}{?access_token}
Per recuperare il materiale grezzo di un prodotto, è sufficiente eseguire una richiesta GET con il codice del prodotto. Più parametri verranno trattati come condizione AND. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/stock/code?access_token=
Parametri URI
Parametri URI
code
stringa (obbligatorio)
Codice prodotto.
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart.
lotto
stringa (facoltativo)
Recupero del codice del lotto e della quantità di materiale grezzo per i lotti del prodotto
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
{"product-code": "Example","stock": 35,"lot": [ { "code": "A", "stock": 10 }, { "code": "B", "stock": 5 }}
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body.
Rapporti
Risorse per la generazione di rapporti dell'API ProdSmart.
Orario di lavoro lavoratore
Orario di lavoro lavoratore GET/api/reports/worker-labor-time{?access_token}
Per recuperare un rapporto, è sufficiente eseguire una richiesta GET con un intervallo di tempo per estrarre il rapporto. È possibile aggiungere il parametro lavoratore e sezione per filtrare il rapporto. Inoltre, è possibile specificare alcuni flag per personalizzare il contenuto del rapporto. Il valore di default di tutti i flag è false. Questa azione richiede un access_token con ambito productions_write.
URI di esempio
GET /api/reports/worker-labor-time?access_token=
Parametri URI
Parametri URI
start-time
stringa (obbligatorio)
Genera rapporti per le date successive a questa (inclusa)
end-time
stringa (obbligatorio)
Genera rapporti per le date precedenti a questa (inclusa)
access_token
stringa (obbligatorio)
Token di accesso dell'API ProdSmart
worker-number
stringa (facoltativo)
Specifica un numero di lavoratore per filtrare il rapporto
sezione
stringa (facoltativo)
Specifica un nome per il reparto. Tutti i lavoratori di questo reparto saranno inclusi nel rapporto
show-rework
valore booleano (facoltativo)
Include un nuovo campo con le operazioni di rilavorazione nel rapporto
show-weekend
valore booleano (facoltativo)
Include giorni di fine settimana nei dati
only-punch-clock
valore booleano (facoltativo)
Considera solo il tempo di presenza con le voci timbro cartellino
pagina
numerico (facoltativo)
indice pagina risultati, a partire da 1
Richiesta
Richiesta
Intestazioni
Content-Type: application/json
Risposta 200
Risposta 200
Corpo
[ { "worker": { "number": "0", "name": "John" }, "presence-time": "08H00", "work-time": "04H00m00s", "percentage": "50%", "calendar-downtimes": "00H00m00s" }, { "worker": { "number": "1", "name": "Mary" }, "presence-time": "08H00", "work-time": "08H00m00s", "percentage": "100%", "calendar-downtimes": "00H00m00s" }]
Risposta 400
Risposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body.
Risposta 429
Risposta 429
Corpo
Another request is ongoing for this endpoint. Please wait until the current request finishes before doing another.
Autorizzazione e controllo di accesso
Accesso e controllo del token di autenticazione di Prodsmart.
AUTORIZZAZIONE
La risorsa Autorizzazione rappresenta un'autorizzazione concessa all'azienda. È possibile accedere solo all'autorizzazione personale. L'autenticazione utilizzata è l'autenticazione di base, in cui l'intestazione dell'autenticazione si trova nella forma <base64 valore codificato di API_KEY:API_SECRET>. Per ottenere l'API Key e il segreto API, accedere a Prodsmart e modificare l'utente. (Nota: Per ottenerlo, è necessario disporre del ruolo di amministratore). La risorsa Autorizzazione presenta i seguenti attributi:
token
scopes
Dove token rappresenta un token e scopes è una serie di ambiti concessi per l'autorizzazione specificata. Attualmente l'unico ambito disponibile è productions_write
.
Recupero dell'autorizzazione
GET /api/authorization
Utilizzare GET per recuperare un token di accesso esistente. Se non esiste ancora un token, è possibile generarne uno utilizzando il metodo POST.
URI di esempio
GET /api/authorization
Richiesta
Richiesta
Intestazioni
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Risposta 200
Risposta 200
Intestazioni
Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"
Corpo
{ "_links": { "self": { "href": "/api/authorizations" }, }, "scopes": [ "productions_write" ], "token": "abc123"}
Creazione di un'autorizzazione
POST /api/authorization
Utilizzare POST per generare un nuovo token di accesso.
URI di esempio
POST /api/authorization
Richiesta
Richiesta
Intestazioni
Content-Type: application/jsonAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Corpo
{ "scopes": [ "productions_write" ] }
Risposta 201
Risposta 201
Intestazioni
Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"
Corpo
{ "_links": { "self": { "href": "/api/authorizations" }, }, "scopes": [ "productions_write" ], "token": "abc123"}
Rimozione di un'autorizzazione
DELETE /api/authorization
URI di esempio
DELETE /api/authorization
Richiesta
Richiesta
Intestazioni
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Risposta 204
Risposta 204