Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome FísicoPrgfin/fas/fas735zf

 

Objetivo

Criar bens no módulo de Ativo Fixo do EMS 5.

 

Funcionamento

Na forma padrão, realiza-se a chamada através de um comando RUN normal, armazenando o programa em uma variável através do comando PERSISTENT e em seguida executando uma PROCEDURE deste programa, passando-se os parâmetros com as informações necessárias.

A sintaxe para a chamada da API é:

DEFINE VARIABLE v_hdl_program AS HANDLE      NO-UNDO.

 

RUN prgfin\fas\fas735zh.py PERSISTENT SET v_hdl_program.

RUN pi_main_api_criacao_bem_pat_8 IN v_hdl_program

                                        (INPUT 1,

                                         INPUT v_cod_matriz_trad_org_ext,

                                         INPUT v_cod_matriz_trad_ccusto_ext,

                                         INPUT v_cod_matriz_trad_finalid_ext,

                                         INPUT v_log_ctbz,

                                         INPUT TABLE tt_criacao_bem_pat_item_api,

                                         INPUT TABLE tt_criacao_bem_pat_val_resid,

                                         OUTPUT v_cod_return,

                                         OUTPUT v_des_mensagem).

DELETE PROCEDURE v_hdl_program.

 

Parâmetros

Parâmetro

Descrição

p_num_vers_integr_api

Será utilizado para determinar se o programa que está chamando está íntegro com as definições correntes da API;

p_cod_matriz_trad_org_ext

Deve ser informada a matriz de tradução de unidade organizacional

P_cod_matriz_Trad_ccusto_ext

Deve ser informada a matriz de tradução de centros de custo

P_cod_matriz_trad_finalid_Ext

Deve ser informada a matriz de tradução de finalidade econômica

P_log_ctbz

Deve ser YES para assinalar o movimento como contabilizado. Deve ser NO para que o movimento de implenatação seja contabilizado

tt_criacao_bem_pat_item_api

Esta temp-table conterá os registros dos itens das notas fiscais vinculadas ao bem. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias.

tt_criacao_bem_pat_val_resid

Esta temp-table conterá os registros sobre os valores residuais do bem. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias.

P_cod_return

Retorna string “OK” se não ocorreram erros.

P_des_mensagem

Caso tenha ocorrido erro, retorna a mensagem de erro que provocou erro na criação dos bens. Normalmente erros da matriz de tradução são apresentados nesta mensagem. Erros deste tipo inviabilizam a criação de todos os bens na temp-table.

Observações:

-       Devem ser geradas algumas temp-tables definidas como “new shared” no programa que chamará a API. Estas temp-tables conterão as informações sobre os movimentos que serão importados no Ativo Fixo.

 

Retorno

A API retornará na tabela temporária tt_erros_criacao_bem_pat_api_1 todos os erros encontrados ou mensagens de alerta gerados durante o processo de validação dos movimentos.

Quando ocorrer algum erro antes da criação dos bens este será retornado na variável p_des_mensagem.

 

Observações: Quando a API for executado por um programa externo, logo após a chamada da API, deverá ser criado um tratamento para impressão dos erros. E para a correta visualização dos erros, todos os campos desta tabela devem ser impressos.

 

Tabelas Temporárias

Nos atributos das tabelas temporárias de entrada e saída:

O programa que irá executar a api_criar_bem_pat deverá conter e criar as seguintes tabelas temporárias:

 

1) Criação de Bem Patrimonial via API

Tabela Temporária

Descrição

Entrada/Saída

tt_criacao_bem_pat_api_5

Conterá as informações dos bens a serem importados.

New Shared

 

 

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

tta_cod_unid_organ_ext

character

x(3)

Código da unidade organizacional  externa (empresa a ser traduzida pela matriz de tradução de unidade organizacional)

Sim

 

tta_cod_cta_pat

character

x(18)

Conta patrimonial

Sim

 

tta_num_bem_pat

integer

>>>>>>>>9

