Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Incluir Página
EECAE100 -

...

Rotina Automática de

...

Descrição:

...

Embarque de Exportação

...

Produto:

...

Microsiga Protheus

...

RotinaNome Técnico
EECAE100.PRW

Manutenção de Embarques de processos de exportação

EECAE102.PRWManutenção de Embarques de Exportação
EECAP106.PRWManutenção de Embarques de Exportação
AVGERAL.PRWFunção genérica para os módulos de Comércio Exterior
UPDEEC.PRWFunções de atualização de dicionários do módulo de Exportação - SIGAEEC

...

EEC - Capa do Embarque de Exportação

EE9 - Itens do Embarque de Exportação

EXL - Dados Complementares do Embarque

EEN - Notify

EXB - Agenda de Atividades/Documentos

EEB - Agentes de um Pedido

...

NomeTipoDescriçãoObrigatório
nOpcNuméricoOpção: 3=Incluir; 4=Alterar; 5=Excluir;
X
aDadosArray of RecordArray com os dados para integração automáticaX

...

Observações:

...

Alguns campos das tabelas EEC, EE9, EXL, EEN, EXB e EEB podem receber o tratamento via dicionario de dados (SX3), o qual permite ser utilizado somente por alguns módulos (X3_USADO).
Para esses casos é necessário executar a preparação do ambiente passando a opção do módulo ativo.

Exemplo: PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" Modulo "EEC" TABLES "EEC,EE9"

Integração automática do Embarque de Exportação

Para realizar a integração automática de um Embarque de Exportação, é necessária a utilização da função MsExecAuto. Para isso, deve ser utilizado o programa EECAE100, responsável pela manutenção dos embarques.

A utilização da rotina automática, depende da passagem de duas informações para que possa ser executada, sendo a primeira delas, a opção que se deseja realizar, ou seja, é necessário informar para a rotina se a operação que será realizada é uma Inclusão, uma Alteração ou uma Exclusão, e a segunda informação obrigatória, é o array com as informações a serem integradas.

Este array com os dados da integração, devem ser informados seguindo o seguinte critério:

Deve ser montado um único array de dados, sendo este responsável por enviar tanto as informações da capa do processo de exportação, quanto os itens e seus auxiliares (os auxiliares são opcionais).

  • Para a integração da Capa do Embarque (Tabela EEC), deve ser montado um array, onde a primeira posição deve ser passado o Alias da tabela (ECC), e a segunda posição deve conter os dados, seguindo a estrutura de Nome do Campo, Informação a ser Gravada e um terceiro parâmetro que pode ser enviada uma validação adicional para o campo. As informações da Capa do Processo, são obrigatórias para a integração automática;
  • Para a integração dos Itens do Embarque (Tabela EE9), deve ser montado um array, seguindo o mesmo critério da Capa do Embarque. A primeira posição do array deve ser informado o Alias da tabela (EE9), e a segunda posição deve conter os dados a serem integrados, seguindo a mesma estrutura da capa,  Nome do Campo, Informação a ser Gravada e um terceiro parâmetro que pode ser enviada uma validação adicional para o campo;
  • A integração de Auxiliares também podem ser feitas de forma automática. Neste caso, cada um deles deve ser montado um novo array, seguindo a mesma estrutura do Embarque. Podem ser integrados de forma automática dados de Notify (Tabela EEN), Agenda de Documentos (Tabela EXB) e Agentes de Comissão (Tabela EEB). Cada um deles deve ser um array separado contendo o Alias a ser integrado e as informações contendo o Nome do Campo, Informação a ser Gravada e um terceiro parâmetro que pode ser enviada uma validação adicional para o campo. As informações dos Auxiliares, não são obrigatórias para a integração automática

...

titleRestrições

A rotina automática para integração de Embarques de Exportação somente está disponível para processos do tipo "Exportação Regular", não sendo possível integrar os tipos de processos abaixo:

...

