SAP CRM Programming

download SAP CRM Programming

of 59

Transcript of SAP CRM Programming

Status Report Whirlpool CRM ( as of February 4th)

SAP CRM Programming (BOL)Copyright 2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.Copyright 2011 Accenture All Rights Reserved. n1DIA 1Introduo CRM e Conceitos Bsicos de ABAP OOConceito CRMMVC Modelo Viso ControladorClassesInterfacesHeranaPolimorfismoEncapsulamentoAtributosMtodosRedefiniesDIA 2BOL/Genil CamadasGenilEstrutura de objetos BOLUtilizao de QuerysDIA 3Business Server PagesComponentesVisesNs de ContextoControladores

Copyright 2011 Accenture All Rights Reserved. n

DIA 1

Conceito CRM

Copyright 2011 Accenture All Rights Reserved. nO conceito CRMCRM: Customer Relationship Management:Gesto de Relacionamento com o cliente

Objetivos:Gesto de marketingGesto comercialGesto dos servios ao clienteCopyright 2011 Accenture All Rights Reserved. nEssa modelagem leva em considerao alguns conceitos, dentre os principais, pode-se citar:4Mdulos SAP CRMMarketinggesto de dados sobre o consumidorgesto de recursos de marketing

Salese-commerce

ServiceAtendimento e Servio ao consumidor

Copyright 2011 Accenture All Rights Reserved. nEssa modelagem leva em considerao alguns conceitos, dentre os principais, pode-se citar:5

Estrutura CRM

Copyright 2011 Accenture All Rights Reserved. nCRM User InterfaceTotalmente WebMaior flexibilidade/compatibilidadeInterface IntuitivaVerso Atual: 7.0Utiliza arquitetura MVC

Copyright 2011 Accenture All Rights Reserved. nExibir fotos da UI7Modelo-Viso-Controle (MVC)O SAP CRM implementa o padro de desenvolvimento modelo-viso-controle (MVC) que amplamente adotado na programao Web. O MVC visa separar a lgica de negcio da interface com o usurio, assim os programadores podem mudar facilmente cada parte, sem afetar as outras. No padro MVC, o modelo representa as informaes (os dados) e as regras de negcio, a viso contm elemento de interface com o usurio, como textos, formulrios, e o controle gerencia a comunicao entre o modelo e a viso.Copyright 2011 Accenture All Rights Reserved. nModelo-Viso-Controle (MVC)

Copyright 2011 Accenture All Rights Reserved. nModelo: Representa os dados e as regras de manipulao desses dados;Viso: a representao grfica domodelo, dependendo das alteraes ocorridas no modelo as mesmas devem ser replicadas para a viso;Controlador: Responsvel pela interpretao das interaes efetuadas pelo usurio navisode modo a torna-las aes a serem executadas pelomodelo;

9Arquitetura SAP CRM

Copyright 2011 Accenture All Rights Reserved. nArquitetura SAP CRM Presentation Layer

A camada de apresentao do CRM WebClient UI baseada no CRM User Interface Framework (CRM UIF), que a base para as pginas HTML em execuo no browser.

Esta camada a interface entre o sistema da SAP e seus usurios.

A camada de apresentao envia a entrada do usurio para o servidor de aplicao, e recebe os dados para a exibio da mesma.Copyright 2011 Accenture All Rights Reserved. nArquitetura SAP CRM Business Layer

A camada de negcios da IU WebClient CRM subdividida em:

Business Object Layer (BOL): Esta camada responsvel por salvar os dados do objetos de negcios em tempo de execuo da sesso SAP CRM.Esta camada garante a separao da interface do usurio WebClient CRM e da lgica empresarial.Copyright 2011 Accenture All Rights Reserved. nArquitetura SAP CRM Business Layer

Generic Interaction Layer (genIL): A camada de interao genrica controla a transferncia de dados da camada de objeto de negcios (BOL) para as interfaces de programao de aplicativos (APIs). a conexo entre a camada de objeto de negcios e acamada de aplicao.Copyright 2011 Accenture All Rights Reserved. nArquitetura SAP CRM Business Application

A camada de aplicao contm a lgica do negcio e as tabelas de banco de dados.Copyright 2011 Accenture All Rights Reserved. n

Orientao a Objetos

Copyright 2011 Accenture All Rights Reserved. nO que significa Orientao a Objetos?O termoorientaoaobjetossignifica organizar o mundo real como uma coleo deobjetos queincorporam estrutura de dadoseum conjunto de operaesquemanipulam estes dados.