Número do bem. Caso seja informado 0 (zero) será atribuído automaticamente o número do próximo bem de acordo com parâmetros do ativo fixo.

Não

 

tta_num_seq_bem_pat

integer

>>>>9

Seqüência do bem. (idem observação acima).

Não

 

tta_des_bem_pat

character

x(40)

Descrição do bem

Sim

 

tta_dat_aquis_bem_pat

date

99/99/9999

Data de aquisição do bem

Sim

 

tta_cod_plano_ccusto

character

x(8)

Código do plano de centros de custo

Sim

 

tta_cod_ccusto_ext

character

x(8)

Código do centro de custo externo (a ser traduzido pela matriz de tradução de centros de custo)

Sim

 

tta_cod_estab_ext

character

x(8)

Código do estabelecimento externo (a ser traduzido pela matriz de tradução de unidade organizacional)

Sim

 

tta_cod_unid_negoc_ext

character

x(8)

Código da Unidade de negócio

Sim

 

tta_cod_finalid_econ_ext

character

x(8)

Código da finalidade externa. (moeda do bem a ser traduzida pela matriz de tradução de finalidade)

Sim

 

ttv_val_aquis_bem_pat

decimal

->>,>>>,>>>,>>9.99

Valor de aquisição do bem

(o valor do bem pode ser positivo no caso de bens do Ativo imobilizado ou negativo se o bem referir-se a item do patrimônio líquido)

Sim

 

ttv_log_erro

logical

Sim/Não

Indicador de erro no bem. Deve ser criado como “Não”

Sim

 

tta_qtd_bem_pat_represen

decimal

>>>>>>>>9

Quantidade de bens

Não

 

tta_cdn_fornecedor

Integer

>>>,>>>,>>9

Código numérico do fornecedor do bem

Não

 

tta_cod_docto_entr

character

x(8)

Número da nota fiscal

Não

 

tta_cod_ser_nota

character

x(3)

Série da Nota fiscal

Não

 

tta_num_item_docto_entr

Integer

>>>,>>9

Número do item da nota fiscal

Não

 

tta_num_id_bem_pat

Integer

>>,>>>,>>9

Este atributo retorna o número interno do bem. Não precisa ter o seu valor informado. Serve apenas como uma referência para localizar o bem criado na base de dados. Deve ser criado como 0 (zero)

Sim

 

tta_des_narrat_Bem_pat

character

x(2000)

Narrativa do bem

Não

 

tta_log_bem_imptdo

logical

Sim/Não

Este atributo indica se o bem foi importado ou não.

Sim

 

tta_log_cr_pis

logical

Sim/Não

Este atributo indica se o bem credita ou não PIS.

Obs.: Este atributo será utilizado somente no Brasil

Sim

 

tta_log_cr_cofins

logical

Sim/Não

Este atributo indica se o bem credita ou não COFINS.

Obs.: Este atributo será utilizado somente no Brasil

Sim

 

tta_num_parc_pis_cofins

integer

99

Este atributo indica se o credito de PIS e COFINS é parcelado.

Obs.: Depende que o Bem credite PIS ou COFINS.

O valor passado deverá ser 00 para não credita e 12 ou 48 vezes.

Sim

 

tta_val_cr_pis

decimal

>>>,>>>,>>9.99

Valor do PIS que a empresa poderá creditar

Sim

 

tta_val_cr_cofins

decimal

>>>,>>>,>>9.99

Valor do COFINS que a empresa poderá creditar

Sim

 

ttv_log_cr_csll

logical

Sim/Não

Credita CSLL

Sim

X

ttv_num_exerc_cr_csll

integer

99

Exerc. Crédito CSLL

Sim

X

 