(

...

Vinculação automática de Adiantamento ao Embarque de Exportação

Para realizar a vinculação automática de um adiantamento ao Embarque, é necessário que o Importador/Cliente utilizado no Processo, possua adiantamento com Saldo. Para que esta integração ocorra, é necessário que seja enviado pela

MsExecAuto
, dentro do Array aDados, as informações do Embarque que se deseja realizar a vinculação e os dados dos adiantamentos que serão vinculados. Também será necessário informar para o sistema, o nome da rotina de vinculação do adiantamento, que no caso deve ser sempre "AE100Adian".A estrutura do Array deve constar os dados do Processo (Tabela EEC
)
contendo os campos chave do Embarque (EEC_FILIAL e EEC_PREEMB) e também os dados do adiantamento (Tabela EEQ).

...

...

Abaixo temos 3 exemplos de integração automática do embarque de exportação, sendo na sequência uma Inclusão, uma Alteração e uma Excluisão e também um exemplo para Vinculação e Exclusão da Vinculação de um Adiantamento com o Embarque:

Inclusão automática do Embarque de Exportação

...

languageactionscript3
linenumberstrue

...

EECAE100

...

Alteração automática do Embarque de Exportação

IMPORTANTE: Para a alteração do Embarque de Exportação, é obrigatório que os itens tenham em sua estrutura o campo EE9_SEQEMB, pois este campo é responsável pela definição de cada item do embarque (Na Inclusão, este campo não precisa ser informado). Caso a alteração do embarque seja para a inclusão de um novo item ao Processo, os itens já existentes devem ser informado o campo EE9_SEQEMB e o item novo que está sendo incluído, não deve enviar o campo EE9_SEQEMB, pois o próprio sistema deve definir qual será a sequência deste novo item.

...

Bloco de código
languageactionscript3
linenumberstrue
#Include "Totvs.Ch"
#include "tbiconn.ch"


User Function MyEECAE100()

Local aCab      := {}
Local aItens    := {}
Local aDados    := {}

Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'Administrador' PASSWORD '' TABLES 'EEC,EE9' MODULO 'EEC'

//Dados da Capa do Embarque
aCab :={{'EEC_PREEMB'   , "EMB-AUT001"              ,NIL},;
        {'EEC_IMPORT'   ,'001'                      ,NIL},;
        {'EEC_IMLOJA'   ,'01'                       ,NIL},;
        {'EEC_IMPODE'   ,"CLIENTE 001"              ,NIL},;
        {'EEC_FORN'     ,'001'                      ,NIL},;
        {'EEC_FOLOJA'   ,'01'                       ,NIL},;
        {'EEC_IDIOMA'   ,"PORT. -PORTUGUES"         ,NIL},;
        {'EEC_CONDPA'   ,"001"                      ,NIL},;
        {'EEC_DIASPA'   , 0                         ,NIL},;
        {'EEC_MPGEXP'   ,'001'                      ,NIL},;
        {'EEC_INCOTE'   ,'FOB'                      ,NIL},;
        {'EEC_MOEDA'    ,'US$'                      ,NIL},;
        {'EEC_FRPPCC'   ,'PP'                       ,NIL},;
        {'EEC_UNIDAD'   ,'KG'                       ,NIL},;
        {'EEC_EMBAFI'   ,' '                        ,NIL},;
        {'EEC_CALCEM'   ,'1'                        ,NIL},;
        {'EEC_VIA'      ,'02'                       ,NIL},;
        {'EEC_ORIGEM'   ,'SSZ'                      ,NIL},;
        {'EEC_DEST'     ,'HST'                      ,NIL},;
        {'EEC_PAISET'   ,'249'                      ,NIL},;
        {'EEC_VIA_DE'   ,"NOME DA VIA"              ,NIL},;
        {'EEC_TIPTRA'   ,'1'                        ,NIL}}

aAdd(aDados, {"EEC", aCab})

//Dados dos Itens do Embarque
aItens := {}

aAdd(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
                {'EE9_SEQUEN'   ,"1"            , NIL},;
                {'EE9_SEQEMB'   ,"1"            , NIL},;
                {'EE9_COD_I'    ,'001'          , NIL},;
                {'EE9_FORN'     ,'001'          , NIL},;
                {'EE9_FOLOJA'   ,'01'           , NIL},;
                {'EE9_SLDINI'   , 3737.95       , NIL},;
                {'EE9_QE'       ,197            , NIL},;
                {'EE9_QTDEM1'   ,19             , NIL},;
                {'EE9_EMBAL1'   ,'01'           , NIL},;
                {'EE9_PSLQUN'   ,200            , NIL},;
                {'EE9_PRECO'    ,2100           , NIL},;
                {'EE9_PLSQUN'   ,200            , NIL},;
                {'EE9_TES'      ,"501"          , NIL},;
                {'EE9_CF'       ,"999"          , NIL},;
                {'EE9_POSIPI'   ,"01011010"     , NIL}})


aAdd(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
                {'EE9_SEQUEN'   ,"2 "           , NIL},;
                {'EE9_SEQEMB'   ,"2"            , NIL},;
                {'EE9_COD_I'    ,'002'          , NIL},;
                {'EE9_FORN'     ,'001'          , NIL},;
                {'EE9_FOLOJA'   ,'01'           , NIL},;
                {'EE9_SLDINI'   , 40            , NIL},;
                {'EE9_QE'       , 20            , NIL},;
                {'EE9_QTDEM1'   , 2             , NIL},;
                {'EE9_EMBAL1'   , '01'          , NIL},;
                {'EE9_PSLQUN'   ,200            , NIL},;
                {'EE9_PRECO'    ,2100           , NIL},;
                {'EE9_PLSQUN'   ,200            , NIL},;
                {'EE9_TES'      ,"501"          , NIL},;
                {'EE9_CF'       ,"999"          , NIL},;
                {'EE9_POSIPI'   ,"01011010"     , NIL}})

