Oi pessoas! Como o Mauricio disse no post em que me apresentou no blog, eu vou publicar algumas coisas referentes ao meu aprendizado nesse mundo CRM/BOL/BSP. Então, hoje acordei inspirada com a vitória do meu Timão em cima do peixe no domingo (haha) e escolhi como tema para o meu primeiro post : o “Relacionamento BOL”.
Ai você me pergunta: “O que diabos é o BOL? Aaah já sei Brasil online né? Eu já tive um e-mail desse um dia!”. NÃO sr. espertinho!!! De forma bem resumida o BOL (Business Object Layer) armazena informações dos Objetos de Negócio, como Parceiros de Negócio, Ordens de Venda, etc. E algo que ajuda bastante nos desenvolvedores é que é possível “Navegar” através das relações existentes entre os objetos para obter algumas informações específicas,( NADA DE FICAR DANDO SELECTS POR AI), tudo o que você precisa (ou quase tudo) já está na memória você só deve identificar como chegar a esta informação e ler!! :). Como exemplo, vamos pegar um nó com o cabeçalho de um documento e a partir dele encontrar o status do mesmo:
Componente/Visão: BT116H_SRVO/OVViewSet
- Acessar a Classe de Implementação do nó BTADMNH:
- Na classe, selecionar a aba Atributos e procurar a constante “BASE_ENTITY_NAME”:
- Com o valor inicial ‘BTADMINH’encontrado na constante , acessar a transação GENIL_MODEL_BROWSER (Neste caso o nome do nó é igual ao valor do atributo, mas nem queira dar uma de espertinho porque nem todos os casos são assim 😛 )
- Procurar pelo modelo com nome igual à ‘BTAdminH’:
- Expandindo o nó Relações você encontrará todas as relações pelas quais pode navegar , para o nosso exemplo iremos utilizar ‘BTHeaderStatusSet’. Expandindo o nó Estrutura do atributo você encontrará a estrutura do mesmo e consecutivamente todas as informações que pode obter neste objeto:
- Verificando a estrutra do atributo você verá que só está acessível nessa relação o GUID, então será necessário acessar mais uma relação, a ‘BTStatusHAll’ para então chegar aos dados que desejamos:
Até ai tudo lindo…então você me pergunta: “O que eu faço com isso???”
Simples meu amigo: você deve chamar o método GET_RELATED_ENTITIES a partir do seu objeto passando o nome das relação, essa ação deve se repetir até que você chegue ao objeto que tem informação que deseja…Não entendeu??? Ok , então veja o exemplo do código para o cenário que estamos analisando neste post:
*** Objetos
DATA: lo_entity TYPE REF TO cl_crm_bol_entity,
lo_header_status TYPE REF TO if_bol_entity_col,
lo_header_stat TYPE REF TO cl_crm_bol_entity,
lo_status_curr TYPE REF TO if_bol_entity_col,
lo_status TYPE REF TO cl_crm_bol_entity.
***Estruturas
DATA: lwa_admin_h TYPE crmt_orderadm_h_wrk,
lwa_status TYPE crmst_status_btil.
* Obtém o AdminH-Entity com os dados do header do documento
lo_entity ?= me->typed_context->btadminh->collection_wrapper->get_current( ).
IF lo_entity IS BOUND.
* Busca a primeira relação de Status
lo_header_status = lo_entity->get_related_entities(
iv_relation_name = 'BTHeaderStatusSet' ).
IF lo_header_status IS BOUND.
lo_header_stat = lo_header_status->get_first( ).
* Busca a segunda relação, obtendo então o objeto com os dados que desejamos
lo_status_curr = lo_header_stat->get_related_entities(
iv_relation_name = 'BTStatusHCurrent' ).
IF lo_status_curr IS BOUND.
lo_status = lo_status_curr->get_first( ).
IF lo_status IS BOUND.
* Obtém os valores de status existente no objeto atribuindo-os a estrutura
lo_status->get_properties( IMPORTING
es_attributes = lwa_status ).
IF NOT lwa_status IS INITIAL AND
*** Agora chegamos as informações de status, então fica fácil basta dar
*** continuidade a lógica aqui e ser feliz =D
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
Então é isso ai pessoal, espero que possa ter ajudado, deixem suas dúvidas, sugestões, críticas, etc…Se eu não gostar eu não aceito…haha 😛
E pra fechar vai a frase do dia:
A alegria evita mil males e Prolonga a vida.
William Shakespeare
XOXO.
É isso aí, quanto mais você aprender sobre Relacionamentos BOL, mais você desaprende sobre os relacionamentos pessoais. hahah…
Quase Primeiro… Borman Coxinha!! X@
Ae Pri…. curti pra caramba o post meu, explicou certinho o esquema de buscar valores no nó de contexto. Tenta ver depois o esquema de setar valores!!
Valew!!!
OI Pri…
caramba estão pedindo bastante esse bol ultimamente… não sei nada e to tentando aprender pela net pois estou disponível no momento e o mercado tá foda ( se alguém souber de algo, to aí)
valeu pelo post
abraços