quinta-feira, 5 de dezembro de 2013

PIMS50 - Integração entre PIMS x DATASUL (Desenvolvimento Interno)

PIMS50

Olá neste poste explicarei como funciona a Integração das movimentações entre o PIMS x DATASUL (EMS 2.04)

Foi desenvolvido internamente em parceria com a consultora Andreia A. Pinto o programa que faz a integração das movimentações de Requisição e Solicitação de Compras, vindas através das Ordens de Serviço do PIMS C/S, PIMS MI e PIMS PI.

Anterior a esta integração funcionava de outra maneira, sem validações e apenas inseria os dados na tabela intermediaria e o Datasul realizava a leitura devolvendo o numero da REQ ou SOL.

Com esta remodelagem, foi repensado diversas travas e melhorias na rotina para aumentar a consistência da informação e confiabilidade nos resultados finais.

Então foi inserido o tempo que levou para gerar a informação.: Tempo de Retorno (minutos): .35 - Log PIMS50 - 05/07/13 13:05:06

Validação da Empresa.:  Empresa: 1 OK
Validação do Estabelecimento.: Estabelecimento: 101 OK
Validação do Usuário.: Usuário: alexandra OK
Validação do Item.: Item: 511 OK
Validação da Nat. de Despesa.: Nat Despesa: 182 OK
Validação da Conta Contabil.: Conta: 31104109 OK
Validação da Unid. de Medida.: Unidade: pc OK
Validação do C.Custo.: CCusto: 70021420 OK
Validação se Existe narrativa.: Narrativa: OK
Validação do Aprovador.: Aprovador: OK
Validação do Orçamento.: Orçamentária: OK

Com estas validações acima um usuário não consegue lançar um Req ou Sol através de alguma OS do PIMS se não tiver verba, ou se não tiver aprovador atrelado ao C.Custo etc...

Abaixo um Print de como funciona o PIMS50, necessita rodar 2 seções do mesmo.

1ª com um intervalo de execução de 15 segundos.


2ª com um intervalo de 600 segundos.


O porque de executar separado?
R.: Concorrência

Caso optar por consumir uma unica licença Progress/Datasul não funciona, pois caso colocar para rodar os 2 Ida (PIMS -> EMS) e volta (EMS  -> PIMS) o sistema não entende e fica dando o erro que a tabela está em uso (TTY)

As requisições e solicitações podem ser geradas através do PIMS C/S (Apontamento de Insumos, Abastecimento, MANFRO etc...) também através do PIMS MI (Gerenciador de Ordens de Serviço) e por fim através do PIMS PI (Laboratório Industrial) sobre as informações de insumos industriais.

Toda e qualquer movimentação citada dos programas acima, passa pela tabela INTREQUISICAO gravando na coluna REQ_STATUS como 'TR' que seria Transferido.

Após o PIMS50 que fica rodando de 15 em 15 segundo faz uma leitura nesta tabela e faz aquelas verificações citadas acima.

Caso o usuário possuir verba para aprovação da requisição o status mudará para 'LI' - Liberado (sendo possível o atendimento e retirada no almoxarifado).

Se for mais de uma quantidade e o almoxarifado ou que seja recebeu parcialmente, o status muda para 'AP' - Atendimento Parcial. (Só concluindo quando atender toda a quantidade que ai mudaria para AT - Atendimento Total)

Ao contrario o usuário não tem verba de aprovação automática e depende de um aprovador, o status fica como 'PL' - Pendente de Liberação.  (Só se transformará em 'LI' após o aprovador entrar na tela e aprovar)

Fez uma SOLICITAÇÃO está aprovada foi para o Compras, o Status muda para CO - Cotada após o compras fazer os procedimentos e gerar o Pedido muda para 'PE'.

Fez alguma e não tem orçamento, não gerá o numero da REQ ou SOL e o status fica com 'EO' - Erro Orçamentário.