def new shared temp-table tt_criacao_bem_pat_api_5 no-undo

    field tta_cod_unid_organ_ext           as character format "x(3)" label "Unid Organ Externa" column-label "Unid Organ Externa"

    field tta_cod_cta_pat                  as character format "x(18)" label "Conta Patrimonial" column-label "Conta Patrimonial"

    field tta_num_bem_pat                  as integer format ">>>>>>>>9" initial 0 label "Bem Patrimonial" column-label "Bem"

    field tta_num_seq_bem_pat              as integer format ">>>>9" initial 0 label "Sequˆncia Bem" column-label "Sequˆncia"

    field tta_des_bem_pat                  as character format "x(40)" label "Descri‡Æo Bem Pat" column-label "Descri‡Æo Bem Pat"

    field tta_dat_aquis_bem_pat            as date format "99/99/9999" initial today label "Data Aquisi‡Æo" column-label "Dat Aquis"

    field tta_cod_plano_ccusto             as character format "x(8)" label "Plano Centros Custo" column-label "Plano Centros Custo"

    field tta_cod_ccusto_ext               as character format "x(8)" label "Centro Custo Externo" column-label "CCusto Externo"

    field tta_cod_estab_ext                as character format "x(8)" label "Estabelecimento Exte" column-label "Estabelecimento Ext"

    field tta_cod_unid_negoc_ext           as character format "x(8)" label "Unid Neg¢cio Externa" column-label "Unid Neg¢cio Externa"

    field tta_cod_finalid_econ_ext         as character format "x(8)" label "Finalid Econ Externa" column-label "Finalidade Externa"

    field ttv_val_aquis_bem_pat            as decimal format "->>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Aquisi‡Æo Bem" column-label "Aquisi‡Æo Bem"

    field ttv_log_erro                     as logical format "Sim/NÆo" initial yes

    field tta_qtd_bem_pat_represen         as decimal format ">>>>>>>>9" initial 1 label "Quantidade Bens Representados" column-label "Bem Represen"

    field tta_cdn_fornecedor               as Integer format ">>>,>>>,>>9" initial 0 label "Fornecedor" column-label "Fornecedor"

    field tta_cod_docto_entr               as character format "x(8)" label "Docto Entrada" column-label "Docto Entrada"

    field tta_cod_ser_nota                 as character format "x(3)" label "S‚rie Nota" column-label "S‚rie Nota"

    field tta_num_item_docto_entr          as integer format ">>>,>>9" initial 0 label "Numero Item" column-label "Num Item"

    field tta_num_id_bem_pat               as integer format ">>,>>>,>>9" initial 0 label "Identifica‡Æo Bem" column-label "Identifica‡Æo Bem"

    field tta_des_narrat_bem_pat           as character format "x(2000)" label "Narrativa Bem" column-label "Narrativa Bem"

    field tta_log_bem_imptdo               as logical format "Sim/NÆo" initial no label "Bem Importado" column-label "Bem Importado"

    field tta_log_cr_pis                   as logical format "Sim/NÆo" initial no label "Credita PIS" column-label "Credita PIS"

    field tta_log_cr_cofins                as logical format "Sim/NÆo" initial no label "Credita COFINS" column-label "Credita COFINS"

    field ttv_num_parc_pis_cofins          as integer format "99" initial 0 label "Nro Parcelas" column-label "Nro Parcelas"

    field tta_val_cr_pis                   as decimal format ">>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Cred PIS/PASEP" column-label "Vl Cred PIS/PASEP"

    field tta_val_cr_cofins                as decimal format ">>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Cr‚dito COFINS" column-label "Credito COFINS"

    field ttv_log_cr_csll                  as logical format "Sim/NÆo" initial no label "Credita CSLL" column-label "Credita CSLL"

    field ttv_num_exerc_cr_csll            as integer format "99" label "Exerc. Cr‚dito CSLL" column-label "Exerc. Cr‚dito CSLL".

 

 

2) Tabela de erros

Tabela Temporária

Descrição

Entrada/Saída

tt_erros_criacao_bem_pat_api_1

Conterá as informações dos movimentos que não foram importados com a respectiva mensagem de erro.

New Shared

 

 

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

tta_cod_unid_organ_ext

character

x(3)

Unid Organ Externa

 

 

tta_cod_cta_pat

character

x(18)

Conta Patrimonial

 

 

tta_num_bem_pat

