cancel
Showing results for 
Search instead for 
Did you mean: 

External Context Mapping and "The Mapping to Node...Has Not Been Completed"

ged_hurst
Participant
0 Kudos

Hi there,

I've got 2 components: A, B where A consumes the data provided by B.

I'm calling the component B which includes a view provided by A. This view (provided by A) needs data inputted by the user in a view in B.

The context of B contains a node called MULTIVALUES flagged as Interface + Input Element Ext.

The component A uses the component B, in the component usage interface controller of the component A I've referenced the component controller of A. I have then created a node in A's component controller and done the mapping from the component usage interface controller of A to A's component controller.

The manually created component controller node in A is NOT an interface.

Now when I invoke B I'm getting an error:

The Mapping to Node COMPONENTCONTROLLER.1.MULTIVALUES Has Not Been Completed. 

What's still missing?

Thank you!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Have you updated the B component's node structure? For the reverse mapping, the nodes have to have identical attributes.

ged_hurst
Participant
0 Kudos

HI,

it's actually more complex than that.

I'm able to reuse a component and share date through external context mapping but here the scenario is more complex.

In fact the component B declares a freely programmed value help, which is component A.

The value help works like a charm. The thing is that it must read a parameter defined in B and I was using external context mapping but I think there's some sort of circular dependency and the whole thing doesn't work.

Anybody has any workaround to this?

Former Member
0 Kudos

it is indeed much more complex and you need lot of understanding about the component instances and their life time.

What i do normally for such complex cyclic dependency , i try to split the common part which is needed in bot component_a and component_b and create a new super component_s.

Component_s is used in both components. You can even go further that you create view component which has nothing but the viewContainer UI elements to embed the views from component_a and Component_b.

The view component has to create all the used components (comp_s,comp_a,comp_b) and after creating call the interface method in comp_a and comp_b to set the component usage of comp_s (use the if_wd_comp_usage=>entering-referencemode).

In this way the comp_a,comp_b share the same instance of comp_s.

What i am saying is to look for a solution in application architecture and not with in the exiting components coding.

Answers (2)

Answers (2)

tkuebler1
Explorer
0 Kudos

Hi got the same Problem.

The Import Structure i want to map have the exact same datatype..so what is missing

"The Mapping to Node COMPONENTCONTROLLER.1.MULTIVALUES Has Not Been Completed."

bartlomiej_lach
Participant
0 Kudos

Hi,

I had the same problem some time ago, I'm not sure about solution but... as I suppose you map internal and external contex from component controller level, or you do not do it at all. Anyway you have to do mapping from intefcacecontroller level, it means you have to go Component usages->'Your external component name'->interfacecontroller_usage and in tab 'Context' do your mapping

This should help.

Regrads

Bartlomiej Lach