Árvore de páginas

Versões comparadas

Chave

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

...

Descrição:

Possibilita a realização das manutenções do Embarque de Exportação, tais como Inclusão, Alteração e Exclusão, através do mecanismo de rotina automática.

Produto:

Microsiga Protheus

Segmento:Comércio Exterior
Módulo:SIGAEEC - Easy Export Control
Rotina:
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
País(es):Todos
Banco(s) de Dados:Todos Homologados pela TOTVS
Tabelas Utilizadas:

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

Parâmetros:
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 inclusã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.

...

  • 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 contar 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


Abaixo temos um exemplo de estrutura a ser integrada para uma Inclusão do processo de exportação com auxiliares.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.


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


Exemplo - Inclusão de Embarque automático com Auxiliares (Notify (EEN), Agenda de Documentos (EXB) e Agente de Comissão (EEB) )
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_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_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, 3) }, "Integrando Embarque Automático")

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

RESET ENVIRONMENT

Return !lMsErroAuto

...

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.


Exemplo - Alteração de Embarque automático com Auxiliares (Notify (EEN), Agenda de Documentos (EXB) e Agente de Exemplo - Alteração de Embarque automático com Auxiliares (Notify (EEN), Agenda de Documentos (EXB) e Agente de Comissão (EEB) )
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.


Exemplo - Exclusão de Embarque automático com Auxiliares (Notify (EEN), Agenda de Documentos (EXB) e Agente de Comissão (EEB) )
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