Tutorial Integração MCM 1. Criar os seguintes atributos dentro da categoria Banco_Dados: Nome ID Valor Padrão Largura Corte LARGURA_CORTE $PLATECUTTINGWIDTHBUILDER$ Altura Corte ALTURA_CORTE $PLATECUTTINGHEIGHTBUILDER$ UF UF F ou C Profundidade PROFUNDIDADE_AMBIENTE $D$ Cobrimento _ Abertura COBRIMENTO_ABERTURA Total ou Parcial Tipo TIPO Fantasma FANTASMA S ou N Cor COR @com_*(cor)@ Modelo MODELO @com_*(material)@ Espessura ESPESSURA #ESP_EXT_CPORTA# ou #ESP_FUN# Largura LARGURA_AMBIENTE $W$ Desenho DESENHO $DRAWINGBUILDER$ Comprimento COMPRIMENTO $W$ Altura ALTURA_AMBIENTE $H$ Borda Esquerda BORDA_ESQ $LEFTBORDERBUILDER$ Borda Direita BORDA_DIR $RIGHTBORDERBUILDER$ Borda Traseira BORDA_TRASEIRA $REARBORDERBUILDER$ Borda Frontal BRODA_FRONTAL $FRONTBORDERBUILDER$ Volume VOLUME CNCProgram1 CNCPROGRAM1 $CNCPROGRAM1$ CNCProgram2 CNCPROGRAM2 $CNCPROGRAM2$ CNCProgram3 CNCPROGRAM3 $CNCPROGRAM3$
Estes atributos são as características do módulo. Abaixo segue onde devem ser cadastrados: Largura Corte: Aplicar em todas as composições, este valor define a largura de corte da peça, já fazendo o cálculo das bordas e sobre-corte; Altura Corte: Aplicar em todas as composições, este valor define a altura de corte da peça, já faz o cálculo das bordas e sobre-corte; UF: Aplicar em todos os acessórios e composições, o F define o item como fabricado e o C como comprado; Profundidade: Aplicar em todos os módulos; Altura: Aplicar em todos os módulos e composições; Importante: Nas composições o valor padrão deve ser alterado para $D$. Cobrimento _Abertura: Aplicar nas corrediças e dobradiças, define tipo de cobrimento ou abertura; Tipo: Aplicar só nas corrediças e dobradiças, descrever o tipo de dobradiça (Ex.: Reta ou Curva) e corrediça (Ex.: Normal ou Telescópica); Fantasma: Aplicar Fantasma (S) quando o item não tem de aparecer na estrutura do produto dentro do ERP. Cor: Aplicar em todas as composições, apontar para a informação ACABAMENTO nos modelos. A informação tem de ter 3 caracteres numéricos. Aplicar também nos módulos pais, e mandar puxar a informação dos filhos (tomando como padrão a cor da base). Modelo: Aplicar em todas as composições, apontando para a informação de modelo MATERIAL, e retornando, por exemplo, MDF; Espessura: Aplicar em todas as composições, pegar a altura da peça e descontar o atributo da Variação da Espessura da Chapa; Largura: Aplicar em todos os módulos e composições. Desenho: Aplicar em todos os módulos e composições. Comprimento: Aplicar nos puxadores Gola e Perfil, com o valor $W$. Atributos de Borda: usados para designar as bordas que aparecerão no.xml. No caso pode ser aplicado os 4 atributos em todas as peças onde tem fita de borda (e/ou no grupo composições). O Plug-in na hora de gerar saberá qual borda mostrar. Atributos CNC: usado para mostrar no.xml, quais peças tem programas de máquina. Aplicamos os 3 atributos em todas peças que geram programas. No.xml ele ira mostrar o nome dos programas, se ele tiver 1 mostra apenas o CNCProgram1, se tiver 2 mostra o CNCProgram1 e CNCProgram2, e se tiver 3 mostra os 3 atributos.
2. Alterações na Modulação: Em puxadores Perfil, Gola e Trilhos Lineares (itens que são comprados por metro e processados dentro da fábrica) deve ser criada uma estrutura orçada em metro e a entidade de cada item deve orçar em unidade. As ferragens agregadas nos módulos, devem ter o atributo BUDGERAGGREGATE como TRUE, para que no xml eles sejam filhos das composições a que pertencem. As estruturas de ferragens devem ficar marcadas como Composição do Módulo e Vincular ao primeiro pai orçado, desta forma as estruturas ficam filhas das composições, e não ficam irmãs dos módulos. Observação: Verificar se o sistema tem estruturas que orcem como irmãs do módulo, pois podem ocorrer problemas na importação do xml pelo erp. A sugestão é inserir o módulo onde esta estrutura esta agregada, gerar um xml e verificar se o UNIQUE_ID CODIGO vem zerado (<UNIQUE_ID CODIGO=""). Puxadores, frentes e prateleiras devem ter o atributo BUDGETAGGREGATE como false, pra que no.xml, ele seja irmão do módulo e não filho como base, laterais e travessas. Deve ser verificado para que se o sistema tem fórmula N em prateleiras ou afins, a informação RECALCULAR não deve estar marcada. O conjunto da gaveta deve receber o atributo CALCULATED como True, porém tem que colocar o atributo NOPRICEALERT, pra que não suba a mensagem que o item está sem preço. Deve se fazer isso, para que no xml, o conjunto gaveta apareça irmão da base, laterais e travessas dos módulo e dentro deste conjunto fique os filhos do conjunto que é as laterais, traseiro e fundos da gaveta. Colocar o código ITEM_BASE em todos os itens das bibliotecas, inclusive Estruturas. O Plug-in se comportará da seguinte forma: ele lerá se há ITEM_BASE cadastrado na aba referência. Se não tiver, ele irá ver se na aba dimensões esta cadastrado uma Variável ITEM_BASE, caso não haja nenhuma das duas opções o campo irá em branco, dando problema na importação do pedido no ERP. Este item base será para o código das peças e do módulo para o.xml. Na planilha Modelo_Integracao.xlsx, está todo o modelo que deve ser seguido para criar os códigos. Fazer testes quanto aos Painéis/Tampos/Tamburatos, dependendo do sistema as informações do roteiro produtivo pode ficar sem pai. As configurações de VOLUME podem variar de cliente a cliente. No Start Labs, as ferragens tem o atributo com valor VOLFER, e as composições com VOL01. Os itens de ferragens que são cadastrados como estruturas recebem uma referencia chamada VOLUME, com o valor VOLFER. O VOLUME, KITFER é cadastrado nos parafusos dos puxadores. Estas informações são reprocessadas dentro do ERP onde há uma redistribuição em árvore para mostrar a composição do módulo. Em sistemas com o construtor de Armários deve ser criado referencia Item Base, conforme código abaixo: <Output> <Sets> <References> <Add Id="ITEM_BASE" Value="CÓDIGO" /> </References> </BudgetInformation> </Sets>
</Output> Deve ser feito um teste colocando itens associados, para ver se o orçamento do Promob agrupa os itens. Exemplo: coloco um painel e arrasto um balcão para ele (associando-o). Caso gere um orçamento e um XML, onde só apareça o Painel e o balcão como filho dele, deve ser colocado o Atributo BudgetAggregate com valor de False, nos itens que o projetista possa arrastar.
3. Cadastro de Orçamento de Operações: Para cadastrar um orçamento de operação pode-se acessar o editor de cadastro de duas maneiras: Através da aba Cadastro->Builder->Cadastro de Orçamentos de Operação No editor de módulos, na aba Builder, selecionar o ícone Orçamento de Operações.
Dentro da aba Orçamento de Operações, criar as operações: Rasgar - relacionar a todos os rasgos. Bordear - relacionar a todas as bordas. Cortar - não é preciso relacionar, as composições vão pegar automaticamente, só é necessário criar a operação. Cortar em Policorte - esta é uma operação extra que vai ser relacionada só nos puxadores perfil e gola. Furar - relacionar a todos os furos (no cadastro de furos da aba Builder) quando não tiver definido preços diferentes para cada diâmetro de furo, se tiver valores diferentes, criar uma operação para cada diâmetro de furo.
Para criar uma operação Rasgar: - Provedor: principal - Fonte de Dados: BancoDados - Tipo de Operação: Rasgo - ID: RASGO - Descrição: Rasgo Largura - Quantidade: $DISTANCEBUILDER$/1000 - Categoria de margem: Start - Referência (COMPLETE): 5 - Unidade: M - Texto de Dimensão: -
Para criar uma operação Bordear: - Provedor: principal - Fonte de Dados: BancoDados - Tipo de Operação: Borda - ID: BORDA - Descrição: Bordear - Quantidade: $PERIMETERBUILDER$/1000 - Categoria de margem: Start - Referência (COMPLETE): 4 - Unidade: M - Texto de Dimensão: -
Para criar uma operação Cortar: - Provedor: principal - Fonte de Dados: BancoDados - Tipo de Operação: Corte - ID: CORTE - Descrição: Cortar - Quantidade: (2*$PLATECUTTINGWIDTHBUILDER$+2*$PLATECUTTINGHEIGHTBUILDER$)/1000 - Categoria de margem: Start - Referência (COMPLETE): 1 - Unidade: M - Texto de Dimensão: -
Para criar uma operação Corte em Policorte: - Provedor: principal - Fonte de Dados: BancoDados - Tipo de Operação: Extra - ID: CORTE_POLICORTE - Descrição: Corte em Policorte - Quantidade: 1 - Categoria de margem: Start - Referência (COMPLETE): 2 - Unidade: UN - Texto de Dimensão: -
Para criar uma operação Furar: - Provedor: principal - Fonte de Dados: BancoDados - Tipo de Operação: Furo - ID: FURAR - Descrição: Furar - Quantidade: 1 - Categoria de margem: Start - Referência (COMPLETE): 3 - Unidade: UN - Texto de Dimensão: -
4. Cadastro de Regras de Orçamento: Cadastro de Regras de Orçamento em Cadastro->Orçamento->Regras de Orçamento Importante: As regras de orçamento acima não devem estar Somando as Quantidades 5. Cadastro de Estruturas: Cadastrar Estruturas para Cadastro->Orçamento->Estruturas, associar regras de orçamentos criadas as estruturas. Cadastrar a referencia HIDE_STRUCTURE = TRUE na estrutura, conforme a imagem abaixo: 6. Como relacionar as operações: Rasgar: Nas propriedades de cada rasgo Selecionar Tipo de operação. Selecionar a operação desejada.
Bordear: Nas propriedades de cada rasgo Selecionar Tipo de operação. Selecionar a operação desejada.
Furar: Nas propriedades de cada furo Selecionar Tipo de operação.
7. Ordenar a operações: Em cada composição ordenar as operações, conforme o cliente utiliza Ordenar de acordo com a lógica produtiva.
8. Informações das Bordas: Em Cadastros -> Builder -> Cadastro de Referencias de Borda, criamos uma Referencia para cada borda utilizada na Biblioteca. Na referencia chamamos a espessura da borda, mais o acabamento dela, conforme imagem abaixo:
Para associarmos ela a borda correspondente, vamos até o cadastro das peças, no cadastro de Módulos na aba Builder, selecionamos a borda e aplicamos a referencia conforme a imagem abaixo: 9. Na raiz do sistema: - Pasta Budget -> Steps: verificar o arquivo BuilderSteps.steps; - Pasta Budget: verificar os arquivos e MCMBudget.budget Observação: O cliente precisa ter privilégio de administrador na pasta structures do Promob. 10. No arquivo default.budget: Criar dentro de cada nodo Budget onde gera orçamento os nodos: <STEP IDDEFINITION="createStructures" /> <STEP IDDEFINITION="clearStructures" /> <STEP IDDEFINITION=" processautomaticinsertion" /> O Step createstructures deve ser o primeiro dos STEPS, e o clearstructures deve ficar antes do STEP XSLLAYOUT, conforme o exemplo do Orçamento Montado abaixo: <STEPS> <STEP IDDEFINITION="createStructures" /> <STEP IDDEFINITION="processAutomaticInsertion" REMOVEAUTOMATICINSERTION="Y" /> <STEP IDDEFINITION="motor" OUTPUTNODE="N" PROCESSSEPARETEENVIRONMENTS="Y" COMPRESSQUANTITY="Y" COMPRESSREPETITION="Y" PROCESSCATEGORIES="Y" CONSIDEROBSERVATIONSINCOMPRESS="N" REFERENCE="COMPLETE" MODE="Explosao" ALLOWSUPPLEMENTARYITEMS="Y" ALLOWEXTRAITEMS="Y" COMPRESSCONVERTEDGEOMETRY="N" /> <STEP IDDEFINITION="calcularPrecoMargens" BUDGETMARGIN="Y" ORDERMARGIN="N" OUTPUTNODE="Y" COMPONENTSTOTAL="Y" SHOWMESSAGEITEMSWITHOUTPRICE="Y" /> <STEP IDDEFINITION="condicoesPagamento" /> <STEP IDDEFINITION="clearStructures" /> <STEP IDDEFINITION="telaApresentacao" XSLLAYOUT="%PastaBudget%\Layouts\Listing\OrcamentoMontadoSemEdicao.xsl" DOCUMENTDESCRIPTION="Orçamento Montados" /> </STEPS>
11. Para testar se tudo funcionou. Criar um projeto Salvar este projeto Gerar os orçamentos e ver se os preços batem 12. Para ter o sistema configurado: Copiar o arquivo sendto.xml do diretório S:\Produtos\Start\Start_MCM\System\budget\SendTo Copiar o arquivo FabricaTXT.xsl do diretório S:\Produtos\Start\Start_MCM\System\budget\SendTo\FabricaTXT.xsl Com estas opções o programa gera um.zip com um txt do orçamento e o.promob. 13. Para gerar um.xml da Integração é necessário ter o Plugin MCM e o Plugin DataBase. É necessário fazer a configuração dos mesmos antes de gerar um.xml. Na configuração dos Integradores, é ajustado a pasta onde o plugin irá gerar o.xml. Na configuração do Banco de Dados definimos o endereço do Banco de Dados, e as configurações das etiquetas que serão enviadas para o MCM; 14. No Layou te Orçamento Cadastrar o seguinte teste antes do <tbody> <xsl:if test="((count(references) = 0) or (count(references) > 0 and count(references/hide_structure) = 0) or (count(references) > 0 and count(references/hide_structure) > 0 and count(references/hide_structure/@reference) > 0 and REFERENCES/HIDE_STRUCTURE/@REFERENCE!= 'TRUE'))" > E Cadastrar após o </tbody> o código abaixo: </xsl:if>