Tipos de APIs

Uma API processa registros com base nos valores de atributo-chave, processando registros com uma chave primária primeiro. Se a chave primária não for localizada, a API então procurará as chaves lógicas e, em seguida, processará esses registros. Por exemplo, a API ChangeOrder() procura primeiro o atributo-chave OrderHeaderKey e, em seguida, a combinação dos atributos-chave OrderNo e EnterpriseCode.

Selecione APIs

Geralmente prefixado com "get", as APIs select retornam um registro para uma entidade (por exemplo, a API getOrderDetails() retorna os detalhes de um pedido). Elas não atualizam o banco de dados.

Como as APIs de seleção retornam apenas um registro, elas requerem que atributos de chave exclusiva sejam transmitidos no XML de entrada. Se um atributo de chave exclusiva não é transmitido no XML de entrada, a API usa espaços em branco para esses atributos nos critérios para selecionar o registro. Pode haver mais de uma combinação de chave exclusiva e nessa combinação você deve transmitir qualquer uma das diversas combinações.

Por exemplo, uma ordem é identificada exclusivamente pelo atributo-chave OrderHeaderKey ou por uma combinação do OrderNo e EnterpriseCode atributos.. Portanto, ao chamar a API getOrderDetails(), você deve transmitir o atributo OrderHeaderKey ou a combinação dos atributos-chave OrderNo, EnterpriseCode e DocumentType. Se você transmitir apenas OrderNo, a API retornará o pedido que corresponde a OrderNo e possuirá um código corporativo em branco. Para identificar as combinações de teclas exclusivas para cada API, consulte o Javadoc.

No entanto, a API getOrderDetails( ) usa um select para atualização no site YFS_ORDER_HEADER, de modo que seus processos internos, como saídas de usuário, eventos etc., possam ser atualizados, ter um bloqueio nos elementos do pedido enquanto o encadeamento que está trabalhando nele está ativo Isso permite manter um cache de transação até a confirmação final. Portanto, você precisa evitar o uso de transações aninhadas para superar o mecanismo de bloqueio executando:

  1. Confirme ou retroceda apenas uma vez para todo evento do pedido. Tenha em mente que todos os eventos são configurados para retrocesso se um deles falhar.
  2. Selecione o pedido para cada evento e processo. Além disso, tenha em mente que, se a duração dos pedidos que possuem diversos eventos for mais alta, poderá ter um impacto no desempenho.

APIs de Lista

Geralmente prefixadas com "get", as APIs de lista retornam uma lista de registros para uma entidade que correspondem aos critérios especificados pelo XML de entrada, por exemplo, a API getOrderList() retorna uma lista de pedidos. Se qualquer atributo no XML de entrada possuir um valor em branco, ele será ignorado. As APIs de lista não atualizam o banco de dados. Também é possível obter os dados paginados a partir de uma API de lista chamando a API getPage e transmitindo a API de lista como a entrada para a API getPage. Para obter mais informações sobre a API do getPage , consulte o Javadoc

APIs de Atualização

APIs de Atualização Inserem Novos Registros no Banco de Dados. Elas também modificam ou excluem registros existentes no banco de dados. APIs de atualização que modificam ou excluem registros existentes usam a mesma lógica que as APIs de seleção para identificar qual registro atualizar. Se nenhum registro for localizado, as APIs de atualização lançam uma exceção.