integer

>>>>>>>>9

Bem Patrimonial

 

 

tta_num_seq_bem_pat

integer

>>>>9

Sequência Bem

 

 

tta_des_bem_pat

character

x(40)

Descrição Bem Patrimonial

 

 

tta_dat_aquis_bem_pat

date

99/99/9999

Data Aquisição

 

 

tta_cod_finalid_econ_ext

character

x(8)

Finalid Econ Externa

 

 

ttv_des_mensagem

character

x(50)

Mensagem de erro para o bem com a chave formada pelos atributos acima nesta temp table.

 

 

 

def new shared temp-table tt_erros_criacao_bem_pat_api_1 no-undo

    field tta_cod_unid_organ_ext           as character format "x(3)" label "Unid Organ Externa" column-label "Unid Organ Externa"

    field tta_cod_cta_pat                  as character format "x(18)" label "Conta Patrimonial" column-label "Conta Patrimonial"

    field tta_num_bem_pat                  as integer format ">>>>>>>>9" initial 0 label "Bem Patrimonial" column-label "Bem"

    field tta_num_seq_bem_pat              as integer format ">>>>9" initial 0 label "Sequˆncia Bem" column-label "Sequˆncia"

    field tta_des_bem_pat                  as character format "x(40)" label "Descri‡Æo Bem Pat" column-label "Descri‡Æo Bem Pat"

    field tta_dat_aquis_bem_pat            as date format "99/99/9999" initial today label "Data Aquisi‡Æo" column-label "Dat Aquis"

    field tta_cod_finalid_econ_ext         as character format "x(8)" label "Finalid Econ Externa" column-label "Finalidade Externa"

    field ttv_des_mensagem                 as character format "x(50)" label "Mensagem" column-label "Mensagem".

 

 

3) Itens de Documento de Entrada vinculados ao Bem

Tabela Temporária

Descrição

Entrada/Saída

tt_criacao_bem_pat_item_api

Conterá os registros dos itens das notas fiscais que serão vinculados ao bem.

Entrada

 

 

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

ttv_rec_bem

recid

 

RECID do registro da temp-table tt_criacao_bem_pat_api_5, referente ao bem ao qual o item será vinculado

Sim

 

tta_cdn_fornecedor

integer

>>>,>>>,>>9

Código do fornecedor

Sim

 

tta_cod_docto_entr

character

x(8)

Código da nota fiscal

Sim

 

tta_cod_ser_nota

character

X(3)

Série da nota fiscal

Não

 

tta_num_item_docto_entr

integer

>>>,>>9

Número do item da nota fiscal

Sim

 

tta_qtd_item_docto_entr

Decimal

>>>>>>>>9

Quantidade do item vinculado ao bem

Sim

 

 

 

def temp-table tt_criacao_bem_pat_item_api no-undo

    field ttv_rec_bem                      as recid format ">>>>>>9"

    field tta_cdn_fornecedor               as Integer format ">>>,>>>,>>9" initial 0 label "Fornecedor" column-label "Fornecedor"

    field tta_cod_docto_entr               as character format "x(8)" label "Docto Entrada" column-label "Docto Entrada"

    field tta_cod_ser_nota                 as character format "x(3)" label "Série Nota" column-label "Série Nota"

    field tta_num_item_docto_entr          as integer format ">>>,>>9" initial 0 label "Numero Item" column-label "Num Item"

    field tta_qtd_item_docto_entr          as decimal format ">>>>>>>>9" initial 0 label "Qtde Item Docto" column-label "Qtde Item Docto"

    index tt_id                            is primary unique

          ttv_rec_bem                      ascending

          tta_cdn_fornecedor               ascending

          tta_cod_docto_entr               ascending

          tta_cod_ser_nota                 ascending

          tta_num_item_docto_entr          ascending.

 

 

4) Valores Residuais do Bem

Tabela Temporária

Descrição

Entrada/Saída

tt_criacao_bem_pat_val_resid

Conterá os registros dos valores residuais do bem.

