Bundling requests to Cloud Platform


#1

Hi,


I often face a rather complex scenario like this:
  • Need to prepare a lot (e.g. 50) PowerPoint presentations (e.g. for different countries)
  • Each presentation is derived from the same template presentation
  • To populate one presentation, depending on some configuration a slide from the template presentation is copied multiple times (e.g. per brand) - and then populated based on a slide template specific logic (e.g. add some text, update a preplaced chart, etc.) - this can be many operations per slide
For simplicity’s sake, let’s assume I need to do 10 operations on each slide - and have some 20 slides per presentation. Thus, for 50 countries, I roughly would need to do about 5,000 operations on slides.

Assuming I would do this via the Cloud Platform using the REST API this would mean I need to send 5,000 HTTP requests to the API, i.e. it would take forever! :frowning:

Hence I was wondering if there is some alternative way to send instructions to the Cloud Platform, eg.:
  • Connect via WebSockets and send instructions directly to the server
  • Send a batch of REST calls together (i.e. bundle requests or at least queue them)
  • “Upload” the program/routine to populate the template and only call this routine once for every template - and pass in all relevant data
Thanks!

#2

Hi,


Thank you for your interest in Aspose.Slides.

I have observed your comments and like to share with you that we are investigating your scenario and we will get back to you with our findings, soon. We appreciate your patience in this regard.

Best Regards,

#3

Hi Peter,

I have observed your requirements and like to share that there is no option to apply the operations on presentation in a batch file as the REST API works in the mode of Request and Response. What you are looking for can be achieved using Aspose.Slides for .NET API that you may use to locally process the presentation and then uploading the generated presentation to server using REST API call. I hope this will be understandable. Please share if I may help you further in this regard.

Many Thanks,


#4

Hi Peter,


We have further investigated your requirements and an issue with ID SAASSLIDES-212 has been created as new feature request to implement batch processing support for cloud request in Aspose.Slides for Cloud API. We will share the feedback with you as soon as the support will be implemented in Aspose.Slides.

Many Thanks,

#5

Thanks for the update, sounds great.


Small remark/suggestion: This feature would surely also be useful for Cells, Words, etc. - not only for Slides.


#6

Hi Peter,

This is already supported by Aspose.Words and Aspose.Cells e.g. check tasks resource for more details.


#7
Aspose.Slides for Cloud 1.7.0.

Many Thanks,
<!–[if gte mso 9]>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>AR-SA</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val=“Cambria Math”/>
<m:brkBin m:val=“before”/>
<m:brkBinSub m:val="–"/>
<m:smallFrac m:val=“off”/>
<m:dispDef/>
<m:lMargin m:val=“0”/>
<m:rMargin m:val=“0”/>
<m:defJc m:val=“centerGroup”/>
<m:wrapIndent m:val=“1440”/>
<m:intLim m:val=“subSup”/>
<m:naryLim m:val=“undOvr”/>
</m:mathPr></w:WordDocument>
<![endif]–><!–[if gte mso 10]> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin-top:0in; mso-para-margin-right:0in; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0in; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;}

<![endif]–>