cancel
Showing results for 
Search instead for 
Did you mean: 

Type NodeID

abelousov
Active Participant
0 Kudos

Hi,

Is it possible to create elements of NodeID type in BODL (in my custom BO)?

The type appears in the code completion list, but after that message "Data type 'NodeID' is not supported, " appears.

I found I could easily create a variable of NodeID type in ABSL, but what about BODL?

It is essential for navigation to other BOs (especially standard ones).

Thank you.

Accepted Solutions (1)

Accepted Solutions (1)

abelousov
Active Participant
0 Kudos

Hi Fred,

"※Use the same parameter name as the outport of the target screen." - Yes. That's it!

I renamed parameter "Key" to "Parameter" in the parameters list and the navigation started to work.

(Parameter "Key" appears again after an activation, but it does not matter )

Eventually, the outport should look so:

Besides that, I checked you could just use element SAP_UUID instead of SAP_ToBOO - it will work too. That is, there is even not a strong need to use an association or the NodeID type.

Thank you very much, Fred, for your big help.

If you replied in the answers, not in the comments I would mark your answer as accepted (unfortunately, comments do not have such an option).

Best regards,

Aleksei

former_member200567
Active Contributor

Aleksei,

Glad to hear that.

->I checked you could just use element SAP_UUID instead of SAP_ToBOO - it will work too

Yes, actually, SAP_ToBOO is the UUID (SAP_UUID) of the instance which is automatically created by the system.

->If you replied in the answers, not in the comments I would mark your answer as accepted (unfortunately, comments do not have such an option).

Nah, it's cool. 🙂

Best Regards,

Fred

Answers (5)

Answers (5)

abelousov
Active Participant
0 Kudos

Hi Fred,

I checked your method. Unfortunately, it does not work as well.

As to your 2 question - I am not sure what value I should use as the key. In other BOs (Material, Resource, ECO) I used field UUID for the navigation and It worked well. Besides that, I tried creating a custom OWL screen for BOO model. I used there NodeID as the key and it worked - BOO instances were opened.

I found the standard screens of BOO in Configuration Explorer. They are pboolist.owl, pboomaint.oif, pboomaint_FS.fs in /SAP_BYD_APPICATION_UI/scm/mdpm/

You can see operation READ in pboomaint.oif. Anyway, I did not understand what key should have been used for the navigation to it.

Many thanks

Best regards,

Aleksei

former_member200567
Active Contributor

Hi Aleksei,

As I mentioned before, you should create an association.

association ToBOO to ProductionBillOfOperations;

Then you will get SAP_ToBOO field in your BO in the data model.

Pass that key to the target screen.

※Use the same parameter name as the outport of the target screen.

Best Regards,

Fred

abelousov
Active Participant
0 Kudos

Hi Senthil,

I am afraid it does not work for BOO (ProductionBillOfOperations).

I checked both ID (as an alternative key) and SAP_UUID - they do not work.

I know the value of SAP_UUID is the same as the value of NodeID in all BOs. I used SAP_UUID as a key for navigation to Material, Resource successfully. Eventually, I also checked NodeID field (I deliberately created a screen with BOO inside) and the navigation worked.

As far as I know, NodeID is 70 characters long and SAP_UUID is 36 characters long.

Thank you

Aleksei

former_member200567
Active Contributor
0 Kudos

Hi Aleksei,

1. How are you getting the node id value of BOO instance to pass it in the outport?

2. Are you sure the target screen that you want to navigate will receive the node id for the READ operation?

Best Regards,

Fred

abelousov
Active Participant
0 Kudos

Hi Fred,

1: Event-AfterModify:

// UUID for BOO

this.BOOUUID.Clear();
var boo = ProductionBillOfOperations.Retrieve ( this.BOOID );
if ( boo.IsSet() ) {
	this.BOOUUID = boo.UUID;
}

Sorry I will answer 2) a bit later

Thank you

Best regards,

Aleksei

former_member200567
Active Contributor
0 Kudos

Hi Aleksei,

I would use "association" to BOO for this kind of requirement.

1. Create an association to BOO in your BO definition

association ToBOO to ProductionBillOfOperations;

( This will create SAP_ToBOO element when you look at the BO in data model in QA or OWL. Don't forget to click Update Metadata in UI Designer.)

2. Assign the association with the retrieved instance instead of taking the UUID.

if ( boo.IsSet() ) {
        this.ToBOO = boo;
}

3. Send SAP_ToBOO as the key to the target screen. (I am guessing the target screen you are referring is using keyNavigation in its BOOperation READ.)

Best Regards,

Fred

Former Member
0 Kudos

Hi Aleksei,

If you need nodeId only for navigating to standard screen,

I would suggest you try with SAP_UUID(BODL: UUID) or you can use the datatype of the alternative key of standard BO.

Regards,

Senthil

abelousov
Active Participant
0 Kudos

Hi, Bin,

I am afraid type 'node' does not exist. Please, could you tell me what you mean exactly?

Thank you.

former_member200995
Contributor
0 Kudos

Hi Aleksei,

Try to use the "node", replace the Data type 'NodeID'.

Or paste the code, maybe someone can help you.

Best Regards,

Benny