RuntimeException: Limit of 100 reached

Ich verstehe dass das ein hartes Limit ist, aber gibt es irgend eine Möglichkeit das zu umgehen außer das Limit im Input-Step auf 1 zu stellen, so immer nur einen Datensatz zu verarbeiten und so sicher zu stellen dass wir nicht ins Limit laufen?


Ich tue etwas in diesem Stil:

<#if (Variant_inLager == "1")>
  <#if getVariable(OrderItemsVariantID) == "">
    ${(getStocks?number - OrderItemsQuantity?number)}
    ${setVariable(OrderItemsVariantID, getStocks?number - OrderItemsQuantity?number)}
  <#else>
    ${getVariable(OrderItemsVariantID)?number - OrderItemsQuantity?number}
    ${setVariable(OrderItemsVariantID, getVariable(OrderItemsVariantID)?number - OrderItemsQuantity?number)}
  </#if>
</#if>

Das prüft für alle Aufträge im Abruf ob der Bestand ausreichend ist, und zählt dabei mit von einem Auftrag zum nächsten: Also ich habe Bestand von 10, der erste Auftrag möchte 2, also bleiben noch 8, der nächste zieht dann von den 8 zB 5 ab, und so weiter, bis die Variable auf 0 läuft. Alle dann noch folgenden Aufträge haben nicht mehr genug Bestand, und werden in Warteposition geschoben, anstatt zum Versand freigegeben.


Das hat im kleinen super funktioniert: wir haben einen Versandstandort der nur einige dutzend verschiedene Artikel bereithält, und so konnte ich gezielt diesem Lager nur Aufträge zuweisen, für die es Bestand hatte. Der Rest wurde im anderen Standort behalten und von dort versendet.


So bin ich nie über die 100 gekommen, und weils so gut lief, wollte ich es jetzt auch für ein größeres Lager einsetzen. Damit sind dann sowohl die Anzahl der betroffenen Artikel selbst gestiegen (die Variable OrderItemsVariantID), als auch die Anzahl der zu verarbeitenden Aufträge, und auch die möglichen Positionen in jedem einzelnen Auftrag.


Das sah in der Entwicklung mit Filter auf einzelne OrderIDs alles super aus, aber sobald ichs dann live genommen habe, hat dieser Fehler zugeschlagen.


Hat jemand ne kreative Idee wie ich das umgehen kann? Wie gesagt: nur noch einzelne Aufträge verarbeiten ist wenig praktikabel. Der Cron läuft derzeit alle 15 Minuten, und hat dann gern mal um die 80 Aufträge drin. Es ist also gar kein "Platz", selbst wenn wir jede Minute laufen lassen, sind das immer noch (möglicherweise) zu viele Aufträge mit zu vielen Positionen.


Muss ich mich von dem Gedanken verabschieden?

Grüße Daniel