cancel
Showing results for 
Search instead for 
Did you mean: 

Several Problems with BO Retrieve Expression of BRFplus

ttrapp
Active Contributor
0 Kudos

The BO Retrieve is an expression type of BRFplus that makes it possible to access data of a BOPF object within a BRFplus rule system. It is a part of BOPF reuse tools so this is the right place for posting my question.

I would like to access the eMail address of an /BOFU/BUSINESSPARTNER object. As node I'm choosing ADRESSPARTNER.ROOT and EMAIL as association.

The first problem comes when I generate the result data object and choosing only the URI values since I get a dump. When you analyse the the source code the reason is very simple: the component URI of structure /BOFU/S_ADDR_EMAILK is a built in data type but has no DDIC representation which causes the problem.

But the second problem is far more severe: you can activate the expression when you choose the whole structure /BOFU/S_ADDR_EMAILK as result structure resp. the table within this structure type. But after doing so I’m not able to read the information using BRFplus simulation even if I see the values in for a certain business partner in transaction BOBT. I suspect the BO retrieval doesn’t work with associations in SAP_BS_FND 747 SP 5. 

Am I right? Do you have the same problems?`


Best Regards,

Tobias

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Tobias,

If I understand your setup correctly, you start your expression from the address root node, and then add the email node using the association.

my assumption is, that as the Addres is a DO, you can not start your navigation from the address root, and you need to start it from the address host node, navigate to the address root, and then navigate to the email node.

BR,

Matan.

ttrapp
Active Contributor
0 Kudos

You are absolutely right. Can you scetch how to access the DO? Is the ROOT node and association ADRESSINFORMATION the right choice? If yes, how can I define the association parameters?

Best Regards,

Tobias

Former Member
0 Kudos

Hi Tobias,

to fill in the filter parameters, create a new structure based of the DDIC structure of the the relevant filter parameters structure in the BO.

go to each filter parameter in the BRF+, select its line, and click the button choise for 'Assign Filter Value Field', there you can assign a hard coded value, or the relevant element from the structure you created above.

if you chose to use the filter structure, you should also add it as an input parameter to your BRF+ function definition.

you can fill this manually when you run the simulation.

BR,

Matan

ttrapp
Active Contributor
0 Kudos

Thanks for the answer. I defined the assoziation like you described and can access ADDRESSINFORMATION. Now I want to move to ADDRESS like:

In transaction BOBT I can navigate to the note when choosing the right association parameters but I can't perform in the BO retrieve expression. I have the same behaviour with different existing business partners and created also new ones with the following report:

REPORT zbupa_create.

DATA:

   lv_partner      TYPE  bu_partner,

   lv_partner_guid TYPE  bu_partner_guid,

   lv_addrnumber   TYPE  ad_addrnum,

   lv_addrguid     TYPE  bu_address_guid.

DATA ls_data_person TYPE bapibus1006_central_person.

DATA lt_return TYPE bapiret2_t.

DATA ls_data TYPE bapibus1006_central.

ls_data_person-firstname = 'Foo'.

ls_data_person-lastname  = 'Bar'.

ls_data_person-birthname = 'Baz'.

ls_data-partnerlanguage = 'D'.

DATA ls_adsmtp TYPE bapiadsmtp.

DATA lt_adsmtp TYPE STANDARD TABLE OF bapiadsmtp.

ls_adsmtp-std_no = 'X'.

ls_adsmtp-e_mail = 'foo@bar.baz'.

ls_adsmtp-valid_from = '20000101'.

ls_adsmtp-valid_to = '99991231'.

APPEND ls_adsmtp TO lt_adsmtp.

data ls_address type BAPIBUS1006_ADDRESS.

ls_address-STANDARDADDRESS = SPACE.

ls_address-CITY = 'Mainz'.

ls_address-POSTL_COD1 = '55116'.

ls_address-country = 'DE'.

CALL FUNCTION 'BUPA_CREATE_FROM_DATA'

   EXPORTING

     iv_category     = '1'

     is_data         = ls_data

     is_data_person  = ls_data_person

     IS_ADDRESS      = ls_address

   IMPORTING

     ev_partner      = lv_partner

     ev_partner_guid = lv_partner_guid

     ev_addrnumber   = lv_addrnumber

     ev_addrguid     = lv_addrguid

   TABLES

     it_adsmtp       = lt_adsmtp

     et_return       = lt_return.

COMMIT WORK.

BREAK-POINT.


Can you give me a tip how to navigate to address node?


BR Tobias

Former Member
0 Kudos

Hi Tobias,

please implement SAP Note #2114019 in your system, and test again.

BR,

Matan.

Answers (0)