Objetivo: tentar simular o mundo real dentro do computador e para isso utiliza objetos. Desta forma, fica a cargo do programador modelar objetos e a interao entre eles. Copyright 2011 Accenture All Rights Reserved. nEssa modelagem leva em considerao alguns conceitos, dentre os principais, pode-se citar:16Como feita a modelagem ?A modelagem feita a partir da abstrao de objetos do mundo real.

Abstrao: a habilidade de se concentrar nos principais aspectos de um grupo de objetos, em vez de se preocupar com as suas especificaes. Ex.: Para a classePessoaso definidas as principais caractersticas comuns maioria das pessoas, sem que haja preocupao especial com objetos muito especficos.Copyright 2011 Accenture All Rights Reserved. nDe que forma representada esta Abstrao ?A partir da Abstrao, os objetos so representados em forma de classes.

Classe: o molde para criar objetos. Possui todas as especificaes de um objeto do mundo real.

Atravs da definio de uma classe, descreve-se que propriedades ouatributos que o objeto ter.Copyright 2011 Accenture All Rights Reserved. nDo que composta uma classe ?Os dois principais elementos de uma classe so:Atributos e Mtodos.

Atributos:Definem caractersticas de objetos. Ex., A classePessoatem os Atributos: Nome, Endereo,TelefoneeSexo.

Mtodos:Definem o comportamento dos objetos.Copyright 2011 Accenture All Rights Reserved. nExemplo de Classe

Copyright 2011 Accenture All Rights Reserved. nPrincipais conceitos da programao Orientada a ObjetoHerana: a capacidade de criar subclasses a partir de uma superclasse. Essas subclasses herdam, ento, todas as caractersticas da superclasse.

Polimorfismo: o princpio pelo qual uma subclasse sobrescreve um comportamento (mtodo) herdado de sua superclasse. Copyright 2011 Accenture All Rights Reserved. nHerana um mecanismo que permite que caractersticas comuns a diversas classes sejam agrupadas em umaclasse base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Cadaclasse derivadaou subclasse apresenta as caractersticas (estrutura e mtodos) da classe base e acrescenta a elas o que for definido de particularidade para elaPolimorfismosignifica muitas formas , na orientao a objetos voc pode enviar uma mesma mensagem para diferentes objetos e faz-los responder da maneira correta. Voc pode enviar a mensagem de dar marcha-r para cada objeto semelhante a um carro e cada um vai se comportar de maneira diferente para atender a sua solicitao.Uma definio mais formal diria:"Polimorfismo o princpio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar mtodos que tm a mesma identificao (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referncia a um objeto do tipo da superclasse"21Encapsulamento: a habilidade de esconder de outros objetos, as caractersticas intrnsecas de um dado objeto. Toda a comunicao entre objetos deve ser realizada via mtodos. Um objeto no deve ser capaz de acessar, e tampouco alterar, atributos de outro objeto diretamente.Principais conceitos da programao Orientada a ObjetoCopyright 2011 Accenture All Rights Reserved. nEncapsularsignifica"ocultar informaes"ele define que cada objeto contm todos os detalhes de implementao necessrios sobre como ele funciona e oculta os detalhes internos sobre como ele executa os servios.Quando voc acelera um carro voc esta enviando uma mensagem ao motor do carro usando o acelerador e o carro sabe que tem que acelerar.Voc no precisa saber como feita a acelerao no motor voc apenas pisa fundo no acelerador , a implementao de como feita a acelerao esta encapsulada do cliente.

22De que forma feito o encapsulamento?Atravs da definio da visibilidade dos Atributos e Mtodos.

Os Atributos e Mtodos podem ser:

PblicosProtegidosPrivadosEstticosCopyright 2011 Accenture All Rights Reserved. nConclusoBaseado nos conceitos citados anteriormente, possvel identificar que:

Objetos so gerados a partir de um modelo denominado Classe;

Classe possui definio de Atributos e Mtodos;

Atributos definem valores/caracterstica para o objeto;

Mtodos so rotinas de execuo para o objeto.

Copyright 2011 Accenture All Rights Reserved. nExerccio PrticoCrie a classe Funcionrio com as seguintes caractersticas: RINome Funo SalrioCrie mtodos Get/Set para manipulao dos atributos da classe.Em um novo programa, instancie trs objetos do tipo funcionrio.

