Skip to Content
0

Type NodeID

Aug 05, 2017 at 06:14 PM

104

avatar image

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.

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

6 Answers

Best Answer
Aleksei BELOUSOV Aug 18, 2017 at 08:09 AM
0

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


000092.jpg (111.6 kB)
Show 1 Share
10 |10000 characters needed characters left characters exceeded

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

1
Benny Huang Aug 07, 2017 at 02:48 AM
0

Hi Aleksei,

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

Or paste the code, maybe someone can help you.

Best Regards,

Benny

Share
10 |10000 characters needed characters left characters exceeded
Aleksei BELOUSOV Aug 08, 2017 at 06:15 PM
0

Hi, Bin,

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

Thank you.

Share
10 |10000 characters needed characters left characters exceeded
Senthil Murugan Aug 14, 2017 at 05:51 AM
0

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

Share
10 |10000 characters needed characters left characters exceeded
Aleksei BELOUSOV Aug 17, 2017 at 07:27 AM
0

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


000089.jpg (95.0 kB)
000090.jpg (75.7 kB)
Show 3 Share
10 |10000 characters needed characters left characters exceeded

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

0

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

0

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

0
Aleksei BELOUSOV Aug 17, 2017 at 11:26 PM
0

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


000091.jpg (142.8 kB)
Show 1 Share
10 |10000 characters needed characters left characters exceeded

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

1