Entrada

 

 

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

ttv_rec_bem

recid

 

RECID do registro da temp-table tt_criacao_bem_pat_api_5, referente ao bem ao qual o item será vinculado

Sim

 

tta_cod_tip_calc

character

x(7)

Código do tipo de cálculo

Sim

 

tta_cod_cenar_ctbl

character

x(8)

Código do cenário contábil

Sim

 

tta_cod_finalid_econ

character

X(10)

Código da finalidade econômica

Sim

 

tta_val_resid_min

decimal

>>>>,>>>,>>>,>>9.99

Valor residual mínimo

Sim

 

 

def temp-table tt_criacao_bem_pat_val_resid no-undo

    field ttv_rec_bem                      as recid format ">>>>>>9"

    field tta_cod_tip_calc                 as character format "x(7)" label "Tipo Cálculo" column-label "Tipo Cálculo"

    field tta_cod_cenar_ctbl               as character format "x(8)" label "Cenário Contábil" column-label "Cenário Contábil"

    field tta_cod_finalid_econ             as character format "x(10)" label "Finalidade" column-label "Finalidade"

    field tta_val_resid_min                as decimal format ">>>>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Residual Mínimo" column-label "Residual"

    index tt_id                            is primary unique

          ttv_rec_bem                      ascending

          tta_cod_tip_calc                 ascending

          tta_cod_cenar_ctbl               ascending

          tta_cod_finalid_econ             ascending.

 

Execução

 

Na execução da API ocorrem as seguintes validações:

  1. 1.     Versão de integração

Programa verificará se o programa chamador está integro com a API, e isto ocorre através da verificação da versão de integração passada como parâmetro;

 

  1. 2.     Estabelecimento

Será verificado se o estabelecimento é válido;

 

  1. 3.     Unidade de negócio

Valida se o unidade de negócio é válida e se a mesma está vinculada ao estabelecimento;

 

  1. 4.     Centro de custo

Valida o centro de custo informado e se o usuário possui permissão para acessá-lo;

 

  1. 5.     Conta patrimonial

Valida se a conta patrimonial informada é válida

 

  1. 6.     Finalidade econômica

Se a finalidade econômica informada existe na matriz de tradução de finalidade;

 

  1. 7.     Fornecedor

Verifica, caso informado, se o fornecedor é válido;

 

  1. 8.     Documento de entrada (Nota Fiscal)

Valida se os itens dos documentos de entrada informados existem no sistema;

 

  1. 9.     Quantidade dos Itens de Documento de entrada

Valida se a quantidade dos itens dos documentos de entrada está disponível para vinculação;

 

  1. 10.  Número do bem e seqüência do bem.

Verifica , caso informado, se já não existe um bem com o mesmo número no sistema. (levando em conta que a chave completa do bem é empresa, conta patrimonial, número do bem e seqüência);

 

 

Leitura e Criação dos Registros

 

 

Exemplo de criação de bens:

 

def var v_cod_return as char.

def var v_des_mensagem as char format "x(50)".

def var v_hdl_program as handle no-undo.

 

create tt_criacao_bem_pat_api_5.

assign tt_criacao_bem_pat_api_5.tta_cod_unid_organ_ext   = "1"

       tt_criacao_bem_pat_api_5.tta_cod_cta_pat          = "moveis e equip"

       tt_criacao_bem_pat_api_5.tta_num_bem_pat          = 0

       tt_criacao_bem_pat_api_5.tta_num_seq_bem_pat      = 0

       tt_criacao_bem_pat_api_5.tta_des_bem_pat          = "Torno Industrial Nardelli"

       tt_criacao_bem_pat_api_5.tta_dat_aquis_bem_pat    = 07/25/2000

       tt_criacao_bem_pat_api_5.tta_cod_plano_ccusto     = "móveis"

       tt_criacao_bem_pat_api_5.tta_cod_estab_ext        = "1"

       tt_criacao_bem_pat_api_5.tta_cod_unid_negoc_ext   = "ADM"

       tt_criacao_bem_pat_api_5.tta_cod_finalid_econ_ext = "0"

       tt_criacao_bem_pat_api_5.ttv_val_aquis_bem_pat    = 2575.88

       tt_criacao_bem_pat_api_5.ttv_log_erro             = no

       tt_criacao_bem_pat_api_5.tta_qtd_bem_pat_represen = 1

       tt_criacao_bem_pat_api_5.tta_cdn_fornecedor       = 0

       tt_criacao_bem_pat_api_5.tta_cod_docto_entr       = ""

       tt_criacao_bem_pat_api_5.tta_cod_ser_nota         = ""

       tt_criacao_bem_pat_api_5.tta_num_item_docto_entr  = 0

       tt_criacao_bem_pat_api_5.tta_num_id_bem_pat       = 0

       tt_criacao_bem_pat_api_5.tta_des_narrat_bem_pat   = ""