Utilizando os mtodos Set, preencha os atributos e utilizando os mtodos Get, recupere os valores e imprima em um relatrio.

Copyright 2011 Accenture All Rights Reserved. nInterfacesUma interface nada mais do que a definio de um tipo, contendo os mtodos e propriedades que esse tipo deve possuir. Na prtica o que acontece que qualquer classe que quiser ser do tipo definido pela interface deve implementar os mtodos dessa interface.

A interface no contm nenhum cdigo de implementao, apenas assinaturas de mtodos e/ou propriedades que devem ter seu cdigo implementado nas classes que implementarem essa interface.

Copyright 2011 Accenture All Rights Reserved. nExemplo de Interface

Copyright 2011 Accenture All Rights Reserved. nExerccio PrticoCriar 3 nveis de interface como a estrutura abaixo:

Criar duas classe utilizando cada um dos nveis mais inferiores das interfaces acima

Copyright 2011 Accenture All Rights Reserved. n

DIA 2

GENIL /BOLCopyright 2011 Accenture All Rights Reserved. nEntidades & ColeesEntidade: Uma entidade BOL a representao estruturada de dados relacionados.

Ex: A entidade BTAdminH, corresponde aos dados de cabealho para qualquer transao, enquanto BTAdminI corresponde aos itens de uma transao e est ligado ao BTAdminH atravs de um relacionamento 1...N.

Entidades so representadas e manipuladas atravs da classe CL_CRM_BOL_ENTITY.

Colees: Uma coleo formada por vrias entidades do mesmo objeto.

Ex: Vrios itens em uma mesma operao.Copyright 2011 Accenture All Rights Reserved. nEntidades & Colees Entidade Coleo

Copyright 2011 Accenture All Rights Reserved. nTodas as entidades so gerenciadas pelo Entity Manager. Isso garante que cada entidade seja nica.

31Modelo de Relacionamento de entidadesO modelo de relacionamento entre as entidades pode ser observado atravs da transao GENIL_MODEL_BROWSER.

Acesse a transao GENIL_MODEL_BROWSER.

Em Set de Componentes insira o valor ALL e execute.

Copyright 2011 Accenture All Rights Reserved. nModelo de Relacionamento de entidadesSer exibida a rvore de Modelo conforme exemplo abaixo:

Copyright 2011 Accenture All Rights Reserved. nModelo de Relacionamento de entidadesObjeto raiz: Um objeto raiz um elemento especial dentro de um grupo de objetos que esto ligados um ao outro em uma estrutura de hierarquia atravs de agregaes. O objeto raiz o nico objeto dentro desta estrutura que atribudo como um objeto superior a todos os outros objetos. Cada objeto raiz tambm um objeto de acesso.

Objeto de acesso: Um objeto de acesso um tipo de BO, cuja identificao pode ser usado para determinar os atributos do objeto acesso em si e de seus objetos dependentes.Copyright 2011 Accenture All Rights Reserved. nModelo de Relacionamento de entidadesObjeto Dependente: Um objeto dependente um tipo de BO, cujos atributos no pode ser determinados unicamente do ID deste BO, mas em vez disso, s ou em conjunto com o ID do objeto de acesso superior.

Objeto Query: um objeto de consulta um tipo especial de BO cujos atributos so os parmetros de uma Query.

Objetos de Query Dinmica: Um objeto de consulta dinmico um tipo de BO cujos atributos so os parmetros de um query e permitem criar opes de escolha para esses parmetros. Objetos de pesquisa dinmicos esto disponveis a partir do CRM2006.Copyright 2011 Accenture All Rights Reserved. nModelo de Relacionamento de entidadesObjeto Resultado Query: Este BO representa o retorno dos Objetos Query e Query Dinmica. Geralmente corresponde a um resumo de informaes com relacionamento para os demais objetos do modelo, dessa forma possvel a partir de um resultado genrico obter todas as informaes referentes a transao comercial.Copyright 2011 Accenture All Rights Reserved. nDiviso do Objeto BOLOs objetos so divididos em Quatro partes:

Copyright 2011 Accenture All Rights Reserved. nDiviso do Objeto BOLEstrutura do atributo: Armazena a estrutura do objeto BOL, os dados ficam armazenados nesta estrutura. Cada objeto possui uma estrutura prpria, porm existem objetos que podem utilizar estruturas similares.Mtodos: Mtodos especficos para tratamento dos dados no objeto BOL, cada objeto pode apresentar mtodos especficos, referentes sua estrutura.

