微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

服务器端或异步时,如何在OCL中执行“ while循环”?

如何解决服务器端或异步时,如何在OCL中执行“ while循环”?

我使用rest api从网上商店获取订单,结果一次最多可以获取100个订单,并且有一个页面参数可用于接下来的100个订单。

我已经使用周期性动作(禁用=不是self.oclIsIn(#InProgress))在视图模型中解决了这个问题,

vCount := self.Orders->size;
vPage := vPage + 1;

vResponse := selfVM.RestGet(
String.Format('{0}/wp-json/wc/v3/orders?per_page={1}&page={2}',self.Channel.Url,self.Channel.source.MaxCount,vPage),self.Channel.UserName,self.Channel.Password,'');


vResponse := String.Format('{0}{1}{2}','{"orders":',vResponse,'}');

--self.JSonData := self.JSonData + vResponse;

vOutput := vOutput +  self.MergeTaJson( ImportBatch.viewmodels.WooOrderjson,vResponse );

if ((self.Orders->size - vCount) = 0) then
  if vOutput->IsNullOrWhiteSpace then
    self.Fail
  else
   --self.ParsingLog := vOutput;
    self.Success
  endif;
  true
else
  vCount := self.Orders->size;
  false
endif

它将一直运行,直到api的结果为0,然后状态设置为“完成”并停止。

现在,我想在同一服务器端进行操作,但是如何在没有此类定期操作的情况下解决此问题呢?我想在AsyncTicket“操作”中执行相同的操作。

解决方法

您是否有可能将整个服务器端作业视为定期操作?

每项SS作业的执行都应“一次完成”并保存在一笔交易中

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。