Definição da Regra de Negócio
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
BODI159CAL.I03 | Alteração | | |
BODI317PD.M07 | Alteração | | |
CDAPI090A.I1 | Alteração | | |
Camada de integração (envio de dados do Datasul para o SCI)
A integração entre os programas do Datasul e o Samsung Visibility será intermediada por uma API (proxy) que terá como objetivos: a) verificar quais integrações com sistemas externos devem ser realizadas; b) acessar os parâmetros da integração; c) conectar o Web Service do sistema externo; d) montar e enviar a mensagem de integração (XML) e arquivos de log; e) enviar avisos eletrônicos e gerar histórico dos erros de conexão com o Web Service.
Atualmente a API suporta a integração com o Cockpit Logístico mas sua estrutura admite a implementação de outras integrações sem impacto no legado. Deste modo esta API também será utilizada na integração do Datasul com o produto Samsung Visibility.
Para cada argumento (parâmetro) que a API possa receber ou enviar aos programas chamadores deve ser disponibilizada uma procedure; dessa forma a procedure de execução da integração não terá argumentos (parâmetros) e as eventuais evoluções da API não causarão impacto no legado (a assinatura da procedure principal nunca será alterada).
Proxy de Integração via WS (CDAPI090)
Será utilizada a mesma API responsável por toda a integração com Samsung.
Abaixo segue detalhamento de como serão enviadas as informações para o Track Point 3 e 4 (Financial e Delivery Creation). Será complementada a include cdp/cdapi090a.i (criada no requisito PCREQ-7369) para padronizar a execução do proxy nos programas chamadores.
Exemplo de linha de comando: {cdp/cdapi090a.i "INTEGRACAO" "OPERACAO" "TABELA" "TRACKING POINT"},
Onde:
INTEGRACAO à é o código do sistema com o qual a integração ocorrerá. ex. SCI;
OPERACAO à é o código da operação efetuada pelo programa chamador. ex. UPSERT;
TABELA à é o código da entidade de dados que está sendo integrada. ex. PED-VENDA;
TRACKING POINT à é o momento em que a mensagem está sendo enviada. No caso deste requisito serão enviadas as opções abaixo:
TP3 – Financial;
TP4 – Delivery Creation
Programas de Envio do Tracking Point 3 - Comercial Evaluation
Alterar os programas abaixo listados, incluindo a chamada da include {cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP2"}:
- BODI159COM.P Incluir após a linha 1240 a verificação em qual Tracking Point está o pedido e incluir a chamada da include.
Mensagem Tracking Point 3
- Exemplo Mensagem XML
<tracking>
<refNo>XXXXXX</refNo>
<refType>XXXXXX</refType>
<trackingCode>XXXXXX</trackingCode>
<checkpointCode>XXXXXX</checkpointCode>
<trackingDate>XXXXXX</trackingDate>
<remarks>XXXXXX</remarks>
<longitude>XXXXXX</longitude>
<latitude>XXXXXX</latitude>
</tracking>
- Mensagem Tracking Point 3
- Exemplo Mensagem XML
<tracking>
<refNo>XXXXXX</refNo>
<refType>XXXXXX</refType>
<trackingCode>XXXXXX</trackingCode>
<checkpointCode>XXXXXX</checkpointCode>
<trackingDate>XXXXXX</trackingDate>
<remarks>XXXXXX</remarks>
<longitude>XXXXXX</longitude>
<latitude>XXXXXX</latitude>
</tracking>
Definição preenchimento XML
Campo | TAG Pai | Tipo | Ocorrência | Tamanho | Descrição |
tracking | | XML | 1-50 | | TAG Principal |
Tracking |
Campo | TAG Pai | Tipo | Ocorrência | Tamanho | Descrição |
refNo | tracking | Char | 1-1 | 70 | ped-venda.nome-abrev + ped-venda.nr-pedcli |
refType | tracking | Number | 1-1 | 2 | 1 = Sales Order |
trackingCode | tracking | Char | 1-1 | 10 | TP1010-10 |
checkpointCode | tracking | Char | 1-1 | 10 | TP1010-10 |
trackingDate | tracking | Date & Time | 1-1 | yyyymmddThh24miss | SUBSTRING(ped-venda.char-1,95,8) + "T" + SUBSTRING(ped-venda.char-1,103,6) |
remarks | tracking | Char | 1-1 | 100 | Em branco |
longitude | tracking | Number | 1-1 | 10,6 | Não será enviado |
latitude | tracking | Number | 1-1 | 10,6 | Não será enviado |
Programas de Envio do Tracking Point 4
Alterar os programas abaixo listados, incluindo a chamada das includes conforme segue {cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP4"} e {cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP4"}:
- BODI159CAL.I03
- Incluir após a linha 198 as chamadas das includes com a verificação se o pedido já foi enviado para o SCI pela verificação do tracking point atual gravado em (ped-venda.char-1,93,1) e se está liberado para faturamento
IF ped-venda.dsp-pre-fat THEN DO:
IF SUBSTRING(ped-venda.char-1,93,1) = "" THEN DO:
{cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP1"}
{cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP2"}
{cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP3"}
{cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP4"}
END.
ELSE DO:
IF SUBSTRING(ped-venda.char-1,93,1) = "3"
OR SUBSTRING(ped-venda.char-1,93,1) = "4" THEN DO:
{cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP4"}
{cdp/cdapi090a.i "SCI" "CREATE" "PED-VENDA" "TP2"}
END.
ELSE DO:
{cdp/cdapi090a.i "SCI" "UPDATE" "PED-VENDA" "TP4"}
message "2" avail ped-venda view-as alert-box.
{cdp/cdapi090a.i "SCI" "UPDATE" "PED-VENDA" "TP2"}
END.
END.
END.
ELSE DO:
IF SUBSTRING(ped-venda.char-1,93,1) = "3"
OR SUBSTRING(ped-venda.char-1,93,1) = "4" THEN DO:
{cdp/cdapi090a.i "SCI" "DELETE" "PED-VENDA" "TP4"}
{cdp/cdapi090a.i "SCI" "DELETE" "PED-VENDA" "TP2"}
END.
END.
BODI317PD.M07
- CDAPI090A.I1
- Incluir o bloco de envio da mensagem do TP4
- Mensagem Tracking Point 4
- Exemplo Mensagem XML
<tracking>
<refNo>XXXXXX</refNo>
<refType>XXXXXX</refType>
<trackingCode>XXXXXX</trackingCode>
<checkpointCode>XXXXXX</checkpointCode>
<trackingDate>XXXXXX</trackingDate>
<remarks>XXXXXX</remarks>
<longitude>XXXXXX</longitude>
<latitude>XXXXXX</latitude>
</tracking>
Definição preenchimento XML
Campo | TAG Pai | Tipo | Ocorrência | Tamanho | Descrição |
tracking | | XML | 1-50 | | TAG Principal |
Tracking |
Campo | TAG Pai | Tipo | Ocorrência | Tamanho | Descrição |
refNo | tracking | Char | 1-1 | 70 | ped-venda.nome-abrev + ped-venda.nr-pedcli |
refType | tracking | Number | 1-1 | 2 | 1 = Sales Order |
trackingCode | tracking | Char | 1-1 | 10 | TP1010-15 |
checkpointCode | tracking | Char | 1-1 | 10 | TP1010-15 |
trackingDate | tracking | Date & Time | 1-1 | yyyymmddThh24miss | SUBSTRING(ped-venda.char-1,95,8) + "T" + SUBSTRING(ped-venda.char-1,103,6) |
remarks | tracking | Char | 1-1 | 100 | Em branco |
longitude | tracking | Number | 1-1 | 10,6 | Não será enviado |
latitude | tracking | Number | 1-1 | 10,6 | Não será enviado |