cancel
Showing results for 
Search instead for 
Did you mean: 

SBO -B1IF - ServiceLayer - Batch Call

mikegl
Explorer
0 Kudos

Hi,

i have seen in ServiceLayer Documentation, that there is possible to send multiple requests in one call to the Service Layer. In my opinion not very nice (some difficult multipart structure of the message, not just JSON).

In B1IF there is a B1 DI Batch Call Atom, where I can send multiple requests in one Call.

Is there any possibilty to do so with Service Layer Call in B1IF?

pr4
Newcomer
0 Kudos
Hi, Did you get a solution to have a Batch operation on Service Layer using B1if? We have a similar situation to update more than 20000 items

Accepted Solutions (0)

Answers (1)

Answers (1)

mgregur
Active Contributor
0 Kudos

Hi,

I suggest using Split atom to split all SL call payloads. Also, depending on the amount of requests you plan to send, it would be useful to set it so that you have a Split followed by DBQO (PUT to Queue) and then a separate step which takes incoming requests from that Queue and then posts to SL. This would improve your error handling possibilities and would allow for processing of all valid requests.

BR,

Matija

mikegl
Explorer
0 Kudos

Thank you for your answer,

of course this is a workaround, no problem. I can loop it with for-each atoms or i can put it to queue (or call Scenario step). Looping with for-each is a bit faster - less handling inside IF. But this still takes a lot of processing time.

The case is, that I have to change 1000 items. I get this bunch of Items from a webservice inbound. This webservice would be waiting for response, if I loop the items inside the step. If I send it to queue, i cannot give the webservice a response, if the import was ok.

The idea was to split these 1000 items to packages of 50 and make 20 SL Batch calls. It is about performance.

I would find more cases to use. That is why there is the B1 Batch call, but im am missing some SL Batch call.

And in my experience - Servicelayer is a bit faster, has a loadbalancer, more nodes for processing, shorter lock times. So for this case i would rather use Servicelayer.

mgregur
Active Contributor
0 Kudos

Hi mikegl,

I don't think SL allows batch requests (at least I never got it to work), that is why I suggested a queue. Of course, if you have a webservice inbound and need to provide a response, that is not an option. So I'm guessing your only option would be to have them looped with a Split atom and for-each processing.

BR,

Matija