Copyright 2011 Accenture All Rights Reserved. nDiviso do Objeto BOLRelaes: Mostra com quais outros objetos BOL, este objeto que selecionamos pode se relacionar. No exemplo abaixo demonstramos o relacionamento entre o objeto BTORDER e o objeto BTADMINH.Utilizao: Mostra onde este objeto utilizado (quais objetos BOL se relacionam com ele), exibe relacionamento de Agregao (uma das classes enxerga a outra, pois existe um atributo indicando a outra classe) e Associao (as duas classes se enxergam, pois existem atributos que referenciam as duas em cada uma das classes).

Copyright 2011 Accenture All Rights Reserved. nAcesso a objetos BOLNa camada BOL existe toda uma estrutura de classes e objetos relacionais para que no seja necessrio efetuar consultas diretas ao banco de dados, tanto para pesquisa como para alterao, existem classes para acesso via relacionamento de objetos.

Copyright 2011 Accenture All Rights Reserved. n40Acesso a objetos BOLCL_CRM_BOL_ENTITY: Objeto BOL.CL_CRM_BOL_QUERY_SERVICE: Objeto BOL de pesquisa.CL_CRM_BOL_DQUERY_SERVICE: Objeto BOL de pesquisa dinmica.CL_BSP_WD_VALUE_NODE: N de valor (custom).Todas estas classe implementam a interface IF_BOL_BO_PROPERTY_ACCESS.Com uma entidade BOL podemos buscar outras entidades a partir do mtodo GET_RELATED_ENTITY. Ou criar novas entidades atravs do mtodo CREATE_RELATED_ENTITY, este ltimo pode servir, por exemplo, para adicionar um produto em uma Ordem de Servio.

Copyright 2011 Accenture All Rights Reserved. n41Modelo de acesso

Copyright 2011 Accenture All Rights Reserved. n42QuerysNa transao GENIL_BOL_BROWSER, podemos efetuar testes de objetos de pesquisa.

Escolha o objeto de pesquisa;Insira os dados de pesquisa;Exibio das entidades de resultados;

Aps obter o resultado, tambm possvel efetuar a navegao entre os objetos relacionais.

Copyright 2011 Accenture All Rights Reserved. n43Query SimplesPara executar uma Query Simples efetue os seguintes passos:Instanciar a camada BOL.

DATA: lv_bol_core TYPE REF TO cl_crm_bol_core.

lv_bol_core = cl_crm_bol_core=>get_instance( ).lv_bol_core->start_up( MY_COMPONENT_SET ).

Copyright 2011 Accenture All Rights Reserved. n44Query SimplesIniciar o servio da Query.

DATA: lv_query TYPE REF TO cl_crm_bol_query_service.

lv_query = cl_crm_bol_query_service=>get_instance( Query ).

Preencher os critrios de seleo:

lv_query->set_property( iv_attr_name = Parmetro iv_value = Valor ).

Executar a Query e obter o resultado.

DATA: lv_result TYPE REF TO if_bol_entity_col. lv_result = lv_query->get_query_result( ).

Copyright 2011 Accenture All Rights Reserved. n45Acessando Entidades RelacionadasRelacionamento 1:1.

DATA: lv_result TYPE REF TO cl_crm_bol_entity. lv_result = lv_entity->get_related_entity( Nome rel ).

Subir Nveis da hierarquia.

lv_entity = lv_result->get_parent( ).Copyright 2011 Accenture All Rights Reserved. n46Acessando Entidades RelacionadasRelacionamento 1: N.

DATA: lv_coll TYPE REF TO if_bol_entity_col.

lv_coll = lv_entity->get_related_entities( iv_relation_name = Nome Rel ).

DATA: lv_entity TYPE REF TO cl_crm_bol_entity. lv_entity = lv_coll->get_first( ). lv_entity = lv_coll->get_NEXT( ).

Copyright 2011 Accenture All Rights Reserved. n47Acessando AtributosExistem trs formas para acessar os atributos de uma entidade so elas:

Mtodo GET_PROPERTIES.lv_entity->get_properties(IMPORTING es_attributes= wa_attributes).

Mtodo GET_PROPERTY_AS_VALUE.lv_entity->get_property_as_value( EXPORTING iv_attr_name = ATTR IMPORTING ev_result = LV_R ).

