March 28, 2024

Relacionamento BOL

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.

3 thoughts on “Relacionamento BOL

  1. É isso aí, quanto mais você aprender sobre Relacionamentos BOL, mais você desaprende sobre os relacionamentos pessoais. hahah…

  2. 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!!!

  3. 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

Leave a Reply

Your email address will not be published. Required fields are marked *