aAdd(aDados, {"EE9", aItens})

//-------Inclusão de Auxiliares
//Notify
    aNotifys := {}
    aNotify := {}
    aAdd(aNotify, {"EEN_IMPORT", "001"          , Nil})
    aAdd(aNotify, {"EEN_IMLOJA", "01"           , Nil})

    aAdd(aNotifys, aNotify)
    aAdd(aDados, {"EEN", aNotifys})

//Agenda de Documentos
    aDocs := {}
    aDoc := {}
    aAdd(aDoc, {"EXB_CODATV", "05"              , Nil})
    aAdd(aDoc, {"EXB_TIPO"  , "1"               , Nil})

    aAdd(aDocs, aDoc)
    aAdd(aDados, {"EXB", aDocs})

//Agentes
    aAgentes := {}
    aAgente := {}
    aAdd(aAgente, {"EEB_CODAGE", "002"          , Nil})
    aAdd(aAgente, {"EEB_TIPCOM", "1"            , Nil})
    aAdd(aAgente, {"EEB_TIPCVL", "1"            , Nil})
    aAdd(aAgente, {"EEB_VALCOM", 10, Nil})
    aAdd(aAgente, {"EEB_REFAGE", "TESTE", Nil})

    aAdd(aAgentes, aAgente)
    aAdd(aDados, {"EEB", aAgentes})

MsAguarde({|| MSExecAuto( {|aAux, nOpc| EECAE100(,nOpc,aAux) },aDados, 4) }, "Integrando Embarque Automático")

If lMsErroAuto
	MostraErro()
Else
   	MsgInfo("Executado com sucesso!", "Aviso")
EndIf

RESET ENVIRONMENT

Return !lMsErroAuto

Exclusão automática do Embarque de Exportação

IMPORTANTE: Para a Exclusão do Embarque de Exportação e seus auxiliares, é obrigatório que seja informado nas estruturas que contém as informações dos campos a serem gravados, uma nova opção com o nome  AUTDELETA e o conteúdo S ( Exemplo: {"AUTDELETA" ,"S" , Nil} ). Esta informação é responsável por identificar o que deverá ser excluído pelo sistema.

...

Bloco de código
languageactionscript3
linenumberstrue
#include "Totvs.Ch"
#include "tbiconn.ch"
User Function MyEECAE100()

Local aCab      := {}
Local aItens    := {}
Local aDados    := {}

Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' USER 'Administrador' PASSWORD '' TABLES 'EEC,EE9' MODULO 'EEC'

//Dados da Capa do Embarque
aCab :={{'EEC_PREEMB'   , "EMB-AUT001"              ,NIL},;
        {'EEC_IMPORT'   ,'001'                      ,NIL},;
        {'EEC_IMLOJA'   ,'01'                       ,NIL},;
        {'EEC_IMPODE'   ,"CLIENTE 001"              ,NIL},;
        {'EEC_FORN'     ,'001'                      ,NIL},;
        {'EEC_FOLOJA'   ,'01'                       ,NIL},;
        {'EEC_IDIOMA'   ,"PORT. -PORTUGUES"         ,NIL},;
        {'EEC_CONDPA'   ,"001"                      ,NIL},;
        {'EEC_DIASPA'   , 0                         ,NIL},;
        {'EEC_MPGEXP'   ,'001'                      ,NIL},;
        {'EEC_INCOTE'   ,'FOB'                      ,NIL},;
        {'EEC_MOEDA'    ,'US$'                      ,NIL},;
        {'EEC_FRPPCC'   ,'PP'                       ,NIL},;
        {'EEC_UNIDAD'   ,'KG'                       ,NIL},;
        {'EEC_EMBAFI'   ,' '                        ,NIL},;
        {'EEC_CALCEM'   ,'1'                        ,NIL},;
        {'EEC_VIA'      ,'02'                       ,NIL},;
        {'EEC_ORIGEM'   ,'SSZ'                      ,NIL},;
        {'EEC_DEST'     ,'HST'                      ,NIL},;
        {'EEC_PAISET'   ,'249'                      ,NIL},;
        {'EEC_VIA_DE'   ,"NOME DA VIA"              ,NIL},;
        {'EEC_TIPTRA'   ,'1'                        ,NIL},;
        {"AUTDELETA"    ,"S"                        , Nil}}