tt_criacao_bem_pat_api_5.tta_val_cr_pis           = 500

tt_criacao_bem_pat_api_5.tta_val_cr_cofins        = 500

tt_criacao_bem_pat_api_5.ttv_log_cr_csll          = no

tt_criacao_bem_pat_api_5.ttv_num_exerc_cr_csll    = 0.

 

create tt_criacao_bem_pat_item_api.

assign tt_criacao_bem_pat_item_api.ttv_rec_bem             = recid(tt_criacao_bem_pat_api_5)

       tt_criacao_bem_pat_item_api.tta_cdn_fornecedor      = 1

       tt_criacao_bem_pat_item_api.tta_cod_docto_entr      = "100"

       tt_criacao_bem_pat_item_api.tta_cod_ser_nota        = ""

       tt_criacao_bem_pat_item_api.tta_num_item_docto_entr = 10

       tt_criacao_bem_pat_item_api.tta_qtd_item_docto_entr = 1.

 

create tt_criacao_bem_pat_item_api.

assign tt_criacao_bem_pat_item_api.ttv_rec_bem             = recid(tt_criacao_bem_pat_api_5)

       tt_criacao_bem_pat_item_api.tta_cdn_fornecedor      = 1

       tt_criacao_bem_pat_item_api.tta_cod_docto_entr      = "100"

       tt_criacao_bem_pat_item_api.tta_cod_ser_nota        = ""

       tt_criacao_bem_pat_item_api.tta_num_item_docto_entr = 20

       tt_criacao_bem_pat_item_api.tta_qtd_item_docto_entr = 3.

 

create tt_criacao_bem_pat_val_resid.

assign tt_criacao_bem_pat_val_resid.ttv_rec_bem          = recid(tt_criacao_bem_pat_api_5)

       tt_criacao_bem_pat_val_resid.tta_cod_tip_calc     = "DPFIS95"

       tt_criacao_bem_pat_val_resid.tta_cod_cenar_ctbl   = "FISCAL"

       tt_criacao_bem_pat_val_resid.tta_cod_finalid_econ = "Corrente"

       tt_criacao_bem_pat_val_resid.tta_val_resid_min    = 500.

      

run prgfin/fas/fas735zh.py persistent set v_hdl_program.

 

run pi_main_api_criacao_bem_pat_8 in v_hdl_program

                                   (input 1,

                                   input "EMS2" /*matriz traudcao*/,

                                   input "EMS2" /*matriz ccusto*/,

                                   input "EMS2" /*matriz finalidade econ.*/,

                                   input no /*contabiliza*/,

                                   input table tt_criacao_bem_pat_item_api,

                                   input table tt_criacao_bem_pat_val_resid,

                                   output v_cod_return,

                                   output v_des_mensagem).

if v_cod_return = "nok" then do:

   if can-find (first tt_erros_criacao_bem_pat_api_1) then do:                              

      for each tt_erros_criacao_bem_pat_api_1:

          disp tt_erros_criacao_bem_pat_api_1.

      end.

   end.

   else disp v_des_mensagem.

end.

 

delete object v_hdl_program.

assign v_hdl_program = ?.