Recuperare documenti periodicamente in blocco tramite batch hook: period, maxBatchSize e archivio ZIP.
Di default, la PSB invia una notifica webhook per ogni documento ricevuto. Con grandi volumi può essere più efficiente elaborare i documenti periodicamente in blocco. Con un batch hook la PSB raccoglie tutti gli eventi durante un periodo configurabile e ne crea un archivio ZIP.
Un batch hook ascolta un topic (ad esempio InvoiceReceived) e raccoglie tutti gli eventi che arrivano in un determinato periodo. Al termine del periodo, la PSB crea un file ZIP con tutti i documenti appartenenti a quegli eventi. La PSB pubblica quindi un nuovo topic ({Topic}Batched) affinché si possa scaricare l'archivio.
Il flusso è il seguente:
{Topic}Batched (ad esempio InvoiceReceivedBatched)Registrare un hook tramite l'API con un'action batch://zip:
{
"action": "batch://zip?period=00:15:00&maxBatchSize=100",
"topics": ["InvoiceReceived"]
}
period00:15:00 (15 minuti)hh:mm:ss. Allo scadere di questo periodo il batch viene chiuso e l'archivio ZIP viene creato.maxBatchSize100Suggerimento: Scegliere
periodemaxBatchSizein base al proprio volume di documenti. Con volumi bassi si può impostare un periodo più lungo (ad esempio un'ora). Con volumi alti è più pratico un periodo più breve con unmaxBatchSizepiù alto.
Dopo la chiusura di un batch, la PSB pubblica un nuovo evento sul topic {Topic}Batched. La denominazione segue un pattern fisso:
InvoiceReceivedInvoiceReceivedBatchedOrderReceivedOrderReceivedBatchedConfigurare un webhook regolare sul topic batched per recuperare l'archivio ZIP:
{
"action": "https://jouw-endpoint.nl/batches",
"topics": ["InvoiceReceivedBatched"],
"secret": "jouw-geheime-sleutel"
}
Il file ZIP contiene tutti i documenti raccolti nel batch, ciascuno come file XML separato. I nomi dei file si basano sul documentId. L'archivio può essere scaricato tramite l'URL fornito nell'evento batched.
È possibile combinare batch hook con webhook regolari. Ad esempio, utilizzare un webhook regolare per l'elaborazione immediata di documenti urgenti e un batch hook per l'importazione periodica in blocco nel proprio sistema ERP. Assicurarsi però di non elaborare documenti in duplicato se entrambi gli hook sono sullo stesso topic.
Attenzione: I batch hook utilizzano la stessa logica di retry dei webhook regolari. Se l'evento batched non viene consegnato con successo, la PSB riprova per un massimo di 5 giorni.
Al termine del periodo di raccolta, la PSB pubblica un evento su {Topic}Batched, ad esempio InvoiceReceivedBatched quando il topic di origine è InvoiceReceived. Configuri un webhook regolare su quel topic batched per ricevere l'URL di download e recuperare il file ZIP.
period (predefinito 15 minuti) definisce per quanto tempo gli eventi vengono raccolti prima della chiusura del batch; maxBatchSize (predefinito 100) chiude il batch prima se quel limite viene raggiunto per primo. Adatti entrambi al volume: periodi più lunghi con pochi documenti, periodi più brevi o limiti più alti nei picchi.
Sì, ma presti attenzione alla doppia elaborazione: se entrambi usano lo stesso topic di origine, lo stesso documento può arrivare due volte. Usi entrambi solo se gestisce esplicitamente il caso, ad esempio immediato per l'urgente e batch per l'importazione di massa.
Consultare la specifica API completa su psb.econnect.eu per tutte le opzioni di configurazione.
Consulti la documentazione API