Mtodo GET_PROPERTY_AS_STRING.lv_string = lv_entity->get_property_as_string( ATTR ).Copyright 2011 Accenture All Rights Reserved. n48Exerccio PrticoCopyright 2011 Accenture All Rights Reserved. n49Query DinmicaPrincipais diferenas

Alm do operador igual, voc pode usar os demais operadores como Maior que, Menor que, Contm, No contm, etc, para especificar os critrios de pesquisa.

Voc pode procurar por vrios valores para um mesmo critrio de pesquisa, ao mesmo tempo.

Voc pode salvar pesquisas com os critrios de pesquisa predefinidos para utilizao futura.

Copyright 2011 Accenture All Rights Reserved. n50Query DinmicaPara executar uma Query Dinmica efetue os seguintes passos:Instanciar a camada BOL.

DATA: lv_bol_core TYPE REF TO cl_crm_bol_core.

lv_bol_core = cl_crm_bol_core=>get_instance( ).lv_bol_core->start_up( MY_COMPONENT_SET ).

Copyright 2011 Accenture All Rights Reserved. n51Query DinmicaIniciar o servio da Query.

DATA: lv_dyn_query TYPE REF TO cl_crm_bol_dquery_service.

lv_dyn_query = cl_crm_bol_dquery_service=>get_instance(Nome).

Setar a quantidade mxima de resultados:

lv_dyn_query->set_property( iv_attr_name = 'MAX_HITS' iv_value = 200' ).

Copyright 2011 Accenture All Rights Reserved. n52Query DinmicaPreencher os critrios de seleo: lv_dyn_query->add_selection_param( iv_attr_name = 'SEATSMAX' iv_sign = 'I' iv_option = 'GT' iv_low = '100' iv_high = '' ).

Executar a Query e obter o resultado.

DATA: lv_result type ref to if_bol_entity_col.

lv_result = lv_dyn_query->get_query_result( ).

Copyright 2011 Accenture All Rights Reserved. n53Exerccio PrticoCopyright 2011 Accenture All Rights Reserved. n54Alterando EntidadesRecuperar a entidade e efetuar o lock. lv_result = lv_entity->get_related_entity(Entidade). IF lv_result->lock( ) = ABAP_TRUE. lv_result->set_property( iv_attr_name = ATTR iv_value = X ). ENDIF.

Enviar as alteraes para o BO layer. Data: lv_bol_core TYPE REF TO cl_crm_bol_core. lv_bol_core = cl_crm_bol_core=>get_instance( ). lv_bol_core->modify( ).

Recuperar o contexto da transao. DATA: lv_transaction TYPE REF TO if_bol_transaction_context. lv_transaction = lv_bol_core->get_transaction( ).

Salvar as alteraes. lv_transaction->save( ). lv_transaction->commit( ).Copyright 2011 Accenture All Rights Reserved. n55Criando EntidadesIniciar a camada BOLDATA:lv_bol_coreTYPEREFTOcl_crm_bol_core.

lv_bol_core=cl_crm_bol_core=>get_instance(). lv_bol_core->start_up(iv_appl_name='ALL').

Recuperar Instncia construtora da entidadeDATA:lv_btorderTYPEREFTOcl_crm_bol_entity_factory.

lv_btorder=lv_bol_core->get_entity_factory('BTOrder').

Preencher atributos da entidade. DATA:lt_paramsTYPEcrmt_name_value_pair_tab, ls_paramsTYPEcrmt_name_value_pair.

ls_params-name='PROCESS_TYPE'. ls_params-value='CRMC'. APPENDls_paramsTOlt_params.

Copyright 2011 Accenture All Rights Reserved. n56Criando EntidadesCriar entidadeDATA:lv_headerTYPEREFTOcl_crm_bol_entity.

lv_header=lv_btorder->create(lt_params).

Publicar alteraes lv_bol_core->modify().

Salvar dadosDATA:lv_transactionTYPEREFTOif_bol_transaction_context.

lv_transaction=lv_header->get_transaction(). lv_transaction->save(). lv_transaction->commit(). Copyright 2011 Accenture All Rights Reserved. n57Aplicaes BSP

Copyright 2011 Accenture All Rights Reserved. nEquipe CRM [email protected] [email protected]@accenture.com

FIMCopyright 2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.Copyright 2011 Accenture All Rights Reserved. n59