Árvore de páginas

Versões comparadas

Chave

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

...

  • 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

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.

...


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).

  • Para a Vinculação do adiantamento, é importante que seja enviado os campos de Fase do Adiantamento (EEQ_FASE), Processo (EEQ_PREEMB), Parcela (EEQ_PARC) e o Valor a ser associado, que deve ser enviado com a tag AUTVALVINC;
  • Para a exclusão de uma associação, existem duas formas de ser efetuada. No primeiro cenário, a exclusão pode ser feita informando o número da parcela da associação (que pode não ser o mesmo número da parcela do adiantamento que foi utilizado neste associação). Neste caso, junto com a parcela (EEQ_PARC), deve ser informado a Fase (EEQ_FASE) e o Processo (EEQ_PREEMB) referente a associação. No segundo cenário, a exclusão pode ser feita informando para o sistema o número da parcela do adiantamento que foi associado ao Embarque. Neste caso, os campos a serem informados para o Array devem ser os campos referente a Parcela de Origem, sendo eles Parcela de Origem (EEQ_PAOR), Fase de Origem (EEQ_FAOR) e Processo de Origem (EEQ_PROR). É importante dizer, que ao enviar qualquer um destes campos de Origem, o sistema já irá tratar como uma exclusão através da origem, então para que a parcela seja localizada, os três campos sempre deverão ser enviados.


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


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'        
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_IMPORTDEST'     ,'001HST'                      ,NIL},;
        {'EEC_IMLOJAPAISET'   ,'01249'                       ,NIL},;
        {'EEC_IMPODEVIA_DE'   ,"CLIENTENOME DA 001VIA"              ,NIL},;
        {'EEC_FORNTIPTRA'     ,'0011'                        ,NIL}},;
     

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

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

