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] Implantação de Documentos no RE1001

Discussão em 'EMS , HCM e Totvs 11' iniciado por rhemati, Maio 9, 2013.

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

    rhemati Membro Participativo

    Pessoal, boa tarde.

    Alguém tem um modelo de utilização e qual API para inserir documentos ( capa, item, duplicatas, etc ) no RE1001.

    No aguardo.

    Obrigado.
  2. jaozi_nho

    jaozi_nho Membro Participativo

    Caro, achei uma API aqui, talvez te atenda, nunca utilizei .

    API Inclusão/Exclusão do Documento de Estoque(v.001)

    Nome Físico: rep/reapi316b.p

    Versão de Integração: 1

    Objetivo: Facilitar a inclusão e eliminação de um registro de documento de estoque e registros dependentes(rateio de documento, itens do documento, duplicatas do documento, impostos da duplicata), fazendo as validações necessárias e retornando uma tabela com os erros.

    Parâmetros de Entrada
    cTranAction (input Char) - Ação da transação (ADD ou DEL). A API não trata alteração.
    tt-docum-est (input Table) - Temp-Table de documentos (NFE).
    tt-rat-docum (input Table) - Temp-Table de rateio de documento.
    tt-item-doc-est (input Table) - Temp-Table de itens do documento.
    tt-dupli-apagar (input Table) - Temp-Table de duplicatas do documento.
    tt-dupli-imp (input Table) - Temp-Table de impostos da duplicata.
    tt-erro (output Table) - Temp-Table de erros
  3. TrombiniSP

    TrombiniSP Membro Participativo

    Seguem:

    BOIN090.DOC - Capa do documento.
    BOIN176.DOC - Itens do Documento.

    Veja nas documentações das BO´s que devem estar na pasta %EMS2%\inbo\*.

    Att.

    Trombini
  4. rhemati

    rhemati Membro Participativo

    Jao_zinho, boa tarde. blz. obrigado pela resposta.

    Trombini também.

    Alguém tem este material ai dos docs. pois aqui nos meus eu não achei. PAra que eu não peça lá na TOTVS e demore.

    BOIN090.DOC - Capa do documento.
    BOIN176.DOC - Itens do Documento.


    OBrigado.
  5. rhemati

    rhemati Membro Participativo

    Pessoal, boa noite.

    Eu estou pedindo exemplos e documentação, pois eu tenho um que faz a implantação dos docs xml no RE1001, no cliente funcionou, foi homologado, mas depois de algumas atualizações da TOTVS não está funcionando mais.
    Eu já fiz de tudo, não dá erro, mas também não implanta.
    Alguém pode me ajudar ai com exemplos e documentação?

    Eu agradeço. Muito obrigado. abraço a todos.
  6. noellen

    noellen Equipe de Suporte Moderador Equipe de Suporte

    Tópico antigo... mas sofremos com isso aqui na empresa tbm, então segue a solução:

    No Totvs 11 mudou um pouquinho as chamadas dos métodos:

    Código:
      RUN inbo/boin176.p  PERSISTENT SET h-boin176.
      RUN openQueryStatic  IN h-boin176 (INPUT "main":U).
      RUN repositionRecord IN h-boin176 (INPUT ROWID(item-doc-est)).
      RUN linkToDocumEst  IN h-boin176 (INPUT h-boin090).
      RUN setRecord  IN h-boin176 (INPUT TABLE tt-item-doc-est).
      RUN emptyRowErrors  IN h-boin176.
      RUN updateRecord  IN h-boin176.
      RUN getRowErrors  IN h-boin176 (OUTPUT TABLE RowErrors).
      DELETE PROCEDURE h-boin176.

    Segue um exemplo de upc completa onde cria um novo botão, chama uma tela customizada em que o usuário informa ordem de produção, unidade de negócio e conta contábil, pegamos esse dado e trazemos de volta alterando a tt-item-doc-est


    Código:
    def input param p-ind-event  as char  no-undo.
    def input param p-ind-object  as char  no-undo.
    def input param p-wgh-object  as handle  no-undo.
    def input param p-wgh-frame  as widget-handle no-undo.
    def input param p-cod-table  as char  no-undo.
    def input param p-row-table  as Rowid  no-undo.
    /*** Definicao de Variavel Local
    ********************************/
    def var c-objeto  as char  No-undo.
    DEF VAR h-objeto  AS WIDGET-HANDLE NO-UNDO.
    DEF VAR h-frame  AS WIDGET-HANDLE NO-UNDO.
    /* Alteração feita por Luigi Bertoni 14/05/12 */
    DEFINE VARIABLE h-object_2 AS HANDLE  NO-UNDO.
    /* Variável utilizada para armazenar o rowid do registro selecionado na tabela docum-est*/
    DEFINE NEW GLOBAL SHARED VARIABLE p-row-docum-est  AS ROWID  NO-UNDO.
    DEFINE VARIABLE p-cod-unid-negoc LIKE unid-negoc.cod-unid-negoc.
    DEFINE VARIABLE p-nr-ord-produ  LIKE ord-prod.nr-ord-produ.
    DEFINE VARIABLE p-conta-contabil LIKE conta-contab.conta-contabil.
    DEF NEW GLOBAL SHARED VAR bt-upc-re-1001  AS WIDGET-HANDLE NO-UNDO.
    DEFINE VARIABLE h-boin176 AS HANDLE  NO-UNDO.
    DEFINE VARIABLE h-boin090 AS HANDLE  NO-UNDO.
    /*Definição tt-item-doc-est :*/
    def temp-table tt-item-doc-est no-undo like item-doc-est
      field r-rowid as rowid.
    DEFINE TEMP-TABLE RowErrors NO-UNDO
      FIELD errorSequence  AS INTEGER
      FIELD errorNumber  AS INTEGER
      FIELD errorDescription  AS CHARACTER FORMAT "X(100)"
      FIELD errorParameters  AS CHARACTER FORMAT "X(100)"
      FIELD errorType  AS CHARACTER FORMAT "X(100)"
      FIELD errorHelp  AS CHARACTER FORMAT "X(100)"
      FIELD errorsubtype  AS CHARACTER FORMAT "X(100)".
    /********** fim alteração ***********/
    /*** Definicao de Variavel Globais
    **********************************/
    Def New Global Shared Var rw-docum-est-re1001  As Rowid  No-undo.
    Def New Global Shared Var wh-bt-conf-ems-re1001  As Widget-handle No-undo.
    Def New Global Shared Var wh-bt-conf-custon-re1001  As Widget-handle No-undo.
    Def New Global Shared Var wh-bt-iss-re1001  As Widget-handle No-undo.
    DEF NEW GLOBAL SHARED VAR wh-window-re1001  AS WIDGET-HANDLE NO-UNDO.
    /*** Identificando nome de objeto
    ***********************************/
    c-objeto = Entry(Num-entries(p-wgh-object:private-data, "~/"), p-wgh-object:private-data, "~/").
    /*
    Message "Evento  " p-ind-event  Skip
      "Objeto  " p-ind-object Skip
      "nome obj  " c-objeto  Skip
      "Frame  " p-wgh-frame  Skip
      "Nome Frame " p-wgh-frame:Name Skip
      "Tabela  " p-cod-table  Skip
      "ROWID  " String(p-row-table) Skip
      p-wgh-object:File-name
      View-as Alert-box Information.
    */
    IF  p-ind-object = "CONTAINER" AND
      p-ind-event  = "BEFORE-DISPLAY" AND
      p-cod-table  = "docum-est" THEN DO:
      ASSIGN rw-docum-est-re1001 = p-row-table.
    END.
    /* Alteração feita por Luigi Bertoni 14/05/12 */
    IF (((p-ind-event = "AFTER-INITIALIZE") OR (p-ind-event = "AFTER-CONTROL-TOOL-BAR")) AND p-wgh-frame:NAME = "fPage0") THEN DO:
      /*Durante o evento  AFTER-INITIALIZE teremos disponivel o registro da tabela docum-est*/
      /* Verifica se a tabela disponivel no evento é docum-est*/
      IF p-cod-table = "docum-est" THEN DO:
      ASSIGN p-row-docum-est = p-row-table.
      END.
    END.
    /********** fim alteração ***********/
    If p-ind-event  = "After-Initialize" And
      p-ind-object = "Container"  Then
    Do:
      Assign h-objeto = p-wgh-frame:First-child
      h-objeto = h-objeto:First-child.
      Do While h-objeto <> ?:
      /* Alteração feita por Luigi Bertoni 14/05/12 */
      IF h-objeto:NAME = "fPage1" THEN DO:
      ASSIGN h-object_2 = h-objeto.
      END.
      /********** fim alteração ***********/
      If h-objeto:Type <> "field-group" Then
      Do:
      If h-objeto:Name = "btconf" And
      Not valid-handle(wh-bt-conf-ems-re1001) Then
      Do:
      wh-bt-conf-ems-re1001 = h-objeto:Handle.
     
      CREATE BUTTON wh-bt-conf-custon-re1001
      ASSIGN FRAME  = wh-bt-conf-ems-re1001:Frame
      TOOLTIP  = wh-bt-conf-ems-re1001:TOOLTIP
      HELP  = wh-bt-conf-ems-re1001:HELP 
      WIDTH  = 4.5
      HEIGHT  = 1.35
      COL  = wh-bt-conf-ems-re1001:COL
      ROW  = 1.05
      VISIBLE  = YES
      SENSITIVE = Yes.
      wh-bt-conf-custon-re1001:Load-image (wh-bt-conf-ems-re1001:Image).
      wh-bt-conf-custon-re1001:LOAD-IMAGE-INSENSITIVE (wh-bt-conf-ems-re1001:IMAGE-INSENSITIVE).
     
      wh-bt-conf-ems-re1001:Visible = False.
      wh-bt-conf-ems-re1001:MOVE-TO-BOTTOM().
      On 'CHOOSE':U Of wh-bt-conf-custon-re1001 Persistent Run upc/upre1001.p (Input "Choose_BtConf_Cust" ,
      Input p-ind-object,
      Input p-wgh-object,
      Input p-wgh-frame ,
      Input p-cod-table ,
      Input p-row-table ).
      End.
     
      Assign h-objeto = h-objeto:Next-sibling.
      End.
      Else
      Assign h-objeto = h-objeto:First-child.
      End.
      CREATE BUTTON wh-bt-iss-re1001
      ASSIGN FRAME  = wh-bt-conf-ems-re1001:Frame
      Name  = "bt-Confere"
      TOOLTIP  = "Informações para ISS Digital"
      HELP  = "Informações para ISS Digital"
      WIDTH  = 4.5
      HEIGHT  = 1.35
      COL  = wh-bt-conf-ems-re1001:col - 7
      ROW  = 1.05
      VISIBLE  = YES
      SENSITIVE = YES.
      wh-bt-iss-re1001:LOAD-IMAGE-UP ("image\im-conf.bmp").
      On 'CHOOSE':U Of wh-bt-iss-re1001 Persistent Run upc/upre1001.p (Input "Choose_BtIss",
      Input p-ind-object,
      Input p-wgh-object,
      Input p-wgh-frame ,
      Input p-cod-table ,
      Input p-row-table ).
      wh-window-re1001 = p-wgh-frame:parent.
      /* Alteração feita por Luigi Bertoni 14/05/12 */
      /*Criar botÆo*/
      CREATE BUTTON bt-upc-re-1001
      ASSIGN FRAME  = h-object_2
      ROW  = 8.3
      COLUMN  = 12
      WIDTH  = 12
      HEIGHT  = 1
      FLAT-BUTTON = NO
      SENSITIVE = TRUE
      VISIBLE  = TRUE
      LABEL  = "Valor Itens"
      TRIGGERS:
      /* Chama novamente a upc passando como parametro o evento de acionamento do botão, para que possa ser feita a tratativa do momento onde as temp-tables serão carregadas.*/
      ON CHOOSE PERSISTENT RUN upc/up-re1001.p (INPUT "CHOOSE-BT-VL-ITENS",
      INPUT p-ind-object,
      INPUT p-wgh-object,
      INPUT p-wgh-frame,
      INPUT p-cod-table,
      INPUT p-row-table).
      END TRIGGERS.
      /********** fim alteração ***********/
    End.
    If p-ind-event = "Choose_BtIss" Then
    Do:
      FIND FIRST docum-est NO-LOCK WHERE ROWID(docum-est) = rw-docum-est-re1001 NO-ERROR.
      IF NOT AVAIL docum-est THEN DO:
      run utp/ut-msgs.p (input "show":U, input 17006, input "Nenhum docto foi selecionado!").
      RETURN.
      END.
      IF docum-est.cod-emitente = 0 THEN DO:
      run utp/ut-msgs.p (input "show":U, input 17006, input "Nenhum docto foi selecionado!").
      RETURN.
      END.
      wh-window-re1001:Sensitive = No.
      RUN isp\is0019.w (INPUT rw-docum-est-re1001).
      wh-window-re1001:Sensitive = YES.
    End.
    If p-ind-event = "Choose_BtConf_Cust" Then
    Do:
      FIND FIRST docum-est
      WHERE ROWID(docum-est) = rw-docum-est-re1001
      NO-LOCK NO-ERROR.
      IF NOT AVAIL docum-est THEN RETURN.
      FIND FIRST iss-docum-est OF docum-est NO-LOCK NO-ERROR.
      IF NOT AVAIL iss-docum-est THEN
      DO:
      run utp/ut-msgs.p (input "show":U,
      input 27100,
      input "Confirma atualização sem informar dados de ISS Digital?~~Existem informações referentes ao ISS Digital que ainda não foram preenchidas.").
      IF RETURN-VALUE = "NO" THEN
      RETURN.
      END.
      Apply "CHOOSE" To wh-bt-conf-ems-re1001.
    End.
    /* Alteração feita por Luigi Bertoni 14/05/12 */
    /* Caso a UPC tenha sido chamada pela recursão do botão valor itens */
    IF p-ind-event = "CHOOSE-BT-VL-ITENS" THEN DO:
      RUN upc/up-re-1001-dialog.w (INPUT-OUTPUT p-cod-unid-negoc, INPUT-OUTPUT p-nr-ord-produ, INPUT-OUTPUT p-conta-contabil).
      RUN pi-carrega-tt (INPUT p-row-docum-est).
     
    END.
    /********** fim alteração ***********/
    /* Alteração feita por Luigi Bertoni 14/05/12 */
    /* Procedure onde os dados são atualizados de acordo com as informações que retornam da dialog*/
    PROCEDURE pi-carrega-tt:
      DEFINE INPUT PARAM p-row-docum-est AS ROW NO-UNDO.
      /* Procura o documento*/
      FIND FIRST docum-est
      WHERE rowid(docum-est) = p-row-docum-est
      NO-LOCK NO-ERROR.
      RUN inbo/boin090.p PERSISTENT SET h-boin090.
      RUN openQueryStatic  IN h-boin090 (INPUT "main":U).
      RUN repositionRecord IN h-boin090 (INPUT ROWID(docum-est)).
      FOR EACH item-doc-est NO-LOCK OF docum-est:
     
      BUFFER-COPY item-doc-est TO tt-item-doc-est.
      /* Colocar aqui as alterações de cada item, os retornos da dialog */
      ASSIGN tt-item-doc-est.nr-ord-produ  = p-nr-ord-produ
      tt-item-doc-est.cod-unid-negoc = p-cod-unid-negoc
      tt-item-doc-est.ct-codigo  = SUBSTRING(p-conta-contabil,1,8)
      tt-item-doc-est.sc-codigo  = SUBSTRING(p-conta-contabil,9,4).
      /* Chama a procedure onde são atualizadas as informações*/
      RUN pi-chamaapi.
      EMPTY TEMP-TABLE tt-item-doc-est.
      END.
    END PROCEDURE.
    PROCEDURE pi-chamaapi:
     
      /*  run inbo/boin176.p persistent set h-boin176.
      RUN openQueryStatic  IN h-boin176(INPUT "main":u).
      RUN repositionRecord IN h-boin176(INPUT ROWID(item-doc-est)).
      run setRecord IN h-boin176(input table tt-item-doc-est).
      MESSAGE 'antes updateRecord' STRING(ROWID(item-doc-est))
      VIEW-AS ALERT-BOX INFO BUTTONS OK.
      run UpdateRecord IN h-boin176.
      MESSAGE 'depois updateRecord'
      VIEW-AS ALERT-BOX INFO BUTTONS OK. */
    
      RUN inbo/boin176.p  PERSISTENT SET h-boin176. 
      RUN openQueryStatic  IN h-boin176 (INPUT "main":U).
      RUN repositionRecord IN h-boin176 (INPUT ROWID(item-doc-est)). 
      RUN linkToDocumEst  IN h-boin176 (INPUT h-boin090).
      RUN setRecord  IN h-boin176 (INPUT TABLE tt-item-doc-est).
      RUN emptyRowErrors  IN h-boin176.
      RUN updateRecord  IN h-boin176.
      RUN getRowErrors  IN h-boin176 (OUTPUT TABLE RowErrors).
      DELETE PROCEDURE h-boin176.
    
      IF CAN-FIND (FIRST RowErrors) THEN
      DO:
      OUTPUT TO VALUE("c:\temp\Erros-RE1001.txt").
      FOR EACH RowErrors:
      DISP RowErrors WITH WIDTH 600.
      END.
      OUTPUT CLOSE.
      OS-COMMAND NO-WAIT VALUE("notepad c:\temp\Erros-RE1001.txt").
      END.
    END PROCEDURE.
    /********** fim alteração ***********/
    IF VALID-HANDLE(wh-bt-conf-custon-re1001) AND
      valid-handle(wh-bt-conf-ems-re1001)  THEN
      wh-bt-conf-custon-re1001:SENSITIVE = wh-bt-conf-ems-re1001:SENSITIVE.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página