2.4.2 • Published 7 months ago

sps-sap-interface v2.4.2

Weekly downloads
32
License
ISC
Repository
-
Last release
7 months ago

SPS SAP INTERFACE

Serviço de comunicação de um servidor node com a service layer e execução de stored procedure ou execução de query através do Xsjs.

Batch

Para utilizar batch, envie a array operations com as operações a serem executadas, e a opção transaction se estas operações devem ser realizadas em uma transação.

"GET" não é suportado em transaction; retorna 500.

const responseArray = await ServiceLayer.executeBatch({
      transaction: true,
      operations: [
        {
          method: "POST",
          url: "BusinessPartners",
          data: {
            CardCode: "c001",
            CardName: "c001",
            CardType: "C"
        },
        {
          method: "POST",
          url: "Items",
          data: {
            ItemCode: "12345",
            ItemName: "Teste item"
        }
      ]
    });

console.log(responseArray);

A resposta é um array contendo:

[
  {
    httpCode: 204, // 400, 204, etc
    httpStatus: "No Content", // "Bad Request", "Created", etc
    contentId: 1, // só disponível quando usa transação, identifica cada retorno individual ### inicia em 1 ###
    json: {...} // se houver retorno
  },
  {
    httpCode: 204, // 400, 204, etc
    httpStatus: "No Content", // "Bad Request", "Created", etc
    contentId: 1, // só disponível quando usa transação, identifica cada retorno individual ### inicia em 1 ###
    json: {...} // se houver retorno
  },
  ...
]

Notas:

Quando há rollback em uma transação, somente é retornado o resultado da operação que causou o rollback. Quando não se usa transação, ou quando a transação é completa, o responseArray contém um elemento para cada operação.

A Service Layer suporta operações com e sem transação no mesmmo batch. Esta implementação somente suporta batches com todas operações em transação ou nenhuma.

O request de batch retorna 200 (Ok) mesmo que uma das operações tenha falhado; é necessário verificar o responseArray para cada httpCode individual!

DirectDb

Permite executar comandos e stored procedures diretamente no banco de dados sql e Hana;

Iniciando o serviço

Importar o módulo DirectDb e iniciar o serviço;

  const { DirectDb } = require("sps-sap-interface");

  await DirectDb.init({
    server: "IP:30015",
    database: "SBO_DATABASE",
    databaseType: DirectDb.DATABASE_TYPES.HANA,
    username: "username",
    password: "password",
  });

Caso a conexão seja do tipo HANA, o valor da propriedade server deve conter a porta do servidor hana (normalmente a porta 30015) junto do nome, caso contrário, basta informar o nome ou ip do servidor.

Queries

Usar sempre o placeholder {db} nos comandos.

Exemplo:

const response = await DirectDb.executeQuery(
      `SELECT TOP 10 * FROM {db}.OITM WHERE "ItmsGrpCod" > ? AND "ItemName" LIKE ?`,
      [1, "%A%"]
    );

O módulo substituirá o placeholder {db} pelo schema se for HANA e removerá se for MSSQL

ATENÇAO

  • Prefira sempre usar binding de variáveis (protege contra sql injection), isto substitui a lista de parâmetros nos "?", sem precisar se preocupar com o tipo do dado.

Stored Procedures

const response = await DirectDb.executeProcedure("SP_SPS_TESTSP", ["A%"]);

ATENÇÃO

  • Nas SPs NÃO é necessário declarar o OUT REG;

Exemplo

HANA

  const { DirectDb } = require("sps-sap-interface");

  await DirectDb.init({
    server: "192.168.0.1:30015",
    database: "SBO_DEMO_HANA",
    databaseType: DirectDb.DATABASE_TYPES.HANA,
    username: "user01",
    password: "1234",
  });

  const response = await DirectDb.executeProcedure("SP_SPS_TESTSP", ["A%"]);

  console.log(response);

SQL

  const { DirectDb } = require("sps-sap-interface");

  await DirectDb.init({
    server: "192.168.0.1",
    database: "SBO_DEMO_SQL",
    databaseType: DirectDb.DATABASE_TYPES.SQL,
    username: "user1",
    password: "5432",
  });

  const response = await DirectDb.executeProcedure("SP_SPS_TESTSP", ["A%"]);

  console.log(response);
2.4.1

7 months ago

2.4.2

7 months ago

2.3.0

8 months ago

2.3.2

8 months ago

2.3.1

8 months ago

2.2.0

1 year ago

2.1.9

2 years ago

2.1.10

2 years ago

2.1.8

2 years ago

2.1.6

3 years ago

2.1.5

3 years ago

2.1.4

3 years ago

2.1.3

3 years ago

2.1.2

3 years ago

2.1.1

3 years ago

2.1.0

3 years ago

2.0.9

3 years ago

2.0.8

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.5

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago