• Nenhum resultado encontrado

Informatica MDM Multidomain Edition (Versão ) Guia de Serviços de Entidade Comercial

N/A
N/A
Protected

Academic year: 2021

Share "Informatica MDM Multidomain Edition (Versão ) Guia de Serviços de Entidade Comercial"

Copied!
115
0
0

Texto

(1)

Informatica MDM Multidomain Edition

(Versão 10.1.0)

Guia de Serviços de Entidade

Comercial

(2)

Informatica MDM Multidomain Edition Guia de Serviços de Entidade Comercial Versão 10.1.0

Novembro 2015

Copyright (c) 1993-2016 Informatica LLC. Todos os direitos reservados.

Este software e a respectiva documentação contêm informações de propriedade da Informatica LLC. Eles são fornecidos sob um contrato de licença que contém restrições quanto a seu uso e divulgação, e são protegidos por leis de copyright. A engenharia reversa do software é proibida. Não está permitida de forma alguma a reprodução ou a transmissão de qualquer parte deste documento (seja por meio eletrônico, fotocópia, gravação ou quaisquer outros) sem o consentimento prévio da Informatica LLC. Este Software pode estar protegido por patentes dos EUA e/ou internacionais e outras patentes pendentes.

O uso, duplicação ou divulgação do Software pelo Governo dos Estados Unidos estão sujeitos às restrições estipuladas no contrato de licença de software aplicável e como estabelecido em DFARS 227.7202-1(a) e 227.7702-3(a) (1995), DFARS 252.227-7013©(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19 ou FAR

52.227-14 (ALT III), conforme aplicável.

As informações contidas neste produto ou documentação estão sujeitas a alteração sem aviso prévio. Informe-nos por escrito caso encontre quaisquer problemas neste produto ou documentação.

Informatica, Informatica Platform, Informatica Data Services, PowerCenter, PowerCenterRT, PowerCenter Connect, PowerCenter Data Analyzer, PowerExchange, PowerMart, Metadata Manager, Informatica Data Quality, Informatica Data Explorer, Informatica B2B Data Transformation, Informatica B2B Data Exchange Informatica On Demand, Informatica Identity Resolution, Informatica Application Information Lifecycle Management, Informatica Complex Event Processing, Ultra Messaging e Informatica Master Data Management são marcas comerciais ou marcas registradas da Informatica LLC nos Estados Unidos e em jurisdições pelo mundo. Todos os outros nomes de outras companhias e produtos podem ser nomes ou marcas comerciais de seus respectivos proprietários.

Partes desta documentação e/ou software estão sujeitas a direitos autorais de terceiros, incluindo sem limitação: Copyright DataDirect Technologies. Todos os direitos reservados. Copyright © Sun Microsystems. Todos os direitos reservados. Copyright © RSA Security Inc. Todos os direitos reservados. Copyright © Ordinal Technology

Corp. Todos os direitos reservados. Copyright © Aandacht c.v. Todos os direitos reservados. Copyright Genivia, Inc. Todos os direitos reservados. Copyright

Isomorphic Software. Todos os direitos reservados. Copyright © Meta Integration Technology, Inc. Todos os direitos reservados. Copyright © Intalio. Todos os direitos

reservados. Copyright © Oracle. Todos os direitos reservados. Copyright © Adobe Systems Incorporated. Todos os direitos reservados. Copyright © DataArt, Inc.

Todos os direitos reservados. Copyright © ComponentSource. Todos os direitos reservados. Copyright © Microsoft Corporation. Todos os direitos reservados.

Copyright © Rogue Wave Software, Inc. Todos os direitos reservados. Copyright © Teradata Corporation. Todos os direitos reservados. Copyright © Yahoo! Inc. Todos

os direitos reservados. Copyright © Glyph & Cog, LLC. Todos os direitos reservados. Copyright © Thinkmap, Inc. Todos os direitos reservados. Copyright © Clearpace

Software Limited. Todos os direitos reservados. Copyright © Information Builders, Inc. Todos os direitos reservados. Copyright © OSS Nokalva, Inc. Todos os direitos

reservados. Copyright Edifecs, Inc. Todos os direitos reservados. Copyright Cleo Communications, Inc. Todos os direitos reservados. Copyright © International

Organization for Standardization 1986. Todos os direitos reservados. Copyright © ej-technologies GmbH.Todos os direitos reservados. Copyright © Jaspersoft

Corporation. Todos os direitos reservados. Copyright © International Business Machines Corporation. Todos os direitos reservados. Copyright © yWorks GmbH. Todos

os direitos reservados. Copyright © Lucent Technologies.Todos os direitos reservados. Copyright © University of Toronto. Todos os direitos reservados. Copyright ©

Daniel Veillard.Todos os direitos reservados. Copyright © Unicode, Inc. Copyright IBM Corp. Todos os direitos reservados. Copyright © MicroQuill Software Publishing,

Inc. Todos os direitos reservados. Copyright © PassMark Software Pty Ltd. Todos os direitos reservados. Copyright © LogiXML, Inc. Todos os direitos reservados.

Copyright © 2003-2010 Lorenzi Davide, todos os direitos reservados. Copyright © Red Hat, Inc. Todos os direitos reservados. Copyright © The Board of Trustees of the

Leland Stanford Junior University. Todos os direitos reservados. Copyright © EMC Corporation. Todos os direitos reservados. Copyright © Flexera Software.Todos os

direitos reservados. Copyright © Jinfonet Software. Todos os direitos reservados. Copyright © Apple Inc. Todos os direitos reservados. Copyright © Telerik Inc. Todos

os direitos reservados. Copyright © BEA Systems. Todos os direitos reservados. Copyright © PDFlib GmbH. Todos os direitos reservados. Copyright © Orientation in

Objects GmbH. Todos os direitos reservados. Copyright © Tanuki Software, Ltd. Todos os direitos reservados. Copyright © Ricebridge. Todos os direitos reservados.

Copyright © Sencha, Inc. Todos os direitos reservados. Copyright © Scalable Systems, Inc. Todos os direitos reservados. Copyright © jQWidgets. Todos os direitos

reservados. Copyright © Tableau Software, Inc. Todos os direitos reservados. Copyright © MaxMind, Inc. Todos os direitos reservados. Copyright © TMate Software

s.r.o. Todos os direitos reservados. Copyright © MapR Technologies Inc. Todos os direitos reservados. Copyright © Amazon Corporate LLC. Todos os direitos

reservados. Copyright © Highsoft. Todos os direitos reservados. Copyright © Python Software Foundation. Todos os direitos reservados. Copyright © BeOpen.com.

Todos os direitos reservados. Copyright © CNRI. Todos os direitos reservados.

Este produto inclui software desenvolvido pela Apache Software Foundation (http://www.apache.org/) e/ou outros softwares licenciados nas várias versões da Licença Apache (a "Licença"). Você pode obter uma cópia dessas Licenças em http://www.apache.org/licenses/. A menos que exigido pela legislação aplicável ou concordado por escrito, o software distribuído em conformidade com estas Licenças é fornecido "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA OU CONDIÇÃO DE QUALQUER TIPO, seja expressa ou implícita. Consulte as Licenças para conhecer as limitações e as permissões que regulam o idioma específico de acordo com as Licenças.

Este produto inclui software desenvolvido pela Mozilla (http://www.mozilla.org/), direitos autorais de software de The JBoss Group, LLC; todos os direitos reservados; software copyright © 1999-2006 de Bruno Lowagie e Paulo Soares e outros produtos de software licenciados sob a Licença Pública GNU Lesser General Public

License Agreement, que pode ser encontrada em http://www.gnu.org/licenses/lgpl.html. Os materiais são fornecidos gratuitamente pela Informatica, no estado em que se encontram, sem garantia de qualquer tipo, explícita nem implícita, incluindo, mas não limitando-se, as garantias implicadas de comerciabilidade e adequação a um determinado propósito.

O produto inclui software ACE(TM) e TAO(TM) com copyright de Douglas C. Schmidt e seu grupo de pesquisa na Washington University, University of California, Irvine e Vanderbilt University, Copyright (©) 1993-2006, todos os direitos reservados.

Este produto inclui o software desenvolvido pelo OpenSSL Project para ser usado no kit de ferramentas OpenSSL (copyright The OpenSSL Project. Todos os direitos reservados) e a redistribuição deste software está sujeita aos termos disponíveis em http://www.openssl.org e http://www.openssl.org/source/license.html.

Este produto inclui o software Curl com o Copyright 1996-2013, Daniel Stenberg, <daniel@haxx.se>. Todos os direitos reservados. Permissões e limitações relativas a este software estão sujeitas aos termos disponíveis em http://curl.haxx.se/docs/copyright.html. É permitido usar, copiar, modificar e distribuir este software com qualquer objetivo, com ou sem taxa, desde que a nota de direitos autorais acima e esta nota de permissão apareçam em todas as cópias.

O produto inclui software copyright 2001-2005 (©) MetaStuff, Ltd. Todos os direitos reservados. Permissões e limitações relativas a este software estão sujeitas aos

termos disponíveis em http://www.dom4j.org/license.html.

O produto inclui o copyright de software © 2004-2007, The Dojo Foundation. Todos os direitos reservados. Permissões e limitações relativas a este software estão

sujeitas aos termos disponíveis em http://dojotoolkit.org/license.

Este produto inclui o software ICU com o copyright International Business Machines Corporation e outros. Todos os direitos reservados. Permissões e limitações relativas a este software estão sujeitas aos termos disponíveis em http://source.icu-project.org/repos/icu/icu/trunk/license.html.

Este produto inclui o copyright de software © 1996-2006 Per Bothner. Todos os direitos reservados. O direito de usar tais materiais é estabelecido na licença que pode

ser encontrada em http://www.gnu.org/software/kawa/Software-License.html.

Este produto inclui o software OSSP UUID com Copyright © 2002 Ralf S. Engelschall, Copyright © 2002 e OSSP Project Copyright © 2002 Cable & Wireless

Deutschland. Permissões e limitações relativas a este software estão sujeitas aos termos disponíveis em http://www.opensource.org/licenses/mit-license.php. Este produto inclui software desenvolvido pela Boost (http://www.boost.org/) ou sob a licença de software Boost. Permissões e limitações relativas a este software estão sujeitas aos termos disponíveis em http://www.boost.org/LICENSE_1_0.txt.

(3)

Este produto inclui software copyright © 1997-2007 University of Cambridge. Permissões e limitações relativas a este software estão sujeitas aos termos disponíveis

em http://www.pcre.org/license.txt.

Este produto inclui o copyright de software © 2007 The Eclipse Foundation. Todos os direitos reservados. As permissões e as limitações relativas a este software estão

sujeitas aos termos disponíveis em http://www.eclipse.org/org/documents/epl-v10.php e em http://www.eclipse.org/org/documents/edl-v10.php.

Este produto inclui softwares licenciados de acordo com os termos disponíveis em http://www.tcl.tk/software/tcltk/license.html, http://www.bosrup.com/web/overlib/? License, http://www.stlport.org/doc/ license.html, http:// asm.ow2.org/license.html, http://www.cryptix.org/LICENSE.TXT, http://hsqldb.org/web/hsqlLicense.html, http:// httpunit.sourceforge.net/doc/ license.html, http://jung.sourceforge.net/license.txt , http://www.gzip.org/zlib/zlib_license.html, http://www.openldap.org/software/release/ license.html, http://www.libssh2.org, http://slf4j.org/license.html, http://www.sente.ch/software/OpenSourceLicense.html, http://fusesource.com/downloads/license-agreements/fuse-message-broker-v-5-3- license-agreement; http://antlr.org/license.html; http://aopalliance.sourceforge.net/; http://www.bouncycastle.org/licence.html; http://www.jgraph.com/jgraphdownload.html; http://www.jcraft.com/jsch/LICENSE.txt; http://jotm.objectweb.org/bsd_license.html; . http://www.w3.org/Consortium/Legal/ 2002/copyright-software-20021231; http://www.slf4j.org/license.html; http://nanoxml.sourceforge.net/orig/copyright.html; http://www.json.org/license.html; http:// forge.ow2.org/projects/javaservice/, http://www.postgresql.org/about/licence.html, http://www.sqlite.org/copyright.html, http://www.tcl.tk/software/tcltk/license.html, http:// www.jaxen.org/faq.html, http://www.jdom.org/docs/faq.html, http://www.slf4j.org/license.html; http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/License; http:// www.keplerproject.org/md5/license.html; http://www.toedter.com/en/jcalendar/license.html; http://www.edankert.com/bounce/index.html; http://www.net-snmp.org/about/ license.html; http://www.openmdx.org/#FAQ; http://www.php.net/license/3_01.txt; http://srp.stanford.edu/license.txt; http://www.schneier.com/blowfish.html; http:// www.jmock.org/license.html; http://xsom.java.net; http://benalman.com/about/license/; https://github.com/CreateJS/EaselJS/blob/master/src/easeljs/display/Bitmap.js; http://www.h2database.com/html/license.html#summary; http://jsoncpp.sourceforge.net/LICENSE; http://jdbc.postgresql.org/license.html; http://

protobuf.googlecode.com/svn/trunk/src/google/protobuf/descriptor.proto; https://github.com/rantav/hector/blob/master/LICENSE; http://web.mit.edu/Kerberos/krb5-current/doc/mitK5license.html; http://jibx.sourceforge.net/jibx-license.html; https://github.com/lyokato/libgeohash/blob/master/LICENSE; https://github.com/hjiang/jsonxx/ blob/master/LICENSE; https://code.google.com/p/lz4/; https://github.com/jedisct1/libsodium/blob/master/LICENSE; http://one-jar.sourceforge.net/index.php?

page=documents&file=license; https://github.com/EsotericSoftware/kryo/blob/master/license.txt; http://www.scala-lang.org/license.html; https://github.com/tinkerpop/ blueprints/blob/master/LICENSE.txt; http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html; https://aws.amazon.com/asl/; https://github.com/ twbs/bootstrap/blob/master/LICENSE; https://sourceforge.net/p/xmlunit/code/HEAD/tree/trunk/LICENSE.txt.

Este produto inclui software licenciado de acordo com a Academic Free License (http://www.opensource.org/licenses/afl-3.0.php), a Common Development and Distribution License (http://www.opensource.org/licenses/cddl1.php), a Common Public License (http://www.opensource.org/licenses/cpl1.0.php), a Sun Binary Code License Agreement Supplemental License Terms, a BSD License (http://www.opensource.org/licenses/bsd-license.php), a nova BSD License (http://opensource.org/ licenses/BSD-3-Clause), a MIT License (http://www.opensource.org/licenses/mit-license.php), a Artistic License (http://www.opensource.org/licenses/artistic-license-1.0) e a Initial Developer’s Public License Version 1.0 (http://www.firebirdsql.org/en/initial-developer-s-public-license-version-1-0/).

Este produto inclui copyright do software © 2003-2006 Joe WaInes, 2006-2007 XStream Committers. Todos os direitos reservados. Permissões e limitações relativas a

este software estão sujeitas aos termos disponíveis em http://xstream.codehaus.org/license.html. Este produto inclui software desenvolvido pelo Indiana University Extreme! Lab. Para obter mais informações, visite http://www.extreme.indiana.edu/.

Este produto inclui software Copyright © 2013 Frank Balluffi e Markus Moeller. Todos os direitos reservados. As permissões e limitações relativas a este software estão

sujeitas aos termos da licença MIT.

Consulte as patentes em https://www.informatica.com/legal/patents.html.

ISENÇÃO DE RESPONSABILIDADE: a Informatica LLC fornece esta documentação no estado em que se encontra, sem garantia de qualquer tipo, expressa ou implícita, incluindo, mas não limitando-se, as garantias implícitas de não infração, comercialização ou uso para um determinado propósito. A Informatica LLC não garante que este software ou documentação não contenha erros. As informações fornecidas neste software ou documentação podem incluir imprecisões técnicas ou erros tipográficos. As informações deste software e documentação estão sujeitas a alterações a qualquer momento sem aviso prévio.

AVISOS

Este produto da Informatica (o "Software") traz determinados drivers (os "drivers da DataDirect") da DataDirect Technologies, uma empresa em funcionamento da Progress Software Corporation ("DataDirect"), que estão sujeitos aos seguintes termos e condições:

1. OS DRIVERS DA DATADIRECT SÃO FORNECIDOS NO ESTADO EM QUE SE ENCONTRAM, SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO LIMITANDO-SE, AS GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA E NÃO INFRAÇÃO.

2. EM NENHUM CASO, A DATADIRECT OU SEUS FORNECEDORES TERCEIRIZADOS SERÃO RESPONSÁVEIS, EM RELAÇÃO AO CLIENTE FINAL, POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, CONSEQUENCIAIS OU DEMAIS QUE POSSAM ADVIR DO USO DE DRIVERS ODBC, SENDO OU NÃO ANTERIORMENTE INFORMADOS DAS POSSIBILIDADES DE TAIS DANOS. ESTAS LIMITAÇÕES SE APLICAM A TODAS AS CAUSAS DE AÇÃO, INCLUINDO, SEM LIMITAÇÕES, QUEBRA DE CONTRATO, QUEBRA DE GARANTIA, NEGLIGÊNCIA, RESPONSABILIDADE RIGOROSA, DETURPAÇÃO E OUTROS ATOS ILÍCITOS.

(4)

Conteúdo

Prefácio. . . 7

Recursos da Informatica. . . 7

Portal My Support da Informatica. . . 7

Documentação da Informatica. . . 7

Matrizes de Disponibilidade de Produto Informatica. . . 8

Site da Informatica. . . 8

Biblioteca de Recursos da Informatica. . . 8

Base de Dados de Conhecimento da Informatica. . . 8

Canal de Suporte da Informatica no YouTube. . . 8

Informatica Marketplace. . . 8

Informatica Velocity. . . 9

Suporte Global a Clientes da Informatica. . . 9

Capítulo 1: Introdução a Serviços de Entidade Comercial. . . 10

Visão Geral de Serviços de Entidade Comercial. . . 10

Serviços de Entidade Comercial. . . 11

Serviço de Entidade Comercial ReadBE. . . 11

Serviço de Entidade Comercial WriteBE. . . 11

Serviço de Entidade Comercial SearchBE. . . 11

Arquivos de Configuração de Serviço de Entidade Comercial. . . 12

Arquivo de Configuração de Serviço de Entidade Comercial. . . 12

Arquivo de Configuração de Serviço de Entidade Comercial REST . . . 13

Arquivo de Configuração de Serviço de Gravação de Entidade Comercial. . . 14

Arquivo de Configuração do Serviço de Pesquisa de Entidade Comercial. . . 16

Pontos de Extremidade de Serviços de Entidade Comercial. . . 16

Ponto de Extremidade Enterprise JavaBeans para Serviços de Entidade Comercial. . . 16

Ponto de Extremidade REST para Serviços de Entidade Comercial. . . 16

Chamadas de Serviços de Entidade Comercial REST e EJB. . . 17

Ponto de Extremidade SOAP para Serviços de Entidade Comercial. . . 17

Capítulo 2: Chamadas de Serviços de Entidade Comercial Enterprise Java

Bean. . . 18

Visão Geral de Chamadas de Serviços de Entidade Comercial Enterprise Java Bean. . . 18

Exemplo de Código Java com Classes SDO padrão. . . 18

Exemplo de Código Java com Classes SDO Geradas. . . 22

Capítulo 3: Chamadas de Serviços de Entidade Comercial Representational

State Transfer. . . 27

Visão Geral de APIs REST para Serviços de Entidade Comercial. . . 27

(5)

Método de Autenticação. . . 28

Cookies de Autenticação para Logon de Aplicativos de Terceiros. . . 28

Arquivo WADL (Web Application Description). . . 29

Localizador de Recursos Uniforme REST. . . 30

Configuração do Cabeçalho e do Corpo. . . 31

Cabeçalho da Solicitação. . . 31

Corpo da Solicitação. . . 32

Parâmetros de Consulta Padrão. . . 33

Configurando o WebLogic para Executar Chamadas REST de Serviço de Entidade Comercial. . . . 34

Visualizando Parâmetros de Entrada e Saída. . . 35

Modelo JavaScript. . . 35

Exemplo de JavaScript. . . 36

Referência de API REST para Serviços de Entidade Comercial . . . 38

Obter Metadados . . . 38

Ler Entidade Comercial. . . 44

Criar Entidade Comercial. . . 48

Atualizar Entidade Comercial. . . 50

Excluir Entidade Comercial. . . 52

Listar Entidade Comercial. . . 53

Pesquisar Entidade Comercial. . . 54

Agente de Sugestão. . . 59 Obter Metadados do BPM. . . 60 Listar Tarefas. . . 61 Ler Tarefa. . . 66 Criar Tarefa. . . 68 Atualizar Tarefa. . . 70 Tarefa Concluída. . . 73

Executar Ação de Tarefa. . . 75

Listar Usuários Atribuíveis. . . 78

Visualizar Promoção. . . 78

Promover. . . 80

Excluir Pendentes. . . 80

Visualizar Mesclagem. . . 81

Mesclar Registros. . . 83

Reverter a Mesclagem de Registros. . . 84

Obter Registos Relacionados. . . 85

Ler Registros Correspondidos. . . 87

Atualizar Registros Correspondidos. . . 88

Excluir Registros Correspondidos. . . 89

Capítulo 4: Chamadas de Serviços de Entidade Comercial Simple Object

Access Protocol. . . 91

Chamadas Simple Object Access Protocol para Serviços de Entidade Comercial. . . 91

(6)

Método de autenticação. . . 92

Cookies de Autenticação para Logon de Aplicativos de Terceiros. . . 92

Arquivo WSDL (Web Services Description Language). . . 93

URL SOAP. . . 94

Solicitações e Respostas SOAP. . . 95

Visualizando Parâmetros de Entrada e Saída. . . 96

Referência de API SOAP. . . 97

Solicitação e Resposta SOAP de Amostra. . . 98

Apêndice A: Usando APIs REST para Adicionar Registros de Entidade

Comercial. . . 100

Usando APIs REST para Adicionar Registros de Entidade Comercial - Visão Geral. . . 100

Estrutura da Entidade Comercial Person. . . 101

Etapa 1. Obter Informações sobre o Esquema. . . 101

Obter Resposta de Metadados. . . 102

Etapa 2. Criar um Registro de Entidade Comercial. . . 107

Criar resposta de entidade comercial. . . 108

Etapa 3. Ler o Registro de Entidade Comercial. . . 109

Ler a Resposta do Registro de Entidade Comercial. . . 110

(7)

Prefácio

Bem-vindo ao Guia de Serviços de Entidade Comercial do Informatica MDM Informatica MDM Multidomain

Edition. Este guia explica como fazer chamadas de serviços de entidade comercial em entidades comerciais

no MDM Hub.

Seu público-alvo são especialistas técnicos responsáveis por configurar interfaces de usuário personalizadas para fazer chamadas de serviços de entidade comercial ao MDM Hub.

Recursos da Informatica

Portal My Support da Informatica

Para o cliente da Informatica, o primeiro passo para nos contatar é acessar o Meu Portal de Suporte da Informatica em https://mysupport.informatica.com. O Meu Portal de Suporte é a maior plataforma de colaboração de integração de dados online, com mais de 100.000 clientes e parceiros da Informatica em todo o mundo.

Como membro, você pode:

Acessar todos os seus recursos Informatica em um só lugar.

Revisar seus casos de suporte.

Pesquisar a Base de Dados de Conhecimento, localizar documentação de produtos, acessar documentos de instruções e assistir vídeos de suporte.

Encontrar a sua Rede de Grupo de Usuários da Informatica local e colaborar com seus colegas. Como membro, você pode:

Acessar todos os seus recursos Informatica em um só lugar.

Pesquisar a Base de Dados de Conhecimento, localizar documentação de produtos, acessar documentos de instruções e assistir vídeos de suporte.

Encontrar a sua Rede de Grupo de Usuários da Informatica local e colaborar com seus colegas.

Documentação da Informatica

A equipe de Documentação da Informatica se esforça ao máximo para criar documentações precisas e utilizáveis. Se você tiver dúvidas, comentários ou ideias sobre esta documentação, entre em contato com a equipe de Documentação da Informatica pelo e-mail infa_documentation@informatica.com. Nós usaremos seu feedback para melhorar a documentação. Por favor, avise-nos se pudermos entrar em contato com você em relação aos comentários.

(8)

A equipe de Documentação atualiza a documentação conforme o necessário. Para obter a documentação mais recente do seu produto, navegue para Documentação do Produto no endereço

https://mysupport.informatica.com.

Matrizes de Disponibilidade de Produto Informatica

As Matrizes de Disponibilidade de Produto (PAMs) indicam as versões dos sistemas operacionais, os bancos de dados e outros tipos de fontes e destinos de dados com os quais uma versão de produto é compatível. Você pode acessar as PAMs no Portal do Meu Suporte da Informatica em https://mysupport.informatica.com.

Site da Informatica

Você pode acessar o site corporativo da Informatica no endereçohttps://www.informatica.com. O site contém informações sobre a Informatica, seu histórico, eventos futuros e escritórios de vendas. Você também vai encontrar informações sobre parceiros e produtos. A área de serviços do site inclui informações importantes sobre suporte técnico, treinamento e educação, bem como serviços de implementação.

Biblioteca de Recursos da Informatica

Na qualidade de cliente da Informatica, você pode acessar a Biblioteca de Recursos da Informatica no endereço https://mysupport.informatica.com. A Biblioteca de Recursos é uma coletânea de recursos que o ajuda a aprender mais sobre os produtos e recursos da Informatica. Ela inclui artigos e demonstrações interativas que apresentam soluções a problemas comuns, comparam recursos e comportamentos e o orienta na execução de tarefas específicas no mundo real.

Base de Dados de Conhecimento da Informatica

Na qualidade de cliente da Informatica, você pode acessar a Base de Dados de Conhecimento da Informatica no endereço https://mysupport.informatica.com. Use a Base de Dados de Conhecimento para pesquisar soluções documentadas a problemas técnicos conhecidos sobre produtos da Informatica. Você também pode encontrar respostas a perguntas frequentes, white papers e dicas técnicas. Se você tiver dúvidas, comentários ou ideias sobre a Base de Dados de Conhecimento, entre em contato com a equipe da Base de Dados de Conhecimento da Informatica pelo e-mail KB_Feedback@informatica.com.

Canal de Suporte da Informatica no YouTube

Você pode acessar o canal de Suporte da Informatica no YouTube

http://www.youtube.com/user/INFASupport. O canal de Suporte da Informatica no YouTube inclui vídeos sobre soluções que orientam você na execução de tarefas específicas. Em caso de dúvidas, comentários ou ideias sobre o canal de Suporte da Informatica no YouTube, entre em contato com a equipe de Suporte do YouTube por email em supportvideos@informatica.com ou envie um tweet para @INFASupport.

Informatica Marketplace

O Informatica Marketplace é um fórum em que desenvolvedores e parceiros podem compartilhar soluções para aumentar, ampliar ou aprimorar implementações da integração de dados. Ao tirar proveito de qualquer uma das centenas de soluções disponíveis no Marketplace, você pode melhorar sua produtividade e agilizar o tempo de implementação em seu projeto. Você pode acessar o Informatica Marketplace através do link

(9)

Informatica Velocity

Você pode acessar o Informatica velocity em https://mysupport.informatica.com. Desenvolvido com base na experiência no mundo real de centenas de projetos de gerenciamento de dados, o Informatica Velocity representa o conhecimento coletivo de nossos consultores, que trabalharam com organizações de todo o mundo para planejar, desenvolver, implantar e manter soluções de gerenciamento de dados bem-sucedidas. Se você tiver dúvidas, comentários ou ideias sobre o Informatica Velocity, entre em contato com os Serviços Profissionais da Informatica em ips@informatica.com.

Suporte Global a Clientes da Informatica

Você pode entrar em contato com o Centro de Suporte a Clientes por telefone ou pelo Suporte Online. O Suporte Online requer um nome de usuário e uma senha. Você pode solicitar um nome de usuário e uma senha no endereço http://mysupport.informatica.com.

Os números de telefone para o Suporte Global a Clientes da Informatica estão disponíveis no site da Informatica em http://www.informatica.com/us/services-and-training/support-services/global-support-centers/.

(10)

C

A P Í T U L O

1

Introdução a Serviços de

Entidade Comercial

Este capítulo inclui os seguintes tópicos:

Visão Geral de Serviços de Entidade Comercial, 10

Serviços de Entidade Comercial, 11

Arquivos de Configuração de Serviço de Entidade Comercial, 12

Pontos de Extremidade de Serviços de Entidade Comercial, 16

Visão Geral de Serviços de Entidade Comercial

Um serviço de entidade comercial é um conjunto de operações que executam um código do MDM Hub para criar, atualizar, excluir e procurar registros de objeto base em uma entidade comercial. É possível

desenvolver uma interface de usuário personalizada capaz de executar código Java ou JavaScript para fazer chamadas de serviço de entidade comercial.

Por exemplo, você pode criar um serviço de entidade comercial para aumentar um registro de fornecedor com dados da Dun and Bradstreet. Configure o serviço de entidade comercial para usar o registro de fornecedor como entrada, recuperar algumas informações da Dun and Bradstreet, atualizar o registo e então gerar o registro de fornecedor atualizado.

Objetos base em uma entidade comercial têm os seguintes serviços de entidade comercial:

Leitura

Cada entidade comercial tem um serviço de entidade comercial para realizar uma operação de leitura.

Gravação

Cada entidade comercial tem um serviço de entidade comercial para realizar uma operação de gravação.

Pesquisa

Qualquer entidade comercial com campos pesquisáveis tem um serviço de entidade comercial para realizar uma operação de pesquisa.

Por exemplo, uma entidade comercial Pessoa tem campos pesquisáveis. O MDM Hub gera um serviço de entidade comercial ReadPerson, WritePerson e SearchPerson. As etapas de serviços de entidade comercial de leitura, gravação e pesquisa permitem que você leia, crie, atualize, exclua e procure registros em uma entidade comercial.

(11)

Serviços de Entidade Comercial

Um serviço de entidade comercial realiza uma operação. É possível usar os serviços de entidade comercial ReadBE, WriteBE e SearchBE.

Um serviço de entidade comercial tem etapas de serviço. Uma solicitação de entrada passa por cada etapa de serviço. A saída de uma etapa é uma entrada para a próxima etapa. A saída de uma etapa pode passar informações para a entrada da etapa seguinte. Todas as etapas de serviço de entidade comercial são executadas como uma única chamada Enterprise Java Bean em uma única transação. O MDM Hub faz o tratamento de exceções.

Nota: Antes de usar os serviços de entidade comercial, valide o Armazenamento de Referências

Operacionais.

Serviço de Entidade Comercial ReadBE

O serviço de entidade comercial ReadBE lê dados de um registro de objeto base em uma entidade comercial.

É possível especificar parâmetros de paginação com a etapa ReadBE para definir o número de registros a serem retornados e a página de resultados para exibição.

Os resultados do serviço ReadBE não incluem registros com exclusão temporária.

Se você não transmitir o parâmetro EffectiveDate na solicitação de serviço de entidade comercial, o MDM Hub assumirá um valor NULL para a data efetiva, e o serviço de entidade comercial fará a leitura dos dados no objeto base. Se você transmitir o parâmetro EffectiveDate, o MDM Hub calculará a melhor versão da verdade a partir dos registros de referência cruzada, e o serviço de leitura de entidade comercial retornará a melhor versão atualizada da verdade.

Serviço de Entidade Comercial WriteBE

O serviço de entidade comercial WriteBE pode atualizar os dados em um elemento de entidade comercial, criar um elemento de entidade comercial filho ou excluir elementos de entidade comercial filho.

Períodos Efetivos

Se você não transmitir o parâmetro EffectivePeriod, o MDM Hub assumirá um período ilimitado.

O MDM Hub não verifica se há um alinhamento para períodos efetivos entre os objetos raiz e os objetos filho. Ao criar ou atualizar registros, verifique se os períodos efetivos do registro pai e dos registros filho estão alinhados.

Confiança

O serviço de entidade comercial WriteBE usa as configurações de confiança existentes para calcular a confiança nos objetos base. Não é possível realizar uma substituição de confiança com esse serviço.

Serviço de Entidade Comercial SearchBE

Use o serviço de entidade comercial SearchBE para procurar um registro raiz em uma entidade comercial. Para obter informações sobre como configurar entidades comerciais para a pesquisa inteligente, consulte o

Guia de Configuração do Informatica MDM Multidomain Edition.

(12)

Arquivos de Configuração de Serviço de Entidade

Comercial

Os arquivos de configuração de serviços de entidade comercial são arquivos XML gerados pela ferramenta de Provisionamento com base na configuração de entidades comerciais.

Você pode usar a ferramenta de Provisionamento para gerar os arquivos de configuração de serviços de entidade comercial, fazer alterações e publicar essas alterações no MDM Hub. Quando você publica alterações, o Gerenciador de Repositório no Console do Hub valida a configuração. Para obter mais informações, consulte o Guia da Ferramenta de Provisionamento do Informatica MDM Multidomain Edition. O MDM Hub tem as seguintes configurações de serviço de entidade comercial:

Configuração do Serviço de Entidade Comercial REST (Representational State Transfer)

Define como URLs REST são mapeadas para chamadas de serviço de entidade comercial Enterprise Java Bean.

Serviços de Entidade Comercial

Configuração para todos os serviços de entidade comercial.

O arquivo de configuração de serviços de entidade comercial contém as seguintes configurações de serviço de entidade comercial:

configuração da etapa do serviço de entidade comercial para etapas de serviços de leitura, gravação, pesquisa e personalizados de entidade comercial.

Configuração do serviço de leitura de entidade comerciall para cada objeto base em uma entidade comercial.

Configuração do serviço de gravação de entidade comercial para cada objeto base em uma entidade comercial.

Configuração do serviço de pesquisa de entidade comercial para cada objeto base em uma entidade comercial que tem pelo menos um campo pesquisável.

Serviço de Gravação de Entidade Comercial

Contém a configuração do serviço de gravação de entidade comercial.

Serviço de Pesquisa de Entidade Comercial

Contém a configuração do serviço de pesquisa de entidade comercial.

Arquivo de Configuração de Serviço de Entidade Comercial

O arquivo de configuração de serviço de entidade comercial define as três etapas do serviço de entidade comercial para ler, gravar e pesquisar registros de objeto base. O arquivo de configuração de serviço de entidade comercial também define os parâmetros de serviço de entidade comercial para cada objeto base da entidade comercial. Se você adicionar objetos de entidade comercial manualmente à configuração da entidade comercial, também deverá adicionar os serviços de entidade comercial relacionados.

O seguinte código mostra a configuração do serviço de leitura de entidade comercial para o objeto raiz Organization:

<service name="ReadOrganization">

<parameter type="CoFilter" uri="urn:cs-base.informatica.mdm" required="true" directionKind="IN" name="coFilter"/>

<parameter type="Date" uri="commonj.sdo" required="false" directionKind="IN" name="effectiveDate"/>

<parameter type="Boolean" uri="commonj.sdo" required="false" directionKind="IN" name="readSystemFields"/>

(13)

<output type="Organization" uri="urn:co-ors.informatica.mdm"/> <execution>

<execute name="s1" target="ReadCO" type="SERVICE"/> </execution>

</service>

O seguinte código mostra a configuração do serviço de gravação de entidade comercial para o objeto raiz Organization:

<service name="WriteOrganization">

<parameter type="String" uri="commonj.sdo" required="true" directionKind="IN" name="systemName"/>

<parameter type="String" uri="commonj.sdo" required="false" directionKind="IN_OUT" name="interactionId"/>

<parameter type="EffectivePeriod" uri="urn:cs-base.informatica.mdm" required="false" directionKind="IN" name="effectivePeriod"/>

<input type="Organization" uri="urn:co-ors.informatica.mdm"/> <output type="Organization" uri="urn:co-ors.informatica.mdm"/> <execution>

<execute name="s1" target="WriteCO" type="SERVICE"/> </execution>

</service>

O seguinte código mostra a configuração do serviço de pesquisa de entidade comercial para o objeto raiz Organization:

<service name="SearchOrganization">

<parameter type="String" uri="commonj.sdo" required="true" directionKind="IN" name="query"/>

<parameter type="CoFilter" uri="urn:cs-base.informatica.mdm" required="false" directionKind="IN" name="coFilter"/>

<parameter type="Pager" uri="urn:cs-base.informatica.mdm" required="false" directionKind="IN" name="pager"/>

<output type="Organization.Pager" uri="urn:co-ors.informatica.mdm"/> <execution>

<execute name="s1" target="SearchCO" type="SERVICE"> <parameter name="coName"> <stringValue>Organization</stringValue> </parameter> </execute> </execution> </service>

Arquivo de Configuração de Serviço de Entidade Comercial REST

O MDM Hub gera a configuração de serviço de entidade comercial REST (Representational State Transfer) com base na configuração de entidade comercial gerada pelo Gerenciador de Configuração do Informatica Data Director. Se você adicionar entidades comerciais manualmente à configuração e quiser fazer chamadas REST, deverá configurar manualmente os respectivos serviços de entidade comercial REST.

A seguinte amostra de código exibe a configuração REST do serviço de leitura de entidade comercial para a entidade comercial Person:

<request name="ReadPerson"> <pattern> <httpMethod>GET</httpMethod> <path> <co identities="OPTIONAL">/Person/(.+)</co> <static>(\.json|\.xml)?</static> </path> </pattern> <invoke service="ReadPerson">

<parameter name="coFilter" parser="CoFilterFromUrl"/> <parameter name="effectiveDate" queryParam="effectiveDate"/> <parameter name="readSystemFields" queryParam="readSystemFields"/> </invoke>

<output>

<process processor="ExtractResponseObject"/>

(14)

<process processor="AddPagerLinks"/> <process processor="AddChildrenLinks"/> <process processor="AddParentLink"/> <process processor="AddSelfLink"/> <process processor="CompactResult"/> <write writer="SdoToBody"/> </output> </request>

A seguinte amostra de código exibe a configuração REST do serviço de gravação de entidade comercial para a entidade comercial Person:

<request name="WritePerson"> <pattern> <httpMethod>PUT</httpMethod> <httpMethod>POST</httpMethod> <httpMethod>DELETE</httpMethod> <path> <co identities="OPTIONAL">/Person(/.*)?</co> <static>(\.json|\.xml)?</static> </path> </pattern> <invoke service="WritePerson"> <input parser="CoSdoFromUrlAndBody"/>

<parameter name="systemName" queryParam="systemName"/> <parameter name="interactionId" queryParam="interactionId"/> <parameter name="effectivePeriod" parser="EffectivePeriodFromUrl"/> </invoke>

<output>

<process processor="ExtractResponseObject"/> <write writer="SdoToBody"/>

</output>

A seguinte amostra de código exibe a configuração REST do serviço de pesquisa de entidade comercial para a entidade comercial Person:

<request name="SearchPerson"> <pattern> <httpMethod>GET</httpMethod> <path> <co identities="PROHIBITED">/Person</co> <static>(\.json|\.xml)?</static> </path> </pattern> <invoke service="SearchPerson">

<parameter name="query" queryParam="q"/> <parameter name="pager" parser="PagerFromUrl"/> </invoke> <output> <process processor="ExtractResponseObject"/> <process processor="AddCoPagerLinks"/> <process processor="AddChildrenLinks"/> <process processor="AddParentLink"/> <process processor="AddSelfLink"/> <write writer="SdoToBody"/> </output> </request>

Arquivo de Configuração de Serviço de Gravação de Entidade

Comercial

O arquivo de configuração de serviço de gravação de entidade comercial contém configurações que determinam como o MDM Hub cria, atualiza e exclui registros de objetos base filho.

(15)

identifyingStrategy

Determina como o MDM Hub verifica a existência de um registro filho. Quando você adiciona um registro filho a uma entidade comercial, o MDM Hub determina se esse registro é novo ou já existe.

É possível configurar os seguintes atributos identifyingStrategy:

oneRow

Determina o comportamento quando um registro existe. O atributo oneRow pode ter os seguintes valores:

ACCEPT

O MDM Hub não cria um registro filho. O padrão é ACCEPT.

CREATE

O MDM Hub cria um registro filho.

ERROR

O MDM Hub não cria um registro filho. Ocorre um erro.

noRow

Determina o comportamento quando um registro não existe. O atributo noRow pode ter os seguintes valores:

CREATE

O MDM Hub cria um registro filho.

ERROR

O MDM Hub não cria um registro filho. Ocorre um erro. identifyingStrategy pode ter os seguintes elementos aninhados:

byRowId

Identifica os registros existentes pelo valor de ROWID_OBJECT. A estratégia byRowId é implícita e é sempre usada.

byPkSourceSystem

Identifica registros existente por chave primária e sistema de origem. A estratégia byPkSourceSystem é implícita e é sempre usada.

byUniqueColumn

Identifica registros existentes pelo valor na coluna exclusiva.

deleteStrategy

Determina o comportamento quando você exclui um registro filho. O atributo type de deleteStrategy pode ter os seguintes valores:

DISASSOCIATE

Os registros permanecem ativos, mas a chave externa é definida como nula. O padrão é DISASSOCIATE.

SOFT_DELETE

Exclui o registro temporariamente. O MDM Hub define HUB_STATE_IND como -1.

DELETE_PARENT

Exclui o registro da tabela de relacionamentos. O registro filho não é excluído.

(16)

Arquivo de Configuração do Serviço de Pesquisa de Entidade

Comercial

A configuração do serviço de pesquisa de entidade comercial indica quais campos de objeto base são pesquisáveis.

A configuração de serviços de pesquisa de entidade comercial é necessária para a Pesquisa Inteligente. Para obter informações sobre como configurar a pesquisa inteligente, consulte o Guia de Configuração do

Informatica MDM Multidomain Edition.

Pontos de Extremidade de Serviços de Entidade

Comercial

É possível acessar serviços de entidade comercial por meio de um ponto de extremidade EJB (Enterprise JavaBeans), REST (Representational State Transfer) ou SOAP (Simple Object Access Protocol).

Pontos de extremidade REST são criados com base em um ponto de vista EJB. A configuração do serviço de entidade comercial REST define como as URLs REST são mapeadas para as chamadas de serviço de entidade comercial EJB.

Ponto de Extremidade Enterprise JavaBeans para Serviços de

Entidade Comercial

O ponto de extremidade Enterprise JavaBeans (EJB) é o ponto de extremidade subjacente para todos os tipos de chamadas de serviços de entidade comercial. Todos os outros pontos de extremidade são mapeados para o ponto de extremidade EJB

Serviços de entidade comercial são expostos como um EJB sem monitoramento de estado. Um contêiner EJB sem monitoramento de estado pode definir pools de instâncias, alocar instâncias e aplicar estratégias de balanceamento de carga para distribuir a carga entre diferentes servidores no domínio.

Um ponto de extremidade EJB aceita um nome de usuário e uma senha para autenticação.

Ponto de Extremidade REST para Serviços de Entidade Comercial

Chamadas de ponto de extremidade REST (Representational State Transfer) disponibilizam serviços de entidade comercial como serviços da Web.

Arquivos WADL (Web Application Description Language) contêm descrições XML dos serviços da Web REST, todos os URLs REST e todos os parâmetros REST. O MDM Hub gera um arquivo WADL para cada Armazenamento de Referências Operacionais.

É possível baixar os arquivos WADL para cada Armazenamento de Referências Operacionais na seguinte localização:

(17)

Chamadas de Serviços de Entidade Comercial REST e EJB

Ao fazer uma chamada de serviço de entidade comercial, você pode especificar determinadas ramificações filho em vez de solicitar a entidade comercial inteira.

Por exemplo, você deseja realizar uma operação de leitura em uma entidade comercial que tem um nó raiz Pessoa e várias ramificações filho. O objeto base Pessoa tem os objetos base filho Endereço, Telefone, E-mail. Cada objeto base filho tem dois objetos base neto.

A seguinte imagem mostra a estrutura de uma entidade comercial com várias ramificações:

É possível ler a partir de várias ramificações filho em várias profundidades em uma única solicitação. Por exemplo, você pode ler Pessoa, Telefone, Detalhes do Telefone 1, Detalhes do Telefone 2, E-mail e Detalhes do E-mail 2 em uma única solicitação.

A seguinte amostra de URL indica como fazer uma solicitação de leitura REST para obter o registro de Pessoa com o ID de linha 1242, além dos registros filho de Detalhes do Endereço 1 e E-mail:

http://localhost:8080/cmx/cs/localhost-ORCL-DS_UI1/Person/1242?children=Address/ Address_Details_1,Email

Ponto de Extremidade SOAP para Serviços de Entidade

Comercial

Chamadas de ponto de extremidade SOAP (Simple Object Access Protocol) disponibilizam serviços de entidade comercial como serviços da Web.

Arquivos WSDL (Web Services Description Language) contêm as descrições XML dos serviços da Web, os formatos das solicitações e respostas SOAP e todos os parâmetros. O MDM Hub gera um arquivo WSDL para cada Armazenamento de Referências Operacionais.

(18)

C

A P Í T U L O

2

Chamadas de Serviços de

Entidade Comercial Enterprise

Java Bean

Este capítulo inclui os seguintes tópicos:

Visão Geral de Chamadas de Serviços de Entidade Comercial Enterprise Java Bean, 18

Exemplo de Código Java com Classes SDO padrão, 18

Exemplo de Código Java com Classes SDO Geradas, 22

Visão Geral de Chamadas de Serviços de Entidade

Comercial Enterprise Java Bean

É possível fazer chamadas de serviços de entidade comercial EJB (Enterprise Java Bean) para criar, atualizar, excluir e procurar registros de objeto base em uma entidade comercial. Você pode criar um código Java para executar chamadas de serviços de entidade comercial EJB.

Você pode criar um código Java com base em classes SDO (Service Data Objects) padrão ou pode criar um código Java com base em classes Java geradas pelo MDM Hub de acordo com a configuração de entidades comercias e de serviços de entidade comercial.

Exemplo de Código Java com Classes SDO padrão

O exemplo mostra o código Java para executar chamadas EJB (Enterprise Java Bean) com base em classes SDO (Service Data Objects) padrão.

O exemplo está no seguinte arquivo do kit de recursos: C:\<diretório de instalação infamdm>\hub \resourcekit\samples\COS\source\java\com\informatica\mdm\sample\cs\DynamicSDO.java

(19)

O seguinte código Java se baseia em classes SDO padrão e executa chamadas de serviços de entidade comercial EJB para criar um registro de objeto base Person, adicionar vários registros filho, excluir um registro filho e depois excluir o registro Person e todos os registros filho:

package com.informatica.mdm.sample.cs; import com.informatica.mdm.cs.CallContext; import com.informatica.mdm.cs.api.CompositeServiceException; import com.informatica.mdm.cs.client.CompositeServiceClient; import com.siperian.sif.client.EjbSiperianClient; import com.siperian.sif.client.SiperianClient; import commonj.sdo.DataObject; import commonj.sdo.Property; import commonj.sdo.Type; import commonj.sdo.helper.DataFactory; import commonj.sdo.helper.HelperContext; import java.io.PrintStream; import java.util.Arrays; import java.util.Properties; public class DynamicSDO {

public static void main(String[] args) throws CompositeServiceException { if(args.length != 3) {

System.err.println("USAGE: DynamicSDO <ors> <user> <pass>"); return;

}

new DynamicSDO(args[0], args[1], args[2]).execute(); }

private String orsId; private String user; private String pass;

private HelperContext helperContext; private PrintStream out = System.out;

public DynamicSDO(String orsId, String user, String pass) { this.orsId = orsId;

this.user = user; this.pass = pass; }

public void execute() throws CompositeServiceException { String systemName = "Admin";

Properties config = new Properties();

config.put(SiperianClient.SIPERIANCLIENT_PROTOCOL, EjbSiperianClient.PROTOCOL_NAME);

CompositeServiceClient client =

CompositeServiceClient.newCompositeServiceClient(config);

CallContext callContext = new CallContext(orsId, user, pass); helperContext = client.getHelperContext(callContext);

DataFactory dataFactory = helperContext.getDataFactory(); // types for Read requests

Type coFilterType = helperContext.getTypeHelper().getType("urn:cs-base.informatica.mdm", "CoFilter");

Type coFilterNodeType = helperContext.getTypeHelper().getType("urn:cs-base.informatica.mdm", "CoFilterNode");

Type keyType = helperContext.getTypeHelper().getType("urn:cs-base.informatica.mdm", "Key");

// ReadCO & WriteCO request types

(20)

Type readPersonType = helperContext.getTypeHelper().getType("urn:cs-ors.informatica.mdm", "ReadPerson");

Type writePersonType = helperContext.getTypeHelper().getType("urn:cs-ors.informatica.mdm", "WritePerson");

// 1. Create new person

DataObject createPerson = dataFactory.create(writePersonType);

DataObject createPersonParameters = createPerson.createDataObject("parameters"); createPersonParameters.setString("systemName", systemName);

DataObject person = createPerson.createDataObject("object"); person.getChangeSummary().beginLogging();

DataObject personRoot = person.createDataObject("Person"); personRoot.setString("firstName", "John");

personRoot.setString("lastName", "Smith"); person.getChangeSummary().endLogging();

dump("*** CREATE NEW PERSON ...", createPerson);

DataObject createPersonResponse = client.process(callContext, createPerson); dump("*** PERSON CREATED:", createPersonResponse);

String personRowId = createPersonResponse.getString("object/Person/ rowidObject");

DataObject readPerson = dataFactory.create(readPersonType);

DataObject readPersonParameters = readPerson.createDataObject("parameters"); DataObject coFilter = readPersonParameters.createDataObject("coFilter"); DataObject coFilterNode = coFilter.createDataObject("object");

coFilterNode.set("name", "Person");

DataObject key = coFilterNode.createDataObject("key"); key.set("rowid", personRowId);

dump("*** READ CREATED PERSON...", readPerson);

DataObject readPersonResponse = client.process(callContext, readPerson); dump("*** READ RESULT:", readPersonResponse);

person = readPersonResponse.getDataObject("object"); person.detach();

person.getChangeSummary().beginLogging(); personRoot = person.getDataObject("Person"); // add new 'one' child

DataObject genderCd = personRoot.createDataObject("genderCd"); genderCd.setString("genderCode", "M");

// add two 'many' children

DataObject phonePager = personRoot.createDataObject("TelephoneNumbers"); Property item = phonePager.getInstanceProperty("item");

Type phoneType = item.getType();

DataObject phone1 = dataFactory.create(phoneType); phone1.setString("phoneNumber", "111-11-11"); DataObject phone2 = dataFactory.create(phoneType); phone2.setString("phoneNumber", "222-22-22");

phonePager.setList(item, Arrays.asList(phone1, phone2)); person.getChangeSummary().endLogging();

DataObject updatePerson = dataFactory.create(writePersonType); updatePerson.setDataObject("object", person);

DataObject updatePersonParameters = updatePerson.createDataObject("parameters"); updatePersonParameters.setString("systemName", systemName);

(21)

dump("*** UPDATE PERSON...", updatePerson);

DataObject updatePersonResponse = client.process(callContext, updatePerson); dump("*** PERSON UPDATED:", updatePersonResponse);

coFilterNode.set("depth", 3);

readPersonParameters.setBoolean("readSystemFields", true); dump("*** READ UPDATED PERSON WITH CHILDREN...", readPerson); readPersonResponse = client.process(callContext, readPerson); dump("*** READ RESULT:", readPersonResponse);

person = readPersonResponse.getDataObject("object"); person.detach();

person.getChangeSummary().beginLogging();

genderCd = person.getDataObject("Person").createDataObject("genderCd"); genderCd.setString("genderCode", "F");

// delete one phone

DataObject phoneItem = person.getDataObject("Person/TelephoneNumbers/item[1]"); phoneItem.delete();

person.getChangeSummary().endLogging();

DataObject deletePhone = dataFactory.create(writePersonType); deletePhone.setDataObject("object", person);

DataObject deletePhoneParameters = deletePhone.createDataObject("parameters"); deletePhoneParameters.setString("systemName", systemName);

dump("*** DELETE CHILD...", deletePhone);

DataObject deletePhoneResponse = client.process(callContext, deletePhone); dump("*** CHILD DELETED:", deletePhoneResponse);

readPersonParameters.setBoolean("readSystemFields", false); dump("*** READ PERSON AFTER CHILD WAS DELETEED...", readPerson); readPersonResponse = client.process(callContext, readPerson); dump("*** READ RESULT:", readPersonResponse);

person = readPersonResponse.getDataObject("object"); person.detach();

person.getChangeSummary().beginLogging(); person.getDataObject("Person").detach(); person.getChangeSummary().endLogging();

DataObject deletePerson = dataFactory.create(writePersonType); deletePerson.setDataObject("object", person);

DataObject deletePersonParameters = deletePerson.createDataObject("parameters"); deletePersonParameters.setString("systemName", systemName);

dump("*** DELETE PERSON...", deletePerson);

DataObject deletePersonResponse = client.process(callContext, deletePerson); dump("*** PERSON DELETED:", deletePersonResponse);

dump("*** TRY TO READ PERSON AFTER DELETE", readPerson);

(22)

try {

readPersonResponse = client.process(callContext, readPerson); dump("*** READ RESULT:", readPersonResponse);

} catch (CompositeServiceException e) {

out.println("*** READ RESULT: " + e.getLocalizedMessage()); }

}

private void dump(String title, DataObject dataObject) { String xml = helperContext.getXMLHelper().save( dataObject, dataObject.getType().getURI(), dataObject.getType().getName()); out.println(title); out.println(xml); out.println(); } }

Exemplo de Código Java com Classes SDO Geradas

O exemplo mostra o código Java para executar chamadas EJB (Enterprise Java Bean) com base em classes Java geradas pelo MDM Hub de acordo com a configuração de entidades comercias e de serviços de entidade comercial.

O exemplo está no seguinte arquivo do kit de recursos: C:\<diretório de instalação infamdm>\hub \resourcekit\samples\COS\source\java\com\informatica\mdm\sample\cs\GeneratedSDO.java O seguinte código Java se baseia em classes geradas e executa chamadas de serviços de entidade comercial EJB para criar um registro de objeto base Person, adicionar vários registros filho, excluir um registro filho e depois excluir o registro Person e todos os registros filho:

package com.informatica.mdm.sample.cs; import com.informatica.mdm.cs.CallContext; import com.informatica.mdm.cs.api.CompositeServiceException; import com.informatica.mdm.cs.client.CompositeServiceClient; import com.informatica.mdm.sdo.cs.base.CoFilter; import com.informatica.mdm.sdo.cs.base.CoFilterNode; import com.informatica.mdm.sdo.cs.base.Key; import com.siperian.sif.client.EjbSiperianClient; import com.siperian.sif.client.SiperianClient; import commonj.sdo.DataObject; import commonj.sdo.helper.DataFactory; import commonj.sdo.helper.HelperContext; import mdm.informatica.co_ors.*; import mdm.informatica.cs_ors.*; import java.io.PrintStream; import java.util.Arrays; import java.util.Properties; public class GeneratedSDO {

public static void main(String[] args) throws CompositeServiceException { if(args.length != 3) {

System.err.println("USAGE: GeneratedSDO <ors> <user> <pass>"); return;

(23)

}

new GeneratedSDO(args[0], args[1], args[2]).execute(); }

private String orsId; private String user; private String pass;

private HelperContext helperContext; private PrintStream out = System.out;

public GeneratedSDO(String orsId, String user, String pass) { this.orsId = orsId;

this.user = user; this.pass = pass; }

public void execute() throws CompositeServiceException { String systemName = "Admin";

Properties config = new Properties();

config.put(SiperianClient.SIPERIANCLIENT_PROTOCOL, EjbSiperianClient.PROTOCOL_NAME);

CompositeServiceClient client =

CompositeServiceClient.newCompositeServiceClient(config);

CallContext callContext = new CallContext(orsId, user, pass); helperContext = client.getHelperContext(callContext);

DataFactory dataFactory = helperContext.getDataFactory(); // 1. Create new person

WritePerson createPerson = (WritePerson)dataFactory.create(WritePerson.class); WritePersonParameters createPersonParameters =

(WritePersonParameters)dataFactory.create(WritePersonParameters.class); createPersonParameters.setSystemName(systemName);

createPerson.setParameters(createPersonParameters); Person person = (Person)dataFactory.create(Person.class); createPerson.setObject(person);

person.getChangeSummary().beginLogging();

PersonRoot personRoot = (PersonRoot)dataFactory.create(PersonRoot.class); personRoot.setFirstName("John");

personRoot.setLastName("Smith"); person.setPerson(personRoot);

person.getChangeSummary().endLogging();

dump("*** CREATE NEW PERSON ...", createPerson); WritePersonReturn createPersonResponse =

(WritePersonReturn)client.process(callContext, (DataObject)createPerson); dump("*** PERSON CREATED:", createPersonResponse);

String personRowId =

createPersonResponse.getObject().getPerson().getRowidObject(); Key key = (Key)dataFactory.create(Key.class);

key.setRowid(personRowId); CoFilterNode coFilterNode =

(CoFilterNode)dataFactory.create(CoFilterNode.class); coFilterNode.setName(Person.class.getSimpleName()); coFilterNode.setKey(key);

CoFilter coFilter = (CoFilter)dataFactory.create(CoFilter.class); coFilter.setObject(coFilterNode);

(24)

ReadPersonParameters readPersonParameters =

(ReadPersonParameters)dataFactory.create(ReadPersonParameters.class); readPersonParameters.setCoFilter(coFilter);

ReadPerson readPerson = (ReadPerson)dataFactory.create(ReadPerson.class); readPerson.setParameters(readPersonParameters);

dump("*** READ CREATED PERSON...", readPerson); ReadPersonReturn readPersonResponse =

(ReadPersonReturn)client.process(callContext, (DataObject)readPerson); dump("*** READ RESULT:", readPersonResponse);

person = readPersonResponse.getObject(); ((DataObject)person).detach();

person.getChangeSummary().beginLogging(); personRoot = person.getPerson();

// add new 'one' child LUGenderLookup genderCd =

(LUGenderLookup)dataFactory.create(LUGenderLookup.class); genderCd.setGenderCode("M");

personRoot.setGenderCd(genderCd); // add two 'many' children

PersonTelephoneNumbersPager phonePager = (PersonTelephoneNumbersPager)dataFactory.create(PersonTelephoneNumbersPager.class); PersonTelephoneNumbers phone1 = (PersonTelephoneNumbers)dataFactory.create(PersonTelephoneNumbers.class); phone1.setPhoneNumber("111-11-11"); PersonTelephoneNumbers phone2 = (PersonTelephoneNumbers)dataFactory.create(PersonTelephoneNumbers.class); phone2.setPhoneNumber("222-22-22"); phonePager.setItem(Arrays.asList(phone1, phone2)); personRoot.setTelephoneNumbers(phonePager); person.getChangeSummary().endLogging();

WritePerson updatePerson = (WritePerson)dataFactory.create(WritePerson.class); updatePerson.setObject(person); WritePersonParameters updatePersonParameters = (WritePersonParameters)dataFactory.create(WritePersonParameters.class); updatePersonParameters.setSystemName(systemName); updatePersonParameters.setInteractionId(""); updatePerson.setParameters(updatePersonParameters); dump("*** UPDATE PERSON...", updatePerson);

WritePersonReturn updatePersonResponse =

(WritePersonReturn)client.process(callContext, (DataObject)updatePerson); dump("*** PERSON UPDATED:", updatePersonResponse);

coFilterNode.setDepth(3);

readPersonParameters.setReadSystemFields(true);

dump("*** READ UPDATED PERSON WITH CHILDREN (with system fields)...", readPerson);

readPersonResponse = (ReadPersonReturn)client.process(callContext, (DataObject)readPerson);

dump("*** READ RESULT:", readPersonResponse); person = readPersonResponse.getObject(); ((DataObject)person).detach();

(25)

person.getChangeSummary().beginLogging(); // delete one phone

person.getPerson().getTelephoneNumbers().getItem().remove(0); // change gender genderCd = (LUGenderLookup)dataFactory.create(LUGenderLookup.class); genderCd.setGenderCode("F"); personRoot.setGenderCd(genderCd); person.getChangeSummary().endLogging();

WritePerson deletePhone = (WritePerson)dataFactory.create(WritePerson.class); deletePhone.setObject(person);

WritePersonParameters deletePhoneParameters =

(WritePersonParameters)dataFactory.create(WritePersonParameters.class); deletePhoneParameters.setSystemName(systemName);

deletePhone.setParameters(deletePhoneParameters); dump("*** DELETE CHILD...", deletePhone);

WritePersonReturn deletePhoneResponse =

(WritePersonReturn)client.process(callContext, (DataObject)deletePhone); dump("*** CHILD DELETED:", deletePhoneResponse);

readPersonParameters.setReadSystemFields(false);

dump("*** READ PERSON AFTER CHILD WAS DELETEED...", readPerson); readPersonResponse = (ReadPersonReturn)client.process(callContext, (DataObject)readPerson);

dump("*** READ RESULT:", readPersonResponse); person = readPersonResponse.getObject(); ((DataObject)person).detach();

person.getChangeSummary().beginLogging(); ((DataObject)person.getPerson()).delete(); person.getChangeSummary().endLogging();

WritePerson deletePerson = (WritePerson)dataFactory.create(WritePerson.class); deletePerson.setObject(person);

WritePersonParameters deletePersonParameters =

(WritePersonParameters)dataFactory.create(WritePersonParameters.class); deletePersonParameters.setSystemName(systemName);

deletePerson.setParameters(deletePersonParameters); dump("*** DELETE PERSON...", deletePerson);

WritePersonReturn deletePersonResponse =

(WritePersonReturn)client.process(callContext, (DataObject)deletePerson); dump("*** PERSON DELETED:", deletePersonResponse);

dump("*** TRY TO READ PERSON AFTER DELETE", readPerson); try {

readPersonResponse = (ReadPersonReturn)client.process(callContext, (DataObject)readPerson);

dump("*** READ RESULT:", readPersonResponse); } catch (CompositeServiceException e) {

out.println("*** READ RESULT: " + e.getLocalizedMessage()); }

}

(26)

private void dump(String title, Object object) { DataObject dataObject = (DataObject)object; String xml = helperContext.getXMLHelper().save( dataObject, dataObject.getType().getURI(), dataObject.getType().getName()); out.println(title); out.println(xml); out.println(); } }

(27)

C

A P Í T U L O

3

Chamadas de Serviços de

Entidade Comercial

Representational State Transfer

Este capítulo inclui os seguintes tópicos:

Visão Geral de APIs REST para Serviços de Entidade Comercial, 27

Métodos REST com Suporte, 28

Método de Autenticação, 28

Cookies de Autenticação para Logon de Aplicativos de Terceiros, 28

Arquivo WADL (Web Application Description), 29

Localizador de Recursos Uniforme REST, 30

Configuração do Cabeçalho e do Corpo, 31

Parâmetros de Consulta Padrão, 33

Configurando o WebLogic para Executar Chamadas REST de Serviço de Entidade Comercial, 34

Visualizando Parâmetros de Entrada e Saída, 35

Modelo JavaScript, 35

Exemplo de JavaScript, 36

Referência de API REST para Serviços de Entidade Comercial , 38

Visão Geral de APIs REST para Serviços de

Entidade Comercial

Chamadas de ponto de extremidade REST disponibilizam todos os serviços de entidade comercial como serviços da Web. É possível fazer chamadas REST para criar, atualizar, excluir e procurar registros de objeto base e registros filho relacionados em uma entidade comercial. Você pode realizar operações, como mesclar, cancelar mesclagens e corresponder registros. Também pode fazer chamadas REST para criar, atualizar, procurar e realizar tarefas.

Uma chamada de serviço de entidade comercial REST é uma solicitação de serviço da Web no formato de URL (Localizador de Recursos Uniforme). O MDM Hub atribui uma URL exclusiva para cada objeto base em

Referências

Documentos relacionados

Destarte, caso os tribunais interessados tenham feito a opção pela manutenção das listas em separado, em sintonia com o parecer do FONAPREC, entende-se que “cabe ao

mostrar o que os autistas têm a ensinar e de como o meio pode ser muito mais acessível para eles e para todos... Autismo ou Transtorno do Espectro Autista nada mais é do que

O canabidiol é um composto presente na planta Cannabis sativa, que promove diversos benefícios à saúde humana, como por exemplo sobre as doenças neurológicas como epilepsia,

Em amostras de sementes coletadas na mesma área, das 12 linhagens estudadas, apenas na linhagem RJ 04-26 foi observada uma incidência fúngica de 2%, podendo indicar possíveis fontes

Os elementos de liga, além de proporcionar uma dureza mais uniforme pela secção de uma peça, possibilita o aumento da temperabilidade do aço, deslocando o início das

firmada entre o Sinduscon-AL e Sindticmal e que não tiver nenhuma ausência em cada período de aferição, bem como contar com 3 (três) meses ou mais de vigência de contrato de

No primeiro, destacam-se as percepções que as cuidadoras possuem sobre o hospital psiquiátrico e os cuidados com seus familiares durante o internamento; no segundo, evidencia-se

Mestrado em Administração e Gestão Pública, começo por fazer uma breve apresentação histórica do surgimento de estruturas da Administração Central com competências em matéria