aAdd(aDados, {"EEC", aCab})

//Dados dos Itens do Embarque
aItens := {}

aAdd(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
                {'EE9_SEQUEN'   ,"1"            , NIL},;
                {'EE9_COD_I'    ,'001'          , NIL},;
                {'EE9_FORN'     ,'001'          , NIL},;
                {'EE9_FOLOJA'   ,'01'           , NIL},;
                {'EE9_SLDINI'   , 3737.95       , NIL},;
                {'EE9_QE'       ,197            , NIL},;
                {'EE9_QTDEM1'   ,19             , NIL},;
                {'EE9_EMBAL1'   ,'01'           , NIL},;
                {'EE9_PSLQUN'   ,200            , NIL},;
                {'EE9_PRECO'    ,2100           , NIL},;
                {'EE9_PLSQUN'   ,200            , NIL},;
                {'EE9_TES'      ,"501"          , NIL},;
                {'EE9_CF'       ,"999"          , NIL},;
                {'EE9_POSIPI'   ,"01011010"     , NIL},;
                {"AUTDELETA"    ,"S"            , Nil}})

aAdd(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
                {'EE9_SEQUEN'   ,"2 "           , NIL},;
                {'EE9_COD_I'    ,'002'          , NIL},;
                {'EE9_FORN'     ,'001'          , NIL},;
                {'EE9_FOLOJA'   ,'01'           , NIL},;
                {'EE9_SLDINI'   , 40            , NIL},;
                {'EE9_QE'       , 20            , NIL},;
                {'EE9_QTDEM1'   , 2             , NIL},;
                {'EE9_EMBAL1'   , '01'          , NIL},;
                {'EE9_PSLQUN'   ,200            , NIL},;
                {'EE9_PRECO'    ,2100           , NIL},;
                {'EE9_PLSQUN'   ,200            , NIL},;
                {'EE9_TES'      ,"501"          , NIL},;
                {'EE9_CF'       ,"999"          , NIL},;
                {'EE9_POSIPI'   ,"01011010"     , NIL},;
                {"AUTDELETA"    ,"S"            , Nil}})

aAdd(aDados, {"EE9", aItens})

//-------Inclusão de Auxiliares
//Notify
    aNotifys := {}
    aNotify := {}
    aAdd(aNotify, {"EEN_IMPORT", "001"          , Nil})
    aAdd(aNotify, {"EEN_IMLOJA", "01"           , Nil})
    aAdd(aNotify, {"AUTDELETA" ,"S"             , Nil})

    aAdd(aNotifys, aNotify)
    aAdd(aDados, {"EEN", aNotifys})

//Agenda de Documentos
    aDocs := {}
    aDoc := {}
    aAdd(aDoc, {"EXB_CODATV", "05"              , Nil})
    aAdd(aDoc, {"EXB_TIPO"  , "1"               , Nil})
    aAdd(aDoc, {"AUTDELETA" ,"S"                , Nil})

    aAdd(aDocs, aDoc)
    aAdd(aDados, {"EXB", aDocs})

//Agentes
    aAgentes := {}
    aAgente := {}
    aAdd(aAgente, {"EEB_CODAGE", "002"          , Nil})
    aAdd(aAgente, {"EEB_TIPCOM", "1"            , Nil})
    aAdd(aAgente, {"EEB_TIPCVL", "1"            , Nil})
    aAdd(aAgente, {"EEB_VALCOM", 10             , Nil})
    aAdd(aAgente, {"EEB_REFAGE", "TESTE"        , Nil})
    aAdd(aAgente, {"AUTDELETA" ,"S"             , Nil})

    aAdd(aAgentes, aAgente)
    aAdd(aDados, {"EEB", aAgentes})

MsAguarde({|| MSExecAuto( {|aAux, nOpc| EECAE100(,nOpc,aAux) },aDados, 5) }, "Integrando Embarque Automático")

If lMsErroAuto
	MostraErro()
Else
   	MsgInfo("Executado com sucesso!", "Aviso")
EndIf

RESET ENVIRONMENT

Return !lMsErroAuto

Vinculação automática de Adiantamento de Importador/Cliente no Embarque de Exportação

IMPORTANTE: Para a Vinculação do adiantamento, o valor a ser associado deve ser enviado na Tag AUTVALVINC (Exemplo: {"AUTVALVINC", nvalor, Nil} ). Já para a Exclusão da vinculação, é necessário enviar a Tag AUTDELETA e o conteúdo S ( Exemplo: {"AUTDELETA" ,"S" , Nil} ).

...

languageactionscript3
linenumberstrue

...

- Rotina Automática de Embarque de Exportação (MsExecAuto)