Can I send multiple records in a web service integration? Follow
Question
I want to send multiple records at once over a web service integration. Is that possible?
Answer
Short answer: when using GET, no. When using POST, yes.
Using GET
GET integrations do not allow for more than one record due to how data is being sent. The information is pieced together then sent to BarTender as part of the URL as shown here in Insomnia:
This means only one record can be sent at a time since only one record fits into the URL.
Using POST
POST integrations do not send information over the URL so this allows you to send as many records as you want in one go:
When using the %Response% variable as a response, each record may show up as its own print job depending upon how the data is separated. For my example, I'm sending the printer information in the POST, so each record is a considered separate print job.
For more information about response patterns, see What is in a web service integration response by default?
3 comments
Kenneth Fox
I would like to know if there is a way to actually send multiple records via POST as one request and get it to execute as a single print job. My data would preferably be formatted as JSON with a header record containing the label file and printer. That would be followed by multiple product records each with it's own data field values and quantity.
Samantha Petro
ModeratorYou will need BarTender 2021 as 2019 and earlier does not support using a JSON structure as a database (you have to do all sorts of data processing to transform the data into a CSV or equivalent database). You could try setting up a JSON database and using it in an integration much like in this example with XML https://support.seagullscientific.com/hc/en-us/articles/360044730333-Creating-an-XML-integration . This is a file integration, but at the end of the day, data is still data, and that's all the integration cares about as long as it gets there. You could send the data via file or POST.
If you need help building it, contact Professional Services.
Dirk-Jan Kooij
Wouldn't is be much more logical to send a JSON like
"printername": "testprinter",
"layout": "sscc.btw",
"items": [{
"SSCC": 1234
},
{
"SSCC": 1235
}
]
}