aAdd(aItens,   {{'EECEE9_FOLOJAPEDIDO'   ,'01'"EMB-AUT001"        , NIL},;
               ,NIL},;
        {'EECEE9_IDIOMASEQUEN'   ,"PORT. -PORTUGUES"1"            , NIL},;
        {'EEC_CONDPA'   ,"001"     {'EE9_COD_I'    ,'001'           ,  ,NIL},;
        {'EEC_DIASPA'   , 0    {'EE9_FORN'     ,'001'               , ,NIL},;
        {'EEC_MPGEXP'   ,'001'     {'EE9_FOLOJA'   ,'01'           ,   ,NIL},;
        {'EEC_INCOTE'   ,'FOB'     {'EE9_SLDINI'   , 3737.95       ,      ,NIL},;
         {'EEC_MOEDA'    ,'US$'   {'EE9_QE'       ,197            , NIL},;
        {'EEC_FRPPCC'   ,'PP'     {'EE9_QTDEM1'   ,19             ,  ,NIL},;
        {'EEC_UNIDAD'   ,'KG'     {'EE9_EMBAL1'   ,'01'              , ,NIL},;
        {'EEC_EMBAFI'   ,' '    {'EE9_PSLQUN'   ,200            ,     ,NIL},;
        {'EEC_CALCEM'   ,'1'     {'EE9_PRECO'        ,2100           , NIL},;
          {'EEC_VIA'      ,{'02EE9_PLSQUN'   ,200            , NIL},;
        ,NIL},;
        {'EECEE9_ORIGEMTES'   ,'SSZ'   ,"501"          , NIL},;
        ,NIL},;
        {'EECEE9_DESTCF'     ,'HST'  ,"999"          , NIL},;
         ,NIL},;
        {'EECEE9_PAISETPOSIPI'   ,'249'"01011010"     , NIL}})


aAdd(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
        ,NIL},;
        {'EECEE9_VIA_DESEQUEN'   ,"NOME2 DA VIA"            ,  ,NIL},;
                {'EECEE9_COD_TIPTRAI'    ,'1002'          , NIL},;
             ,NIL}}

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

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

aAdd(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001" {'EE9_FORN'     ,'001'          , NIL},;
                {'EE9_SEQUENFOLOJA'   ,"1" '01'           , NIL},;
                {'EE9_COD_ISLDINI'   , 40  ,'001'          , NIL},;
                {'EE9_FORNQE'      ,'001' , 20            , NIL},;
                {'EE9_FOLOJAQTDEM1'   ,'01' 2             , NIL},;
                {'EE9_SLDINIEMBAL1'   , 3737.95 '01'          , NIL},;
                {'EE9_QEPSLQUN'       ,197200            , NIL},;
                {'EE9_QTDEM1PRECO'    ,192100             , NIL},;
                {'EE9_EMBAL1PLSQUN'   ,'01'200            , NIL},;
                {'EE9_PSLQUNTES'   ,200   ,"501"          , NIL},;
                {'EE9_PRECOCF'     ,2100   ,"999"          , NIL},;
                {'EE9_PLSQUNPOSIPI'   ,200       "01011010"     , NIL},;
    })

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

//-------Inclusão de Auxiliares
//Notify
    aNotifys := {}
    aNotify := {'EE9_TES'}
    aAdd(aNotify, {"EEN_IMPORT", ,"501001"          , NILNil},;)
    aAdd(aNotify, {"EEN_IMLOJA", "01"          {'EE9_CF' , Nil})

     ,"999"    aAdd(aNotifys, aNotify)
      aAdd(aDados, {"EEN", NILaNotifys},;
  )

//Agenda de Documentos
    aDocs := {}
    aDoc   := {'EE9_POSIPI'}
   ,"01011010"     , NIL}})


aAdd(aItensaDoc,   {{'EE9_PEDIDO'   ,"EMB-AUT001"EXB_CODATV", "05"   , NIL},;
          , Nil})
    aAdd(aDoc, {'EE9_SEQUEN'"EXB_TIPO"  , "1"   ,"2 "           , NILNil},;)

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

//Agentes
    aAgentes := {'EE9_COD_I'}
    ,'002'  aAgente := {}
        , NIL},;
 aAdd(aAgente, {"EEB_CODAGE", "002"          , Nil})
    {'EE9_FORN'     ,'001'       aAdd(aAgente, {"EEB_TIPCOM", "1"   , NIL},;
        , Nil})
    aAdd(aAgente,   {'EE9_FOLOJA'   ,'01'"EEB_TIPCVL", "1"            , NILNil},;)
    aAdd(aAgente, {"EEB_VALCOM", 10, Nil})
    aAdd(aAgente, {"EEB_REFAGE", "TESTE", Nil})

  {'EE9_SLDINI'   aAdd(aAgentes, 40aAgente)
    aAdd(aDados, {"EEB", aAgentes})

MsAguarde({|| MSExecAuto( {|aAux, nOpc| EECAE100(,nOpc,aAux)  , NIL},;
   },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 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"   {'EE9_QE'       , 20            , NIL},;
                {'EE9_QTDEM1'   , 2             , NIL},;
                {'EE9_EMBAL1'   , '01'          , NIL},;
                {'EE9_PSLQUN'   ,200            , NIL},;
                {'EE9_PRECO'    ,2100           , NIL},;
                {'EE9_PLSQUN'   ,200            , NIL},;
        {'EEC_IMPORT'   ,'001'      {'EE9_TES'      ,"501"          , NIL},;
        {'EEC_IMLOJA'   ,'01'      {'EE9_CF'       ,"999"          , NIL},;
        
        {'EE9EEC_POSIPIIMPODE'   ,"01011010"CLIENTE 001"              , NIL}})

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

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

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

//Agenda de Documentos
    aDocs := {}
   ,NIL},;
 aDoc := {}
    aAdd(aDoc, {"EXB_CODATV", "05"   'EEC_IDIOMA'   ,"PORT. -PORTUGUES"         ,NIL},;
  , Nil})
    aAdd(aDoc, {"EXB_TIPO"'EEC_CONDPA'   , "1001"               , Nil})

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

//Agentes
    aAgentes := {}
'EEC_DIASPA'   , 0       aAgente := {}
    aAdd(aAgente, {"EEB_CODAGE", "002"          , NilNIL}),;
    aAdd(aAgente,    {"EEB_TIPCOM", "1"'EEC_MPGEXP'   ,'001'                      , NilNIL}),;
     aAdd(aAgente,   {"EEB_TIPCVL", "1"  'EEC_INCOTE'   ,'FOB'          , Nil})
    aAdd(aAgente, {"EEB_VALCOM", 10, Nil})
    aAdd(aAgente, {"EEB_REFAGE", "TESTE", Nil})
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 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"{'EEC_MOEDA'    ,'US$'                      ,NIL},;
        {'EEC_FRPPCC'   ,'PP'                       ,NIL},;
        {'EEC_UNIDAD'   ,'KG'                       ,NIL},;
        {'EEC_EMBAFI'   ,' '                        ,NIL},;
        {'EEC_CALCEM'   ,'1'                        ,NIL},;
        {'EEC_IMPORTVIA'      ,'00102'                       ,NIL},;
        {'EEC_IMLOJAORIGEM'   ,'01SSZ'                       ,NIL},;
        {'EEC_IMPODEDEST'     ,"CLIENTE 001"'HST'                      ,NIL},;
        {'EEC_FORNPAISET'     ,'001249'                      ,NIL},;
        {'EEC_FOLOJAVIA_DE'   ,'01'"NOME       DA VIA"                ,NIL},;
        {'EEC_IDIOMATIPTRA'   ,"PORT. -PORTUGUES"'1'                        ,NIL}},;
        {'EEC_CONDPA

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

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

aAdd(aItens,   {{'EE9_PEDIDO'   ,"001EMB-AUT001"   , NIL},;
                  ,NIL},;
        {'EECEE9_DIASPASEQUEN'   ,"1" 0                 , NIL},;
        ,NIL},;
        {'EECEE9_MPGEXPSEQEMB'   ,'001'"1"            ,  NIL},;
        ,NIL},;
        {'EECEE9_COD_INCOTEI'    ,'FOB001'              , NIL},;
        ,NIL},;
        {'EECEE9_MOEDAFORN'     ,'US$001'             , NIL},;
         ,NIL},;
        {'EECEE9_FRPPCCFOLOJA'   ,'PP01'           , NIL},;
           ,NIL},;
        {'EECEE9_UNIDADSLDINI'   ,'KG' 3737.95                      ,, NIL},;
        {'EEC_EMBAFI'   ,' '    {'EE9_QE'       ,197            , ,NIL},;
        {'EEC_CALCEM'   ,'1'      {'EE9_QTDEM1'   ,19             ,  ,NIL},;
          {'EEC_VIA'      ,{'02EE9_EMBAL1'   ,'01'           , NIL},;
        ,NIL},;
        {'EECEE9_ORIGEMPSLQUN'   ,'SSZ'200            , NIL},;
         ,NIL},;
        {'EECEE9_DESTPRECO'     ,'HST'2100           , NIL},;
          ,NIL},;
        {'EECEE9_PAISETPLSQUN'   ,'249'200            , NIL},;
         ,NIL},;
        {'EEC_VIA_DE'   ,"NOME DA VIA"EE9_TES'      ,"501"          , NIL},;
                {'EECEE9_TIPTRACF'   ,'1'    ,"999"          , NIL},;
              ,NIL}}

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

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

  {'EE9_POSIPI'   ,"01011010"     , NIL}})


