Manipulando pedidos com grande número de linhas de pedido no adaptador de integração

Um pedido grande é descrito como uma solicitação que contém N número de linhas, em que N> 100 para verificar disponibilidade, reservas ou atualizações de inventário..

Uma solicitação grande na integração do Sterling™ Order Management System com o Sterling Intelligent Promising Inventory Visibility pode resultar na degradação do desempenho das APIs de integração ou em um erro de carga útil. O aplicativo fornece a capacidade de manipular disponibilidade, reservas e atualizações de inventário para pedidos com um grande número de linhas de pedidos Para evitar tais situações, o Sterling Order Management System processa solicitações de APIs de integração em lotes que são derivados pelo número de linhas na entrada da API Sterling Intelligent Promising Inventory Visibility .

Como ilustrado, um lote é definido como um subconjunto de n elementos a partir dos elementos N iniciais em que N> n.

Elementos da API atuais ~ { 1, 2, 3, …. , N } ..

Elementos da API em lote ~ { 1, 2, … n }, { n+1, n+2 , … 2n } ………. { xn+1, xn+2, …., N }

Por padrão, ao chamar as APIs de cumprimento, como findInventory, ReserveAvailableInventoryou outras, todas as linhas em uma entrada de API são consideradas para a solicitação da API Sterling Intelligent Promising Inventory Visibility em uma única chamada de API.

Por exemplo, uma reserva com 5 linhas resulta na seguinte entrada.
Entrada da API de Inventário Disponível do Sterling Order Management System Reserve
<Promise  OrganizationCode="DEFAULT">
    <ReservationParameters ReservationID="RESERVATION_00001"/>
    <PromiseLines>
        <PromiseLine ItemID="ITEM_1" LineId="1" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/>
        <PromiseLine ItemID="ITEM_2" LineId="2" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/>
	<PromiseLine ItemID="ITEM_3" LineId="3" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/>
	<PromiseLine ItemID="ITEM_4" LineId="4" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/>
	<PromiseLine ItemID="ITEM_5" LineId="5" RequiredQty="1" ShipNode="NODE_1" UnitOfMeasure="EACH"/>
    </PromiseLines>
</Promise>
Entrada da API de Disponibilidade do Nó doSterling Intelligent Promising Inventory Visibility
"demandType":"SCHEDULED" ,
 "lines":[
{"itemId":"ITEM_1","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id1"},
{"itemId":"ITEM_2","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id2"},
{"itemId":"ITEM_3","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id3"},
{"itemId":"ITEM_4","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id4"},
{"itemId":"ITEM_5","shipNodes":["NODE_1"],"productClass":"","unitOfMeasure":"EACH","deliveryMethod":"SHP","lineId":"id5"},
] }
Entrada da API de Reserva doSterling Intelligent Promising Inventory Visibility
{"reference":"RESERVATION_00001","demandType":"SCHEDULED","timeToExpire":120,"considerSafetyStock":true,
	"lines":[
	{"deliveryMethod":"SHP","itemId":"ITEM_1","lineId":"ITEM_1|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"}
	{"deliveryMethod":"SHP","itemId":"ITEM_2","lineId":"ITEM_2|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"}
	{"deliveryMethod":"SHP","itemId":"ITEM_3","lineId":"ITEM_3|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"}
	{"deliveryMethod":"SHP","itemId":"ITEM_4","lineId":"ITEM_4|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"}
	{"deliveryMethod":"SHP","itemId":"ITEM_5","lineId":"ITEM_5|DEFAULT|EACH|||NODE_1|1.0","productClass":"","quantity":1.0,"shipNode":"NODE_1","unitOfMeasure":"EACH"}
]}

Se você ativar o processo em lote e se o número de linhas em uma solicitação de API for maior que o valor configurado, as chamadas de API serão divididas e processadas em lotes simultaneamente. A saída do lote é consolidada e usada em seu lugar

O processo em lote é conduzido pelos seguintes parâmetros de controle para processamento em lote de pedido grande:
iv_integration.largeOrder.batchMode.habilitar
Ative o processamento em lote para disponibilidade de nó, disponibilidade de rede ou reservas no Sterling Order Management System-Sterling Intelligent Promising Inventory Visibility integração para processar as linhas apropriadas em lotes do tamanho configurado. Os valores válidos são true ou false. O valor padrão é configurado como false.
iv_integration.largeOrder.nodeAvailability.batchSize
Se o processamento em lote estiver ativado e o número de linhas exceder o valor configurado para a API de Disponibilidade do Nó, as chamadas para a API de Disponibilidade do Nó do Sterling Intelligent Promising Inventory Visibility serão processadas em lotes do tamanho configurado. O valor-padrão é configurado como 5000. O intervalo de valor válido é de 30 a 5000.
iv_integration.largeOrder.networkAvailability.batchSize
Se o processamento em lote estiver ativado e o número de linhas exceder o valor configurado para a API de Disponibilidade de Rede, as chamadas para a API de Disponibilidade de Rede do Sterling Intelligent Promising Inventory Visibility serão processadas em lotes do tamanho configurado. O valor-padrão é configurado como 5000. O intervalo de valor válido é de 30 a 5000.
iv_integration.largeOrder.reservation.batchSize
Se o processamento em lote estiver ativado e o número de linhas exceder o valor configurado para a API de Reserva, as chamadas para a API de Reserva do Sterling Intelligent Promising Inventory Visibility serão processadas em lotes do tamanho configurado. O valor-padrão é configurado como 5000. O intervalo de valor válido é de 30 a 5000.
iv_integration.largeOrder.asyncInventoryUpdateBatchSize
Para a integração do Sterling Order Management System-Sterling Intelligent Promising Inventory Visibility , o tamanho de ajustes exclusivos para demanda ou suprimentos além dos quais a atualização é formada em lotes do tamanho configurado. O valor-padrão é configurado como 5000.
iv_integration.largeOrder.tempReservation.disableForLineSize
O número de linhas excede a reserva temporária criada no Sterling Intelligent Promising Inventory Visibility durante o planejamento ou a liberação de um pedido para bloquear o inventário não está ativado. O valor-padrão é configurado como 5000.
iv_integration.largeOrder.batchFailure.considerUnavailable
Qual disponibilidade de leitura ou reserva no Sterling Intelligent Promising Inventory Visibility, se um lote falhar com um erro, o aplicativo considerará as linhas com falha como não disponíveis e continuará. Se a propriedade for configurada como false e se um ou mais lotes falharem ao serem processados, a API exibirá uma mensagem de erro
iv_integration.largeOrder.deleteReservationRetry
Quando uma reserva no Sterling Intelligent Promising Inventory Visibility não está em conformidade com os critérios de entrada, a reserva no Sterling Intelligent Promising Inventory Visibility deve ser excluído. Se ocorrer algum erro ao excluir a reserva, o aplicativo tentará excluir a reserva novamente O valor-padrão é configurado como 3.
iv_integration.largeOrder.batchSplit.tolerância
Se o processamento em lote estiver ativado, a porcentagem permitida para não dividir as chamadas de API de Disponibilidade do Nó, Disponibilidade de Rede ou Reserva para Sterling Intelligent Promising Inventory Visibility. Por exemplo, se o tamanho do lote para disponibilidade do nó for 500, considerando 50% de tolerância até que uma solicitação para 750 Linhas seja chamada, as chamadas para Sterling Intelligent Promising Inventory Visibility não serão divididas em lotes. O valor padrão é configurado como 0.