on 07-23-2014 3:32 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
Boa Tarde Alexandre, tudo bem?
conte-nos mais detalhes de como fez, estou na mesma situação.
Grato
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
14 | |
4 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.