CONTEÚDO
- Visão Geral
- Exemplo de Utilização
- Modelos de Dados
- Tabelas Utilizadas
- Demais Informações
01. VISÃO GERAL
O Easy Import Control (SIGAEIC) disponibiliza a utilização de rotina automática para a rotina Catálogo de Produtos - EICCP400 (EICCP400), sendo possível incluir, alterar e excluir um catálogo.
02. EXEMPLO DE UTILIZAÇÃO
A rotina Catálogo de Produtos - EICCP400 (EICC400) foi implementada com o conceito de MVC (Model View Controller) do Protheus, portanto não possui a mesma estrutura de MsExecAuto conforme o modelo antigo utilizado no Protheus.
No entanto é possível realizar a execução de forma automática através de modelo de dados, como exemplo abaixo.
A estrutura do modelos de dados da rotina Catálogo de Produtos - EICCP400 (EICC400), está desenvolvida da seguinte forma:
- EK9MASTER: esse modelo de dados representa os dados da capa do catálogo de produtos.
- EKADETAIL: esse modelo de dados é relacionado ao modelo de dados EK9MASTER e representa a "Relação de Produtos" do catálogo de produtos.
- EKBDETAIL: esse modelo de dados é relacionado ao modelo de dados EK9MASTER e representa a "Relação de Países de Origem e Fabricantes" do catálogo de produtos.
- EKCDETAIL: esse modelo de dados é relacionado ao modelo de dados EK9MASTER e representa a "Relação de Atributos" do catálogo de produtos.
Importante
Ao inserir um produto no modelo de dados EKA deve-se gerar a informação do campo EKA_ITEM sequencial.
Ao informar os valores dos atributos no modelo de dados EKC deve ser informado um valor válido conforme valores disponíveis no portal de acordo com o ncm.
#include 'protheus.ch' #include 'fwmvcdef.ch' user function ExecCatProd() Private cCatalogo := '' Private cVersao := '' if RpcSetEnv("99","01",,,"EIC") catInclui() catAltera() catDelete() EndIf Return nil Static function catInclui() local oModel := nil local oModelEK9 := nil local oGridEKA := nil local oGridEKB := nil local oGridEKC := nil local nLinEKC := 0 oModel:= FWLoadModel("EICCP400") oModel:SetOperation(MODEL_OPERATION_INSERT) oModel:Activate() oModelEK9 := oModel:getModel("EK9MASTER") cCatalogo := oModelEK9:getValue("EK9_COD_I") cVersao:=oModelEK9:getValue("EK9_VATUAL") oGridEKA := oModel:getModel("EKADETAIL") oGridEKB := oModel:getModel("EKBDETAIL") oGridEKC := oModel:GetModel("EKCDETAIL") oModelEK9:setValue("EK9_CNPJ","00000000") oModelEK9:setValue("EK9_NCM","01011010") oModelEK9:setValue("EK9_DSCCOM","Descrição da declaração") oGridEKA:setValue("EKA_PRDREF","PRD-01") oGridEKA:setValue("EKA_ITEM","001") oGridEKA:AddLine() oGridEKA:setValue("EKA_PRDREF","PROD-006") oGridEKA:setValue("EKA_ITEM","002") oGridEKB:setValue("EKB_PAIS","US") for nLinEKC := 1 to oGridEKC:length() oGridEKC:GoLine(nLinEKC) oGridEKC:SetValue("EKC_VALOR", 'Informacao' +alltrim(str(nLinEKC))) next nLinEKC if oModel:VldData() oModel:CommitData() else VarInfo("Erro no execauto do modelo EICCP400-> ",oModel:GetErrorMessage()) endif oModel:DeActivate() oModel:Destroy() FwFreeObj(oModel) return nil Static function catAltera() local oModel := nil local oModelEK9 := nil dbSelectArea("EK9") EK9->(dbSetOrder(1)) if EK9->(dbSeek( xFilial("EK9") + cCatalogo + cVersao)) oModel:= FWLoadModel("EICCP400") oModel:SetOperation(MODEL_OPERATION_UPDATE) oModel:Activate() oModelEK9 := oModel:getModel("EK9MASTER") oModelEK9:setValue("EK9_IMPORT",'01') if oModel:VldData() oModel:CommitData() else VarInfo("Erro no execauto do modelo EICCP400-> ",oModel:GetErrorMessage()) endif EndIf oModel:DeActivate() oModel:Destroy() FwFreeObj(oModel) Return nil Static function catDelete() Local oModel := nil dbSelectArea("EK9") EK9->(dbSetOrder(1)) if EK9->(dbSeek( xFilial("EK9") + cCatalogo + cVersao)) oModel:= FWLoadModel("EICCP400") oModel:SetOperation(MODEL_OPERATION_DELETE) oModel:Activate() if oModel:VldData() oModel:CommitData() else VarInfo("Erro no execauto do modelo EICCP400-> ",oModel:GetErrorMessage()) endif EndIf oModel:DeActivate() oModel:Destroy() FwFreeObj(oModel) Return nil
03. MODELOS DE DADOS
Modelo | Descrição |
---|---|
EK9Master | Catálogo de produtos |
EKADetail | Produtos que fazem parte do catálogo |
EKBDetail | Países de origem e fabricantes |
EKCDetail | Atributos |
04. TABELAS UTILIZADAS
- EK9 - Catálogo
- EKA - Produtos do catálogo
- EKB - Países de origem e fabricantes
- EKC - Atributos