aAdd(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
                {'EE9_SEQUEN'   ,"12 "            , NIL},;
                {'EE9_SEQEMB'   ,"12"            , NIL},;
                {'EE9_COD_I'    ,'001002'          , NIL},;
                {'EE9_FORN'     ,'001'          , NIL},;
                {'EE9_FOLOJA'   ,'01'           , NIL},;
                {'EE9_SLDINI'   , 3737.9540            , NIL},;
                {'EE9_QE'       ,197 20            , NIL},;
                {'EE9_QTDEM1'   ,19 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(aItensaDados,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
  "EE9", aItens})

//-------Inclusão de Auxiliares
//Notify
    aNotifys := {}
    aNotify := {}
  {'EE9_SEQUEN'  aAdd(aNotify, {"EEN_IMPORT", "2 001"           , NILNil},;)
                {'EE9_SEQEMB'   ,"2aAdd(aNotify, {"EEN_IMLOJA", "01"            , NILNil},;)

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

//Agenda de Documentos
   {'EE9_COD_I' aDocs := {}
     ,'002' aDoc := {}
    aAdd(aDoc, {"EXB_CODATV", "05"   , NIL},;
          , Nil})
    aAdd(aDoc, {'EE9_FORN' "EXB_TIPO"  , "1"    ,'001'           , NILNil},;)

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

//Agentes
    aAgentes := {'EE9_FOLOJA'}
   ,'01' aAgente := {}
        , NIL},;
 aAdd(aAgente, {"EEB_CODAGE", "002"          , Nil})
    {'EE9_SLDINI'   , 40aAdd(aAgente, {"EEB_TIPCOM", "1"            , NIL},;
    Nil})
    aAdd(aAgente,   {"EEB_TIPCVL", "1"     {'EE9_QE'       , 20Nil})
    aAdd(aAgente, {"EEB_VALCOM", 10, Nil})
    aAdd(aAgente, {"EEB_REFAGE", "TESTE", NILNil},;)

    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  {'EE9_QTDEM1'   , 2             , NIL},;
                {'EE9_EMBAL1'   , '01'          , NIL},;
          :=      {'EE9_PSLQUN'   ,200            , NIL},;
                {'EE9_PRECO'    ,2100           , NIL},;
                {'EE9_PLSQUN'   ,200{}
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'      {'EE9_TES'      ,"501"          , NIL},;
        {'EEC_IMLOJA'   ,'01'      {'EE9_CF'       ,"999"          , NIL},;
          {'EEC_IMPODE'   ,"CLIENTE 001"      {'EE9_POSIPI'   ,"01011010"     , NIL}})

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

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

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

//Agenda de Documentos
,NIL},;
      aDocs := {}
'EEC_IDIOMA'    aDoc := {}
,"PORT. -PORTUGUES"      aAdd(aDoc, {"EXB_CODATV", "05"  ,NIL},;
          {'EEC_CONDPA'   , Nil})
 "001"    aAdd(aDoc, {"EXB_TIPO"  , "1"               , NilNIL}),;

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

//Agentes
    aAgentes := {}
'EEC_DIASPA'   , 0       aAgente := {}
    aAdd(aAgente, {"EEB_CODAGE", "002"          , NilNIL}),;
      aAdd(aAgente,  {"EEB_TIPCOM", "1"'EEC_MPGEXP'   ,'001'                      , NilNIL}),;
       aAdd(aAgente, {"EEB_TIPCVL", "1"'EEC_INCOTE'   ,'FOB'               , Nil})
    aAdd(aAgente, {"EEB_VALCOM", 10, NilNIL}),;
       aAdd(aAgente, {"EEB_REFAGE", "TESTE", Nil})

'EEC_MOEDA'    ,'US$'        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_FRPPCC'   ,'PP'                       ,NIL},;
        {'EEC_UNIDAD'   ,'KG'                       ,NIL},;
        {'EEC_EMBAFI'   ,' '                        ,NIL},;
        {'EEC_CALCEM'   ,'1'                        ,NIL},;
        {'EEC_VIA'      ,'02'                       ,NIL},;
        {'EEC_IMPORTORIGEM'   ,'001SSZ'                      ,NIL},;
        {'EEC_IMLOJADEST'     ,'01HST'                       ,NIL},;
        {'EEC_IMPODEPAISET'   ,"CLIENTE 001"'249'                      ,NIL},;
        {'EEC_VIA_FORNDE'     ,'001'"NOME DA  VIA"                   ,NIL},;
        {'EEC_FOLOJATIPTRA'   ,'011'                        ,NIL},;
        {'EEC_IDIOMA'"AUTDELETA"    ,"PORT. -PORTUGUES""S"                        ,NIL},;
      Nil}}

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

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

aAdd(aItens,   {{'EECEE9_CONDPAPEDIDO'   ,"001EMB-AUT001"      , NIL},;
                ,NIL},;
        {'EECEE9_DIASPASEQUEN'   ,"1" 0              , NIL},;
           ,NIL},;
        {'EECEE9_COD_MPGEXPI'    ,'001'                      ,, NIL},;
        {'EEC_INCOTE'   ,'FOB'      {'EE9_FORN'     ,'001'          , ,NIL},;
                {'EECEE9_MOEDAFOLOJA'    ,'US$01'           , NIL},;
          ,NIL},;
        {'EECEE9_FRPPCCSLDINI'   ,'PP' 3737.95              , NIL},;
        ,NIL},;
        {'EECEE9_UNIDADQE'     ,'KG'  ,197            , NIL},;
        ,NIL},;
        {'EECEE9_EMBAFIQTDEM1'   ,'19 '            , NIL},;
           ,NIL},;
        {'EECEE9_CALCEMEMBAL1'   ,'101'                , NIL},;
        ,NIL},;
        {'EECEE9_VIAPSLQUN'      ,'02',200                       ,, NIL},;
        {'EEC_ORIGEM'   ,'SSZ'       {'EE9_PRECO'    ,2100           , NIL},;
        {'EEC_DEST'     ,'HST'   {'EE9_PLSQUN'   ,200             ,   ,NIL},;
        {'EEC_PAISET'   ,'249'     {'EE9_TES'       ,"501"          , NIL},;
                {'EECEE9_VIA_DECF'   ,"NOME DA VIA"    ,"999"          , NIL},;
        {'EEC_TIPTRA'   ,'1'     {'EE9_POSIPI'   ,"01011010"        , NIL},;
        ,NIL},;
        {"AUTDELETA"    ,"S"                        , Nil}}

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

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

aAdd(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
                {'EE9_SEQUEN'   ,"12 "            , NIL},;
                {'EE9_COD_I'    ,'001002'          , NIL},;
                {'EE9_FORN'     ,'001'          , NIL},;
                {'EE9_FOLOJA'   ,'01'           , NIL},;
                {'EE9_SLDINI'   , 3737.95 40            , NIL},;
                {'EE9_QE'       ,197 20            , NIL},;
                {'EE9_QTDEM1'   ,19 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(aItens,   {{'EE9_PEDIDO'   ,"EMB-AUT001"   , NIL},;
aDados, {"EE9", aItens})

//-------Inclusão de Auxiliares
//Notify
    aNotifys := {}
    aNotify := {}
    aAdd(aNotify, {"EEN_IMPORT", "001"             , Nil})
    aAdd(aNotify,  {'EE9_SEQUEN'   ,"2 "EEN_IMLOJA", "01"           , NILNil},;)
    aAdd(aNotify, {"AUTDELETA" ,"S"          {'EE9_COD_I'    ,'002', Nil})

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

//Agenda de Documentos
    aDocs := {}
    aDoc  :=  {'EE9_FORN'     ,'001'{}
    aAdd(aDoc, {"EXB_CODATV", "05"    , NIL},;
         , Nil})
     aAdd(aDoc, {'EE9_FOLOJA'"EXB_TIPO"   ,'01' "1"          , NIL},;
    , Nil})
    aAdd(aDoc, {"AUTDELETA" ,"S"     {'EE9_SLDINI'   , 40       , Nil})

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

//Agentes
    aAgentes := {}
   {'EE9_QE' aAgente := {}
    aAdd(aAgente, 20 {"EEB_CODAGE", "002"           , NILNil},;)
    aAdd(aAgente,   {"EEB_TIPCOM", "1"         {'EE9_QTDEM1'   , 2Nil})
    aAdd(aAgente, {"EEB_TIPCVL", "1"       , NIL},;
    , Nil})
           {'EE9_EMBAL1'   , '01'aAdd(aAgente, {"EEB_VALCOM", 10             , NILNil},;)
    aAdd(aAgente, {"EEB_REFAGE", "TESTE"        , Nil})
  {'EE9_PSLQUN'  aAdd(aAgente, ,200{"AUTDELETA" ,"S"             , NILNil},;)

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

MsAguarde({|| MSExecAuto( {|aAux, nOpc|  {'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
   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} ).


Exemplo - Vinculação e Exclusão da Vinculação de Adiantamento com Embarque
Bloco de código
languageactionscript3
linenumberstrue
User Function MyEECAE100()

Private lMsErroAuto := .F.

RpcSetType(3)
RpcSetEnv("99", "01",,,"EEC")
nModulo := 29

If MsgYesNo("Deseja entrar na rotina de Associação dos Adiantamentos?", "Aviso")
	U_AdVincAuto()
EndIf

RpcClearEnv()

Return 

/***************************************************
* Function: AdVincAuto()									*
* Objetivo: Efetuar a Vinculação do Adiantamento	*
****************************************************/
User Function AdVincAuto()
Local aEmb := {}, aAdian := {}, aParc, aIntegra
Local lExecuta := .T.
Local cParc:=""
Local nValor:=0
Local cEmbarque := "PED-EMB-AUT002"
Private lMsErroAuto := .F.

While lExecuta
	lMsErroAuto := .F.
	aEmb 	:= {}
	aAdian:= {}
	lExcluir := .F.
	If !MsgYesNo("Selecione SIM para associar um adiantamento ou NÃO para excluir uma associação?", "Aviso")
      lExcluir := .T.
	EndIf
	aAdd(aEmb, {"EEC_FILIAL", "01"			, Nil})
	aAdd(aEmb, {"EEC_PREEMB", cEmbarque		, Nil}) //Informe qual o embarque que será vinculado o adiantamento
	
	aParc := {}
	If lExcluir
		If MsgYesNo("Deseja excluir informando a parcela de origem? Se SIM, informe a parcela do adiantamento. Caso escolha não, a parcela informada deverá ser a parcela da associação.", "Aviso")
			cParc := IoDlg()
			aAdd(aParc, {"EEQ_FAOR"		, "C"			, Nil})
			aAdd(aParc, {"EEQ_PROR"	   , "001   01", Nil})
			aAdd(aParc, {"EEQ_PAOR"		, cParc		, Nil})
		Else
			cParc := IoDlg()
			aAdd(aParc, {"EEQ_FASE"		, "E"			, Nil})
			aAdd(aParc, {"EEQ_PREEMB"	, cEmbarque , Nil})
			aAdd(aParc, {"EEQ_PARC"		, cParc		, Nil})
		EndIf
	Else
		cParc := IoDlg()
		aAdd(aParc, {"EEQ_FASE"		, "C"			, Nil})
		aAdd(aParc, {"EEQ_PREEMB"	, "001   01", Nil})
		aAdd(aParc, {"EEQ_PARC"		, cParc		, Nil})
	EndIf
	
	If !lExcluir
		nvalor := IoDlgValor()
		aAdd(aParc, {"AUTVALVINC", nvalor, Nil}) //Valor a ser associado
	Else	
		aAdd(aParc, {"AUTDELETA", "S", Nil})//Enviar quando for excluir uma vinculação
	EndIf

	aAdd(aAdian, aClone(aParc))

	aIntegra := {{"EEC", aEmb}, {"EEQ", aAdian}}

	MsAguarde({|| MsExecAuto({|aIntegra| EECAE100(,,aIntegra,"AE100Adian") }, aIntegra) }, "Integrando associação de adiantamentos")

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

RESET ENVIRONMENT
	lExecuta := MsgYesNo("Continuar com as associações?", "Aviso")

EndDo

RpcClearEnv()

Return 
!lMsErroAuto

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

IMPORTANTE: Para a vinculação de um adiantamento de cliente ao Embarque, é necessário que o Importador/Cliente utilizado no Processo, possua adiantamento com saldo.

...

Nil