Fez alguma e não tem aprovador, conta vinculada ao centro de custo ou algum outro erro de relacionamento que impede a geração do numero da REQ ou SOL o status passa a ficar como 'ER' - Erro Integração.

Por fim, fez alguma e teve de cancelar ou excluir no DATASUL - CD1406 ou similar o status fica como 'CA' - Cancelada.

Lembrando que nunca a informação some da tabela intermediaria, pois lá além de servir como intermédio da integração também por não apagar serve como um LOG para consultas.

Abaixo um Describe da tabela INTREQUISICAO que fica no Owner.: EMS204ESP responsável por armazenar os dados da Integração.

SQL> desc ems204esp.intrequisicao
Name               Type           Nullable Default Comments 
------------------ -------------- -------- ------- -------- 
ID_REQUISICAO      NUMBER                  0                
EMPRESA            NUMBER         Y        0                
U##ESTABELECIMENTO VARCHAR2(3)    Y                         
ESTABELECIMENTO    VARCHAR2(3)    Y                         
OS                 NUMBER         Y        0                
CENTRO_CUSTO       VARCHAR2(20)   Y                         
DATA_SOLIC         DATE           Y                         
MAT_CODIGO         VARCHAR2(13)   Y                         
MAT_DESCRI         VARCHAR2(500)  Y                         
UNIDADE            VARCHAR2(30)   Y                         
INSP_INTERNA       VARCHAR2(1)    Y                         
INSP_EXTERNA       VARCHAR2(1)    Y                         
TIPO_REQSOL        VARCHAR2(1)    Y                         
IMPR_ALMOX         VARCHAR2(1)    Y                         
IMANUT_INVEST      VARCHAR2(1)    Y                         
SOLICITANTE        VARCHAR2(40)   Y                         
EQUIPE             VARCHAR2(50)   Y                         
PREV_UTILIZ        DATE           Y                         
REQ_STATUS         VARCHAR2(2)    Y                         
ID_OSPECPREV       NUMBER         Y        0                
NUM_PEDIDO         NUMBER         Y        0                
PREV_ENTREGA       DATE           Y                         
CLASSIF_SC         VARCHAR2(1)    Y                         
DETINSPEC          VARCHAR2(2000) Y                         
MAT_DESDET         VARCHAR2(2000) Y                         
COMENTARIO         VARCHAR2(2000) Y                         
COMPRADOR          VARCHAR2(20)   Y                         
NUM_DOCERP         NUMBER         Y        0                
NUM_SEQERP         NUMBER         Y        0                
SER_DESDET         VARCHAR2(2000) Y                         
DEP_CODIGO         NUMBER         Y        0                
DIV_CODIGO         NUMBER         Y        0                
EMP_EMPCUSTO       NUMBER         Y        0                
OI_CODIGO          NUMBER         Y        0                
NUM_SOLIC          NUMBER         Y        0                
QTDE_SOLIC         NUMBER(12,2)   Y        0                
TIPO_MOVTO         VARCHAR2(1)    Y                         
FUN_CRACHA         VARCHAR2(12)   Y                         
PROGRESS_RECID     NUMBER         Y                         
CD_INVESTIMENTO    NUMBER(10)     Y                         
MODULO_ORIGEM      VARCHAR2(10)   Y                         
EMP_EMPERP         NUMBER(3)      Y                         
EMP_FILIALERP      NUMBER(5)      Y                         
NO_BOLETIM         NUMBER(9)      Y                         
CD_SIST_VEIC       NUMBER(4)      Y                         
NO_REQUIS          NUMBER(10)     Y                         
INSTANCIA          VARCHAR2(5)    Y                         
CUSTO_UNITARIO     NUMBER(13,4)   Y                         
CD_DEPOSITO        VARCHAR2(15)   Y                         
LOGPIMS50          VARCHAR2(1000) Y        

Nenhum comentário:

Postar um comentário