Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Siscomex Transmissão
Data/Hora da Publicação: 21/05/2007 00:00:00
Data/Hora Última Alteração: 03/03/2010 14:00:34
Descrição da Nota: CONSULTA DE RE - CRE
Sintoma
O pwCE não consultava o Status do RE no Siscomex.
Solução
Desenvolvimento para Consulta dos dados da RE no Siscomex.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03721 Data: 21/05/2007 Hora: 10:28:50
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03721
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00027
Agrupamento : 00166
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
CONSULTA DE RE - CRE
----------------------------------------------------------------------------------------------------
Palavras Chave:
CONSULTA SISCOMEX RE CRE
----------------------------------------------------------------------------------------------------
Objetos da nota:
DOMD /PWS/ZYCED017
DYNP /PWS/SAPMZYCE105 0100
DYNP /PWS/SAPMZYCE105 0101
DYNP /PWS/SAPMZYCE105 0107
FUGR /PWS/ZYCEGF4
REPS /PWS/MZYCE200I01
REPS /PWS/ZYCER001
TABD /PWS/ZYCEE116
TABD /PWS/ZYCET116
TRAN /PWS/ZYCER001
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMD /PWS/ZYCED017
------------------------------------------------------------------------
Domínio modificado: /PWS/ZYCED017
-Valores individuais
Incluído valor fixo "CRE"
Texto modificado, idioma: PT (14 caracteres):
"Consulta de RE"
Excluído valor fixo "RRE"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCE105 0100
Criar Novo Campo
Ctg: Cpo.txt.
Nome: /PWS/ZYCEE116-STATUS_SISC
Texto: Situação do RE
Linha: 4
Coluna: 68
Comprimento: 14
Criar Novo Campo
Ctg: Cpo.entrada/saída
Nome: /PWS/ZYCEE116-STATUS_SISC
Campo Somente de Saída
Linha: 4
Coluna: 85
Comprimento: 15
Campo do Data Dictionary: X
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCE105 0107
Alterado Campo:
Ctg: Cpo.entrada/saída
Nome: /PWS/ZYCEE116-NRDESPA
Alterados os Atributos para:
CompDef: 12
Comp.vis: 12
----------------------------------------------------------------------------------------------------
Modificações efetuadas Function /PWS/ZYCE_RETURN_FILA
Alterações na Interface da Função.
Parâmetros de Importação(Todos são Opcionais e Transferência de Valor).
MSGPEND LIKE /PWS/ZYCET116-MSGPEND
NRDESPA LIKE /PWS/ZYCET116-NRDESPA
OBSDTIC LIKE /PWS/ZYCET116-OBSDTIC
DTVALIDADE LIKE /PWS/ZYCET066-DTVALIDADE
DTEMBA LIKE /PWS/ZYCET116-DTEMBA
STATUS_SISC LIKE /PWS/ZYCET116-STATUS_SISC
DT_AVERB LIKE /PWS/ZYCET001-DTAVERB
Alterações no Código
...
IF stasis = 'T' AND tp_doc = 'DSE'.
UPDATE /pws/zycet208 SET nrdse = nrsiscomex
WHERE nrseqdse = nrchave.
COMMIT WORK.
UPDATE /pws/zycet212 SET nrdse = nrsiscomex
WHERE nrseqdse = nrchave.
COMMIT WORK.
ENDIF.
* >> Início da exclusão: /PWS/ZYCE_RETURN_FILA
ELSEIF tp_doc = 'RRE'.
CLEAR: bukrs.
SELECT SINGLE bukrs
FROM /pws/zycet116
INTO bukrs
WHERE nrseqre EQ nrchave.
UPDATE /pws/zycet183 SET nrsiscomex = nrsiscomex
stasis = stasis
dtlog = dtlog
log = log
WHERE nrseq = nrseq
AND nrchave = nrchave
AND nremb = nremb
AND tp_doc = tp_doc.
UPDATE /pws/zycet116 SET status = status
*Início 1 - chamado 264527 - Vinicius Andrade - 18/10/2005
WHERE nrseqre = nrchave.
*Fim 1 - chamado 264527 - Vinicius Andrade - 18/10/2005
IF NOT codnrseq IS INITIAL.
UPDATE /pws/zycet077 SET stasis = stasis
dtlog = dtlog
log = loganexo
*Início 2 - chamado 264527 - Vinicius Andrade - 18/10/2005
WHERE nrseq = nrchave
*Fim 2 - chamado 264527 - Vinicius Andrade - 18/10/2005
AND codnrseq = codnrseq
AND tp_doc = tp_doc.
COMMIT WORK.
IF sy-subrc NE 0.
return = '4'.
EXIT.
ENDIF.
ENDIF.
IF NOT itab_rre[] IS INITIAL.
READ TABLE itab_rre INDEX 1.
IF sy-subrc EQ 0.
DELETE FROM /pws/zycet304 WHERE nrseqre = itab_rre-nrseqre.
ENDIF.
LOOP AT itab_rre.
itab_rre-bukrs = bukrs.
UPDATE /pws/zycet001 SET dtaverb = dtaverb " Dt Averbação
nrsd = nrsd " Nr DDE
WHERE nrseq = itab_rre-nrseq. " Nr Emb.
COMMIT WORK.
UPDATE /pws/zycet120 SET nrsd = nrsd " Nr DDE
WHERE nrseq = itab_rre-nrseq.
COMMIT WORK.
READ TABLE itab_datascambio
WITH KEY nrseqre = itab_rre-nrseqre " Nr RE
codnrseq = itab_rre-codnrseq. " Nr Anexo RE
IF sy-subrc EQ 0.
UPDATE /pws/zycet116
SET dtemba = itab_datascambio-dtemb
WHERE nrseqre = itab_datascambio-nrseqre.
UPDATE /pws/zycet118
SET dtprovi = itab_datascambio-dtprovi " Dt. Provisão
dtaplic = itab_datascambio-dtaplic " Dt. Aplicação
dtcheck = itab_datascambio-dtcheck " Dt. Checagem
WHERE nrseqre = itab_datascambio-nrseqre " Nr RE
AND seqagrupado = itab_datascambio-codnrseq. " Anexo RE
COMMIT WORK.
ENDIF.
UPDATE /pws/zycet304
SET vlprovi = itab_rre-vlprovi " Vl Provisão
vlaplic = itab_rre-vlaplic " Vl Aplicação
praca = itab_rre-praca " Nr Praça
banco = itab_rre-banco " Nr Banco
nrcontrato = itab_rre-nrcontrato " Nr Contrato
WHERE nrseqre = itab_rre-nrseqre " Nr RE
AND codnrseq = itab_rre-codnrseq " Nr Anexo RE
AND nrcontrato = itab_rre-nrcontrato.
IF sy-subrc NE 0.
INSERT /pws/zycet304 FROM itab_rre.
ENDIF.
COMMIT WORK.
ENDLOOP.
ENDIF.
* << Fim da exclusão: /PWS/ZYCE_RETURN_FILA
ELSEIF tp_doc = 'RDSE'.
CLEAR bukrs.
SELECT SINGLE bukrs
FROM /pws/zycet116
INTO bukrs
WHERE nrseqre EQ nrchave.
UPDATE /pws/zycet183 SET nrsiscomex = nrsiscomex
stasis = stasis
dtlog = dtlog
log = log
WHERE nrseq = nrseq
AND nrchave = nrchave
AND nremb = nremb
AND tp_doc = tp_doc.
IF NOT codnrseq IS INITIAL.
...
IF stasis = 'T' AND tp_doc = 'DSE'.
UPDATE /pws/zycet208 SET nrdse = nrsiscomex
WHERE nrseqdse = nrchave.
COMMIT WORK.
UPDATE /pws/zycet212 SET nrdse = nrsiscomex
WHERE nrseqdse = nrchave.
COMMIT WORK.
ENDIF.
* >> Início da inclusão: /PWS/ZYCE_RETURN_FILA
ELSEIF tp_doc = 'CRE'.
UPDATE /pws/zycet183 SET stasis = stasis
dtlog = dtlog
log = log
WHERE nrchave = nrchave
AND nremb = nremb
AND tp_doc = tp_doc.
COMMIT WORK.
UPDATE /pws/zycet077 SET stasis = stasis
dtlog = dtlog
log = log
WHERE nrseq = nrchave
AND tp_doc = tp_doc.
COMMIT WORK.
UPDATE /pws/zycet116 SET
status_sisc = status_sisc
msgpend = msgpend
dtemba = dtemba
nrdespa = nrdespa
obsdtic = obsdtic
WHERE nrseqre = nrchave.
COMMIT WORK.
UPDATE /pws/zycet001 SET nrsd = nrdespa
dtaverb = dt_averb
WHERE nrseq = nremb.
COMMIT WORK.
UPDATE /pws/zycet066 SET dtvalidade = dtvalidade
WHERE nrseqre = nrchave.
COMMIT WORK.
* << Fim da inclusão: /PWS/ZYCE_RETURN_FILA
ELSEIF tp_doc = 'RDSE'.
CLEAR bukrs.
SELECT SINGLE bukrs
FROM /pws/zycet116
INTO bukrs
WHERE nrseqre EQ nrchave.
UPDATE /pws/zycet183 SET nrsiscomex = nrsiscomex
stasis = stasis
dtlog = dtlog
log = log
WHERE nrseq = nrseq
AND nrchave = nrchave
AND nremb = nremb
AND tp_doc = tp_doc.
IF NOT codnrseq IS INITIAL.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE200I01
...
ENDIF.
ENDIF.
WHEN 'B_LOG'.
CLEAR okcode.
CLEAR itab_zycet183_aux.
GET CURSOR FIELD v_campo VALUE v_valor LINE v_linha.
v_pos = tbcontrol-top_line + v_linha - 1.
READ TABLE itab_zycet183_aux INDEX v_pos.
IF sy-subrc = 0.
CASE itab_zycet183_aux-tp_doc.
* >> Início da exclusão: MODULE USER_COMMAND_0100
WHEN 'DDE' OR 'DSE'.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0100
WHEN 'DDE' OR 'DSE' OR 'CRE'.
* << Fim da inclusão
IF NOT itab_zycet183_aux-log IS INITIAL.
v_texto2 = v_texto = itab_zycet183_aux-log.
v_txt = 95.
DO v_txt TIMES.
IF v_texto2(1) <> ' ' OR v_texto2(1) EQ ' '.
SHIFT v_texto2.
ENDIF.
ENDDO.
v_texto1 = v_texto2.
CALL SCREEN '0200' STARTING AT 25 6
ENDING AT 70 12.
ELSE.
MESSAGE i016 WITH text-001.
ENDIF.
WHEN 'RE' OR
'RE12' OR
* >> Início da exclusão: MODULE USER_COMMAND_0100
'RE03' OR
'RRE'.
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0100
'RE03'.
* << Fim da inclusão
IF itab_zycet183_aux-tca = 'X'.
IF NOT itab_zycet183_aux-log IS INITIAL.
v_texto2 = v_texto = itab_zycet183_aux-log.
v_txt = 95.
DO v_txt TIMES.
IF v_texto2(1) <> ' ' OR v_texto2(1) EQ ' '.
SHIFT v_texto2.
ENDIF.
ENDDO.
v_texto1 = v_texto2.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER001
Criado report /PWS/ZYCER001.
Características:
Título: Consulta de RE - CRE
Categoria: Programa Executável
Status: Programa de Clientes Produtivo
Aplicação: Válido para várias aplicações
Grupo de Autorização: ZYCE
Classe Desenvolvimento: /PWS/ZYCE
*-----------------------------------------------------------------------
* PROCWORK Software
* Produto: Pw.CE
* Módulo:
* Descrição : Envio para a Fila de Transmissão das REs, para serem
* consultadas no Siscomex - CRE.
*-----------------------------------------------------------------------
* ESTE PROGRAMA NÃO DEVE SER ALTERADO SEM PRÉVIA CONSULTA
*-----------------------------------------------------------------------
* Nome Data Descrição
* Tiago Gonçalves 27/04/2007 Codificação Inicial
*-----------------------------------------------------------------------
REPORT /pws/zycer001 .
TABLES:
/pws/zycet077,
/pws/zycet183.
DATA:
v_cpf LIKE /pws/zycet183-cpf,
v_uname LIKE /pws/zycet184-uname,
v_cre LIKE /pws/zycet320-rre,
v_countfi(10) TYPE n.
DATA: BEGIN OF itab_zycet116 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet116. "Estrutura de /PWS/ZYCET116
DATA: END OF itab_zycet116.
DATA: BEGIN OF wa_user.
INCLUDE STRUCTURE /pws/zycet184. "Estrutura de /PWS/ZYCET184
DATA: END OF wa_user.
DATA: BEGIN OF itab_zycet183 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet183. "Estrutura de /PWS/ZYCET183
DATA: END OF itab_zycet183.
DATA: BEGIN OF itab_zycet001 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet001. "Estrutura de /PWS/ZYCET001
DATA: END OF itab_zycet001.
DATA: BEGIN OF itab_zycet003 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet003. "Estrutura de /PWS/ZYCET003
DATA: END OF itab_zycet003.
*----------------------------------------------------------------------*
* PROGRAMA PRINCIPAL
*----------------------------------------------------------------------*
START-OF-SELECTION.
* Rotina de busca - Registro de Exportação
PERFORM busca_re.
* Rotina que insere os Registros na Fila de Transmissão
PERFORM transfer_re.
END-OF-SELECTION.
*----------------------------------------------------------------------*
* FIM PROGRAMA PRINCIPAL
*----------------------------------------------------------------------
*----------------------------------------------------------------------*
* Form busca_re
*----------------------------------------------------------------------*
* Objetivo: Rotina de Envio para Fila de Transmissão - Registro de
* Exportação - RE
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM busca_re.
SELECT *
FROM /pws/zycet116
INTO TABLE itab_zycet116
WHERE nrre NE space
AND status_sisc NE 'AVERBADO'.
SORT itab_zycet116 BY nrseqre.
SELECT *
FROM /pws/zycet003
INTO TABLE itab_zycet003
FOR ALL ENTRIES IN itab_zycet116
WHERE nrseqre = itab_zycet116-nrseqre.
SORT itab_zycet003 BY nrseqre.
SELECT *
FROM /pws/zycet001
INTO TABLE itab_zycet001
FOR ALL ENTRIES IN itab_zycet003
WHERE nrseq = itab_zycet003-nrseq
AND nrsd EQ space
AND dtaverb EQ '00000000'.
SORT itab_zycet001 BY nrseq.
* Seleciona o CPF correspondente ao usuário
SELECT SINGLE *
FROM /pws/zycet184
INTO wa_user
WHERE uname = sy-uname.
* Deleta CREs que já estão na fila antes de enviar.
SELECT *
FROM /pws/zycet183
INTO TABLE itab_zycet183
WHERE tp_doc = 'CRE'
AND stasis = 'A' OR stasis = 'E'.
LOOP AT itab_zycet116. "apaga as CREs repetidas
READ TABLE itab_zycet183 WITH KEY nrchave = itab_zycet116-nrseqre.
IF sy-subrc EQ 0.
DELETE itab_zycet116.
ENDIF.
ENDLOOP.
ENDFORM. " busca_re
*----------------------------------------------------------------------*
* Form transfer_re
*----------------------------------------------------------------------*
* Objetivo: Rotina de Envio para Fila de Transmissão - Registro de
* Exportação - RE
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM transfer_re.
LOOP AT itab_zycet116.
* se estiver flegado é pra gerar os cres com o usuário e cpf de quem
* rodou a transação /PWS/ZYCER001; caso contrário, sem flag, é para
*gerar com o usuário e cpf que estiver no RE.
SELECT SINGLE rre
FROM /pws/zycet320
INTO v_cre.
IF v_cre NE 'X'.
SELECT SINGLE cpf uname
FROM /pws/zycet183
INTO (v_cpf, v_uname)
WHERE tp_doc EQ 'RE'
AND nrchave EQ itab_zycet116-nrseqre.
ELSE.
v_cpf = wa_user-cpf.
v_uname = wa_user-uname.
ENDIF.
READ TABLE itab_zycet003
WITH KEY nrseqre = itab_zycet116-nrseqre.
CHECK sy-subrc = 0.
READ TABLE itab_zycet001
WITH KEY nrseq = itab_zycet003-nrseq.
CHECK sy-subrc = 0.
* busca sequencial da fila
PERFORM busca_sequencial.
*Move dados para a Tabela /PWS/ZYCET077
/pws/zycet077-nrseq = itab_zycet116-nrseqre.
/pws/zycet077-tp_doc = 'CRE'.
/pws/zycet077-codnrseq = '001'.
/pws/zycet077-uname = sy-uname.
/pws/zycet077-stasis = 'A'.
MODIFY /pws/zycet077.
*Move dados para a Tabela /PWS/ZYCET183
/pws/zycet183-cpf = v_cpf.
/pws/zycet183-mandt = itab_zycet116-mandt.
/pws/zycet183-nrseq = v_countfi.
/pws/zycet183-tp_doc = 'CRE'.
/pws/zycet183-nrchave = itab_zycet116-nrseqre.
/pws/zycet183-nremb = itab_zycet003-nrseq.
/pws/zycet183-bukrs = itab_zycet116-bukrs.
/pws/zycet183-branch = itab_zycet116-j_1bbranch.
/pws/zycet183-dtenvf = sy-datum.
/pws/zycet183-nrsiscomex = itab_zycet116-nrre.
/pws/zycet183-uname = v_uname.
/pws/zycet183-stasis = 'A'.
/pws/zycet183-prioridade = 'B'.
MODIFY /pws/zycet183.
ENDLOOP.
ENDFORM. " transfer_re
*&---------------------------------------------------------------------*
*& Form busca_sequencial
*&---------------------------------------------------------------------*
* Busca o próximo número da tabela /pws/zycet183
*----------------------------------------------------------------------*
FORM busca_sequencial.
DATA: v_fnrseq LIKE /pws/zycet183-nrseq.
CLEAR: v_countfi.
SELECT MAX( nrseq )
FROM /pws/zycet183
INTO (v_fnrseq)
WHERE tp_doc EQ 'CRE'.
v_countfi = v_fnrseq + 1.
SHIFT v_countfi RIGHT DELETING TRAILING space.
UNPACK v_countfi TO v_countfi.
ENDFORM. " busca_sequencial
----------------------------------------------------------------------------------------------------
Modificações efetuadas em Function /PWS/ZYCE_TRANSFER_CRE
Criado a Função: /PWS/ZYCE_TRANSFER_CRE
Características:
Módulo de Função: /PWS/ZYCE_TRANSFER_CRE
Grupo de Funções: /PWS/ZYCEGF4 - CE - Grupo de Função SISCOMEX
Texto Breve: RFC - CRE
Tipo de Execução: Módulo de Acesso Remoto
Classe Desenvolvimento: /PWS/ZYCE
Nome do Programa: /PWS/SAPLZYCEGF4
Nome do Include: /PWS/LZYCEGF4U16
Interface da Função.
Parâmetros de Importação(Todos são Opcionais e Transferência de Valor).
I_NRSEQRE LIKE /PWS/ZYCET116-NRSEQRE
I_NRSEQ LIKE /PWS/ZYCET117-NRSEQ
Parâmetros Tabelas(opcional desflagado)
ITAB_CRE LIKE /PWS/ZYCET117
Código Fonte.
*-----------------------------------------------------------------------
* PROCWORK Software
* Produto : pw.CE
* Módulo : DE - Documentação Exportação
* Descrição: RFC - CRE
*-----------------------------------------------------------------------
* ESTE PROGRAMA NÃO DEVE SER ALTERADO SEM PRÉVIA CONSULTA
*-----------------------------------------------------------------------
FUNCTION /pws/zyce_transfer_cre.
*"----------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" VALUE(I_NRSEQRE) TYPE /PWS/ZYCET116-NRSEQRE
*" VALUE(I_NRSEQ) TYPE /PWS/ZYCET117-NRSEQ
*" TABLES
*" ITAB_CRE STRUCTURE /PWS/ZYCET117
*"----------------------------------------------------------------------
* Declaração da Tabela que fará a ligação entre os campos obrigatórios.
DATA: itab_zycet116 LIKE /pws/zycet116 OCCURS 10 WITH HEADER LINE.
DATA: itab_zycet117 LIKE /pws/zycet117 OCCURS 10 WITH HEADER LINE.
* Variáveis
DATA : v_index LIKE sy-tabix ,
v_nrre LIKE itab_zycet116-nrre .
*----------------------------------------------------------------------
* Inicio do Processamento
*----------------------------------------------------------------------
* Lê as tabelas transparentes, carregando as tabelas internas
SELECT *
FROM /pws/zycet117
INTO TABLE itab_zycet117
WHERE nrseq = i_nrseq AND
nrseqre = i_nrseqre .
SELECT *
FROM /pws/zycet116
INTO TABLE itab_zycet116
FOR ALL ENTRIES IN itab_zycet117
WHERE nrseqre = itab_zycet117-nrseqre.
* Remove "/" e "-" do campo NRRE.
LOOP AT itab_zycet116.
v_index = sy-tabix.
IF NOT itab_zycet116-nrre IS INITIAL.
v_nrre = itab_zycet116-nrre.
CONCATENATE v_nrre(2) v_nrre+3(7)
INTO itab_zycet116-nrre.
MODIFY itab_zycet116 INDEX v_index.
ENDIF.
ENDLOOP.
MOVE: itab_zycet116-nrre TO itab_cre-nrre,
'001' TO itab_cre-nrseq.
APPEND itab_cre.
CLEAR itab_cre.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCEE116
Incluir campo no final da Tabela.
Nome Campo: STATUS_SISC
Inic. : X
Tipo Campo: CHAR15
Alterar Tipo do Campo para:
Nome: NRDESPA
Tipo do Campo: /PWS/ZYCEL164
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCET116
Incluir campo no final da Tabela.
Nome Campo: STATUS_SISC
Inic. : X
Tipo Campo: CHAR15
Alterar Tipo do Campo para:
Nome: NRDESPA
Tipo do Campo: /PWS/ZYCEL164
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TRAN /PWS/ZYCER001
Criar Transação de Report.
Código da Transação: /PWS/ZYCER001
Classe Desenvolvimento: /PWS/ZYCE
Texto da Transação: CE - Envia CREs para a Fila
Programa: /PWS/ZYCER001
Tela de Seleção: 1000