Innovative, future-proof software solutions
Innovative, future-proof software solutions
Innovative, future-proof Assessments solutions
Innovative, future-proof Cloud Consulting solutions
Innovative, future-proof Industry types
Innovative, future-proof Products & Offerings
This article talks about CRM Debugging and BOL Programming and how you could navigate the entity structure in CRM to read and update values.
This article is a follow up article from the 1st one in CRM Debugging and BOL Programming. Please refer to the last article if you haven’t already for CRM Debugging and BOL Programming.
For customer overview screen when user clicks on edit to update the address information
Disable a specific field called “Delivery service type” and then do not allow to update Phone and email sections as highlighted below.
UI component was BP_ADDR
And then View value as BP_ADDR/AccountAddressEF
Use transaction obsp_wd_cmpwb to be able to open the component in backend CRM system
Specific fields can be found in
Context_Nodes > Implementation class > Attributes >STRUCT.FIELDNAME
CRM Debugging and BOL Programming to read & populate values
There are different methods that you can find in the context node attributes as was also answered in the post below
Then the code which was used to set the value as disabled would be GET_I_XYZ
If the icon does not look green as in the above screenshot choose to redefine or one of then options below to activate the method
METHOD get_i_deli_serv_type.
CALL METHOD super->get_i_deli_serv_type
EXPORTING
iterator = iterator
RECEIVING
rv_disabled = rv_disabled.
IF zl_bp_addr_accountaddress_impl=>gv_addr_disabled IS NOT INITIAL.
rv_disabled = zl_bp_addr_accountaddress_impl=>gv_addr_disabled.
ENDIF.
ENDMETHOD.
To access a specific value coming from the previous or current screen then use the BOL property access type as mentioned below where you want to read the value from
In my case I am using ZGO_BOL_PROPERTY defined in class ZL_BP_ADDR_ACCOUNTCOMMNUM_IMPL where I want to read the attribute address number and address GUID which are attributes in that class.
If you check the interface IF_BOL_BO_PROPERTY_ACCESS, it has properties as below:
Additionally, To be able to use the value stored in the property below code needs to be run
In ZL_BP_ADDR_ACCOUNTEMAILSE_IMPL DO_PREPARE_OUTPUT
DATA: lo_bo TYPE REF TO cl_crm_bol_entity,
lv_addr TYPE ad_addrnum,
lv_addr_guid TYPE bu_address_guid.
IF zl_bp_addr_accountcommnum_impl=>zgo_bol_property IS NOT INITIAL .
lo_bo ?= zl_bp_addr_accountcommnum_impl=>zgo_bol_property.
ENDIF.
IF lo_bo IS BOUND .
lo_bo->get_property_as_value(
EXPORTING
iv_attr_name = ‘ADDRESS_NUMBER’
IMPORTING
ev_result = lv_addr
).
lo_bo->get_property_as_value(
EXPORTING
iv_attr_name = ‘ADDRESS_GUID’
IMPORTING
ev_result = lv_addr_guid
).
ENDIF .
For the implementation class then you can use ZL_BP_ADDR_ACCOUNTCOMMNUM_IMPL=>ZGO_BOL_PROPERTY
Find the container proxy
1:Click on Data_ref
2:Then Click on the type below
3:Click on Attribute ref
Then find the values
The code using me-> would be calling the context field
ZTYPED_CONTEXT needs to be defined of type ZL_BP_ADDR_ACCOUNTCOMMNUM_CTXT
In the implementation method ZL_BP_ADDR_ACCOUNTCOMMNUM_IMPL
In this case since we have defined a parameter using the context interface as below
DATA: lo_bo TYPE REF TO cl_crm_bol_entity,
lv_addr TYPE ad_addrnum,
lv_addr_guid TYPE bu_address_guid.
lo_bo ?= me->ztyped_context->builaddress->collection_wrapper->find(
iv_index = cl_bp_addr_corpaccountad1_impl=>gv_index
ztyped_context->builaddress->collection_wrapper->
Moreover, Insider collection wrapper you would find collection reference
Insider collection reference look for
Additionally, Look for entity list as above which shows 3 entries as there are 3 BP addresses on the UI
Further, go to one of the entities and it would have container proxy
Therefore follow the same steps as in 4.1
Uncategorized
Optimize Dynamics CRM Customizations with goal management—set, track, and achieve business objectives using deal, task,…
Uncategorized
This blog explains how to Control CRM UI elements to edit /display using CRM BOL…
Uncategorized
Business Central Delegation Manage Approval Delegations Mark user as out of office and add start…
Connect with Us Today through the Details Below or Fill
Out the Form for a Prompt Response
Guaranteed response within 8 business hours.
We can handle projects of all complexities.
Startups to Fortune 500, we have worked with all.
Top 1% industry talent to ensure your digital success.