cancel
Showing results for 
Search instead for 
Did you mean: 

Entrar DACTE

0 Kudos

Bom Dia.

Preciso Deixar a Entrada do DACTE como manual, e cria rum job que execute esse passo após 7 dias da chegada do CT-e.

Estou tentando descobri o que é chamado quando se entra o DACTE, olhando e debugando  o webdynpro /XNFE/CTE_FISC_WORKPLACE, mas está complicado.

Alguém já fez isso? saberia me informar o que eu deveria fazer para simular esse processo manual dentro do meu job?

O Motivo dessa demanda é devido a grande quantidade de CT-es que são cancelados.

Obrigado

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hoje no standard não é possível.

Você está automatizando a entrada?

Que tipo de processo você atribui ao CT-e?

CTEBASIC

CTEFLXBL

CTEINBLE

CTEOUTLE

* em qualquer condição não vejo menor sentido em fazer isso.

Abraço

Eduardo Chagas

0 Kudos

Boa tarde Eduardo.

Já resolvi  utilizando a Função /XNFE/CTE_PROCFLOW_EXECUTION.

O sentido é como disse acima.

O faturamento não quer que a automatização siga adiante durante o tempo que o CT-e pode ser cancelado, e solicitaram que ele fique parado nesse passo por 7 dias.

Obrigado

former_member182114
Active Contributor
0 Kudos

Bom dia Alexandre,

Pode dar mais detalhes sobre esta situação?

Se não se processa em 7 dias eles não estão automatizando mas apenas registrando.

Como acontece no dia a dia sem a automatização?

Atenciosamente, Fernando Da Rós

Former Member
0 Kudos

Se puder entra no link abaixo e vota na ideia

Create a report to trigger "Continue process" function for inbound NF-es : View Idea

Abraço

Eduardo Chagas

Answers (3)

Answers (3)

diego_ehmke
Explorer
0 Kudos

Boa Tarde Alexandre, tudo bem?

conte-nos mais detalhes de como fez, estou na mesma situação.

Grato

diegofrozza
Participant
0 Kudos

Diego,

Se tu já conseguiu deixar o passo parado tu pode utilizar uma função equivalente a /XNFE/CTE_CONTINUE_FROM_GATE.

No nosso caso criei uma função e utilizei as funções standard para verificar o passo e enviar:

*"----------------------------------------------------------------------

*"*"Interface local:

*"  IMPORTING

*"     REFERENCE(IT_CTEGUID) TYPE  /XNFE/DOC_GUID_T

*"  EXCEPTIONS

*"      ERROR_READING_CTE

*"      TECHNICAL_ERROR

*"      CTE_LOCKED

*"----------------------------------------------------------------------

   DATA: ls_cteguid    TYPE /xnfe/doc_guid_s,

         lt_inhdsta    TYPE /xnfe/inhdsta_t,

         ls_inhdsta    TYPE /xnfe/inhdsta,

         ls_action     TYPE /xnfe/action_allowed_s,

         ls_stepresult TYPE /xnfe/step_result_s.

   LOOP AT it_cteguid INTO ls_cteguid.

     CALL FUNCTION '/XNFE/B2BCTE_READ_CTE_FOR_UPD'

       EXPORTING

         iv_guid            = ls_cteguid-guid

*      IMPORTING

*        et_hdsta           = lt_inhdsta

       EXCEPTIONS

         cte_does_not_exist = 1

         cte_locked         = 2

         technical_error    = 3

         OTHERS             = 4.

     IF sy-subrc = 2.

       CALL FUNCTION '/XNFE/B2BCTE_REVERT'.

       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING cte_locked.

     ELSEIF sy-subrc <> 0.

       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_reading_cte.

     ENDIF.

   ENDLOOP.

   LOOP AT it_cteguid INTO ls_cteguid.

     CALL FUNCTION '/XNFE/B2BCTE_READ_CTE_FOR_UPD'

       EXPORTING

         iv_guid            = ls_cteguid-guid

       IMPORTING

         et_hdsta           = lt_inhdsta

       EXCEPTIONS

         cte_does_not_exist = 1

         cte_locked         = 2

         technical_error    = 3

         OTHERS             = 4.

     IF sy-subrc <> 0.

       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_reading_cte.

     ENDIF.

*--- Get the next step

     CALL FUNCTION '/XNFE/GET_NEXT_STEP'

       EXPORTING

         iv_guid_header         = ls_cteguid-guid

         iv_doctype             = gc_doctype-cte

       IMPORTING

         es_action              = ls_action

*       et_action              = lt_action

*       et_flowctrl            = lt_flowctrl

       EXCEPTIONS

         error_reading_document = 1

         OTHERS                 = 2.

     IF sy-subrc <> 0.

       CALL FUNCTION '/XNFE/B2BCTE_REVERT'.

       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH

       sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING error_reading_cte.

     ENDIF.

     IF ls_action-procstep = gc_procstep_cte-recdacte.

*--- Set step recdacte to ok

       CLEAR ls_stepresult.

       ls_stepresult-stepstatus = gc_stepstat-ok.

       ls_stepresult-msgid = gc_msgclass_b2bsteps.

       ls_stepresult-msgno = '030'.

       CALL FUNCTION '/XNFE/B2BCTE_SET_STEPRESULT'

         EXPORTING

           iv_guid              = ls_cteguid-guid

           iv_proc_step         = gc_procstep_cte-recdacte

           is_step_result       = ls_stepresult

         EXCEPTIONS

           cte_does_not_exist   = 1

           cte_locked           = 2

           procstep_not_allowed = 3

           no_proc_allowed      = 4

           technical_error      = 5

           OTHERS               = 6.

       IF sy-subrc <> 0.

         CALL FUNCTION '/XNFE/B2BCTE_REVERT'.

         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING technical_error.

       ENDIF.

     ELSE.

*--- Recdacte is not the next step just continue

       CLEAR: ls_cteguid, ls_action.

       CONTINUE.

     ENDIF.

     CLEAR: ls_cteguid, ls_action.

   ENDLOOP.

*--- Persist data on data base

   CALL FUNCTION '/XNFE/B2BCTE_SAVE_TO_DB'.

   COMMIT WORK.

*--- Start Second loop to continue processing.

   LOOP AT it_cteguid INTO ls_cteguid.

     CALL FUNCTION '/XNFE/CTE_PROCFLOW_EXECUTION'

       EXPORTING

         iv_guid           = ls_cteguid-guid

       EXCEPTIONS

         no_proc_allowed   = 1

         error_in_process  = 2

         technical_error   = 3

         error_reading_cte = 4

         no_logsys         = 5

         OTHERS            = 6.

     CASE sy-subrc.

       WHEN 0.

       WHEN 1.

*--- Just continue if no processing is allowed

         CLEAR: ls_cteguid.

         CONTINUE.

       WHEN OTHERS.

         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING technical_error.

     ENDCASE.

   ENDLOOP.

0 Kudos

Não está sendo utilizado a automatização não.

Está lançando na Miro mas através de uma solução Z que já existia aqui.

Utilizando as Badl before e after RECDACTE.

Quando um CT-e é cancelado, gera um trabalho grande pra eles, por isso resolveram minimizar isso com o prazo de 7 dias para entrada no ECC.

Fiz um programa para selecionar os CT-es que estão esperando pelo passo RECDACTE no prazo configurado, e depois chamo a função citada.

Esse programa vai ser configurado como job.

Former Member
0 Kudos

Mas você automatizou a entrada? Quero dizer está lançando MIRO?

Vc faz a leitura do DACTE no recebimento e fica aguardando 7 dias para contabilizar/lançar o recebimento. Isso?