1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Impressão Automática DANFE (Erro)

Discussão em 'EMS , HCM e Totvs 11' iniciado por Clayton Oliveira, Abril 2, 2018.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. Clayton Oliveira

    Clayton Oliveira Membro Participativo

    Pessoal, boa tarde.

    Poderiam me ajudar com um problema?

    Tenho um customizado que realiza a impressão da DANFE automaticamente chamando o FT0518rp e passando os parâmetros necessários.

    Está me retornando em tela o erro abaixo e a Danfe não é gerada.
    Isso ocorre somente com a uma das versões mais recentes do Totvs (12.1.19). Alguém tem idéia de como posso resolver este problema sendo que não possuo o fonte do ft0518rp ?



    upload_2018-4-2_14-51-47.png


    FONTE CUSTOMIZADO:


    define input parameter p-rowid as rowid no-undo.
    define output parameter p-arq as character no-undo.
    def var ch-app-word as com-handle no-undo.
    def var raw-param as raw no-undo.
    /* Definicao de Temp-Table ---*/
    define new shared temp-table tt-notas-impressas
    field r-nota as rowid.
    define temp-table tt-param-aux
    field destino as int
    field destino-bloq as int
    field arquivo as char
    field arquivo-bloq as char
    field usuario as char
    field data-exec as date
    field hora-exec as int
    field parametro as log
    field formato as int
    field cod-layout as char
    field des-layout as char
    field log-impr-dados as logical
    field v_num_tip_aces_usuar as int
    /*&IF "{&mguni_version}" >= "2.071" &THEN
    field ep-codigo LIKE mguni.empresa.ep-codigo
    &ELSE
    field ep-codigo as CHAR
    &ENDIF */
    field ep-codigo LIKE mguni.empresa.ep-codigo
    field c-cod-estabel like nota-fiscal.cod-estabel
    field c-serie like nota-fiscal.serie
    field c-nr-nota-fis-ini like nota-fiscal.nr-nota-fis
    field c-nr-nota-fis-fim like nota-fiscal.nr-nota-fis
    field de-cdd-embarque-ini like nota-fiscal.cdd-embarq
    field de-cdd-embarque-fim like nota-fiscal.cdd-embarq
    field da-dt-saida like nota-fiscal.dt-saida
    field c-hr-saida like nota-fiscal.hr-confirma
    field banco as int
    field cod-febraban as int
    field cod-portador as int
    field prox-bloq as char
    field c-instrucao as char extent 5
    field imprime-bloq as logical
    field imprime-bloq-danfe as logical
    field rs-imprime as int
    field impressora-so as char
    field impressora-so-bloq as char
    FIELD nr-copias AS int
    field l-gera-danfe-xml as logical
    field c-dir-hist-xml as character.


    define temp-table tt-raw-digita
    field raw-digita as RAW.
    /**************************************************************************************/
    /****** INICIA OS VALORES PARA AS VARIARIAS GLOBAL DO ESPECIFICO DA ORIENT **********/
    /****** ESTAVA OCORRENDO PROBLEMAS DA DANFE SER GERADA EM BRANCO *******************/
    DEFINE NEW GLOBAL SHARED VAR c-ft0518-nat-oper-inicial AS CHAR NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR c-ft0518-nat-oper-final AS CHAR NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR dt-ft0518-dt-inicial AS date NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR dt-ft0518-dt-final AS date NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR fi-nat-oper-inicial AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR fi-nat-oper-final AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR fi-dt-inicial AS WIDGET-HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR fi-dt-final AS WIDGET-HANDLE NO-UNDO.
    assign c-ft0518-nat-oper-inicial = ""
    c-ft0518-nat-oper-final = "ZZZZZZZZ"
    dt-ft0518-dt-inicial = 01/01/2010
    dt-ft0518-dt-final = 12/31/9999.
    /***************************** CLAYTON ************************************************/
    run nfe/sppnfe035.p persistent set h-acomp.
    run pi-inicializar in h-acomp ("INFOFISC - Adapter NF-e...").
    run pi-acompanhar in h-acomp ("Gerando DANFe...").
    find nota-fiscal where rowid(nota-fiscal) = p-rowid no-lock no-error.
    if avail nota-fiscal then do:
    find estabelec of nota-fiscal no-lock no-error.

    assign c-diretorio = replace(trim(estabelec.des-local-arq),"\txt","\pdf\").
    create tt-param-aux.
    assign tt-param-aux.destino = 2
    tt-param-aux.destino-bloq = ?
    tt-param-aux.arquivo = c-diretorio + "DANFE" + nota-fiscal.nr-nota-fis + ".doc"
    tt-param-aux.arquivo-bloq = ?
    tt-param-aux.usuario = c-seg-usuario
    tt-param-aux.data-exec = TODAY
    tt-param-aux.hora-exec = ?
    tt-param-aux.parametro = no
    tt-param-aux.formato = ?
    tt-param-aux.cod-layout = ?
    tt-param-aux.des-layout = ?
    tt-param-aux.log-impr-dados = no
    tt-param-aux.v_num_tip_aces_usuar = ?
    tt-param-aux.ep-codigo = i-ep-codigo-usuario
    tt-param-aux.c-cod-estabel = nota-fiscal.cod-estabel
    tt-param-aux.c-serie = nota-fiscal.serie
    tt-param-aux.c-nr-nota-fis-ini = nota-fiscal.nr-nota-fis
    tt-param-aux.c-nr-nota-fis-fim = nota-fiscal.nr-nota-fis
    tt-param-aux.de-cdd-embarque-ini = 0
    tt-param-aux.de-cdd-embarque-fim = 9999999999
    tt-param-aux.da-dt-saida = ?
    tt-param-aux.c-hr-saida = "00:00:00"
    tt-param-aux.banco = ?
    tt-param-aux.cod-febraban = ?
    tt-param-aux.cod-portador = ?
    tt-param-aux.prox-bloq = ""
    tt-param-aux.c-instrucao = ""
    tt-param-aux.imprime-bloq = no
    tt-param-aux.imprime-bloq-danfe = no
    tt-param-aux.rs-imprime = if nota-fiscal.ind-sit-nota = 1 then 1 else 2
    tt-param-aux.impressora-so = ?
    tt-param-aux.impressora-so-bloq = ?
    tt-param-aux.nr-copias = 1
    tt-param-aux.l-gera-danfe-xml = no
    tt-param-aux.c-dir-hist-xml = "".
    raw-transfer tt-param-aux to raw-param.
    run ftp/ft0518rp.p (input raw-param,
    input table tt-raw-digita).
    &IF "{&mguni_version}" >= "2.071" &THEN
    FIND FIRST ser-estab WHERE ser-estab.serie = nota-fiscal.serie
    AND ser-estab.cod-estab = nota-fiscal.cod-estabel NO-LOCK NO-ERROR.
    IF AVAIL ser-estab THEN DO:
    IF ser-estab.log-word-danfe THEN DO:
    MESSAGE "Estabelecimento e serie estão definidos para não gerar em word" SKIP
    "Desmarque o flag no programa FT0114 para gerar a DANFE!"
    VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END.
    END.
    &ENDIF
    do i-count = 1 to {&timeout}:
    if search(tt-param-aux.arquivo) = ? then pause 1 no-message.
    end.

    create 'Word.Application':U ch-app-word no-error.
    ch-app-word:WindowState = 2 no-error.
    ch-app-word:visible = false no-error.
    ch-app-word:Documents:eek:pen(tt-param-aux.arquivo) no-error.
    ch-app-word:ActiveDocument:ExportAsFixedFormat(replace(tt-param-aux.arquivo,".doc",".pdf"),17,false,0,0,1,1,0,true,true,0,true,true,false) no-error.
    ch-app-word:ActiveDocument:close no-error.
    ch-app-word:quit() no-error.
    release object ch-app-word no-error.

    if search(replace(tt-param-aux.arquivo,".doc",".pdf")) ne ? then do:
    assign p-arq = replace(tt-param-aux.arquivo,".doc",".pdf").
    os-delete value(tt-param-aux.arquivo).
    end.
    else
    assign p-arq = tt-param-aux.arquivo.
    assign c-arquivo = p-arq.
    end.
    if valid-handle(h-acomp) then run pi-finalizar in h-acomp.
    procedure pi-finalizar:
    run pi-processa in this-procedure (c-arquivo).
    delete procedure this-procedure.
    end procedure.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    não olhei o seu fonte, mas pela mensagem, ele quer que vc crie a tt-digita, dá uma olhada no ft0518aa.w pra ver o que está enviando na tt-digita.
  3. Clayton Oliveira

    Clayton Oliveira Membro Participativo

    Então, não possuo os fontes do ft0518... Eu possuo meu programa que faz a chamada do ft0518rp passando os parâmetros e espero que ele gere o Danfe pra mim entendeu.
  4. Clayton Oliveira

    Clayton Oliveira Membro Participativo

    Sem os fontes do ft0518 não tem muito o que fazer para resolver este problema?
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    abra o fr0518rp.r no bloco de notas, e procure pela palavra temp-table, aparece lá a definição das tabelas.
  6. Clayton Oliveira

    Clayton Oliveira Membro Participativo

    Sim aparece as definições das temp-tables, inclusive confirmei os campos que estou passando como parâmetros e estão ok.
    Encontrei a definição da tt-digita contendo os campos 'ordem', 'exemplo', 'raw-param'.
    No meu programa antes de executar o ft0518fp.p, defini a tt-digita como new global shared e dei um create na tabela passando qualquer informação pra fazer um teste. Mas o mesmo erro ocorre.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página