Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Especificação | |||
Produto | TOTVS12 | Módulo | WMS |
Segmento Executor | Supply Chain - Logística - Inovação | ||
Projeto1 | LOGWMS01 | IRM1 |
|
Requisito1 | LOGWMS02-112 | Subtarefa1 | LOGWMS02-119 |
Chamado2 |
| ||
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
O sistema Padrão WMS, permite relacionar saldos do deposito do TOTVS aos endereços relacionados a estes depósitos. O Desenvolvimento proposto, permite o processo de gestão de saldo relacionado os saldos dos depósitos com saldo no WMS, sem a relação por endereços X depósitos:
- Integrações dos embarques com os saldos no WMS conforme deposito alocado.
- Atualização de inventários com os saldos do TOTVS
- Integrações dos recebimentos com os saldos no WMS conforme deposito.
- Cadastro e parâmetros específicos.
Será desenvolvida uma gestão de relação de deposito X local, onde para um local, poderão existir mais depósitos do TOTVS relacionado.
Esta gestão será denominada classe, para que para um local do WMS, seja possível armazenar saldos de depósitos diferentes. No WMS esta classe será relacionada ao campo cod-cliente. Este campo atualmente é sempre considerado 0. Para este novo processo o cadastro de classe será uma relação de deposito com o cadastro genérico de cliente, onde para a gestão do WMS, será considerado o deposito.
Exemplo:
Situação atual, para um local uma relação com deposito.
Situação TOTVS:
Estabelecimento | Deposito | Item | Quantidade |
1 | EXP | X01 | 600 |
Situação WMS:
Estabelecimento | Local | Cod. cliente | Item | Quantidade |
1 | EXP | 0 | X01 | 600 |
Endereço 01/A/01/001:
6 pallet de 100 unidades cada.
Est | Local | Endereço | Cod. cliente | Item | QTD |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
Proposto:
Um local no WMS associado ao deposito EXP e um deposito EX2 – classe 999 associado ao local.
Situação TOTVS:
Estabelecimento | Deposito | Item | Quantidade |
1 | EXP | X01 | 400 |
1 | EX2 | X01 | 200 |
Situação WMS:
Estabelecimento | Local | Cod. cliente | Item | Quantidade |
1 | EXP | 0 | X01 | 400 |
1 | EXP | 99 | X01 | 200 |
Endereço 01/A/01/001:
6 pallet de 100 unidades cada.
|
Saldo endereço:
Est | Local | Endereço | Cod. cliente | Item | QTD |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 0 | X01 | 100 |
1 | EXP | 01/A/01/001 | 99 | X01 | 100 |
1 | EXP | 01/A/01/001 | 99 | X01 | 100 |
Os movimentos no WMS, serão gerados com o campo cod-cliente relacionado ao cadastro das relações deposito X classe, assim os saldos movimentados, serão considerados os associados a esta informação. Processos internos como picking e transferência entre endereços, não serão considerados nestas regras.
<Nesta etapa informar o objetivo da especificação do requisito, ou seja, o que a funcionalidade deve fazer. Exemplo: Permitir que o usuário defina o percentual mínimo em espécie (dinheiro), a referência mínima para calculo dos débitos do aluno e o período de validade do parâmetro de negociação>.
REQ001-1 | Cadastro depósito X local X Classe |
Desenvolver cadastro para associar deposito e classes a uma relação estabelecimento local.
- Cadastro do deposito como controla WMS.
- Sem local cadastrado no WMS.
Tela: Local X Deposito Classe (WM0240B)
- Desenvolver programa wm0240B relacionado ao local informado, permitindo relacionar depósitos a estes.
- Apresentar somente locais cadastrados no WMS.
- Quando selecionado um deposito utilizando o botão de incluir, apresentar o programa WM0240C, permitindo o usuário informar o número da classe.
- Não permitir relacionar um depósito associado a outro local.
- Não permitir relacionar o cliente “0”.
- Não permitir desvincular uma relação Deposito X classe se existir saldo deste no estabelecimento X local do cadastro.
- O botão “alterar” acessa a tela Deposito X Classe (WM0240C).
Tela: Deposito X Classe (wm0240B).
REQ001-2 | Função Classe estoque (alteração WM9000 e WM9000.i) |
Alterar include WM9000.i, para incluir na definição da ttWm-docto-itens o campo:
FIELD cod-depos AS CHAR FORMAT "X(3)"
Alterar programa WM9000 para incluir logica para alteração do código cliente conforme cadastro da relação de deposito X classe.
- desenvolver função: “Log-classe-estoque-wms”,
PROCEDURE pi-atualiza-local:
FOR EACH ttWm-docto:
IF ttWm-docto.cod-depos <> "" and
ttWm-docto.cod-local = "" THEN DO:
FIND FIRST wm-local WHERE
wm-local.cod-estabel = ttWm-docto.cod-estabel AND
wm-local.cod-depos = ttWm-docto.cod-depos
NO-LOCK NO-ERROR.
IF AVAIL wm-local THEN
ASSIGN ttWm-docto.cod-local = wm-local.cod-local.
ELSE DO:
FIND FIRST wm-local-deposito WHERE
wm-local-deposito.cod-estabel = ttWm-docto.cod-estabel AND
wm-local-deposito.cod-depos = ttWm-docto.cod-depos NO-LOCK NO-ERROR.
ASSIGN ttWm-docto.cod-local = IF AVAIL wm-local-deposito THEN wm-local-deposito.cod-local
ELSE "".
END.
IF ttWm-docto.cod-local <> "" THEN
FOR EACH ttWm-docto-itens WHERE
ttWm-docto-itens.cod-estabel = ttWm-docto.cod-estabel AND
ttWm-docto-itens.cod-local = "" AND
ttWm-docto-itens.num-docto = ttWm-docto.num-docto:
ASSIGN ttWm-docto-itens.cod-local = ttWm-docto.cod-local.
END.
END.
END.
END.
IF CAN-FIND(FIRST funcao WHERE funcao.cd-funcao = "Log-classe-estoque-wms" AND funcao.ativo = YES).
FOR EACH ttWm-docto:
FOR EACH ttWm-docto-itens:
FIND FIRST wms-local-classe no-lock
Where wms-local-classe.cod-estabel = ttWm-docto-itens.cod-estabel
AND wms-local-classe.cod-local = ttWm-docto-itens.cod-local
AND wms-local-classe.cod-cliente = ttWm-docto-itens.cod-cliente NO-LOCK NO-ERROR.
IF AVAIL wms-local-classe THEN
ASSIGN ttWm-docto-itens.cod-cliente = wms-local-classe.classe.
END.
End.
- Incluir validação para se existir mais de uma ttWm-docto.cod-local com depósitos diferentes com origem pré-faturamento, bloquear integração.
REQ001-3 | WM9023 |
No processo de entrada alterar:
Wm9023: alterar validação de deposito X local para se não encontrar no local, valida no novo cadastro de classe.
find first wm-local where
wm-local.cod-estabel = tt-docto-ft.cod-estabel and
wm-local.cod-deposito = tt-docto-ft.cod-depos no-lock no-error.
if not avail wm-local then do:
IF CAN-FIND(FIRST funcao WHERE funcao.cd-funcao = "Log-classe-estoque-wms" AND funcao.ativo = YES).
FIND FIRST wms-local-classe
WHERE wms-local-classe.cod-estabel = tt-docto-ft.cod-estabel
AND wms-local-classe.cod-deposito = tt-docto-ft.cod-depos NO-LOCK NO-ERROR.
IF NOT AVAIL wms-local-classe THEN DO:
{utp/ut-liter.i "Depósito_no_WMS" *}
run piCreateErrors (input 3549,
input RETURN-VALUE).
assign l-erro = yes.
undo DESATUALIZACAO, return
END.
/*Deposito inexistente no WMS*/
/* Inicio -- Projeto Internacional */
{utp/ut-liter.i "Depósito_no_WMS" *}
run piCreateErrors (input 3549,
input RETURN-VALUE).
assign l-erro = yes.
undo DESATUALIZACAO, return.
end.
REQ001-4 | Função Classe estoque (alteração BOSC039atua) |
Bosc039atua: alterar processo de para alterar deposito/local. tt-itens-ped.cod-depos.
Incluir nova variável:
def var l-deposito LIKE wm-local.cod-depos no-undo.
Incluir gerenciamento da variável na procedure atualizaPreFaturEMS:
IF CAN-FIND(FIRST funcao WHERE funcao.cd-funcao = "Log-classe-estoque-wms" AND funcao.ativo = YES).
IF Wm-docto-itens.cod-cliente <> 0 THEN DO:
FIND FIRST wms-local-classe
WHERE wms-local-classe.cod-estabel = Wm-docto-itens.cod-estabel
AND wms-local-classe.cod-local = Wm-docto-itens.cod-local
AND wms-local-classe.cod-cliente = Wm-docto-itens.cod-cliente NO-LOCK NO-ERROR.
IF AVAIL wms-local-classe THEN DO:
ASSIGN l-deposito = wms-local-classe.cod-depos.
END.
ELSE DO:
ASSIGN l-deposito = wm-local.cod-depos.
END.
End.
Alterar create:
IF NOT AVAIL tt-itens-ped THEN DO:
create tt-itens-ped.
assign tt-itens-ped.cod-estabel = wm-docto.cod-estabel
tt-itens-ped.cdd-embarq = de-cdd-embarq
tt-itens-ped.nr-resumo = i-nr-resumo
tt-itens-ped.nr-pedcli = tt-volume.nr-pedcli
tt-itens-ped.cod-depos = l-deposito /* alterar Britania*/
tt-itens-ped.nome-abrev = tt-volume.nome-abrev
tt-itens-ped.it-codigo = tt-volume.cod-item
tt-itens-ped.cod-refer = tt-volume.cod-refer
tt-itens-ped.cod-lote = tt-volume.cod-lote
tt-itens-ped.seq-item = wm-docto-itens-ped.num-seq-item-ped
tt-itens-ped.nr-entrega = wm-docto-itens-ped.int-1
tt-itens-ped.qt-item-ped = de-qtd-item-ped
tt-itens-ped.qt-item = de-qtd-item
tt-itens-ped.peso-liquido = de-qtd-peso
tt-itens-ped.peso-bruto = de-qtd-peso + IF FIRST-OF(tt-volume.num-seq-volume) THEN (tt-volume.qti-embalagem * wm-embalagem.qtd-peso) ELSE 0.
END.
REQ001-5 | Função Classe estoque (RE2005g e re1005g) |
- incluir validação de deposito local no WMS.
IF CAN-FIND(FIRST funcao WHERE funcao.cd-funcao = "Log-classe-estoque-wms" AND funcao.ativo = YES).
FIND FIRST wms-local-classe
WHERE wms-local-classe.cod-estabel = doc-fisico.cod-estabe
AND wms-local-classe. cod-depos = rat-lote.cod-depos NO-LOCK NO-ERROR.
IF AVAIL wms-local-classe THEN DO:
ASSIGN c-cod-local-wms = wms-local-classe.cod-local.
END.
- Alterar create da ttWm-docto-itens, para incluir o código do deposito.
ttWm-docto-itens.cod-depos = rat-lote.cod-depos.
REQ001-6 | Função Classe estoque (EQ3030). |
- incluir validação de deposito local no WMS.
IF CAN-FIND(FIRST funcao WHERE funcao.cd-funcao = "Log-classe-estoque-wms" AND funcao.ativo = YES).
FIND FIRST wms-local-classe
WHERE wms-local-classe.cod-estabel = it-dep-fat.cod-estab
AND wms-local-classe. cod-depos = it-dep-fat.cod-depos NO-LOCK NO-ERROR.
IF AVAIL wms-local-classe THEN DO:
ASSIGN c-cod-local = wms-local-classe.cod-local.
END.
- Alterar creeate da ttWm-docto-itens, para incluir o código do deposito.
ttWm-docto-itens.cod-depos = it-dep-fat.cod-depos.
REQ001-7 | Função Classe estoque (bc9024, bcapi9024 e bosc118). |
Incluir campo para informar cod-cliente/classe. Trazer como padrão o relacionado a WM-box-saldo localizando pela wm-box-saldo-etiqueta do id da etiqueta lida.
- Registrar cod-cliente/classe na tabela wm-inventario-endereço. Alterar a chamada da bcapi9024 para incluir o campo cod-cliente e bosc0118 procedure createEnderecoInventario, para gerar a tabela com a nova informação.
REQ001-8 | Função Classe estoque (WM2023) |
Incluir coluna com informação do o código cliente/classe, conforme alteração do REQ001-6.
REQ001-9 | Função Classe estoque (WM2021) |
Incluir coluna com informação do o código cliente/classe, conforme alteração do REQ001-6
REQ001-10 | Função Classe estoque (WM2010) |
- Alterar processo de atualização de saldos no WMS, considerando o código cliente/classe para comparativo e acertos.
- Incluir coluna com informação do o código cliente/classe, conforme alteração do REQ001-6.
REQ001-11 | Função Classe estoque (WM2022) |
- Alterar processo comparativo de saldo inventariado WMS com ERP, para considerar a relação classe X deposito para comparar os saldos ao deposito.
- Alterar relatório para considerar os comparativos de deposito, dividindo o relatório em depósitos.
<Regra de negócio é o que define a forma de fazer o negócio, o processo definido e/ou as regras que devem ser contempladas. Devem ser descritas restrições, validações, condições e exceções do processo. Caso necessário, incluir neste capítulo também regras de integridade que devem ser observadas no momento do desenvolvimento>.
<Na tabela abaixo informe quais são as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina>.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
[ACAA040 – Parâmetros] | [Alteração] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA050 – Negociação Financeira] | [Envolvida] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA060 – Cadastro de Pedidos] | [Criação] | [Atualizações -> Acadêmico-> Cadastros] | - |
Exemplo de Aplicação:
Tabelas Utilizadas
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
Protótipo 01
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <cod-estabel> |
Tipo | <C> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição | Configurações de Planejamento |
Tipo | Consulta Padrão |
Tabela | “AMB” |
Índice | “Código” |
Campo | “Código”; ”Descrição” |
Retorno | AMB->AMB_CODIGO |
<Informações utilizadas na linha Datasul>.
Procedimentos
Procedimento |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Módulo |
|
|
|
Programa base |
|
|
|
Nome Menu | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro padrão | Sim | Sim | Sim |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Release de Liberação |
|
|
|
Programas
Programa |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Nome Externo |
|
|
|
Nome Menu/Programa | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Nome Verbalizado[1] | (Max 254 posições) | (Max 254 posições) | (Max 254 posições) |
Procedimento |
|
|
|
Template | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) |
Tipo[2] | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoria[3] |
|
|
|
Executa via RPC | Sim/Não | Sim/Não | Sim/Não |
Registro padrão | Sim | Sim | Sim |
Outro Produto | Não | Não | Não |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Query on-line | Sim/Não | Sim/Não | Sim/Não |
Log Exec. | Sim/Não | Sim/Não | Sim/Não |
Rotina (EMS) |
|
|
|
Sub-Rotina (EMS) |
|
|
|
Localização dentro da Sub Rotina (EMS) |
|
|
|
Compact[4] | Sim/Não | Sim/Não | Sim/Não |
Home[5] | Sim/Não | Sim/Não | Sim/Não |
Posição do Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar os papeis com os quais o programa deve ser vinculado |
|
|
|
Cadastro de Papéis
<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.
<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.
Código Papel | (máx 3 posições) |
Descrição em Português* |
|
Descrição em Inglês* |
|
[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
[6] Obrigatório quando o projeto for FLEX
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|